From c09be0dad6b05131e240349a375af7a4b7bf3444 Mon Sep 17 00:00:00 2001 From: Janusz Dobrowolski Date: Sun, 24 Aug 2008 18:19:14 +0000 Subject: [PATCH] Moving 2.0 development version to main trunk. --- CHANGELOG.txt | 1836 +++- access/login.php | 10 +- access/logout.php | 2 +- admin/backups.php | 118 +- admin/change_current_user_password.php | 87 + admin/company_preferences.php | 82 +- admin/create_coy.php | 117 +- admin/db/company_db.inc | 99 +- admin/db/maintenance_db.inc | 26 +- admin/db/users_db.inc | 48 +- admin/db/voiding_db.inc | 7 +- admin/display_prefs.php | 18 +- admin/fiscalyears.php | 146 +- admin/forms_setup.php | 4 +- admin/gl_setup.php | 78 +- admin/inst_lang.php | 77 +- admin/inst_module.php | 72 +- admin/payment_terms.php | 93 +- admin/shipping_companies.php | 82 +- admin/users.php | 99 +- admin/view_print_transaction.php | 71 +- admin/void_transaction.php | 22 +- applications/customers.php | 16 +- applications/dimensions.php | 10 +- applications/generalledger.php | 4 +- applications/inventory.php | 2 +- applications/manufacturing.php | 10 +- applications/setup.php | 6 +- {admin => company/0}/backup/index.php | 0 company/0/images/102.jpg | Bin 0 -> 14949 bytes company/0/images/103.jpg | Bin 0 -> 14412 bytes company/0/images/104.jpg | Bin 0 -> 11055 bytes .../pdf_files => company/0/images}/index.php | 0 company/0/images/logo_frontaccounting.jpg | Bin 0 -> 6467 bytes company/0/images/logo_frontaccounting.png | Bin 0 -> 10792 bytes company/0/index.php | 3 + company/0/js_cache/index.php | 3 + company/0/pdf_files/index.php | 3 + company/0/reporting/index.php | 3 + company/index.php | 3 + config.php | 192 +- dimensions/dimension_entry.php | 32 +- dimensions/includes/dimensions_db.inc | 14 +- dimensions/includes/dimensions_ui.inc | 10 +- dimensions/inquiry/search_dimensions.php | 112 +- dimensions/view/view_dimension.php | 13 +- frontaccounting.php | 50 +- gl/bank_transfer.php | 21 +- gl/{gl_payment.php => gl_bank.php} | 158 +- gl/gl_budget.php | 46 +- gl/gl_deposit.php | 258 - gl/gl_journal.php | 157 +- gl/includes/db/gl_db_account_types.inc | 206 +- gl/includes/db/gl_db_accounts.inc | 20 +- gl/includes/db/gl_db_bank_accounts.inc | 28 +- gl/includes/db/gl_db_bank_trans.inc | 64 +- gl/includes/db/gl_db_bank_trans_types.inc | 24 +- gl/includes/db/gl_db_banking.inc | 149 +- gl/includes/db/gl_db_currencies.inc | 22 +- gl/includes/db/gl_db_trans.inc | 48 +- .../ui/{gl_payment_ui.inc => gl_bank_ui.inc} | 129 +- gl/includes/ui/gl_deposit_ui.inc | 249 - gl/includes/ui/gl_journal_ui.inc | 83 +- gl/inquiry/bank_inquiry.php | 15 +- gl/inquiry/gl_account_inquiry.php | 17 +- gl/inquiry/gl_trial_balance.php | 13 +- gl/manage/bank_accounts.php | 67 +- gl/manage/bank_trans_types.php | 60 +- gl/manage/currencies.php | 102 +- gl/manage/exchange_rates.php | 112 +- gl/manage/gl_account_classes.php | 51 +- gl/manage/gl_account_types.php | 55 +- gl/manage/gl_accounts.php | 53 +- gl/view/gl_deposit_view.php | 14 +- gl/view/gl_payment_view.php | 12 +- includes/JsHttpRequest.php | 521 + includes/ajax.inc | 139 + includes/banking.inc | 2 +- includes/current_user.inc | 143 +- includes/data_checks.inc | 36 +- includes/date_functions.inc | 2 +- includes/db/comments_db.inc | 22 +- includes/db/connect_db.inc | 33 +- includes/db/inventory_db.inc | 101 +- includes/db/manufacturing_db.inc | 2 +- includes/db/references_db.inc | 22 +- includes/errors.inc | 86 +- includes/lang/language.php | 14 +- includes/main.inc | 250 +- includes/page/footer.inc | 43 +- includes/page/header.inc | 144 +- includes/prefs/userprefs.inc | 7 + includes/reserved.inc | 2 +- includes/session.inc | 78 +- includes/systypes.inc | 5 +- includes/types.inc | 6 + includes/ui.inc | 1 + includes/ui/items_cart.inc | 107 +- includes/ui/ui_controls.inc | 101 +- includes/ui/ui_input.inc | 424 +- includes/ui/ui_lists.inc | 2361 ++-- includes/ui/ui_msgs.inc | 19 +- includes/ui/ui_view.inc | 290 +- index.php | 1 + install.html | 386 +- install/index.php | 51 +- install/save.php | 165 +- inventory/adjustments.php | 109 +- inventory/cost_update.php | 52 +- inventory/includes/db/items_adjust_db.inc | 56 +- inventory/includes/db/items_category_db.inc | 32 +- inventory/includes/db/items_db.inc | 6 +- inventory/includes/db/items_locations_db.inc | 54 +- inventory/includes/db/items_transfer_db.inc | 48 +- inventory/includes/db/items_units_db.inc | 67 + inventory/includes/db/movement_types_db.inc | 26 +- inventory/includes/inventory_db.inc | 1 + inventory/includes/item_adjustments_ui.inc | 120 +- inventory/includes/stock_transfers_ui.inc | 100 +- inventory/inquiry/stock_movements.php | 63 +- inventory/inquiry/stock_status.php | 44 +- inventory/manage/item_categories.php | 58 +- inventory/manage/item_units.php | 134 + inventory/manage/items.php | 93 +- inventory/manage/locations.php | 71 +- inventory/manage/movement_types.php | 56 +- inventory/prices.php | 100 +- inventory/purchasing_data.php | 131 +- inventory/reorder_level.php | 32 +- inventory/transfers.php | 98 +- inventory/view/view_adjustment.php | 10 +- inventory/view/view_transfer.php | 8 +- js/JsHttpRequest.js | 798 ++ js/allocate.js | 56 + js/behaviour.js | 259 + js/budget.js | 27 + js/index.php | 3 + js/inserts.js | 254 + js/utils.js | 201 + lang/en_US/LC_MESSAGES/en_US.mo | Bin 800 -> 797 bytes .../LC_MESSAGES/empty.po | 8346 +++++++------- manufacturing/includes/db/work_centres_db.inc | 26 +- .../includes/db/work_order_issues_db.inc | 70 +- .../db/work_order_produce_items_db.inc | 83 +- .../db/work_order_requirements_db.inc | 2 +- manufacturing/includes/db/work_orders_db.inc | 170 +- .../includes/db/work_orders_quick_db.inc | 86 +- manufacturing/includes/manufacturing_ui.inc | 79 +- .../includes/work_order_issue_ui.inc | 184 +- manufacturing/inquiry/where_used_inquiry.php | 24 +- manufacturing/manage/bom_edit.php | 248 +- manufacturing/manage/work_centres.php | 60 +- manufacturing/search_work_orders.php | 112 +- manufacturing/view/wo_issue_view.php | 19 +- manufacturing/view/wo_production_view.php | 6 +- manufacturing/view/work_order_view.php | 28 +- manufacturing/work_order_add_finished.php | 47 +- manufacturing/work_order_entry.php | 176 +- manufacturing/work_order_issue.php | 86 +- manufacturing/work_order_release.php | 47 +- purchasing/allocations/supplier_allocate.php | 105 +- .../allocations/supplier_allocation_main.php | 7 +- purchasing/includes/db/grn_db.inc | 247 +- purchasing/includes/db/invoice_db.inc | 316 +- purchasing/includes/db/invoice_items_db.inc | 49 +- purchasing/includes/db/po_db.inc | 166 +- purchasing/includes/db/supp_payment_db.inc | 54 +- purchasing/includes/db/supp_trans_db.inc | 2 +- purchasing/includes/db/suppliers_db.inc | 117 +- purchasing/includes/supp_trans_class.inc | 18 +- purchasing/includes/ui/grn_ui.inc | 4 +- purchasing/includes/ui/invoice_ui.inc | 87 +- purchasing/includes/ui/po_ui.inc | 132 +- purchasing/inquiry/po_search.php | 63 +- purchasing/inquiry/po_search_completed.php | 60 +- .../inquiry/supplier_allocation_inquiry.php | 81 +- purchasing/inquiry/supplier_inquiry.php | 53 +- purchasing/manage/suppliers.php | 116 +- purchasing/po_entry_items.php | 178 +- purchasing/po_receive_items.php | 89 +- purchasing/supplier_credit.php | 29 +- purchasing/supplier_credit_grns.php | 85 +- purchasing/supplier_invoice.php | 28 +- purchasing/supplier_invoice_grns.php | 129 +- purchasing/supplier_payment.php | 28 +- purchasing/supplier_trans_gl.php | 82 +- purchasing/view/view_grn.php | 15 +- purchasing/view/view_po.php | 15 +- reporting/fonts/Helvetica-Bold.afm | 2827 ----- reporting/fonts/Helvetica-BoldOblique.afm | 2827 ----- reporting/fonts/Helvetica-Oblique.afm | 3051 ------ reporting/fonts/Helvetica.afm | 3051 ------ reporting/fonts/helvetica.php | 5 + reporting/fonts/helveticab.php | 5 + reporting/fonts/helveticabi.php | 5 + reporting/fonts/helveticai.php | 5 + reporting/fonts/iqraa.afm | 238 - reporting/fonts/iqraa.ttf | Bin 59840 -> 0 bytes reporting/includes/barcodes.php | 808 ++ reporting/includes/class.pdf.inc | 3325 +----- reporting/includes/doctext.inc | 41 +- reporting/includes/doctext2.inc | 38 +- reporting/includes/form_types.inc | 134 - reporting/includes/header2.inc | 225 + .../includes/html_entity_decode_php4.php | 343 + reporting/includes/htmlcolors.php | 207 + reporting/includes/pdf_report.inc | 323 +- reporting/includes/reporting.inc | 130 +- reporting/includes/reports_classes.inc | 20 +- reporting/includes/tcpdf.php | 9634 +++++++++++++++++ reporting/includes/unicode_data2.php | 2769 +++++ reporting/rep101.php | 55 +- reporting/rep102.php | 122 +- reporting/rep104.php | 95 +- reporting/rep105.php | 49 +- reporting/rep106.php | 177 + reporting/rep107.php | 93 +- reporting/rep108.php | 62 +- reporting/rep109.php | 67 +- reporting/rep110.php | 176 + reporting/rep201.php | 52 +- reporting/rep202.php | 122 +- reporting/rep203.php | 20 +- reporting/rep204.php | 15 +- reporting/rep209.php | 63 +- reporting/rep301.php | 12 +- reporting/rep302.php | 33 +- reporting/rep303.php | 17 +- reporting/rep304.php | 242 + reporting/rep401.php | 12 +- reporting/rep705.php | 57 +- reporting/rep706.php | 19 +- reporting/rep707.php | 30 +- reporting/rep709.php | 206 +- reporting/reports_main.php | 286 +- sales/allocations/customer_allocate.php | 104 +- .../allocations/customer_allocation_main.php | 29 +- sales/credit_note_entry.php | 288 +- sales/customer_credit_invoice.php | 476 +- sales/customer_delivery.php | 459 + sales/customer_invoice.php | 618 +- sales/customer_payments.php | 144 +- sales/includes/cart_class.inc | 478 +- sales/includes/db/credit_status_db.inc | 4 +- sales/includes/db/cust_trans_db.inc | 308 +- sales/includes/db/cust_trans_details_db.inc | 114 +- sales/includes/db/custalloc_db.inc | 71 +- sales/includes/db/customers_db.inc | 128 +- sales/includes/db/payment_db.inc | 83 +- sales/includes/db/sales_credit_db.inc | 474 +- sales/includes/db/sales_delivery_db.inc | 162 + sales/includes/db/sales_invoice_db.inc | 309 +- sales/includes/db/sales_order_db.inc | 418 +- sales/includes/db/sales_types_db.inc | 11 +- sales/includes/sales_db.inc | 265 +- sales/includes/sales_ui.inc | 23 + sales/includes/ui/sales_credit_ui.inc | 267 +- sales/includes/ui/sales_order_ui.inc | 469 +- sales/inquiry/customer_allocation_inquiry.php | 82 +- sales/inquiry/customer_inquiry.php | 189 +- sales/inquiry/sales_deliveries_view.php | 298 + sales/inquiry/sales_orders_view.php | 214 +- sales/manage/credit_status.php | 58 +- sales/manage/customer_branches.php | 251 +- sales/manage/customers.php | 179 +- sales/manage/sales_areas.php | 59 +- sales/manage/sales_people.php | 158 +- sales/manage/sales_types.php | 126 +- sales/sales_order_entry.php | 691 +- sales/view/view_credit.php | 36 +- sales/view/view_dispatch.php | 162 + sales/view/view_invoice.php | 39 +- sales/view/view_receipt.php | 6 +- sales/view/view_sales_order.php | 84 +- sql/alter.sql | 67 + sql/alter2.sql | 1 + sql/basic.sql | 1220 --- sql/en_US-demo.sql | 2593 +++-- sql/en_US-new.sql | 1236 +-- taxes/db/item_tax_types_db.inc | 5 +- taxes/db/tax_groups_db.inc | 63 +- taxes/db/tax_types_db.inc | 76 +- taxes/item_tax_types.php | 84 +- taxes/tax_calc.inc | 86 +- taxes/tax_groups.php | 82 +- taxes/tax_types.php | 102 +- themes/aqua/default.css | 225 +- themes/aqua/images/button_ok.png | Bin 0 -> 631 bytes themes/aqua/images/locate.png | Bin 0 -> 501 bytes themes/aqua/images/progressbar.gif | Bin 0 -> 3238 bytes themes/aqua/renderer.php | 116 +- themes/cool/default.css | 239 +- themes/cool/images/button_ok.png | Bin 0 -> 658 bytes themes/cool/images/locate.png | Bin 0 -> 456 bytes themes/cool/images/progressbar.gif | Bin 0 -> 3238 bytes themes/cool/renderer.php | 115 +- themes/default/default.css | 235 +- themes/default/images/button_ok.png | Bin 0 -> 619 bytes themes/default/images/progressbar.gif | Bin 0 -> 3238 bytes themes/default/renderer.php | 218 +- update.html | 59 +- update_db.php | 157 + 302 files changed, 40078 insertions(+), 34226 deletions(-) create mode 100644 admin/change_current_user_password.php rename {admin => company/0}/backup/index.php (100%) create mode 100644 company/0/images/102.jpg create mode 100644 company/0/images/103.jpg create mode 100644 company/0/images/104.jpg rename {reporting/pdf_files => company/0/images}/index.php (100%) create mode 100644 company/0/images/logo_frontaccounting.jpg create mode 100644 company/0/images/logo_frontaccounting.png create mode 100644 company/0/index.php create mode 100644 company/0/js_cache/index.php create mode 100644 company/0/pdf_files/index.php create mode 100644 company/0/reporting/index.php create mode 100644 company/index.php rename gl/{gl_payment.php => gl_bank.php} (56%) delete mode 100644 gl/gl_deposit.php rename gl/includes/ui/{gl_payment_ui.inc => gl_bank_ui.inc} (63%) delete mode 100644 gl/includes/ui/gl_deposit_ui.inc create mode 100644 includes/JsHttpRequest.php create mode 100644 includes/ajax.inc create mode 100644 inventory/includes/db/items_units_db.inc create mode 100644 inventory/manage/item_units.php create mode 100644 js/JsHttpRequest.js create mode 100644 js/allocate.js create mode 100644 js/behaviour.js create mode 100644 js/budget.js create mode 100644 js/index.php create mode 100644 js/inserts.js create mode 100644 js/utils.js delete mode 100644 reporting/fonts/Helvetica-Bold.afm delete mode 100644 reporting/fonts/Helvetica-BoldOblique.afm delete mode 100644 reporting/fonts/Helvetica-Oblique.afm delete mode 100644 reporting/fonts/Helvetica.afm create mode 100644 reporting/fonts/helvetica.php create mode 100644 reporting/fonts/helveticab.php create mode 100644 reporting/fonts/helveticabi.php create mode 100644 reporting/fonts/helveticai.php delete mode 100644 reporting/fonts/iqraa.afm delete mode 100644 reporting/fonts/iqraa.ttf create mode 100644 reporting/includes/barcodes.php delete mode 100644 reporting/includes/form_types.inc create mode 100644 reporting/includes/header2.inc create mode 100644 reporting/includes/html_entity_decode_php4.php create mode 100644 reporting/includes/htmlcolors.php create mode 100644 reporting/includes/tcpdf.php create mode 100644 reporting/includes/unicode_data2.php create mode 100644 reporting/rep106.php create mode 100644 reporting/rep110.php create mode 100644 reporting/rep304.php create mode 100644 sales/customer_delivery.php create mode 100644 sales/includes/db/sales_delivery_db.inc create mode 100644 sales/inquiry/sales_deliveries_view.php create mode 100644 sales/view/view_dispatch.php create mode 100644 sql/alter.sql create mode 100644 sql/alter2.sql delete mode 100644 sql/basic.sql create mode 100644 themes/aqua/images/button_ok.png create mode 100644 themes/aqua/images/locate.png create mode 100644 themes/aqua/images/progressbar.gif create mode 100644 themes/cool/images/button_ok.png create mode 100644 themes/cool/images/locate.png create mode 100644 themes/cool/images/progressbar.gif create mode 100644 themes/default/images/button_ok.png create mode 100644 themes/default/images/progressbar.gif create mode 100644 update_db.php diff --git a/CHANGELOG.txt b/CHANGELOG.txt index d11a4cc1..9eee9b86 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,7 +1,7 @@ /** * @version $Id$ * @package FrontAccounting -* @copyright (C) 2005 - 2007 FrontAccounting +* @copyright (C) 2005 - 2008 FrontAccounting * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * FrontAccounting is Free Software */ @@ -19,13 +19,1841 @@ Legend: ! -> Note $ -> Affected files +-------------------------------2.0 Final -------------------------------------------- +21_aug-2008 Joe Hunt +! config.php file. Version changed to 2.0 +$ config.php +! Set time out to 120 seconds. +$ /install/save.php +! fixing $amp in backup +$ /js/utils.js + +20-Aug-2008 Joe Hunt +# Bug [0000037] Price diff and deliveries between po receive and supp invoice. (Again) +$ /includes/db/inventory_db.inc + /purchase/includes/db/grn_db.inc + /purchase/includes/db/invoice_db.inc + +20-Aug-2008 +# [0000041] Voiding PO GRN's could be dangerous, if deliveries have been done. Eliminating it. Use item adjustment with 0 price. +$ /admin/db/voiding_db.inc +# Fixing a minor bug in grn_db.inc +$ /purchasing/includes/db/grn_db.inc + +19-Aug-2008 Joe Hunt +# Fixed some color conversion problems in the new PDF Engine +$ /reporting/includes/pdf_report.inc + /reporting/includes/class.pdf.inc + +19-Aut-2008 Joe Hunt +! Optimized the textwraplines in pdf_report.inc and header2.inc + /reporting/includes/pdf_report.inc + /reporting/includes/header2.inc (This is important to download too!) + +19-Aug-2008 Joe Hunt +! Replacing the PDF Engine with a slightly modified TCPDF +$ /reporting/fonts/helvetica*.php (new php files) + /reporting/fonts/*.atm files removed + /reporting/includes/pdf_report.inc (changed) + /reporting/includes/class.pdf.inc (changed) + /reporting/includes/barcodes.php (new file) + /reporting/includes/htmlcolors.php (new file) + /reporting/includes/html_entity_decode_php4.php (new file) + /reporting/includes/tcpdf.php (new file, the PDF engine) + /reporting/includes/unicode_data2.php (new file, reduced unicode_data.php) + +18-Aug-2008 Joe Hunt +# Bug [0000038] Voiding a cost update doesn't void even if it says so. There will now be an error msg saying + that this can not be done. +$ /admin/db/voiding_db.inc + +18-Aug-2008 Joe Hunt +# Bug [0000037] Price diff and deliveries between po receive and supp invoice. +$ /purchase/includes/db/grn_db.inc + /purchase/includes/db/invoice_db.inc + +16-Aug-2008 Janusz Dobrowolski +# Fixed first supplier add confirmation [0000039]. +$ /purchasing/manage/suppliers.php +# Fixed entering direct documents with date in the past [0000036] +$ /sales/customer_delivery.php + /sales/includes/cart_class.inc +# Fixed date_picker caching in debug mode +$ /includes/ui/ui_view.inc +# Some focus fixes after user entry error +$ /sales/manage/credit_status.php + /sales/manage/customer_branches.php + /sales/manage/sales_areas.php + /sales/manage/sales_people.php + +08-Aug-2008 Joe Hunt +# Wrong email-adress field taken when emailing documents [0000035]. +$ /sales/includes/db/cust_trans_db.inc + +02-Aug-2008 Joe Hunt +# Use Item Sales Account as default when creating new branch. Customer Branch Sales Account overrides Item Sales Accounts. +$ /sales/manage/customer_branches.php + +01-Aug-2008 Joe Hunt +! Customer Dimension overrides an Item Dimension when creating GL transactions +$ /sales/includes/db/customers_db.inc + /sales/includes/db/sales_credit_db.inc + /sales/includes/db/sales_delivery_db.inc + /sales/includes/db/sales_invoice_db.inc + +31-Jul-2008 Joe Hunt ++ Added a new menu entry after that Bank Payment or Bank Deposit has been processed. +$ /gl/gl_bank.php + +30-Jul-2008 Joe Hunt +! Currency selection in Price Listing Report +$ /reporting/rep104.php + /reporting/reports_main.php + +28-Jul-2008 Janusz Dobrowolski +# Fixed control buttons reset after record deletion. +$ /admin/fiscalyears.php + /admin/payment_terms.php + /admin/shipping_companies.php + /gl/manage/bank_accounts.php + /gl/manage/currencies.php + /gl/manage/gl_account_classes.php + /gl/manage/gl_account_types.php + /inventory/manage/item_categories.php + /inventory/manage/item_units.php + /inventory/manage/locations.php + /inventory/manage/movement_types.php + /manufacturing/manage/work_centres.php + /sales/manage/credit_status.php + /sales/manage/customer_branches.php + /sales/manage/sales_areas.php + /sales/manage/sales_people.php + /sales/manage/sales_types.php + /taxes/item_tax_types.php + /taxes/tax_groups.php + /taxes/tax_types.php + +27-Jul-2008 Janusz Dobrowolski +# Fixed record selection on pages using non-numeric selectors with simple_page_mode() helper. +$ /includes/ui/ui_controls.inc + /includes/ui/ui_input.inc + /inventory/manage/item_units.php +# Fixed focus setting on multi-form pages. +$ /js/utils.js +# Fixed ajax reload +$ /manufacturing/work_order_release.php + +26-Jul-2008 Janusz Dobrowolski +! Potentially dangerous for whole FA site operations are currently available only for admins of first registered company (site admins). +$ /config.php + /admin/create_coy.php + /admin/inst_lang.php + /admin/inst_module.php + /includes/current_user.inc +# Small layout fix + /admin/fiscalyears.php + +25-Jul-2008 Joe Hunt +# Minor adjustments +$ /includes/page/header.inc + /manufacturing/work_order_release.php + +25-Jul-2008 Joe Hunt +# Default application setting does not work [0000034] +$ /includes/page/header.inc + +25-Jul-2008 Joe Hunt +! The built version in config.php now shows the last change date of this file (CHANGELOG.txt). +$ config.php + +25-Jul-2008 Joe Hunt +# Missing GL transactions when producing advanced manufacturing [0000032]. +$ /manufacturing/includes/db/work_order_produce_items_db.inc + +24-Jul-2008 Janusz Dobrowolski ++ Added fatal error handling during ajax calls - [0000003] closed +$ includes/session.inc +# Fixed hints for lists without submit [0000026] +$ includes/ui/ui_lists.inc +# Removed not used file (related to [0000023]) +$ sql/basic.sql + +24-Jul-2008 Joe Hunt +# Pressing the link in the meta_forward function may result in a blank page. +$ /includes/ui/ui_controls.inc + +23-Jul-2008 Joe Hunt +# Increment reference bug in GL Deposit and missing hyperlink parameter. +$ /gl/gl_bank.php + /gl/includes/gl_bank_ui.inc + +22-Jul-2008 Janusz Dobrowolski +# Corrected backup maintenance page display during script download. +$ /admin/backups.php + +20-Jul-2008 Janusz Dobrowolski +# Corrected reports page display after yesterday change. +$ /reporting/reports_main.php + +19-Jul-2008 Janusz Dobrowolski +! Content of js-only pages superseded by the requirement notification in non-js browsers. +$ /admin/backups.php + /reporting/reports_main.php ++ Support for js only divs/pages. +$ /includes/main.inc + /includes/ui/ui_controls.inc + /js/inserts.js +# Fixed page usability in non-js mode. +$ /sales/inquiry/sales_orders_view.php +# Small table view fix +$ /admin/inst_lang.php + +18-Jul-2008 Janusz Dobrowolski ++ Added optional processing progressbar for submit buttons +$ /includes/ui/ui_input.inc + /includes/ui/ui_lists.inc + /js/inserts.js + /themes/aqua/images/progressbar.gif (new) + /themes/cool/images/progressbar.gif (new) + /themes/default/images/progressbar.gif (new) +# Fixed database error after empty supplier search result [0000022] +$ /purchasing/supplier_credit.php + /purchasing/supplier_invoice.php +# Fixed focus after update +$ /admin/company_preferences.php +# Fixed message typo. +$ /admin/create_coy.php +# Fixed line edition layout +$ /inventory/includes/item_adjustments_ui.inc + +18-Jul-2008 Joe Hunt +# Parse error fixed [0000021] in customer_credit_invoice.php +$ /sales/customer_credit_invoice.php + +15-Jul-2008 Janusz Dobrowolski +# Fixed bug [0000018] - unwanted freight cost reset on page update. +$ /sales/customer_delivery.php + +14-Jul-2008 Janusz Dobrowolski +# Fixed bug [0000017] - error while checking qoh +$ /includes/ui/items_cart.inc + /manufacturing/work_order_issue.php +# Fixed ajax update +$ /gl/manage/gl_accounts.php + +13-Jul-2008 Joe Hunt ++ Added GL Summary of Tax Report (rep709.php). Usable only if different Tax Accounts are used. +$ /reporting/rep709.php + +12-Jul-2008 Joe Hunt +! Rewrite of Tax Report (rep709.php). +$ /reporting/rep709.php + +09-Jul-2008 Janusz Dobrowolski +# Corrections to maximum input lengths +$ /gl/manage/bank_accounts.php + /gl/manage/gl_account_classes.php +# Fixed spare Back link on restricted pages +$ /includes/session.inc +# Fixed bank_account_types_list() +$ /includes/ui/ui_lists.inc +# Fixed warning about unexisting POST var +$ /sales/manage/customers.php + +08-Jul-2008 Janusz Dobrowolski +# Added validation of entered quantities +$ /sales/customer_credit_invoice.php +# Fixed ajax update (0000015) and quantity checks +$ /sales/customer_delivery.php + /sales/customer_invoice.php +# Fixed invalid voiding sales invoice/delivery/credit (0000016) +$ /sales/includes/db/sales_delivery_db.inc + /sales/includes/db/sales_invoice_db.inc + /sales/includes/sales_db.inc +# Fixed setting document date to Today() +$ /sales/includes/cart_class.inc + +08-Jul-2008 Joe Hunt ++ Addition in test of duplicate fiscal year +$ /admin/fiscalyears.php + +07-Jul-2008 Joe Hunt +# Corrected a subbug in 00000012 (blank page in sales_types.php). +$ /sales/manage/sales_types.php + +07-Jul-2008 Janusz Dobrowolski ++ Added ajax +$ /admin/fiscalyears.php + /inventory/purchasing_data.php +# Corrected factor parameter checking (fixes 00000012) +$ /sales/includes/sales_db.inc +! Changed selector for fiscal year functions to id +$ /admin/db/company_db.inc +# Checking options parameter for combos +$ /includes/ui/ui_lists.inc + +06-Jul-2008 Janusz Dobrowolski ++ Ajax additions +$ /admin/view_print_transaction.php + /admin/void_transaction.php + /dimensions/dimension_entry.php + /manufacturing/work_order_entry.php + /manufacturing/manage/bom_edit.php + /sales/manage/customer_branches.php ++ Default value calculated for new prices +$ /inventory/prices.php ++ Optional default value for input_num() +$ /includes/ui/ui_input.inc ++ Submit on change option for currency lists +$ /includes/ui/ui_lists.inc +# factor parameter in get_price() is now optional +$ /sales/includes/sales_db.inc +# Smaller fix to ajax page content update +$ /sales/manage/customers.php + +05-Jul-2008 Janusz Dobrowolski ++ Ajax additions +$ /admin/change_current_user_password.php + /admin/company_preferences.php + /admin/forms_setup.php + /admin/gl_setup.php + /admin/payment_terms.php + /admin/shipping_companies.php + /admin/users.php + /inventory/manage/item_categories.php + /inventory/manage/item_units.php + /inventory/manage/locations.php + /inventory/manage/movement_types.php + /manufacturing/manage/work_centres.php + /sales/manage/credit_status.php + /sales/manage/sales_areas.php + /sales/manage/sales_people.php + /sales/manage/sales_types.php + /taxes/item_tax_types.php + /taxes/tax_groups.php + /taxes/tax_types.php +# Gettext fixes +$ /gl/manage/bank_accounts.php + /gl/manage/bank_trans_types.php + /gl/manage/currencies.php + /gl/manage/gl_account_classes.php + /gl/manage/gl_account_types.php + /gl/manage/gl_accounts.php + +04-Jul-2008 Janusz Dobrowolski ++ Ajax additions + /gl/inquiry/bank_inquiry.php + /gl/inquiry/gl_account_inquiry.php + /gl/inquiry/gl_trial_balance.php + /gl/manage/bank_accounts.php + /gl/manage/bank_trans_types.php + /gl/manage/currencies.php + /gl/manage/exchange_rates.php + /gl/manage/gl_account_classes.php + /gl/manage/gl_account_types.php + /gl/manage/gl_accounts.php +! Changed layout for simple db table editor pages +$ /includes/ui/ui_input.inc +- Removed unused GL account settings. +$ /admin/gl_setup.php + /admin/db/company_db.inc + /gl/manage/gl_accounts.php +# Fixed default sales account for customer branch. +$ /admin/gl_setup.php + /sales/manage/customer_branches.php +# Fixed focus after ajax page reload. +$ /includes/ajax.inc +# Fixed optional submit for yesno and gl_all_accounts lists. +$ /includes/ui/ui_lists.inc + +01-Jul-2008 Janusz Dobrowolski ++ Ajax additions + /gl/bank_transfer.php + /gl/gl_budget.php + /gl/gl_journal.php + /gl/includes/ui/gl_journal_ui.inc ++ Added client side calculations for budget + /gl/gl_budget.php + /js/budget.js +# Fixed default POST assigning [fixes 0000009] + /includes/ui/ui_lists.inc +# Fixed submit type in submit_row() + /includes/ui/ui_input.inc +# Small display fix + /gl/manage/currencies.php +! Code cleanup + /gl/gl_bank.php + /gl/includes/ui/gl_bank_ui.inc + /inventory/adjustments.php + /inventory/transfers.php + /purchasing/po_entry_items.php + /sales/sales_order_entry.php + /sales/credit_note_entry.php + +29-Jun-2008 Janusz Dobrowolski +! Rewritten bank deposit/payment related files, added ajax + /gl/gl_deposit.php (removed) + /gl/gl_payment.php (removed) + /gl/gl_bank.php (added) + /gl/includes/ui/gl_bank_ui.inc (new file) + /gl/includes/ui/gl_deposit_ui.inc (removed) + /gl/includes/ui/gl_payment_ui.inc (removed) + /gl/includes/db/gl_db_banking.inc + /gl/gl_journal.php + /manufacturing/search_work_orders.php + /applications/generalledger.php ++ Added fallback flag for non-js mode only ui elements +$ /js/inserts.js +! Default value from POST for check_box,hidden and text_cells inputs +$ /includes/ui/ui_input.inc +! Rewritten non-sql list selectors +$ /includes/ui/ui_lists.inc + /purchasing/inquiry/supplier_allocation_inquiry.php + /purchasing/inquiry/supplier_inquiry.php +! Added trans_type parameter to items_cart() +$ /includes/ui/items_cart.inc + /inventory/adjustments.php + /inventory/transfers.php + /manufacturing/work_order_issue.php + +27-Jun-2008 Janusz Dobrowolski ++ Ajax additions +$ /dimensions/dimension_entry.php + /dimensions/inquiry/search_dimensions.php + /manufacturing/work_order_add_finished.php + /manufacturing/work_order_issue.php + /manufacturing/work_order_release.php + /manufacturing/includes/work_order_issue_ui.inc + /manufacturing/search_work_orders.php +! Default $selected_id=null (ie current $_POST value) for all lists; + standard view (ie with search box) of stock_component_list() +$ /includes/ui/ui_lists.inc +# Fixed selection for outstanding work orders +$ /manufacturing/search_work_orders.php +# Fixed stock item links +$ /inventory/includes/item_adjustments_ui.inc + /inventory/includes/stock_transfers_ui.inc +# Fixed typo in menu option +$ /applications/manufacturing.php + +27-Jun-2008 Joe Hunt +# Minor html adjustment in login.php +$ /access/login.php +# Fixed a bug when trying to create a duplicate year +$ /admin/fiscalyears.php +# Fixed a misspelled parameter (OutstandingOnly) in manufacturing.php +$ /applications/manufacturing.php + +26-Jun-2008 Janusz Dobrowolski ++ Ajax additions +$ /includes/ui/ui_lists.inc + /inventory/adjustments.php + /inventory/cost_update.php + /inventory/prices.php + /inventory/transfers.php + /inventory/includes/item_adjustments_ui.inc + /inventory/includes/stock_transfers_ui.inc + /inventory/inquiry/stock_movements.php + /inventory/manage/items.php + /manufacturing/work_order_entry.php + /purchasing/po_entry_items.php +! Changes to items_cart API (line_items indexed by line# instead of stock_id) +$ /includes/ui/items_cart.inc +# Fixed bug 0000008 (call to no more existing function) +$ /sales/includes/db/sales_types_db.inc + +25-Jun-2008 Joe Hunt +# Fixed 'div end out of order' in invoice_ui.inc causing the newwave bug with missing menu +$ /purchasing/includes/ui/invoice_ui.inc + +25-Jun-2008 Janusz Dobrowolski +# Fixed bug 0000004, removed nested forms in supplier invoice/credit +$ /purchasing/includes/ui/invoice_ui.inc + +25-Jun-2008 Joe Hunt +# Fixed bug when updating/saving Tax Group Items +$ /includes/ui/ui_lists.inc + +24-Jun-2008 Joe Hunt +# Fixed inconsistencies in customer and supplier aging +$ /sales/includes/db/customers_db.inc + /sales/inquiry/customer_inquiry.php + /purchasing/includes/db/suppliers_db.inc + /reporting/rep102.php + /reporting/rep202.php +# Fixed a bug when trying to back the inv.date and due date in Direct Invoicing. +$ /sales/sales_order_entry.php + + +23-Jun-2008 Janusz Dobrowolski ++ Ajax additions to sales and purchasing modules +$ /purchasing/po_receive_items.php + /purchasing/supplier_credit.php + /purchasing/supplier_credit_grns.php + /purchasing/supplier_invoice.php + /purchasing/supplier_invoice_grns.php + /purchasing/supplier_trans_gl.php + /purchasing/allocations/supplier_allocate.php + /purchasing/includes/ui/invoice_ui.inc + /sales/customer_credit_invoice.php + /sales/allocations/customer_allocate.php +# Fixed edition of purchase order (bug #0000001) +$ /purchasing/includes/ui/po_ui.inc +! Improved client side allocation functions +$ /js/allocate.js ++ Optional coloured price_format() +$ /js/utils.js + /js/inserts.js +! Async update of locations selector +$ /includes/ui/ui_lists.inc +# Fixed warning on pages without default focus. +$ /includes/ui/ui_controls.inc +# Fixed initial display for numeric inputs with dec=0. +$ /includes/ui/ui_input.inc + +21-Jun-2008 Janusz Dobrowolski ++ Ajax additions to sales and purchasing modules +$ /purchasing/po_entry_items.php + /purchasing/supplier_payment.php + /purchasing/allocations/supplier_allocate.php + /purchasing/includes/ui/po_ui.inc + /purchasing/inquiry/po_search.php + /purchasing/inquiry/po_search_completed.php + /purchasing/inquiry/supplier_allocation_inquiry.php + /purchasing/inquiry/supplier_inquiry.php + /purchasing/manage/suppliers.php + /sales/manage/customers.php + +21-Jun-2008 Joe Hunt ++ Added upload functionality to company logo. Better names on lists search. +$ /admin/company_preferences.php +! Better layout on company logo print-out +$ /reporting/includes/header2.inc + +---------------------------------------Release Candidate 2------------------------------- +20-Jun-2008 Joe Hunt +! 2.0 Release Candidate 2 +$ config.php + update.html + +20-Jun-2008 Joe Hunt +! In reorder_level.php the heading gets updated as well +$ /inventory/reorder_level.php +! Changes the -1 to 'User Quantiry Decimals' in the table for units. +$ /inventory/manage/item_units.php + +20-Jun-2008 Janusz Dobrowolski +# Proper error handling even after exit() call. +$ /includes/errors.inc + /includes/main.inc + /includes/session.inc +# Fixed initial combo selection. + /includes/ui/ui_lists.inc +# Layout fixes to customer edition. + /sales/manage/customers.php +# Added order table reload after template option change + /sales/inquiry/sales_orders_view.php + +19-Jun-2008 Janusz Dobrowolski ++ Added ajax improvements +$ /purchasing/allocations/supplier_allocation_main.php + /sales/customer_delivery.php + /sales/customer_invoice.php + /sales/allocations/customer_allocation_main.php + /sales/manage/customers.php ++ Ajax added to check helper function +$ /includes/ui/ui_input.inc +# Fixing database error in branch exist check on empty customer_id +$ /includes/data_checks.inc +# Layout fix for hyperlink_params_td() +$ /includes/ui/ui_controls.inc +# Fix for initial combo position +$ /includes/ui/ui_lists.inc +# Fix to select onchange extension +$ /js/inserts.js + +19-Jun-2008 Joe Hunt +! changed so the due date is updated when changing customer in direct invoice. +$ /sales/includes/ui/sales_order_ui.inc + +19-Jun-2008 Joe Hunt +# Minor layout bug at Credit Shipping Costs in customer_credit_invoice.php +$ /sales/customer_credit_invoice.php + +18-Jun-2008 Janusz Dobrowolski ++ Added ajax improvements +$ /sales/credit_note_entry.php + /sales/customer_payments.php + /sales/sales_order_entry.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + /sales/inquiry/customer_allocation_inquiry.php + /sales/inquiry/customer_inquiry.php ++ Added optional trigger parameter to div_start() +$ /includes/ui/ui_controls.inc ++ Added dec attribute ajax update for amount fields +$ /includes/ui/ui_input.inc ++ Ajaxified stock item types and credit types lists +$ /includes/ui/ui_lists.inc +# Fixed onblur for amount fields, extended onchange event handling for selects +$ /js/inserts.js +# Fixed addAssign() js handler for nonstandard attributes +$ /js/utils.js +# Fixed bug in stock item image upload +$ /inventory/manage/items.php + +17-Jun-2008 Joe Hunt +! More files with Quantity routines needed fix due to php4 related issue. +$ /includes/current_user.inc + /manufacturing/work_order_entry.php + /manufacturing/inquiry/where_used_inquiry.php + /manufacturing/manage/bom_edit.php + /purchasing/po_receive_items.php + /purchasing/supplier_credit_grns.php + /purchasing/supplier_invoice_grns.php + /sales/customer_credit_invoice.php + /sales/includes/ui/sales_order_ui.inc + +16-Jun-2008 Joe Hunt +! Changed so Customer's Reference is printed on all sales documents (you can f.i. enter PO number here). +$ /reporting/includes/header2.inc + /reporting/doctext.inc + /reporting/doctext2.inc + +16-Jun-2008 Joe Hunt +! Changed the Quantity routines to use the Item Units decimals if any. A lot of files. +$ /includes/current_user.inc + /includes/ui/ui_input.inc + /includes/ui/ui_lists.inc + /inventory/reorder_level.inc + /inventory/includes/item_adjustments_ui.inc + /inventory/includes/stock_transfers_ui.inc + /inventory/includes/db/items_units_db.inc + /inventory/inquiry/stock_movements.php + /inventory/inquiry/stock_status.php + /inventory/manage/item_units.php + /inventory/view/view_adjustment.php + /inventory/view/view_transfer.php + /manufacturing/search_work_orders.php + /manufacturing/work_order_entry.php + /manufacturing/includes/manufacturing_ui.inc + /manufacturing/includes/work_order_issue_ui.inc + /manufacturing/inquiry/where_used_inquiry.php + /manufacturing/manage/bom_edit.php + /manufacturing/view/wo_issue_view.php + /manufacturing/view/wo_production_view.php + /purchasing/po_receive_items.php + /purchasing/supplier_credit_grns.php + /purchasing/supplier_invoice_grns.php + /purchasing/includes/ui/invoice_ui.inc + /purchasing/includes/ui/po_ui.inc + /purchasing/view/view_grn.php + /purchasing/view/view_po.php + /reporting/rep105.php + /reporting/rep107.php + /reporting/rep108.php + /reporting/rep109.php + /reporting/rep110.php + /reporting/rep204.php + /reporting/rep209.php + /reporting/rep301.php + /reporting/rep302.php + /reporting/rep303.php + /reporting/rep401.php + /sales/customer_credit_invoice.php + /sales/customer_delivery.php + /sales/customer_invoice.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + /sales/view/view_credit.php + /sales/view/view_dispatch.php + /sales/view/view_invoice.php + /sales/view/view_sales_order.php + +15-Jun-2008 Janusz Dobrowolski ++ Ajax driven delivery and order queries. +$ /sales/inquiry/sales_deliveries_view.php + /sales/inquiry/sales_orders_view.php ++ Added searchbox class selector for text inputs with onchange event handlers. +! Added text selection after focus. +$ /js/inserts.js + /js/utils.js ++ Added submit_on_change option to ref input functions, fixed data picker +$ /includes/ui/ui_input.inc +# Fixed bug in non-js mode for combos type 0 (stock_items_lists). +$ /includes/ui/ui_lists.inc + +15-Jun-2008 Joe Hunt +# Changed so Invoice Template gets the current day instead of original day. +$ /sales/sales_order_entry.php + +15-Jun-2008 Joe Hunt +# Bug in tax_types_list (spec_id) +$ /includes/ui/ui_lists.inc + +14-Jun-2008 Joe Hunt +# Minor annoying layout bug in stock movements. +$ /inventory/inquiry/stock_movements.php + +14-Jun-2008 Joe Hunt +! The Customer Branch Sales Account now overrides the Item Sales Accounts if a Sales Account is here. + Can now be set to 'Use Item Sales Accounts', which is the first choice in list and default. +! If setting the Customer Branch AR Account to a Bank Account (and hereby also Cash Account) the + transactions from Direct Invoice and Credit Note will be allocated immediately when placing. +$ /includes/ui/ui_lists.inc + /sales/includes/db/sales_invoice_db.inc + /sales/includes/db/sales_credit_db.inc + /sales/manage/customer_branches.php + . +12-Jun-2008 Joe Hunt ++ New inventory sales report. Shows total sales - costs - contribution per category, location, detailed/summary and period. +$ /reporting/reports_main.php + /reporting/rep304.php (new file) + +---------------------------------------Release Candidate 1------------------------------- +10-Jun-2008 Janusz Dobrowolski +# Some more fixes related to ajax combos usage +$ /includes/ui/ui_lists.inc + /inventory/cost_update.php + /inventory/prices.php + /inventory/purchasing_data.php + /inventory/reorder_level.php + /inventory/includes/item_adjustments_ui.inc + /inventory/inquiry/stock_status.php + /manufacturing/inquiry/where_used_inquiry.php + /manufacturing/manage/bom_edit.php + /purchasing/includes/ui/po_ui.inc +# Fixed focus issues +$ /gl/gl_journal.php + /gl/gl_deposit.php + /gl/gl_payment.php + /js/inserts.js + +09-Jun-2008 Janusz Dobrowolski +# Some additional fixes related to last big committment +$ /gl/gl_journal.php + /gl/gl_deposit.php + /gl/gl_payment.php + /includes/ajax.inc + /includes/reserved.inc + /includes/ui/ui_lists.inc + /includes/ui/ui_view.inc + /js/inserts.js + /js/utils.js + /sales/includes/ui/sales_order_ui.inc + /themes/default/default.css + /themes/aqua/default.css + /themes/cool/default.css + +08-Jun-2008 Joe Hunt +! Preparing for release candidate 1 +$ config.php + +08-Jun-2008 Joe Hunt +! Set 'max_execution_time' to 60 seconds by ini_set. +$ /install/save.php + +07-Jun-2008 Joe Hunt +# Fixed a layout bug in footer.inc +$ /includes/page/footer.inc + +07-Jun-2008 Joe Hunt +! Changed install.html and update.html +$ install.html + update.html ++ New files, change_current_user_password.php and alter2.sql +$ /admin/change_current_user_password.php + /sql/alter2.sql +! Changed some files for layout +$ /lang/en_US/stylesheet.css + /themes/aqua/default.css + /themes/aqua/renderer.php + /themes/cool/default.css + /themes/cool/renderer.php + /themes/default/default.css + /themes/default/renderer.php +! Changed install sql scripts +$ /sql/en_US-demo.sql + /sql/en_US-new.sql + +07-Jun-2008 Janusz Dobrowolski ++ Added ajax functionality and ui hints to sales form entry pages. +$ /sales/sales_order_entry.php + /sales/includes/ui/sales_order_ui.inc ++ Added option for hints display, changed input/lists functions API +$ /admin/display_prefs.php + /admin/db/users_db.inc + /includes/current_user.inc + /includes/prefs/userprefs.inc + /includes/ui/ui_input.inc + /themes/default/renderer.php + /sql/alter.sql ++ List functions rewrite. Added ajax functionality, universal combo_input(). +$ /includes/ui/ui_lists.inc ++ Ajaxified exchange_rate_display() +$ /includes/ui/ui_view.inc ++ Added methods for setting focus and page reload to $Ajax class +$ /includes/ajax.inc + /includes/main.inc ++ Added comma separated css element selectors +$ /js/behaviour.js +! Searchable select js changes related to new ui_lists.inc changes +$ /js/inserts.js + /js/utils.js ++ Additional style definitions for various ajax controls +$ /themes/default/default.css +! Fixes related to changed input/lists API and ajax extensions +$ /admin/company_preferences.php + /admin/fiscalyears.php + /admin/forms_setup.php + /admin/gl_setup.php + /dimensions/dimension_entry.php + /dimensions/inquiry/search_dimensions.php + /gl/bank_transfer.php + /gl/includes/ui/gl_deposit_ui.inc + /gl/includes/ui/gl_journal_ui.inc + /gl/includes/ui/gl_payment_ui.inc + /gl/inquiry/bank_inquiry.php + /gl/inquiry/gl_account_inquiry.php + /gl/inquiry/gl_trial_balance.php + /gl/manage/gl_account_types.php + /gl/manage/gl_accounts.php + /includes/ui/ui_controls.inc + /inventory/includes/item_adjustments_ui.inc + /inventory/includes/stock_transfers_ui.inc + /inventory/inquiry/stock_movements.php + /manufacturing/search_work_orders.php + /manufacturing/work_order_add_finished.php + /manufacturing/work_order_entry.php + /manufacturing/includes/work_order_issue_ui.inc + /manufacturing/manage/bom_edit.php + /purchasing/supplier_payment.php + /purchasing/includes/ui/grn_ui.inc + /purchasing/includes/ui/invoice_ui.inc + /purchasing/includes/ui/po_ui.inc + /purchasing/inquiry/po_search.php + /purchasing/inquiry/po_search_completed.php + /purchasing/inquiry/supplier_allocation_inquiry.php + /purchasing/inquiry/supplier_inquiry.php + /sales/customer_credit_invoice.php + /sales/customer_delivery.php + /sales/customer_invoice.php + /sales/includes/ui/sales_credit_ui.inc + /sales/inquiry/customer_allocation_inquiry.php + /sales/inquiry/customer_inquiry.php + /sales/inquiry/sales_deliveries_view.php + /sales/inquiry/sales_orders_view.php + /taxes/tax_groups.php + +06-Jun-2008 Joe Hunt +# Final fixes in html layout +$ /admin/create_coy.php + /gl/gl_deposit.php + /gl/gl_payment.php + /gl/manage/exchange_rates.php + /inventory/prices.php + /inventory/purchasing_date.php + /inventory/reorder_level.php + /inventory/inquiry/stock_status.php + /manufacturing/inquiry/where_used_inquiry.php + /manufacturing/manage/bom_edit.php + +05-Jun-2008 Joe Hunt +! Made an improment to the date picker. Shows the week number as well. Many delivery systems are week number based. +$ /includes/ui/ui_view.inc +# Fixed a html layout bug +$ /includes/page/header.inc + +31-May-2008 Joe Hunt +# A lot of annoying layout bugs taken. Mostly from views and inquiries. A couple of files are critical, ui_view and ui_lists! +$ /gl/view/gl_deposit_view.php + /gl/view/gl_payment_view.php + /includes/ui/ui_controls.inc + /includes/ui/ui_lists.inc + /includes/ui/ui_view.inc + /manufacturing/work_order_add_finished.php + /manufacturing/includes/manufacturing_ui.inc + /manufacturing/view/work_order_view.php + /manufacturing/view/wo_issue_view.php + /sales/inquiry/customer_allocation_inquiry.php + /sales/inquiry/customer_inquiry.php + +30-May-2008 Joe Hunt +# Fixed bug in 2 files regarding stock movements. Moved from Invoice to Delivery. +$ /inventory/inquiry/stock_movements.php + /reporting/rep302.php + +28-May-2008 Joe Hunt +# More bugs related to debtor_trans changes (positive amounts) +$ /gl/includes/db/gl_db_banking.inc + /sales/allocations/customer_allocate.php + /sales/includes/db/custalloc_db.inc + /sales/inquiry/customer_allocation_inquiry.php + +27-May-2008 Joe Hunt +# Changed more files with new html/css. +$ /includes/page/header.inc + /purchasing/inquiry/supplier_allocation_inquiry.php + /sales/credit_note_entry.php + +26-May-2008 Joe Hunt +# Fixed many minor bugs, new ones as well as debtor_trans related. +! Changed to use DOCTYPE html 4.01 transitionel. Some files/css needed change. +$ /admin/backups.php + /admin/create_coy.php + /admin/inst_lang.php + /admin/inst_module.php + /gl/manage/exchange_rates.php + /includes/session.inc + /includes/page/header.inc + /includes/ui/ui_controls.inc + /includes/ui/ui_input.inc + /includes/ui/ui_lists.inc + /includes/ui/ui_view.inc + /purchasing/allocations/supplier_allocate.php + /sales/allocations/customer_allocate.php + /sales/includes/db/sales_credit_db.inc + /sales/inquiry/customer_allocation_inquiry.php + /themes/aqua/default.css + /themes/cool/default.css + /themes/default/default.css + +23-May-2008 Joe Hunt +# Minor bug in dimensions.php (Outstanding Dimensions) +$ /applications/dimensions.php + /dimensions/inquiry/search_dimensions.php + +23-May-2008 Janusz Dobrowolski +! Include file order / error handling order fixed once again. +$ /includes/main.inc + /includes/session.inc + +23-May-2008 Joe Hunt +! Moved menu-system from header.inc/footer.inc to renderer.php for relevant theme. Fixed frontaccounting.php to get the + correct renderer.php. +$ frontaccounting.php + /includes/page/header.inc + /includes/page/footer.inc + /themes/default/renderer.php + /themes/cool/renderer.php + /themes/aqua/renderer.php + +22-May-2008 Janusz Dobrowolski +! Error handler switching moved to session.inc for early error catching +$ /includes/main.inc + /includes/session.inc +! Cosmetic cleanup + /js/utils.js + +18-May-2008 Janusz Dobrowolski +# Added explicit ob_end_flush() on shutdown needed for php5 +$ /includes/main.inc +# Fixed for www servers on nonstandard listening ports. +$ /js/JsHttpRequest.js + +18-May-2008 Joe Hunt +# Bug when inserting new records in debtor_trans. +$ /sales/includes/db/cust_trans_db.inc + +16-May-2008 Janusz Dobrowolski ++ Rewritten errors/messages handling, unified for ajax/user/php errors +$ /includes/errors.inc + /includes/main.inc + /includes/ui/ui_msgs.inc ++ Framework extended for ajax functionality, javascript code organization improvements. +$ /config.php + /includes/JsHttpRequest.php (new file) + /includes/ajax.inc (new file) + /includes/current_user.inc + /includes/session.inc + /includes/lang/language.php + /includes/page/footer.inc + /includes/page/header.inc + /includes/ui/ui_controls.inc + /includes/ui/ui_input.inc + /includes/ui/ui_view.inc + /js/JsHttpRequest.js (new file) + /js/allocate.js (new file) + /js/utils.js (new file) + /js/behaviour.js + /js/inserts.js + /themes/aqua/images (new dir) + /themes/aqua/images/button_ok.png (new file) + /themes/aqua/images/locate.png (new file) + /themes/cool/images (new dir) + /themes/coll/images/button_ok.png (new file) + /themes/coll/images/locate.png (new file) + /themes/default/images/button_ok.png (new file) + /themes/default/images/progressbar.gif (new file) + /themes/default/images/progressbar1.gif (new file) + /themes/default/images/progressbar2.gif (new file) + /themes/default/default.css + /themes/aqua/default.css + /themes/cool/default.css +! Payment allocation js functions moved to allocate.js +$ /purchasing/allocations/supplier_allocate.php + /sales/allocations/customer_allocate.php +! Some initializations moved from sales_order_ui.inc +$ /sales/includes/cart_class.inc ++ Added javascript compression routine +$ /includes/main.inc + +14-May-2008 Joe Hunt +# Minor bugs in the former fixing. +$ /includes/ui/ui_lists.inc + +14-May-2008 Joe Hunt +# When no_item_list or no_customer_list or no_supplier_list was checked in company setup the listboxes were filled with all + the records when there were no search values. +$ /includes/ui/ui_lists.inc + +09-May-2008 Joe Hunt +! Due to differences in Javascript the script update_db.php had to be changed. +! New fields, base_sales in 0_company and factor in 0_sales_types affects the default chart of accounts. +$ /update_db.php + /sql/en_US-new.sql + /sql/en_US-demo.sql + +09-May-2008 Janusz Dobrowolski +# Automatic calculation of not set item prices from home currency and base sales type settings. +$ /admin/company_preferences.php + /admin/db/company_db.inc + /includes/ui/ui_lists.inc + /sales/includes/cart_class.inc + /sales/includes/sales_db.inc + /sales/includes/db/sales_order_db.inc + /sales/includes/db/sales_types_db.inc + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + /sales/manage/sales_types.php + /sql/alter.sql +# Fixed dev bug blocking change of price on order entry. +$ /sales/includes/ui/sales_order_ui.inc +# Small display fix +$ /sales/manage/sales_people.php + +30-Apr-2008 Joe Hunt +# Fixed price update also in purchase order +$ /purchasing/includes/ui/po_ui.inc + +30-Apr-2008 Janusz Dobrowolski +# Fixed price update when changing item in sales order. +$ /includes/ui/ui_lists.inc + /js/inserts.js + /sales/includes/ui/sales_order_ui.inc + +24-Apr-2008 Janusz Dobrowolski ++ Added new per company directory for customized versions of report definition files repXXX.php, checked before using system default file. +$ /company/0/reporting (added new directory) + /company/0/reporting/index.php + /admin/create_coy.php + /reporting/includes/reports_classes.inc +# Warnings turned off in case of charset not supported by htmlspecialchars(). +$ /includes/db/connect_db.inc +# Added content type encoding header +$ /includes/page/header.inc + +24-Apr-2008 Joe Hunt +# Wrong include file path in /includes/ui/items_cart.inc changed /inventory/includes/prefs/sysprefs.inc to + /includes/prefs/sysprefs.inc +$ /includes/ui/items_cart.inc +# Wrong include file in /reporting/includes/pdf_report.inc. Changed header2a.inc to header2.inc +$ /reporting/includes/pdf_report.inc + +23-Apr-2008 Joe Hunt +! Removed the content of function header2 in pdf_report.inc to a separate file, header2.inc. + It will make it easier to design your own document layouts. +$ /reporting/includes/pdf_report.inc + /reporting/includes/header2.inc (new file) + +20-Apr-2008 Janusz Dobrowolski +# Checking uniqueness of company settings, fixed creating database with prefix 0 when none was selected. +$ /admin/create_coy.php +! Added missing include_once directives. +$ /includes/ui/items_cart.inc + /includes/ui/ui_lists.inc + /includes/ui/ui_view.inc ++ Added ini default_charset unnecessary for planned ajax calls. +$ /includes/lang/language.inc + +19-Apr.2008 Joe Hunt +# Bug (right to left text was done if price decimals were 3). A test sentense from a while + ago wasn't removed. +$ /reporting/includes/pdf_report.inc + +18-Apr-2008 Janusz Dobrowolski +# Additional checks on provisions and break point entry. +$ /sales/manage/sales_people.php +! Modules purchasing, sales and taxes sealed against XSS attacks +$ /install/save.php + /admin/db/maintenance_db.inc + /purchasing/includes/db/grn_db.inc + /purchasing/includes/db/invoice_items_db.inc + /purchasing/includes/db/po_db.inc + /purchasing/includes/db/supp_trans_db.inc + /purchasing/manage/suppliers.php + /sales/includes/db/credit_status_db.inc + /sales/includes/db/cust_trans_db.inc + /sales/includes/db/cust_trans_details_db.inc + /sales/includes/db/sales_order_db.inc + /sales/includes/db/sales_types_db.inc + /sales/manage/customer_branches.php + /sales/manage/customers.php + /sales/manage/sales_areas.php + /sales/manage/sales_people.php + /taxes/db/item_tax_types_db.inc + /taxes/db/tax_groups_db.inc + /taxes/db/tax_types_db.inc + +18-Apr-2008 Joe Hunt +! Module gl sealed against XSS Attacks +$ /gl/includes/db/gl_db_accounts.inc + /gl/includes/db/gl_db_account_types.inc + /gl/includes/db/gl_db_bank_accounts.inc + /gl/includes/db/gl_db_bank_trans.inc + /gl/includes/db/gl_db_bank_trans_types.inc + /gl/includes/db/gl_db_currencies.inc + /gl/includes/db/gl_db_trans.inc + +18-Apr-2008 Janusz Dobrowolski +! Modules admin and dimensions sealed against XSS attacks +$ /admin/payment_terms.php + /admin/shipping_companies.php + /admin/db/company_db.inc + /admin/db/maintenance_db.inc + /admin/db/users_db.inc + /admin/db/voiding_db.inc + /dimensions/includes/dimensions_db.inc + +18-Apr-2008 Joe Hunt +! Modules includes, inventory and manufacturing sealed against XSS attacks +$ /includes/db/comments_db.inc + /includes/db/inventory_db.inc + /includes/db/references_db.inc + /inventory/includes/db/items_category_db.inc + /inventory/includes/db/items_db.inc + /inventory/includes/db/items_locations_db.inc + /inventory/includes/db/items_units_db.inc + /inventory/includes/db/movement_types_db.inc + /manufacturing/includes/db/work_centres_db.inc + /manufacturing/includes/db/work_orders_db.inc + /manufacturing/includes/db/work_orders_quick_db.inc + /manufacturing/includes/db/work_order_issues_db.inc + /manufacturing/includes/db/work_order_produce_items_db.inc + +18-Apr-2008 Janusz Dobrowolski +! Changed db_escape function to avoid XSS attacks via js db injection +$ /includes/db/connect_db.inc +# Database inserts/updates secured against js injection +$ /admin/db/maintenance_db.inc + /gl/includes/db/gl_db_accounts.inc + /purchasing/includes/db/po_db.inc + /sales/sales_order_entry.php + /sales/includes/db/sales_order_db.inc + +16-Apr-2008 Joe Hunt +# Bug in /includes/ui/ui_lists.inc:914. Sql clause was cut. +$ /includes/ui/ui_lists.inc + +09-Apr-2008 Janusz Dobrowolski +# Fixed number formatting bug in standard cost update. +$ /inventory/cost_update.php + +-------------------- 2,0 Beta - released ---------------------------- + +06-Apr-2008 Joe Hunt +! Changed install.html and update.html to fit the new unstable release 2.0 +! Changed demo sql script to fit the 2.0 unstable. +$ install.html + update.html + /sql/en_US-demo.sql + +06-Apr-2008 Janusz Dobrowolski +# Sales invoice edition denied for documents created in FA 1.xx because of nonportable differences in gl posting/db schema. + /sales/customer_invoice.php +# Fixed typo causing error while adding new tax type. + /taxes/tax_types.php + +05-Apr-2008 Joe Hunt +# Fixed a bug when creating subfolder for new companies. Should be company id and not the table pref counter. +$ /admin/create_coy.php + +05-Apr-2008 Joe Hunt +# Removed annoying warnings in several reports. +$ config.php + /reporting/rep102.php + /reporting/rep104.php + /reporting/rep201.php + /reporting/rep203.php + /reporting/rep705.php + /reporting/rep706.php + /reporting/rep707.php + /reporting/rep709.php + /reporting/reports_main.php + /reporting/includes/pdf_report.inc + +04-Apr-2008 Janusz Dobrowolski +# Javascript bugfix in selecting orders for template. +$ /sales/inquiry/sales_orders_view.php + +04-Apr-2008 Joe Hunt +! Updated chart of accounts for release 2.0 unstable. Set the status to 2.0 Beta in config.php. Minor changes in update.html ++ Preparing for download of release 2.0b on SourceForge. +$ config.php + update.html + /sql/en_US-new.sql + /sql/en_US-demo.sql + +02-Apr-2008 Janusz Dobrowolski +# Removed selector expansion on space key for multi-line selectors +$ /js/inserts.js +! Hiding search button in combo selectors for javascript enabled browsers +$ /includes/ui/ui_lists.inc + /js/inserts.js ++ Focus set to invalid form field after submit check fail +$ /admin/company_preferences.php + /admin/fiscalyears.php + /admin/gl_setup.php + /admin/payment_terms.php + /admin/shipping_companies.php + /admin/users.php + /admin/void_transaction.php + /dimensions/dimension_entry.php + /gl/bank_transfer.php + /gl/gl_deposit.php + /gl/gl_journal.php + /gl/gl_payment.php + /gl/manage/bank_accounts.php + /gl/manage/bank_trans_types.php + /gl/manage/currencies.php + /gl/manage/exchange_rates.php + /gl/manage/gl_account_classes.php + /gl/manage/gl_account_types.php + /gl/manage/gl_accounts.php + /inventory/adjustments.php + /inventory/cost_update.php + /inventory/prices.php + /inventory/purchasing_data.php + /inventory/transfers.php + /inventory/manage/item_categories.php + /inventory/manage/item_units.php + /inventory/manage/items.php + /inventory/manage/locations.php + /inventory/manage/movement_types.php + /manufacturing/work_order_add_finished.php + /manufacturing/work_order_entry.php + /manufacturing/work_order_issue.php + /manufacturing/work_order_release.php + /manufacturing/manage/bom_edit.php + /manufacturing/manage/work_centres.php + /purchasing/po_entry_items.php + /purchasing/po_receive_items.php + /purchasing/supplier_credit.php + /purchasing/supplier_credit_grns.php + /purchasing/supplier_invoice.php + /purchasing/supplier_invoice_grns.php + /purchasing/supplier_payment.php + /purchasing/supplier_trans_gl.php + /purchasing/allocations/supplier_allocate.php + /purchasing/manage/suppliers.php + /sales/credit_note_entry.php + /sales/customer_credit_invoice.php + /sales/customer_delivery.php + /sales/customer_invoice.php + /sales/customer_payments.php + /sales/sales_order_entry.php + /sales/allocations/customer_allocate.php + /taxes/item_tax_types.php + /taxes/tax_groups.php + /taxes/tax_types.php +# Set default focus in update_db.php +$ /admin/backups.php + +29-Mar-2008 Janusz Dobrowolski +# Changed gl_all_accounts_list() API +$ /includes/ui/ui_lists.inc ++ Enhanced list accessability in kbd usage via space key +$ js/inserts.js + +28-Mar-2008 Janusz Dobrowolski +# Fixed headers for various display mode +$ /sales/inquiry/sales_orders_view.php + +28-Mar-2008 Joe Hunt ++ Added print document options in inquiries. +$ /sales/inquiry/customer_inquiry.php + /sales/inquiry/sales_orders_view.php + /sales/inquiry/sales_deliveries_view.php + /purchasing/inquiry/po_search.php + /purchasing/inquiry/po_search_completed.php + +28-Mar-2008 Joe Hunt +# Fixed a minor bug in customers_db.inc (should include type == 2 - Bank Deposits) +$ /sales/includes/db/customers_db.inc +# Fixed a PHP vers. 5.xx bug. No need for & operator in function calls, only in declaration. Gives a warning. +$ /sales/includes/db/sales_credit_db.inc +# Fixed a wrong variabel declaration doc_Document_no to doc_Invoice_no +$ /reporting/includes/doctext.inc + /reporting/includes/doctext2.inc +# Fixed so Customer Balances and Aged Customer Analysis reports presents correct sign. +$ /reporting/rep101.php + /reporting/rep102.php + +28-Mar-2008 Janusz Dobrowolski +# Layout/focus fixes for no_[customer/supplier/item]_list option on +$ /includes/ui/ui_lists.inc + /purchasing/includes/ui/po_ui.inc + /sales/credit_note_entry.php + /sales/sales_order_entry.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + +27-Mar-2008 Janusz Dobrowolski ++ Automatic first field focus on page start, focus order preserved between form updates +$ /gl/inquiry/gl_account_inquiry.php + /includes/page/footer.inc + /includes/ui/ui_controls.inc + /includes/ui/ui_input.inc + /includes/ui/ui_lists.inc + /includes/ui/ui_view.inc + /js/inserts.js + /sales/sales_order_entry.php + /sales/credit_note_entry.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc ++ Data picker omitted in keyboard tabbing sequence (FF,IE, not old mozilla) +$ /includes/ui/ui_input.inc +! Javascript recalcAccount() superseded by class='combo' behaviour binding +$ /gl/gl_deposit.php + /gl/gl_journal.php + /gl/gl_payment.php + /gl/includes/ui/gl_deposit_ui.inc + /gl/includes/ui/gl_journal_ui.inc + /gl/includes/ui/gl_payment_ui.inc + /includes/ui/ui_view.inc + /purchasing/po_entry_items.php + /purchasing/includes/ui/po_ui.inc + /sales/sales_order_entry.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + /js/inserts.js +! get_js_set_focus moved from ui_view (this is only standalone form). + /update_db.php +# Fixed debit/credit entry check +$ /gl/gl_journal.php +# Restored GET/POST security check on path_to_root +$ /config.php + +26-Mar-2008 Janusz Dobrowolski +# Bug fixes in purchase module related to tax structure changes. +$ /purchasing/includes/supp_trans_class.inc + /purchasing/includes/db/invoice_db.inc + /purchasing/includes/db/invoice_items_db.inc + /purchasing/includes/ui/invoice_ui.inc + /reporting/rep105.php + +25-Mar-2008 Janusz Dobrowolski +! Per company pdf, backup and graphics directories in 'company' dir. +$ /company (new dir) + /company/0 (new dir) + /company/0/images/ (new dir) + /company/0/images/102.jpg (moved from inventory/manage/image) + /company/0/images/103.jpg (moved from inventory/manage/image) + /company/0/images/104.jpg (moved from inventory/manage/image) + /company/0/images/logo_frontaccounting.jpg (moved from themes/default/images) + /company/0/images/logo_frontaccounting.png (moved from themes/default/images) + /admin/backups.php + /admin/create_coy.php + /admin/db/maintenance_db.inc + /install/index.php + /reporting/rep102.php + /reporting/rep104.php + /reporting/rep202.php + /reporting/rep303.php + /reporting/rep706.php + /reporting/rep707.php + /reporting/includes/pdf_report.inc + /inventory/manage/items.php + ++ jscript component caching (enables browser caching and future compression) +$ /includes/session.inc + /includes/main.inc + /includes/page/header.inc + /includes/ui/ui_view.inc + /admin/display_prefs.php + /config.php + +- Removed obsolete file +$ /sales/includes/ui/print_invoice.inc + 21-Mar-2008 Janusz Dobrowolski - # Added missing no_*_list fields in initial sql files +! Total Allocation/Left to Allocate update without page submit. +$ /includes/ui/ui_view.inc + /purchasing/allocations/supplier_allocate.php + /sales/allocations/customer_allocate.php +# Fixed unvisable under IE editbutton +$ /themes/aqua/default.css + /themes/cool/default.css + /themes/default/default.css +20-Mar-2008 Janusz Dobrowolski +# Excluding delivery notes from Customer Balances, removed warnings. +$ /reporting/rep101.php +# Divide by zero fix on order_price==0 in new supplier invoice +$ /purchasing/supplier_invoice_grns.php +# Database bug fix in new customer entry +$ /sales/manage/customers.php +# Small bug fix (warnings) in is_date() function. +$ /includes/date_functions.inc + +18-Mar-2008 Janusz Dobrowolski +# Line items editor uses POST method - no disappearing shippment info. +$ /sales/credit_note_entry.php + /sales/sales_order_entry.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc ++ Added edit_button_cell() function +$ /includes/ui/ui_controls.inc ++ Helper function for finding indexed submit $_POST vars. +$ /includes/ui/ui_input.inc ++ New class .editbutton for buttons. Default view is link alike. +$ /themes/aqua/default.css + /themes/cool/default.css + /themes/default/default.css + +17-Mar-2008 Janusz Dobrowolski +# Added rounding when needed to avoid document non cosistent documents. +$ /includes/banking.inc + /purchasing/supplier_credit_grns.php + /purchasing/supplier_invoice_grns.php + /purchasing/includes/supp_trans_class.inc + /purchasing/includes/ui/invoice_ui.inc + /purchasing/includes/ui/po_ui.inc + /reporting/rep107.php + /reporting/rep109.php + /reporting/rep110.php + /reporting/rep209.php + /sales/includes/cart_class.inc + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + /sales/view/view_credit.php + /sales/view/view_dispatch.php + /sales/view/view_invoice.php + /sales/view/view_sales_order.php + /taxes/tax_calc.inc +# Sign bug for customer transactions +$ /reporting/rep709.php +# Include file conflict fix +$ /purchasing/includes/ui/invoice_ui.inc + /gl/manage/bank_accounts.php + /manufacturing/inquiry/where_used_inquiry.php + /purchasing/manage/suppliers.php + +16-Mar-2008 Janusz Dobrowolski ++ Added javascript add-on for unobtrusive apply javascript handlers to html elements. +$ /js/behaviour.js + /js/inserts.js ++ Added javascript source collecting functions +$ /includes/main.inc +! Moved check_page_security(); for safe start in case of broken wa_current_user var. ++ Added global js code collecting arrays $js_lib, $js_static +$ /includes/session.inc +! Changed get_js_user num to add_js_user_num; extended for percent/qty/price formatting +$ /includes/ui/ui_view.inc ++ Added including javascript source colections from $js_lib, $js_static; conditional display for ajax calls +$ /includes/page/footer.inc + /includes/page/header.inc +! Added including of data_checks.inc +$ /includes/ui.inc ++ User side percent/exrate/qty/price input formatting via onblur handler. +$ /admin/gl_setup.php + /gl/gl_budget.php + /gl/manage/exchange_rates.php + /includes/ui/ui_input.inc + /inventory/purchasing_data.php + /inventory/reorder_level.php + /inventory/includes/item_adjustments_ui.inc + /inventory/includes/stock_transfers_ui.inc + /manufacturing/work_order_entry.php + /manufacturing/manage/bom_edit.php + /purchasing/po_entry_items.php + /purchasing/po_receive_items.php + /purchasing/supplier_credit.php + /purchasing/supplier_credit_grns.php + /purchasing/supplier_invoice_grns.php + /purchasing/supplier_trans_gl.php + /purchasing/allocations/supplier_allocate.php + /purchasing/includes/ui/po_ui.inc + /sales/customer_delivery.php + /sales/customer_invoice.php + /sales/allocations/customer_allocate.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + /taxes/tax_groups.php + /taxes/tax_types.php + +14-Mar-2008 Janusz Dobrowolski + + All forms fixed to accept user native numeric format. + $ /admin/gl_setup.php + /gl/bank_transfer.php + /gl/gl_budget.php + /gl/gl_deposit.php + /gl/gl_journal.php + /gl/gl_payment.php + /gl/includes/db/gl_db_banking.inc + /gl/includes/ui/gl_deposit_ui.inc + /gl/includes/ui/gl_journal_ui.inc + /gl/includes/ui/gl_payment_ui.inc + /gl/manage/exchange_rates.php + /inventory/adjustments.php + /inventory/cost_update.php + /inventory/prices.php + /inventory/purchasing_data.php + /inventory/reorder_level.php + /inventory/transfers.php + /inventory/includes/item_adjustments_ui.inc + /inventory/includes/stock_transfers_ui.inc + /inventory/manage/item_units.php + /manufacturing/work_order_entry.php + /manufacturing/inquiry/where_used_inquiry.php + /manufacturing/manage/bom_edit.php + /purchasing/po_entry_items.php + /purchasing/po_receive_items.php + /purchasing/supplier_credit_grns.php + /purchasing/supplier_invoice_grns.php + /purchasing/supplier_payment.php + /purchasing/supplier_trans_gl.php + /purchasing/allocations/supplier_allocate.php + /purchasing/includes/ui/po_ui.inc + /purchasing/inquiry/po_search.php + /sales/credit_note_entry.php + /sales/customer_credit_invoice.php + /sales/customer_delivery.php + /sales/customer_invoice.php + /sales/customer_payments.php + /sales/sales_order_entry.php + /sales/allocations/customer_allocate.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + /sales/manage/customers.php + /sales/manage/sales_people.php + /sales/view/view_credit.php + /sales/view/view_dispatch.php + /sales/view/view_invoice.php + /sales/view/view_receipt.php + /sales/view/view_sales_order.php + /taxes/item_tax_types.php + /taxes/tax_groups.php + /taxes/tax_types.php + + User format functions for percent/price/exrate amounts display. + $ /includes/current_user.inc + + Input checking functions for numeric input fields in user native format + $ /includes/data_checks.inc + + Numeric input fields in user native format + $ /includes/ui/ui_input.inc + + Javascript function for conversion to/from user native numeric format. + $ /includes/ui/ui_view.inc + + New class amount for numeric input + $ /themes/aqua/default.css + /themes/cool/default.css + /themes/default/default.css + # Removed warning on adding component + /manufacturing/manage/bom_edit.php + # Quantity display correction + /manufacturing/inquiry/where_used_inquiry.php + # Fixed add_customer_trans() call + /gl/includes/db/gl_db_banking.inc + +12-Mar-2008 Joe Hung + + Added update of Units of Measure and converting of deptor_trans records from release 1.XX + - Removed default insertion of Units of Measure. Not neccessary. + $ /sql/alter.sql + /admin/db/maintenance_db.inc (added support for update) + +11-Mar-2008 Janusz Dobrowolski + + Table of measure moved into new table item_units + ! Removed $themes[] from config.php, theme list based on directory structure + $ /config.php + /includes/ui/ui_lists.inc + /applications/inventory.php + /inventory/includes/inventory_db.inc + /inventory/includes/db/items_units_db.inc + /inventory/manage/item_units.php + /inventory/manage/items.php + /sql/alter.sql + +11-Mar-2008 Joe Hunt + # Small fix for alignment of date and due date label fields in customer_invoice.php and customer_delivery.php + $ /sales/customer_invoice.php + /sales/customer_delivery.php + +10-Mar-2008 Joe Hunt + # Small fix for Template Invoice in sales_order_entry.php on line 363 (duedate for Invoice). + $ /sales/sales_order_entry.php + +10-Mar-2008 Janusz Dobrowolski + + Added price list selector to sales entry (debtor_master gives only default one) + + Added optional submit_on_change parameter to sales ui lists + $ /includes/ui/ui_lists.inc + /sales/sales_order_entry.php + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + # Additional PHP5 fixes, do_clone superseded by local ? : constructs + $ /sales/includes/cart_class.inc + /includes/ui/ui_view.inc + /sales/includes/sales_db.inc + # Fixed bogus sales_type lists in edition mode + $ /sales/customer_delivery.php + /sales/customer_invoice.php + # Smaller fixes, cart_class.sales_type name change + $ /sales/includes/ui/sales_credit_db.inc + /sales/credit_note_entry.php + /sales/customer_credit_invoice.php + /sales/includes/cart_class.inc + /sales/includes/db/sales_credit_db.inc + /sales/includes/db/sales_delivery_db.inc + /sales/includes/db/sales_invoice_db.inc + /sales/includes/db/sales_order_db.inc + /sales/includes/ui/sales_credit_ui.inc + # One another pmWiki name conflict removed + $ /admin/display_prefs.php + +09-Mar-2008 Joe Hunt + - Removed redundant form_types functions and the file /reporting/includes/form_types.inc. Removed table form_items + $ /dimensions/includes/dimensions_db.inc + /gl/includes/db/gl_db_banking.inc + /includes/main.inc + /inventory/includes/db/items_adjust_db.inc + /manufacturing/includes/db/work_order_issues_db.inc + /manufacturing/includes/db/work_order_produce_items_db.inc + /manufacturing/includes/db/work_orders_db.inc + /manufacturing/includes/db/work_orders_quick_db.inc + /purchasing/includes/db/grn_db.inc + /purchasing/includes/db/po_db.inc + /purchasing/includes/db/supp_payment_db.inc + /reporting/includes/form_types.inc (File removed) + /sales/includes/db/sales_delivery_db.inc + /sales/includes/db/sales_invoice_db.inc + /sales/includes/db/sales_order_db.inc + /sql/alter.sql + # Bug in calculating exchange rates in Reports Supplier Balances and Customer Balances + $ /reporting/rep101.php + /reporting/rep201.php + # clone replacement do_clone() for both PHP 4 and PHP 5. + $ /includes/ui/ui_view.inc (at the very bottom) + /sales/includes/cart_class.inc + 07-Mar-2008 Janusz Dobrowolski - # Fixed bug selecting allocated transactions as overdue - $ /sales/inquiry/customer_inquiry.php + ! Changed name tax type uniqueness constraint to (name, rate) + $ /includes/ui/ui_lists.inc + /taxes/items_tax_types.php + ! Tax included option moved from tax_group to sales_types table + $ includes/ui/ui_view.inc + /purchasing/includes/ui/invoice_ui.inc + /taxes/tax_calc.inc + /taxes/tax_groups.php + /taxes/db/tax_groups_db.inc + /sql/alter.sql + # Final rewriting of sales module, a lot of bugfixes. + + Template delivery/invoicing + + Concurrent document editing control on sql level + + Most of sales documents are now editable + + Some links to print documents after entry + ! Changed javascript helper function for customer allocations + $ /applications/customers.php + /includes/ui/ui_input.inc + /reporting/rep107.php + /reporting/rep109.php + /reporting/rep110.php + /sales/credit_note_entry.php + /sales/customer_credit_invoice.php + /sales/customer_delivery.php + /sales/customer_invoice.php + /sales/customer_payments.php + /sales/sales_order_entry.php + /sales/allocations/customer_allocate.php + /sales/allocations/customer_allocation_main.php + /sales/includes/cart_class.inc + /sales/includes/sales_db.inc + /sales/includes/sales_ui.inc + /sales/includes/db/cust_trans_db.inc + /sales/includes/db/cust_trans_details_db.inc + /sales/includes/db/custalloc_db.inc + /sales/includes/db/customers_db.inc + /sales/includes/db/payment_db.inc + /sales/includes/db/sales_credit_db.inc + /sales/includes/db/sales_delivery_db.inc + /sales/includes/db/sales_invoice_db.inc + /sales/includes/db/sales_order_db.inc + /sales/includes/db/sales_types_db.inc + /sales/includes/ui/print_invoice.inc + /sales/includes/ui/sales_credit_ui.inc + /sales/includes/ui/sales_order_ui.inc + /sales/inquiry/customer_allocation_inquiry.php + /sales/inquiry/customer_inquiry.php + /sales/inquiry/sales_deliveries_view.php + /sales/inquiry/sales_orders_view.php + /sales/manage/credit_status.php + /sales/manage/sales_types.php + /sales/view/view_credit.php + /sales/view/view_dispatch.php + /sales/view/view_invoice.php + /sales/view/view_receipt.php + /sales/view/view_sales_order.php +# Removed function name conflict with wiki help system + /includes/lang/language.php + +06-Mar-2008 Janusz Dobrowolski + + Wiki help links integration + $ /config.php + /includes/page/header.inc + /includes/lang/language.php + + Optional debuging with xdebug module + $ /index.php + /includes/db/connect_db.inc + ! Concurrent edition fix + $ /includes/systypes.inc + # Table header fix + $ /manufacturing/manage/bom_edit.php + # Menu layout fixes + $ /themes/aqua/renderer.php + /themes/cool/renderer.php + /themes/default/renderer.php + # Removed warning about nonexistent $_GET variable + $ /dimensions/inquiry/search_dimensions.php + # MySQL 3.xx CAST bug fix + $ /includes/db/manufacturing_db.inc + /manufacturing/includes/db/work_order_requirements_db.inc + /manufacturing/inquiry/where_used_inquiry.php + +04-Mar-2008 Joe Hunt + ! Changed so that average item material price is automatic updated whenever a PO Delivery is received. + Changed so that a Bill of Materiel, Parent's material price, is automatic updated from underlying items. + $ /inventory/cost_update.php + /purchasing/includes/db/grn_db.inc and + /manufacturing/manage/bom_edit.php. + /manufacturing/includes/db/work_orders_db.inc + /manufacturing/includes/db/work_orders_quick_db.inc + /manufacturing/work_order_entry.php + +21-Feb-2008 Joe Hunt + + Added Print for documents in /admin/view_print_transaction.php (according to our new routines). + $ /admin/view_print_transaction.php + /applications/setup.php + +17-Feb-2008 Joe Hunt + ! Minor change in menu and function in view_print_transaction.php + $ /admin/view_print_transaction.php + /application/setup.php + + Preparing for print of single documents + $ /reporting/includes/reporting.inc + ! Removing 'out' field in table tax_types + $ /sql/alter.sql + /taxes/tax_types.php + /taxes/db/tax_types_db.inc + + Added 2 functions in ui_input.inc, button and button_cell + /includes/ui/ui_input.inc + +11-Feb-2008 Joe Hunt + + Added file, update_db.php, for updating company databases from an SQL script. + $ update_db.php (New file) + update.html + +06-Fef-2008 Joe Hunt + + Added Report, Salesman Listing, rep106.php. + $ /reporting/reports_main.php + /reporting/rep106.php + +06-Feb-2008 Janusz Dobrowolski + + Separation of customer invoice issue and goods delivery. + + Batch invoicing for more than one delivery + # Corrected inadequate shipping tax calculations. + ! Default debugging status changed to off. + $ /taxes/tax_calc.inc + /taxes/db/tax_groups_db.inc + /admin/db/voiding_db.inc + /applications/customers.php + /includes/systypes.inc + /includes/types.inc + /includes/ui/ui_controls.inc + /includes/ui/ui_lists.inc + /includes/ui/ui_view.inc + /inventory/inquiry/stock_status.php + /reporting/rep105.php + /reporting/rep107.php + /reporting/rep109.php + /reporting/rep110.php + /reporting/rep209.php + /reporting/reports_main.php + /reporting/includes/doctext.inc + /reporting/includes/doctext2.inc + /reporting/includes/form_types.inc + /reporting/includes/pdf_report.inc + /reporting/includes/reports_classes.inc + /sales/customer_credit_invoice.php + /sales/customer_invoice.php + /sales/sales_order_entry.php + /sales/customer_delivery.php + /sales/includes/db/sales_delivery_db.inc + /sales/includes/ui/print_invoice.inc + /sales/includes/cart_class.inc + /sales/includes/sales_db.inc + /sales/includes/db/cust_trans_db.inc + /sales/includes/db/cust_trans_details_db.inc + /sales/includes/db/sales_credit_db.inc + /sales/includes/db/sales_invoice_db.inc + /sales/includes/db/sales_order_db.inc + /sales/includes/ui/sales_order_ui.inc + /sales/inquiry/customer_allocation_inquiry.php + /sales/inquiry/customer_inquiry.php + /sales/inquiry/sales_orders_view.php + /sales/inquiry/sales_deliveries_view.php + /sales/view/view_dispatch.php + /sales/view/view_invoice.php + /sales/view/view_sales_order.php + /sql/alter.sql + config.php + +01-Feb-2008 Joe Hunt + ! Changed so sales orders can have more than one row with the same stock_id. In alter.sql. + $ /sales/includes/cart_class.inc + /sales/includes/db/sales_credit_db.inc + /sales/includes/db/sales_invoice_db.inc + /sales/includes/db/sales_order_db.inc + /sales/includes/db/cust_trans_details_db.inc + /sales/includes/ui/sales_order_ui.inc + /sales/includes/ui/sales_credit_ui.inc + /sales/credit_note_entry.php + /sales/customer_credit_invoice.php + /sales/sales_order_entry.php + /sales/customer_invoice.php +31-Jan-2008 Joe Hunt + ! New Release 2.0 Pre Alpha + $ config.php + # Fixed a release 2 related bug in create_coy.php + $ /admin/create_coy.php + + An alter.sql file to use for updating databases. Until the update_db.php is ready, you can use the install/update companies + and select the companies one by one and upload the alter.sql file to all companies. You can still run the release 2 + with these databases changes without any new files. They are coming as soon as possible. + $ /sql/alter.sql (New file) + # Fixed a release 2 related bug. A field in supp_trans_items were declared as integer(11). Changed to VARCHAR(11) in alter.sql + and 2 related files + $ /purchasing/supplier_trans_gl.php + /purchasing/includes/db/invoice_items_db.inc + ! Moved variables $no_item_list, $no_customer_list and $no_supplier_list in config.php to company table + $ /includes/ui/ui_lists.inc + /purchasing/includes/ui/po_ui.inc + /sales/includes/ui/sales_order_ui.inc + /admin/company_preferences.php + /admin/db/company_db.inc + config.php + + Created 3 new fields in salesman table for provision, break point and provision2. Included in alter.sql. + Update sales_people.php.Preparing for a new Salesman report with provision etc. Selected with time range. Should be very good. + $ /sales/manage/sales_people.php + /includes/ui/ui_input.inc + +-------------------- 2,0 Pre Alpha - above ---------------------------- 31-Jan-2008 Janusz Dobrowolski # Minor bugfix in db_import() $ /admin/db/maintenance_db.inc diff --git a/access/login.php b/access/login.php index 7b47c633..0b961a97 100644 --- a/access/login.php +++ b/access/login.php @@ -40,7 +40,7 @@ function defaultCompany() - +




@@ -60,7 +60,9 @@ function defaultCompany() @@ -124,7 +131,7 @@ function display_trial_balance() } end_table(1); - + div_end(); } //---------------------------------------------------------------------------------------------------- diff --git a/gl/manage/bank_accounts.php b/gl/manage/bank_accounts.php index 4c8c6446..5081e3b5 100644 --- a/gl/manage/bank_accounts.php +++ b/gl/manage/bank_accounts.php @@ -7,18 +7,11 @@ include($path_to_root . "/includes/session.inc"); page(_("Bank Accounts")); include($path_to_root . "/includes/ui.inc"); -include($path_to_root . "/includes/data_checks.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif (isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} +simple_page_mode(); +//----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -29,16 +22,18 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error(_("The bank account name cannot be empty.")); + set_focus('bank_account_name'); } if ($input_error != 1) { - if (isset($selected_id)) + if ($selected_id != -1) { update_bank_account($selected_id, $_POST['account_type'], $_POST['bank_account_name'], $_POST['bank_name'], $_POST['bank_account_number'], $_POST['bank_address'], $_POST['BankAccountCurrency']); + display_notification(_('Bank account has been updated')); } else { @@ -46,13 +41,12 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) add_bank_account($_POST['account_code'], $_POST['account_type'], $_POST['bank_account_name'], $_POST['bank_name'], $_POST['bank_account_number'], $_POST['bank_address'], $_POST['BankAccountCurrency']); + display_notification(_('New bank account has been added')); } - - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } - } -elseif (isset($_GET['delete'])) +elseif( $Mode == 'Delete') { //the link to delete a selected record was clicked instead of the submit button @@ -71,8 +65,16 @@ elseif (isset($_GET['delete'])) if (!$cancel_delete) { delete_bank_account($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected bank account has been deleted')); } //end if Delete bank account + $Mode = 'RESET'; +} + +if ($Mode == 'RESET') +{ + $selected_id = -1; + $_POST['bank_name'] = $_POST['bank_account_name'] = ''; + $_POST['bank_account_number'] = $_POST['bank_address'] = ''; } /* Always show the list of accounts */ @@ -83,10 +85,11 @@ $result = db_query($sql,"could not get bank accounts"); check_db_error("The bank accounts set up could not be retreived", $sql); +start_form(); start_table("$table_style width='80%'"); $th = array(_("GL Account"), _("Bank"), _("Account Name"), - _("Type"), _("Number"), _("Currency"), _("Bank Address")); + _("Type"), _("Number"), _("Currency"), _("Bank Address"),'',''); table_header($th); $k = 0; @@ -102,26 +105,23 @@ while ($myrow = db_fetch($result)) label_cell($myrow["bank_account_number"], "nowrap"); label_cell($myrow["bank_curr_code"], "nowrap"); label_cell($myrow["bank_address"]); - edit_link_cell("selected_id=" . $myrow["account_code"]); - delete_link_cell("selected_id=" . $myrow["account_code"]. "&delete=1"); + edit_button_cell("Edit".$myrow["account_code"], _("Edit")); + edit_button_cell("Delete".$myrow["account_code"], _("Delete")); end_row(); } -//END WHILE LIST LOOP - end_table(); - -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Bank Account")); - +end_form(); +echo '
'; start_form(); -$is_editing = (isset($selected_id) && !isset($_GET['delete'])); +$is_editing = $selected_id != -1; start_table($table_style2); if ($is_editing) { - + if ($Mode == 'Edit') { $myrow = get_bank_account($selected_id); $_POST['account_code'] = $myrow["account_code"]; @@ -131,22 +131,24 @@ if ($is_editing) $_POST['bank_account_number'] = $myrow["bank_account_number"]; $_POST['bank_address'] = $myrow["bank_address"]; $_POST['BankAccountCurrency'] = $myrow["bank_curr_code"]; - + } hidden('selected_id', $selected_id); - hidden('account_code', $_POST['account_code']); + hidden('account_code'); hidden('BankAccountCurrency', $_POST['BankAccountCurrency']); label_row(_("Bank Account GL Code:"), $_POST['account_code']); + set_focus('account_type'); } else { gl_all_accounts_list_row(_("Bank Account GL Code:"), 'account_code', null, true); + set_focus('account_code'); } bank_account_types_list_row(_("Account Type:"), 'account_type', null); -text_row(_("Bank Name:"), 'bank_name', null, 50, 50); -text_row(_("Bank Account Name:"), 'bank_account_name', null, 50, 50); -text_row(_("Bank Account Number:"), 'bank_account_number', null, 30, 30); +text_row(_("Bank Name:"), 'bank_name', null, 50, 60); +text_row(_("Bank Account Name:"), 'bank_account_name', null, 50, 100); +text_row(_("Bank Account Number:"), 'bank_account_number', null, 30, 60); if ($is_editing) { @@ -158,11 +160,10 @@ else } textarea_row(_("Bank Address:"), 'bank_address', null, 40, 5); -//text_row(_("Bank Address:"), 'bank_address', null, 70, 70); end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/gl/manage/bank_trans_types.php b/gl/manage/bank_trans_types.php index bc9efacd..6c5b1dd7 100644 --- a/gl/manage/bank_trans_types.php +++ b/gl/manage/bank_trans_types.php @@ -11,19 +11,10 @@ include($path_to_root . "/gl/includes/gl_db.inc"); include($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} -else - $selected_id = -1; +simple_page_mode(); //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -33,6 +24,7 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error( _("The bank transaction type name cannot be empty.")); + set_focus('name'); } if ($input_error != 1) @@ -40,17 +32,15 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) if ($selected_id != -1) { - update_bank_trans_type($selected_id, $_POST['name']); - + display_notification(_('Selected bank account settings has been updated')); } else { - - add_bank_trans_type($_POST['name']); + add_bank_trans_type($_POST['name']); + display_notification(_('New bank account has been added')); } - - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -75,25 +65,30 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if( $Mode == 'Delete') { - if (can_delete($selected_id)) { delete_bank_trans_type($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected bank account has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + $_POST['name'] = ''; +} //----------------------------------------------------------------------------------- $result = get_all_bank_trans_type(); +start_form(); start_table($table_style); $th = array(_("Description"), "", ""); table_header($th); - $k = 0; while ($myrow = db_fetch($result)) { @@ -101,17 +96,16 @@ while ($myrow = db_fetch($result)) alt_table_row_color($k); label_cell($myrow["name"]); - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + + edit_button_cell("Edit".$myrow["id"], _("Edit")); + edit_button_cell("Delete".$myrow["id"], _("Delete")); end_row(); } - end_table(); - +end_form(); +echo '
'; //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Bank Transaction Type")); - start_form(); start_table($table_style2); @@ -119,19 +113,19 @@ start_table($table_style2); if ($selected_id != -1) { //editing an existing status code - - $myrow = get_bank_trans_type($selected_id); - - $_POST['name'] = $myrow["name"]; - + if ($Mode == 'Edit') { + $myrow = get_bank_trans_type($selected_id); + $_POST['name'] = $myrow["name"]; + } hidden('selected_id', $selected_id); } +set_focus('name'); text_row_ex(_("Description:"), 'name', 40); end_table(1); -submit_add_or_update_center($selected_id == -1); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/gl/manage/currencies.php b/gl/manage/currencies.php index 1cdd5421..eadbaf92 100644 --- a/gl/manage/currencies.php +++ b/gl/manage/currencies.php @@ -9,18 +9,8 @@ page(_("Currencies")); include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/includes/banking.inc"); -//--------------------------------------------------------------------------------------------- +simple_page_mode(false); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif (isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} -else - $selected_id = ""; //--------------------------------------------------------------------------------------------- function check_data() @@ -28,21 +18,25 @@ function check_data() if (strlen($_POST['Abbreviation']) == 0) { display_error( _("The currency abbreviation must be entered.")); + set_focus('Abbreviation'); return false; } elseif (strlen($_POST['CurrencyName']) == 0) { display_error( _("The currency name must be entered.")); + set_focus('CurrencyName'); return false; } elseif (strlen($_POST['Symbol']) == 0) { display_error( _("The currency symbol must be entered.")); + set_focus('Symbol'); return false; } elseif (strlen($_POST['hundreds_name']) == 0) { display_error( _("The hundredths name must be entered.")); + set_focus('hundreds_name'); return false; } @@ -53,7 +47,7 @@ function check_data() function handle_submit() { - global $selected_id; + global $selected_id, $Mode; if (!check_data()) return false; @@ -63,15 +57,16 @@ function handle_submit() update_currency($_POST['Abbreviation'], $_POST['Symbol'], $_POST['CurrencyName'], $_POST['country'], $_POST['hundreds_name']); + display_notification(_('Selected currency settings has been updated')); } else { add_currency($_POST['Abbreviation'], $_POST['Symbol'], $_POST['CurrencyName'], $_POST['country'], $_POST['hundreds_name']); - } - - return true; + display_notification(_('New currency has been added')); + } + $Mode = 'RESET'; } //--------------------------------------------------------------------------------------------- @@ -127,14 +122,13 @@ function check_can_delete() function handle_delete() { - global $selected_id; - if (!check_can_delete()) - return; + global $selected_id, $Mode; + if (check_can_delete()) { //only delete if used in neither customer or supplier, comp prefs, bank trans accounts - - delete_currency($selected_id); - - meta_forward($_SERVER['PHP_SELF']); + delete_currency($selected_id); + display_notification(_('Selected currency has been deleted')); + } + $Mode = 'RESET'; } //--------------------------------------------------------------------------------------------- @@ -146,7 +140,7 @@ function display_currencies() $company_currency = get_company_currency(); $result = get_currencies(); - + start_form(); start_table($table_style); $th = array(_("Abbreviation"), _("Symbol"), _("Currency Name"), _("Hundredths name"), _("Country"), "", ""); @@ -169,16 +163,17 @@ function display_currencies() label_cell($myrow["currency"]); label_cell($myrow["hundreds_name"]); label_cell($myrow["country"]); - edit_link_cell("selected_id=" . $myrow["curr_abrev"]); + edit_button_cell("Edit".$myrow["curr_abrev"], _("Edit")); if ($myrow["curr_abrev"] != $company_currency) - delete_link_cell("selected_id=" . $myrow["curr_abrev"]. "&delete=1"); - + edit_button_cell("Delete".$myrow["curr_abrev"], _("Delete")); + else + label_cell(''); end_row(); } //END WHILE LIST LOOP end_table(); - + end_form(); display_note(_("The marked currency is the home currency which cannot be deleted."), 0, 0, "class='currentfg'"); } @@ -186,25 +181,26 @@ function display_currencies() function display_currency_edit($selected_id) { - global $table_style2; + global $table_style2, $Mode; start_form(); start_table($table_style2); - if ($selected_id != "") + if ($selected_id != '') { - //editing an existing currency - $myrow = get_currency($selected_id); - - $_POST['Abbreviation'] = $myrow["curr_abrev"]; - $_POST['Symbol'] = $myrow["curr_symbol"]; - $_POST['CurrencyName'] = $myrow["currency"]; - $_POST['country'] = $myrow["country"]; - $_POST['hundreds_name'] = $myrow["hundreds_name"]; - + if ($Mode == 'Edit') { + //editing an existing currency + $myrow = get_currency($selected_id); + + $_POST['Abbreviation'] = $myrow["curr_abrev"]; + $_POST['Symbol'] = $myrow["curr_symbol"]; + $_POST['CurrencyName'] = $myrow["currency"]; + $_POST['country'] = $myrow["country"]; + $_POST['hundreds_name'] = $myrow["hundreds_name"]; + } + hidden('Abbreviation'); hidden('selected_id', $selected_id); - hidden('Abbreviation', $_POST['Abbreviation']); - label_row(_("Currency Abbreviation:"), $_POST['Abbreviation']); + label_row(_("Currency Abbreviation:"), $_POST['Abbreviation']); } else { @@ -218,36 +214,32 @@ function display_currency_edit($selected_id) end_table(1); - submit_add_or_update_center($selected_id == ""); + submit_add_or_update_center($selected_id == '', '', true); end_form(); } //--------------------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) -{ - - if (handle_submit()) - { - meta_forward($_SERVER['PHP_SELF']); - } -} +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') + handle_submit(); //--------------------------------------------------------------------------------------------- -if (isset($_GET['delete'])) -{ - +if ($Mode == 'Delete') handle_delete(); -} //--------------------------------------------------------------------------------------------- +if ($Mode == 'RESET') +{ + $selected_id = ''; + $_POST['Abbreviation'] = $_POST['Symbol'] = ''; + $_POST['CurrencyName'] = $_POST['country'] = ''; + $_POST['hundreds_name'] = ''; +} display_currencies(); -hyperlink_no_params($_SERVER['PHP_SELF'], _("Enter a New Currency")); - display_currency_edit($selected_id); //--------------------------------------------------------------------------------------------- diff --git a/gl/manage/exchange_rates.php b/gl/manage/exchange_rates.php index 52798c88..669895b1 100644 --- a/gl/manage/exchange_rates.php +++ b/gl/manage/exchange_rates.php @@ -13,35 +13,27 @@ if ($use_date_picker) $js .= get_js_date_picker(); page(_("Exchange Rates"), false, false, "", $js); -//--------------------------------------------------------------------------------------------- +simple_page_mode(false); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif (isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} -else - $selected_id = ""; //--------------------------------------------------------------------------------------------- - function check_data() { - if (!is_date($_POST['date_'])) + if (!is_date($_POST['date_'])) { display_error( _("The entered date is invalid.")); + set_focus('date_'); return false; } - if (!is_numeric($_POST['BuyRate'])) + if (!check_num('BuyRate', 0)) { - display_error( _("The exchange rate must be numeric.")); + display_error( _("The exchange rate must be numeric and greater than zero.")); + set_focus('BuyRate'); return false; } if ($_POST['BuyRate'] <= 0) { display_error( _("The exchange rate cannot be zero or a negative number.")); + set_focus('BuyRate'); return false; } @@ -57,20 +49,20 @@ function handle_submit() if (!check_data()) return false; - if ($selected_id != "") + if ($selected_id != "") { - update_exchange_rate($_POST['curr_abrev'], $_POST['date_'], $_POST['BuyRate'], - $_POST['BuyRate']); - } - else + update_exchange_rate($_POST['curr_abrev'], $_POST['date_'], + input_num('BuyRate'), input_num('BuyRate')); + } + else { - add_exchange_rate($_POST['curr_abrev'], $_POST['date_'], $_POST['BuyRate'], - $_POST['BuyRate']); + add_exchange_rate($_POST['curr_abrev'], $_POST['date_'], + input_num('BuyRate'), input_num('BuyRate')); } - return true; + $selected_id = ''; } //--------------------------------------------------------------------------------------------- @@ -82,8 +74,7 @@ function handle_delete() if ($selected_id == "") return; delete_exchange_rate($selected_id); - - meta_forward($_SERVER['PHP_SELF']); + $selected_id = ''; } //--------------------------------------------------------------------------------------------- @@ -101,19 +92,19 @@ function display_rates($curr_code) $k = 0; //row colour counter - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { alt_table_row_color($k); label_cell(sql2date($myrow["date_"])); label_cell(number_format2($myrow["rate_buy"], user_exrate_dec()), "nowrap align=right"); - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + edit_button_cell("Edit".$myrow["id"], _("Edit")); + edit_button_cell("Delete".$myrow["id"], _("Delete")); end_row(); - } //END WHILE LIST LOOP + } end_table(); } @@ -122,39 +113,42 @@ function display_rates($curr_code) function display_rate_edit() { - global $selected_id, $table_style2; + global $selected_id, $table_style2, $Ajax; start_table($table_style2); - if (isset($_POST['get_rate'])) - { - $_POST['BuyRate'] = get_ecb_rate($_POST['curr_abrev']); - $_POST['BuyRate'] = number_format($_POST['BuyRate'], user_exrate_dec()); - } - if ($selected_id != "") + if ($selected_id != "") { - //editing an existing payment terms + //editing an existing exchange rate $myrow = get_exchange_rate($selected_id); $_POST['date_'] = sql2date($myrow["date_"]); - $_POST['BuyRate'] = $myrow["rate_buy"]; + $_POST['BuyRate'] = exrate_format($myrow["rate_buy"]); hidden('selected_id', $selected_id); hidden('date_', $_POST['date_']); - hidden('curr_abrev', $_POST['curr_abrev']); label_row(_("Date to Use From:"), $_POST['date_']); - } - else + } + else { + $_POST['date_'] = Today(); + $_POST['BuyRate'] = ''; date_row(_("Date to Use From:"), 'date_'); } - text_row(_("Exchange Rate:"), 'BuyRate', null, 15, 12, "", submit('get_rate',_("Get"), false)); + if (isset($_POST['get_rate'])) + { + $_POST['BuyRate'] = exrate_format(get_ecb_rate($_POST['curr_abrev'])); + $Ajax->activate('BuyRate'); + } + small_amount_row(_("Exchange Rate:"), 'BuyRate', null, '', + submit('get_rate',_("Get"), false, _('Get current ECB rate') , true), + user_exrate_dec()); end_table(1); - submit_add_or_update_center($selected_id == ""); + submit_add_or_update_center($selected_id == '', '', true); display_note(_("Exchange rates are entered against the company currency."), 1); } @@ -170,36 +164,29 @@ function clear_data() //--------------------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) -{ - - if (handle_submit()) - { - meta_forward($_SERVER['PHP_SELF']); - } -} +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') + handle_submit(); //--------------------------------------------------------------------------------------------- -if (isset($_GET['delete'])) -{ - +if ($Mode == 'Delete') handle_delete(); -} + //--------------------------------------------------------------------------------------------- -echo "
"; start_form(false, true); if (!isset($_POST['curr_abrev'])) $_POST['curr_abrev'] = get_global_curr_code(); +echo "
"; echo _("Select a currency :") . " "; -currencies_list('curr_abrev', $_POST['curr_abrev'], true); +currencies_list('curr_abrev', null, true); +echo "
"; // if currency sel has changed, clear the form -if ($_POST['curr_abrev'] != get_global_curr_code()) +if ($_POST['curr_abrev'] != get_global_curr_code()) { clear_data(); $selected_id = ""; @@ -207,20 +194,17 @@ if ($_POST['curr_abrev'] != get_global_curr_code()) set_global_curr_code($_POST['curr_abrev']); -if (is_company_currency($_POST['curr_abrev'])) +if (is_company_currency($_POST['curr_abrev'])) { display_note(_("The selected currency is the company currency."), 2); display_note(_("The company currency is the base currency so exchange rates cannot be set for it."), 1); -} -else +} +else { display_rates($_POST['curr_abrev']); - - hyperlink_no_params($_SERVER['PHP_SELF'], _("Enter a New Exchange Rate")); br(1); - display_rate_edit(); } diff --git a/gl/manage/gl_account_classes.php b/gl/manage/gl_account_classes.php index cfdff8a8..8de53227 100644 --- a/gl/manage/gl_account_classes.php +++ b/gl/manage/gl_account_classes.php @@ -10,16 +10,7 @@ include($path_to_root . "/gl/includes/gl_db.inc"); include($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} -else - $selected_id = -1; +simple_page_mode(true); //----------------------------------------------------------------------------------- function can_process() @@ -28,6 +19,7 @@ function can_process() if (strlen($_POST['name']) == 0) { display_error( _("The account class name cannot be empty.")); + set_focus('name'); return false; } @@ -36,7 +28,7 @@ function can_process() //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { if (can_process()) @@ -44,16 +36,15 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) if ($selected_id != -1) { - update_account_class($selected_id, $_POST['name'], $_POST['Balance']); - + display_notification(_('Selected account class settings has been updated')); } else { - add_account_class($_POST['id'], $_POST['name'], $_POST['Balance']); + display_notification(_('New account class has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -79,20 +70,27 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_account_class($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected account class has been deleted')); } + $Mode = 'RESET'; } +//----------------------------------------------------------------------------------- +if ($Mode == 'RESET') +{ + $selected_id = -1; + $_POST['id'] = $_POST['name'] = $_POST['Balance'] = ''; +} //----------------------------------------------------------------------------------- $result = get_account_classes(); - +start_form(); start_table($table_style); $th = array(_("Class ID"), _("Class Name"), _("Balance Sheet"), "", ""); table_header($th); @@ -114,31 +112,32 @@ while ($myrow = db_fetch($result)) label_cell($myrow["cid"]); label_cell($myrow['class_name']); label_cell($bs_text); - edit_link_cell("selected_id=" . $myrow["cid"]); - delete_link_cell("selected_id=" . $myrow["cid"]. "&delete=1"); + edit_button_cell("Edit".$myrow["cid"], _("Edit")); + edit_button_cell("Delete".$myrow["cid"], _("Delete")); end_row(); } end_table(); - +end_form(); +echo '
'; //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Account Class")); - start_form(); start_table($table_style2); if ($selected_id != -1) { + if ($Mode == 'Edit') { //editing an existing status code - $myrow = get_account_class($selected_id); $_POST['id'] = $myrow["cid"]; $_POST['name'] = $myrow["class_name"]; $_POST['Balance'] = $myrow["balance_sheet"]; hidden('selected_id', $selected_id); + } + hidden('id'); label_row(_("Class ID:"), $_POST['id']); } @@ -148,13 +147,13 @@ else text_row_ex(_("Class ID:"), 'id', 3); } -text_row_ex(_("Class Name:"), 'name', 50); +text_row_ex(_("Class Name:"), 'name', 50, 60); yesno_list_row(_("Balance Sheet:"), 'Balance', null, "", "", false); end_table(1); -submit_add_or_update_center($selected_id == -1); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/gl/manage/gl_account_types.php b/gl/manage/gl_account_types.php index 915835d8..4e2ce39f 100644 --- a/gl/manage/gl_account_types.php +++ b/gl/manage/gl_account_types.php @@ -10,16 +10,7 @@ include($path_to_root . "/gl/includes/gl_db.inc"); include($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} -else - $selected_id = ""; +simple_page_mode(false); //----------------------------------------------------------------------------------- function can_process() @@ -29,6 +20,7 @@ function can_process() if (strlen($_POST['name']) == 0) { display_error( _("The account group name cannot be empty.")); + set_focus('name'); return false; } @@ -43,7 +35,7 @@ function can_process() //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { if (can_process()) @@ -51,16 +43,15 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) if ($selected_id != "") { - update_account_type($selected_id, $_POST['name'], $_POST['class_id'], $_POST['parent']); - + display_notification(_('Selected account type has been updated')); } else { - add_account_type($_POST['name'], $_POST['class_id'], $_POST['parent']); + display_notification(_('New account type has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -96,20 +87,27 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_account_type($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected currency has been deleted')); } + $Mode = 'RESET'; +} +if ($Mode == 'RESET') +{ + $selected_id = ''; + $_POST['name'] = ''; + unset($_POST['parent']); + unset($_POST['class_id']); } - //----------------------------------------------------------------------------------- $result = get_account_types(); - +start_form(); start_table($table_style); $th = array(_("Name"), _("Subgroup Of"), _("Class Type"), "", ""); table_header($th); @@ -134,43 +132,40 @@ while ($myrow = db_fetch($result)) label_cell($myrow["name"]); label_cell($parent_text); label_cell($bs_text); - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + edit_button_cell("Edit".$myrow["id"], _("Edit")); + edit_button_cell("Delete".$myrow["id"], _("Delete")); end_row(); } end_table(); - +end_form(); +echo '
'; //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Account Group")); - start_form(); start_table($table_style2); -if ($selected_id != "") +if ($Mode == 'Edit') { //editing an existing status code - $myrow = get_account_type($selected_id); $_POST['name'] = $myrow["name"]; $_POST['parent'] = $myrow["parent"]; $_POST['class_id'] = $myrow["class_id"]; - + } hidden('selected_id', $selected_id); -} text_row_ex(_("Name:"), 'name', 50); -gl_account_types_list_row(_("Subgroup Of:"), 'parent', null, true, _("None"), true); +gl_account_types_list_row(_("Subgroup Of:"), 'parent', null, _("None"), true); class_list_row(_("Class Type:"), 'class_id', null); end_table(1); -submit_add_or_update_center($selected_id == ""); +submit_add_or_update_center($selected_id == '', '', true); end_form(); diff --git a/gl/manage/gl_accounts.php b/gl/manage/gl_accounts.php index 1a10f414..55fd9389 100644 --- a/gl/manage/gl_accounts.php +++ b/gl/manage/gl_accounts.php @@ -14,7 +14,7 @@ check_db_has_gl_account_groups(_("There are no account groups defined. Please de //------------------------------------------------------------------------------------- -if (isset($_POST['Select'])) +if (isset($_POST['_AccountList_update'])) { $_POST['selected_account'] = $_POST['AccountList']; } @@ -41,27 +41,37 @@ if (isset($_POST['add']) || isset($_POST['update'])) { $input_error = 1; display_error( _("The account code must be entered.")); + set_focus('account_code'); } elseif (strlen($_POST['account_name']) == 0) { $input_error = 1; display_error( _("The account name cannot be empty.")); + set_focus('account_name'); } elseif (!$accounts_alpha && !is_numeric($_POST['account_code'])) { $input_error = 1; display_error( _("The account code must be numeric.")); + set_focus('account_code'); } if ($input_error != 1) { if ($accounts_alpha == 2) $_POST['account_code'] = strtoupper($_POST['account_code']); - if ($selected_account) - update_gl_account($_POST['account_code'], $_POST['account_name'], $_POST['account_type'], $_POST['account_code2'], $_POST['tax_code']); - else + if ($selected_account) + { + update_gl_account($_POST['account_code'], $_POST['account_name'], $_POST['account_type'], $_POST['account_code2'], $_POST['tax_code']); + display_notification(_("Account data has been updated.")); + } + else + { add_gl_account($_POST['account_code'], $_POST['account_name'], $_POST['account_type'], $_POST['account_code2'], $_POST['tax_code']); - meta_forward($_SERVER['PHP_SELF']); + $selected_account = $_POST['AccountList'] = $_POST['account_code']; + display_notification(_("New account has been added.")); + } + $Ajax->activate('_page_body'); } } @@ -84,10 +94,6 @@ function can_delete($selected_account) $sql= "SELECT COUNT(*) FROM ".TB_PREF."company WHERE debtors_act='$selected_account' OR pyt_discount_act='$selected_account' OR creditors_act='$selected_account' - OR grn_act='$selected_account' - OR exchange_diff_act='$selected_account' - OR purch_exchange_diff_act='$selected_account' - OR retained_earnings_act='$selected_account' OR freight_act='$selected_account' OR default_sales_act='$selected_account' OR default_sales_discount_act='$selected_account' @@ -96,8 +102,7 @@ function can_delete($selected_account) OR default_cogs_act='$selected_account' OR default_adj_act='$selected_account' OR default_inv_sales_act='$selected_account' - OR default_assembly_act='$selected_account' - OR payroll_act='$selected_account'"; + OR default_assembly_act='$selected_account'"; $result = db_query($sql,"Couldn't test for default company GL codes"); $myrow = db_fetch_row($result); @@ -179,7 +184,9 @@ if (isset($_POST['delete'])) if (can_delete($selected_account)) { delete_gl_account($selected_account); - meta_forward($_SERVER['PHP_SELF']); + $selected_account = $_POST['account_code'] = $_POST['AccountList'] = ''; + display_notification(_("Selected account has been deleted")); + $Ajax->activate('_page_body'); } } @@ -191,15 +198,12 @@ if (db_has_gl_accounts()) { echo "
"; echo _("Select an Account:") . " "; - gl_all_accounts_list('AccountList', null); - echo " "; - submit('Select', _("Edit Account")); + gl_all_accounts_list('AccountList', null, false, false, false, + _('New account'), true); echo "
"; -} +} -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Account")); br(1); - start_table($table_style2); if ($selected_account != "") @@ -214,12 +218,14 @@ if ($selected_account != "") $_POST['tax_code'] = $myrow["tax_code"]; hidden('account_code', $_POST['account_code']); - hidden('selected_account', $_POST['selected_account']); + hidden('selected_account', $selected_account); label_row(_("Account Code:"), $_POST['account_code']); } else { + $_POST['account_code'] = $_POST['account_code2'] = ''; + $_POST['account_name'] = $_POST['account_type'] = $_POST['tax_code'] = ''; text_row_ex(_("Account Code:"), 'account_code', 11); } @@ -229,20 +235,19 @@ text_row_ex(_("Account Name:"), 'account_name', 60); gl_account_types_list_row(_("Account Group:"), 'account_type', null); -tax_types_list_row(_("Tax Type:"), 'tax_code', null, true, _('No Tax')); +tax_types_list_row(_("Tax Type:"), 'tax_code', null, _('No Tax')); end_table(1); if ($selected_account == "") { - submit_center('add', _("Add Account")); + submit_center('add', _("Add Account"), true, '', true); } else { - submit_center_first('update', _("Update Account")); - submit_center_last('delete', _("Delete account")); + submit_center_first('update', _("Update Account"), '', true); + submit_center_last('delete', _("Delete account"), '',true); } - end_form(); end_page(); diff --git a/gl/view/gl_deposit_view.php b/gl/view/gl_deposit_view.php index fd9b7462..02a3f7e0 100644 --- a/gl/view/gl_deposit_view.php +++ b/gl/view/gl_deposit_view.php @@ -29,7 +29,7 @@ $company_currency = get_company_currency(); $show_currencies = false; -if ($to_trans['bank_curr_code'] != $company_currency) +if ($to_trans['bank_curr_code'] != $company_currency) { $show_currencies = true; } @@ -75,9 +75,9 @@ $items = get_gl_trans(systypes::bank_deposit(), $trans_no); if (db_num_rows($items) == 0) { - echo "
" . _("There are no items for this deposit."); -} -else + display_note(_("There are no items for this deposit.")); +} +else { display_heading2(_("Items for this Deposit")); @@ -87,15 +87,15 @@ else start_table("$table_style width=80%"); $th = array(_("Account Code"), _("Account Description"), _("Amount"), _("Memo")); - table_header($th); + table_header($th); $k = 0; //row colour counter $total_amount = 0; - while ($item = db_fetch($items)) + while ($item = db_fetch($items)) { - if ($item["account"] != $to_trans["account_code"]) + if ($item["account"] != $to_trans["account_code"]) { alt_table_row_color($k); diff --git a/gl/view/gl_payment_view.php b/gl/view/gl_payment_view.php index 0d7c51e7..f52dc672 100644 --- a/gl/view/gl_payment_view.php +++ b/gl/view/gl_payment_view.php @@ -29,7 +29,7 @@ $company_currency = get_company_currency(); $show_currencies = false; -if ($from_trans['bank_curr_code'] != $company_currency) +if ($from_trans['bank_curr_code'] != $company_currency) { $show_currencies = true; } @@ -73,9 +73,9 @@ $items = get_gl_trans(systypes::bank_payment(), $trans_no); if (db_num_rows($items)==0) { - echo "
" . _("There are no items for this payment."); -} -else + display_note(_("There are no items for this payment.")); +} +else { display_heading2(_("Items for this Payment")); @@ -91,10 +91,10 @@ else $k = 0; //row colour counter $totalAmount = 0; - while ($item = db_fetch($items)) + while ($item = db_fetch($items)) { - if ($item["account"] != $from_trans["account_code"]) + if ($item["account"] != $from_trans["account_code"]) { alt_table_row_color($k); diff --git a/includes/JsHttpRequest.php b/includes/JsHttpRequest.php new file mode 100644 index 00000000..a8dea9c4 --- /dev/null +++ b/includes/JsHttpRequest.php @@ -0,0 +1,521 @@ + "text/javascript", + "xml" => "text/plain", // In XMLHttpRequest mode we must return text/plain - stupid Opera 8.0. :( + "form" => "text/html", + "" => "text/plain", // for unknown loader + ); + // Internal: conversion to UTF-8 JSON cancelled because of non-ascii key. + var $_toUtfFailed = false; + // Internal: list of characters 128...255 (for strpbrk() ASCII check). + var $_nonAsciiChars = ''; + // Which Unicode conversion function is available? + var $_unicodeConvMethod = null; + // Emergency memory buffer to be freed on memory_limit error. + var $_emergBuffer = null; + + + /** + * Constructor. + * + * Create new JsHttpRequest backend object and attach it + * to script output buffer. As a result - script will always return + * correct JavaScript code, even in case of fatal errors. + * + * QUERY_STRING is in form of: PHPSESSID=&a=aaa&b=bbb&JsHttpRequest=- + * where is a request ID, is a loader name, - a session ID (if present), + * PHPSESSID - session parameter name (by default = "PHPSESSID"). + * + * If an object is created WITHOUT an active AJAX query, it is simply marked as + * non-active. Use statuc method isActive() to check. + */ + function JsHttpRequest($enc) + { + global $JsHttpRequest_Active; + + // To be on a safe side - do not allow to drop reference counter on ob processing. + $GLOBALS['_RESULT'] =& $this->RESULT; + + // Parse QUERY_STRING. + if (preg_match('/^(.*)(?:&|^)JsHttpRequest=(?:(\d+)-)?([^&]+)((?:&|$).*)$/s', @$_SERVER['QUERY_STRING'], $m)) { + $this->ID = $m[2]; + $this->LOADER = strtolower($m[3]); + $_SERVER['QUERY_STRING'] = preg_replace('/^&+|&+$/s', '', preg_replace('/(^|&)'.session_name().'=[^&]*&?/s', '&', $m[1] . $m[4])); + unset( + $_GET['JsHttpRequest'], + $_REQUEST['JsHttpRequest'], + $_GET[session_name()], + $_POST[session_name()], + $_REQUEST[session_name()] + ); + // Detect Unicode conversion method. + $this->_unicodeConvMethod = function_exists('mb_convert_encoding')? 'mb' : (function_exists('iconv')? 'iconv' : null); + + // Fill an emergency buffer. We erase it at the first line of OB processor + // to free some memory. This memory may be used on memory_limit error. + $this->_emergBuffer = str_repeat('a', 1024 * 200); + + // Intercept fatal errors via display_errors (seems it is the only way). + $this->_uniqHash = md5('JsHttpRequest' . microtime() . getmypid()); + $this->_prevDisplayErrors = ini_get('display_errors'); + ini_set('display_errors', $this->_magic); // + ini_set('error_prepend_string', $this->_uniqHash . ini_get('error_prepend_string')); + ini_set('error_append_string', ini_get('error_append_string') . $this->_uniqHash); + + // Start OB handling early. + ob_start(array(&$this, "_obHandler")); + $JsHttpRequest_Active = true; + + // Set up the encoding. + $this->setEncoding($enc); + + // Check if headers are already sent (see Content-Type library usage). + // If true - generate a debug message and exit. + $file = $line = null; + $headersSent = version_compare(PHP_VERSION, "4.3.0") < 0? headers_sent() : headers_sent($file, $line); + if ($headersSent) { + trigger_error( + "HTTP headers are already sent" . ($line !== null? " in $file on line $line" : " somewhere in the script") . ". " + . "Possibly you have an extra space (or a newline) before the first line of the script or any library. " + . "Please note that JsHttpRequest uses its own Content-Type header and fails if " + . "this header cannot be set. See header() function documentation for more details", + E_USER_ERROR + ); + exit(); + } + } else { + $this->ID = 0; + $this->LOADER = 'unknown'; + $JsHttpRequest_Active = false; + } + } + + + /** + * Static function. + * Returns true if JsHttpRequest output processor is currently active. + * + * @return boolean True if the library is active, false otherwise. + */ + function isActive() + { + return !empty($GLOBALS['JsHttpRequest_Active']); + } + + + /** + * string getJsCode() + * + * Return JavaScript part of the library. + */ + function getJsCode() + { + return file_get_contents(dirname(__FILE__) . '/JsHttpRequest.js'); + } + + + /** + * void setEncoding(string $encoding) + * + * Set an active script encoding & correct QUERY_STRING according to it. + * Examples: + * "windows-1251" - set plain encoding (non-windows characters, + * e.g. hieroglyphs, are totally ignored) + * "windows-1251 entities" - set windows encoding, BUT additionally replace: + * "&" -> "&" + * hieroglyph -> &#XXXX; entity + */ + function setEncoding($enc) + { + // Parse an encoding. + preg_match('/^(\S*)(?:\s+(\S*))$/', $enc, $p); + $this->SCRIPT_ENCODING = strtolower(!empty($p[1])? $p[1] : $enc); + $this->SCRIPT_DECODE_MODE = !empty($p[2])? $p[2] : ''; + // Manually parse QUERY_STRING because of damned Unicode's %uXXXX. + $this->_correctSuperglobals(); + } + + + /** + * string quoteInput(string $input) + * + * Quote a string according to the input decoding mode. + * If entities are used (see setEncoding()), no '&' character is quoted, + * only '"', '>' and '<' (we presume that '&' is already quoted by + * an input reader function). + * + * Use this function INSTEAD of htmlspecialchars() for $_GET data + * in your scripts. + */ + function quoteInput($s) + { + if ($this->SCRIPT_DECODE_MODE == 'entities') + return str_replace(array('"', '<', '>'), array('"', '<', '>'), $s); + else + return htmlspecialchars($s); + } + + + /** + * Convert a PHP scalar, array or hash to JS scalar/array/hash. This function is + * an analog of json_encode(), but it can work with a non-UTF8 input and does not + * analyze the passed data. Output format must be fully JSON compatible. + * + * @param mixed $a Any structure to convert to JS. + * @return string JavaScript equivalent structure. + */ + function php2js($a=false) + { + if (is_null($a)) return 'null'; + if ($a === false) return 'false'; + if ($a === true) return 'true'; + if (is_scalar($a)) { + if (is_float($a)) { + // Always use "." for floats. + $a = str_replace(",", ".", strval($a)); + } + // All scalars are converted to strings to avoid indeterminism. + // PHP's "1" and 1 are equal for all PHP operators, but + // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend, + // we should get the same result in the JS frontend (string). + // Character replacements for JSON. + static $jsonReplaces = array( + array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'), + array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"') + ); + return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"'; + } + $isList = true; + for ($i = 0, reset($a); $i < count($a); $i++, next($a)) { + if (key($a) !== $i) { + $isList = false; + break; + } + } + $result = array(); + if ($isList) { + foreach ($a as $v) { + $result[] = JsHttpRequest::php2js($v); + } + return '[ ' . join(', ', $result) . ' ]'; + } else { + foreach ($a as $k => $v) { + $result[] = JsHttpRequest::php2js($k) . ': ' . JsHttpRequest::php2js($v); + } + return '{ ' . join(', ', $result) . ' }'; + } + } + + + /** + * Internal methods. + */ + + /** + * Parse & decode QUERY_STRING. + */ + function _correctSuperglobals() + { + // In case of FORM loader we may go to nirvana, everything is already parsed by PHP. + if ($this->LOADER == 'form') return; + + // ATTENTION!!! + // HTTP_RAW_POST_DATA is only accessible when Content-Type of POST request + // is NOT default "application/x-www-form-urlencoded"!!! + // Library frontend sets "application/octet-stream" for that purpose, + // see JavaScript code. In PHP 5.2.2.HTTP_RAW_POST_DATA is not set sometimes; + // in such cases - read the POST data manually from the STDIN stream. + $rawPost = strcasecmp($_SERVER['REQUEST_METHOD'], 'POST') == 0? (isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : @file_get_contents("php://input")) : null; + $source = array( + '_GET' => !empty($_SERVER['QUERY_STRING'])? $_SERVER['QUERY_STRING'] : null, + '_POST'=> $rawPost, + ); + foreach ($source as $dst=>$src) { + // First correct all 2-byte entities. + $s = preg_replace('/%(?!5B)(?!5D)([0-9a-f]{2})/si', '%u00\\1', $src); + // Now we can use standard parse_str() with no worry! + $data = null; + parse_str($s, $data); + $GLOBALS[$dst] = $this->_ucs2EntitiesDecode($data); + } + $GLOBALS['HTTP_GET_VARS'] = $_GET; // deprecated vars + $GLOBALS['HTTP_POST_VARS'] = $_POST; + $_REQUEST = + (isset($_COOKIE)? $_COOKIE : array()) + + (isset($_POST)? $_POST : array()) + + (isset($_GET)? $_GET : array()); + if (ini_get('register_globals')) { + // TODO? + } + } + + + /** + * Called in case of error too! + */ + function _obHandler($text) + { + unset($this->_emergBuffer); // free a piece of memory for memory_limit error + unset($GLOBALS['JsHttpRequest_Active']); + + // Check for error & fetch a resulting data. + if (preg_match("/{$this->_uniqHash}(.*?){$this->_uniqHash}/sx", $text, $m)) { + if (!ini_get('display_errors') || (!$this->_prevDisplayErrors && ini_get('display_errors') == $this->_magic)) { + // Display_errors: + // 1. disabled manually after the library initialization, or + // 2. was initially disabled and is not changed + $text = str_replace($m[0], '', $text); // strip whole error message + } else { + $text = str_replace($this->_uniqHash, '', $text); + } + } + if ($m && preg_match('/\bFatal error(<.*?>)?:/i', $m[1])) { + // On fatal errors - force null result (generate 500 error). + $this->RESULT = null; + } else { + // Make a resulting hash. + if (!isset($this->RESULT)) { + global $_RESULT; + $this->RESULT = $_RESULT; + } + } + + $result = array( + 'id' => $this->ID, + 'js' => $this->RESULT, + 'text' => $text, + ); + $text = null; + $encoding = $this->SCRIPT_ENCODING; + $status = $this->RESULT !== null? 200 : 500; + + // Try to use very fast json_encode: 3-4 times faster than a manual encoding. + if (function_exists('array_walk_recursive') && function_exists('json_encode') && $this->_unicodeConvMethod) { + $this->_nonAsciiChars = join("", array_map('chr', range(128, 255))); + $this->_toUtfFailed = false; + $resultUtf8 = $result; + array_walk_recursive($resultUtf8, array(&$this, '_toUtf8_callback'), $this->SCRIPT_ENCODING); + if (!$this->_toUtfFailed) { + // If some key contains non-ASCII character, convert everything manually. + $text = json_encode($resultUtf8); + $encoding = "UTF-8"; + } + } + + // On failure, use manual encoding. + if ($text === null) { + $text = $this->php2js($result); + } + + if ($this->LOADER != "xml") { + // In non-XML mode we cannot use plain JSON. So - wrap with JS function call. + // If top.JsHttpRequestGlobal is not defined, loading is aborted and + // iframe is removed, so - do not call dataReady(). + $text = "" + . ($this->LOADER == "form"? 'top && top.JsHttpRequestGlobal && top.JsHttpRequestGlobal' : 'JsHttpRequest') + . ".dataReady(" . $text . ")\n" + . ""; + if ($this->LOADER == "form") { + $text = ''; + } + + // Always return 200 code in non-XML mode (else SCRIPT does not work in FF). + // For XML mode, 500 code is okay. + $status = 200; + } + + // Status header. To be safe, display it only in error mode. In case of success + // termination, do not modify the status (""HTTP/1.1 ..." header seems to be not + // too cross-platform). + if ($this->RESULT === null) { + if (php_sapi_name() == "cgi") { + header("Status: $status"); + } else { + header("HTTP/1.1 $status"); + } + } + + // In XMLHttpRequest mode we must return text/plain - damned stupid Opera 8.0. :( + $ctype = !empty($this->_contentTypes[$this->LOADER])? $this->_contentTypes[$this->LOADER] : $this->_contentTypes['']; + header("Content-type: $ctype; charset=$encoding"); + + return $text; + } + + + /** + * Internal function, used in array_walk_recursive() before json_encode() call. + * If a key contains non-ASCII characters, this function sets $this->_toUtfFailed = true, + * becaues array_walk_recursive() cannot modify array keys. + */ + function _toUtf8_callback(&$v, $k, $fromEnc) + { + if ($v === null || is_bool($v)) return; + if ($this->_toUtfFailed || !is_scalar($v) || strpbrk($k, $this->_nonAsciiChars) !== false) { + $this->_toUtfFailed = true; + } else { + $v = $this->_unicodeConv($fromEnc, 'UTF-8', $v); + } + } + + + /** + * Decode all %uXXXX entities in string or array (recurrent). + * String must not contain %XX entities - they are ignored! + */ + function _ucs2EntitiesDecode($data) + { + if (is_array($data)) { + $d = array(); + foreach ($data as $k=>$v) { + $d[$this->_ucs2EntitiesDecode($k)] = $this->_ucs2EntitiesDecode($v); + } + return $d; + } else { + if (strpos($data, '%u') !== false) { // improve speed + $data = preg_replace_callback('/%u([0-9A-F]{1,4})/si', array(&$this, '_ucs2EntitiesDecodeCallback'), $data); + } + return $data; + } + } + + + /** + * Decode one %uXXXX entity (RE callback). + */ + function _ucs2EntitiesDecodeCallback($p) + { + $hex = $p[1]; + $dec = hexdec($hex); + if ($dec === "38" && $this->SCRIPT_DECODE_MODE == 'entities') { + // Process "&" separately in "entities" decode mode. + $c = "&"; + } else { + if ($this->_unicodeConvMethod) { + $c = @$this->_unicodeConv('UCS-2BE', $this->SCRIPT_ENCODING, pack('n', $dec)); + } else { + $c = $this->_decUcs2Decode($dec, $this->SCRIPT_ENCODING); + } + if (!strlen($c)) { + if ($this->SCRIPT_DECODE_MODE == 'entities') { + $c = '&#' . $dec . ';'; + } else { + $c = '?'; + } + } + } + return $c; + } + + + /** + * Wrapper for iconv() or mb_convert_encoding() functions. + * This function will generate fatal error if none of these functons available! + * + * @see iconv() + */ + function _unicodeConv($fromEnc, $toEnc, $v) + { + if ($this->_unicodeConvMethod == 'iconv') { + return iconv($fromEnc, $toEnc, $v); + } + return mb_convert_encoding($v, $toEnc, $fromEnc); + } + + + /** + * If there is no ICONV, try to decode 1-byte characters manually + * (for most popular charsets only). + */ + + /** + * Convert from UCS-2BE decimal to $toEnc. + */ + function _decUcs2Decode($code, $toEnc) + { + if ($code < 128) return chr($code); + if (isset($this->_encTables[$toEnc])) { + // TODO: possible speedup by using array_flip($this->_encTables) and later hash access in the constructor. + $p = array_search($code, $this->_encTables[$toEnc]); + if ($p !== false) return chr(128 + $p); + } + return ""; + } + + + /** + * UCS-2BE -> 1-byte encodings (from #128). + */ + var $_encTables = array( + 'windows-1251' => array( + 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021, + 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F, + 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, + 0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F, + 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7, + 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407, + 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7, + 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457, + 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417, + 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F, + 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427, + 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F, + 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437, + 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F, + 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447, + 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F, + ), + 'koi8-r' => array( + 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524, + 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590, + 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248, + 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7, + 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556, + 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255d, 0x255E, + 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565, + 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9, + 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, + 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043d, 0x043E, + 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, + 0x044C, 0x044B, 0x0437, 0x0448, 0x044d, 0x0449, 0x0447, 0x044A, + 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, + 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041d, 0x041E, + 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, + 0x042C, 0x042B, 0x0417, 0x0428, 0x042d, 0x0429, 0x0427, 0x042A + ), + ); +} diff --git a/includes/ajax.inc b/includes/ajax.inc new file mode 100644 index 00000000..135ee03d --- /dev/null +++ b/includes/ajax.inc @@ -0,0 +1,139 @@ +JsHttpRequest($_SESSION['language']->encoding); + } + // + // This function is used in ctrl routines to activate + // update of ajaxified html element selected by given name/id. + // + function activate($trigname) { + if (in_ajax()) { + $this->triggers[$trigname] = true; + } + } + // + // Javascript clientside redirection. + // This is the last command added to reponse (if any). + // + function redirect($url) { + if(in_ajax()) { + $this->_addCommand(true, array('n'=>'rd'),$url); + $this->run(); + } + } + // + // Adds an executable Javascript code. + // + function addScript($trigger, $sJS) + { + $this->_addCommand($trigger, array('n'=>'js'),$sJS); + return $this; + } + // + // Assign target attribute with data. + // + function addAssign($trigger, $sTarget,$sAttribute,$sData) + { + $this->_addCommand($trigger, array('n'=>'as','t'=>$sTarget,'p'=>$sAttribute),$sData); + return $this; + } + // + // Updates input element or label with data. + // + function addUpdate($trigger, $sTarget, $sData) + { + $this->_addCommand($trigger, array('n'=>'up','t'=>$sTarget),$sData); + return $this; + } + // + // Set disable state of element. + // + function addDisable($trigger, $sTarget, $sData=true) + { + $this->_addCommand($trigger, array('n'=>'di','t'=>$sTarget),$sData); + return $this; + } + // + // Set state of element to enabled. + // + function addEnable($trigger, $sTarget, $sData=true) + { + $this->_addCommand($trigger, array('n'=>'di','t'=>$sTarget), !$sData); + return $this; + } + // + // Set current focus. + // + function addFocus($trigger, $sTarget) + { + $this->_addCommand($trigger, array('n'=>'fc'),$sTarget); + return $this; + } + // + // Internal procedure adding command to response. + // + function _addCommand($trigger, $aAttributes, $mData) + { + if ($this->isActive() && ($trigger !== false)) { +// display_error('adding '.$trigger.':'.htmlentities($mData)); + + $aAttributes['why'] = $trigger; + $aAttributes['data'] = $mData; + $this->aCommands[] = $aAttributes; + } + } + /* + * Register binds function with ajax call parameter + + function register($trigger, $function) + { + if (isset($_REQUEST[$trigger])) { + $function(&$this); + } + } + */ + function run() { + + if (!$this->isActive()) return; + + // remove not active commands + foreach ($this->aCommands as $idx => $com) { +// If we should reload whole page content ignore all commands but the update. +// This is page repost equivalent, although header and footer are not reloaded. + if ($com['why'] !== true && !isset($this->triggers[$com['why']])) { + unset($this->aCommands[$idx]); +// display_error('unset '.$com['t']); + } + else + if($com['n'] == 'up' && $com['t'] == '_page_body') { + $cmds = array($com); + foreach( $this->aCommands as $k=> $cmd) { + if ($cmd['n'] == 'fc') { // save focus + $cmds[] = $cmd; break; + } + } + $this->aCommands = $cmds; + break; + } + } +// display_error('Activate:'.htmlentities(print_r($this->triggers, true))); +// display_error('Commands :'.htmlentities(print_r($this->aCommands, true))); + $GLOBALS['_RESULT'] = $this->aCommands; +// exit(); + } +} + +function in_ajax() { + global $Ajax; + return $Ajax->isActive(); +} + +?> diff --git a/includes/banking.inc b/includes/banking.inc index a8a1c62e..d3ca75bd 100644 --- a/includes/banking.inc +++ b/includes/banking.inc @@ -104,7 +104,7 @@ function get_exchange_rate_to_home_currency($currency_code, $date_) function to_home_currency($amount, $currency_code, $date_) { $ex_rate = get_exchange_rate_to_home_currency($currency_code, $date_); - return $amount / $ex_rate; + return round($amount / $ex_rate, user_price_dec()); } //---------------------------------------------------------------------------------- diff --git a/includes/current_user.inc b/includes/current_user.inc index a86d00d3..7a9f1763 100644 --- a/includes/current_user.inc +++ b/includes/current_user.inc @@ -4,7 +4,7 @@ include_once($path_to_root . "/includes/prefs/userprefs.inc"); //-------------------------------------------------------------------------- -class current_user +class current_user { var $loginname; @@ -45,16 +45,17 @@ class current_user { $myrow = db_fetch($Auth_Result); - $this->access = $myrow["full_access"]; - $this->name = $myrow["real_name"]; - $this->loginname = $loginname; - $this->username = $this->loginname; - $this->prefs = new user_prefs($myrow); + $this->access = $myrow["full_access"]; + $this->name = $myrow["real_name"]; + $this->loginname = $loginname; + $this->username = $this->loginname; + $this->prefs = new user_prefs($myrow); - update_user_visitdate($loginname); - $this->logged = true; - } - else + update_user_visitdate($loginname); + $this->logged = true; + + } + else { $this->logged = false; } @@ -71,7 +72,9 @@ class current_user function can_access_page($page_level) { global $security_groups; - return isset($page_level) && in_array($page_level, $security_groups[$this->access]); + // first registered company has site admin privileges + return isset($page_level) && in_array($page_level, $security_groups[$this->access]) + && ($this->company == 0 || $page_level != 20); } function get_db_connection() @@ -85,17 +88,17 @@ class current_user $db = mysql_connect($connection["host"] , $connection["dbuser"], $connection["dbpassword"]); mysql_select_db($connection["dbname"],$db); - + if (!defined('TB_PREF')) define('TB_PREF', $connection["tbpref"]); - + return $db; } function update_prefs($price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes, - $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize) { + $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize, $show_hints) { update_user_display_prefs($this->username, $price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, - $showcodes, $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize); + $showcodes, $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize, $show_hints); // re-read the prefs $user = get_user($this->username); @@ -105,7 +108,7 @@ class current_user //-------------------------------------------------------------------------- -function number_format2($number, $decimals=0) +function number_format2($number, $decimals=0) { global $thoseps, $decseps; $tsep = $thoseps[$_SESSION["wa_current_user"]->prefs->tho_sep()]; @@ -113,87 +116,161 @@ function number_format2($number, $decimals=0) return number_format($number, $decimals, $dsep, $tsep); } -function user_company() +function price_format($number) { + return number_format2($number, + $_SESSION["wa_current_user"]->prefs->price_dec()); +} +// 2008-06-15. Added extra parameter $stock_id and reference for $dec +//-------------------------------------------------------------------- +function qty_format($number, $stock_id=null, &$dec) { + $dec = get_qty_dec($stock_id); + return number_format2($number, $dec); +} +// and get_qty_dec +function get_qty_dec($stock_id=null) +{ + global $path_to_root; + include_once($path_to_root."/inventory/includes/db/items_units_db.inc"); + if ($stock_id != null) + $dec = get_unit_dec($stock_id); + if ($stock_id == null || $dec == -1 || $dec == null) + $dec = $_SESSION["wa_current_user"]->prefs->qty_dec(); + return $dec; +} +//------------------------------------------------------------------- +function exrate_format($number) { + return number_format2($number, + $_SESSION["wa_current_user"]->prefs->exrate_dec()); +} + +function percent_format($number) { + return number_format2($number, + $_SESSION["wa_current_user"]->prefs->percent_dec()); +} + +function user_numeric($input) { + global $decseps, $thoseps; + + $num = trim($input); + $sep = $thoseps[user_tho_sep()]; + if($sep!='') $num = str_replace( $sep, '', $num); + str_replace($sep, '', $num); + $sep = $decseps[user_dec_sep()]; + if($sep!='.') $num = str_replace( $sep, '.', $num); + + if (!is_numeric($num)) + return false; + $num = (float)$num; + if ($num == (int)$num) + return (int)$num; + else + return $num; +} + +function user_company() { return $_SESSION["wa_current_user"]->company; } -function user_language() +function user_language() { return $_SESSION["wa_current_user"]->prefs->language(); } -function user_qty_dec() +function user_qty_dec() { return $_SESSION["wa_current_user"]->prefs->qty_dec(); } -function user_price_dec() +function user_price_dec() { return $_SESSION["wa_current_user"]->prefs->price_dec(); } -function user_exrate_dec() +function user_exrate_dec() { return $_SESSION["wa_current_user"]->prefs->exrate_dec(); } -function user_percent_dec() +function user_percent_dec() { return $_SESSION["wa_current_user"]->prefs->percent_dec(); } -function user_show_gl_info() +function user_show_gl_info() { return $_SESSION["wa_current_user"]->prefs->show_gl_info(); } -function user_show_codes() +function user_show_codes() { return $_SESSION["wa_current_user"]->prefs->show_codes(); } -function user_date_format() +function user_date_format() { return $_SESSION["wa_current_user"]->prefs->date_format(); } -function user_date_display() +function user_date_display() { return $_SESSION["wa_current_user"]->prefs->date_display(); } -function user_date_sep() +function user_date_sep() { return $_SESSION["wa_current_user"]->prefs->date_sep(); } -function user_tho_sep() +function user_tho_sep() { return $_SESSION["wa_current_user"]->prefs->tho_sep(); } -function user_dec_sep() +function user_dec_sep() { return $_SESSION["wa_current_user"]->prefs->dec_sep(); } -function user_theme() +function user_theme() { return $_SESSION["wa_current_user"]->prefs->get_theme(); } -function user_pagesize() +function user_pagesize() { return $_SESSION["wa_current_user"]->prefs->get_pagesize(); } +function user_hints() +{ + return $_SESSION["wa_current_user"]->prefs->show_hints(); +} + function set_user_prefs($price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes, - $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize) + $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize, $show_hints) { $_SESSION["wa_current_user"]->update_prefs($price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes, - $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize); + $date_format, $date_sep, $tho_sep, $dec_sep, $theme, $pagesize, $show_hints); +} + +function add_user_js_data() { + global $path_to_root, $thoseps, $decseps; + + $ts = $thoseps[user_tho_sep()]; + $ds = $decseps[user_dec_sep()]; + + $js = "\n"; + + add_js_source($js); } //-------------------------------------------------------------------------- diff --git a/includes/data_checks.inc b/includes/data_checks.inc index ef33acfd..b79bf3d2 100644 --- a/includes/data_checks.inc +++ b/includes/data_checks.inc @@ -1,5 +1,4 @@ 0; } +// +// Integer input check +// Return 1 if number has proper form and is within range +// +function check_int($postname, $min=null, $max=null) { + if(!isset($_POST[$postname])) + return 0; + $num = input_num($postname); + if(!is_int($num)) + return 0; + if (isset($min) && ($num<$min)) + return 0; + if (isset($max) && ($num>$max)) + return 0; + return 1; +} +// +// Numeric input check. +// Return 1 if number has proper form and is within range +// +function check_num($postname, $min=null, $max=null) { + if(!isset($_POST[$postname])) + return 0; + $num = input_num($postname); + if ($num === false) + return 0; + if (isset($min) && ($num<$min)) + return 0; + if (isset($max) && ($num>$max)) + return 0; + return 1; +} + ?> \ No newline at end of file diff --git a/includes/date_functions.inc b/includes/date_functions.inc index 484d5a8e..febf609f 100644 --- a/includes/date_functions.inc +++ b/includes/date_functions.inc @@ -83,7 +83,7 @@ function is_date($date_) $year = substr($date_,0,4); } } - if ((int)$year > 9999) + if (!isset($year)|| (int)$year > 9999) { return 0; } diff --git a/includes/db/comments_db.inc b/includes/db/comments_db.inc index 27e4405d..fd7af9c5 100644 --- a/includes/db/comments_db.inc +++ b/includes/db/comments_db.inc @@ -5,7 +5,7 @@ function get_comments($type, $type_no) { $sql = "SELECT * FROM ".TB_PREF."comments WHERE type=$type AND id=$type_no"; - + return db_query($sql, "could not query comments transaction table"); } @@ -13,29 +13,29 @@ function get_comments($type, $type_no) function add_comments($type, $type_no, $date_, $memo_) { - if ($memo_ != null && $memo_ != "") - { + if ($memo_ != null && $memo_ != "") + { $date = date2sql($date_); $sql = "INSERT INTO ".TB_PREF."comments (type, id, date_, memo_) - VALUES ($type, $type_no, '$date', '$memo_')"; - + VALUES ($type, $type_no, '$date', ".db_escape($memo_).")"; + db_query($sql, "could not add comments transaction entry"); - } + } } //-------------------------------------------------------------------------------------------------- function update_comments($type, $id, $date_, $memo_) { - if ($date_ == null) + if ($date_ == null) { delete_comments($type, $id); add_comments($type, $id, '', $memo_); - } - else + } + else { $date = date2sql($date_); - $sql = "UPDATE ".TB_PREF."comments SET memo_='$memo_' WHERE type=$type AND id=$id AND date_='$date'"; + $sql = "UPDATE ".TB_PREF."comments SET memo_=".db_escape($memo_)." WHERE type=$type AND id=$id AND date_='$date'"; db_query($sql, "could not update comments"); } } @@ -45,7 +45,7 @@ function update_comments($type, $id, $date_, $memo_) function delete_comments($type, $type_no) { $sql = "DELETE FROM ".TB_PREF."comments WHERE type=$type AND id=$type_no"; - + db_query($sql, "could not delete from comments transaction table"); } diff --git a/includes/db/connect_db.inc b/includes/db/connect_db.inc index 4bff9196..f7d214be 100644 --- a/includes/db/connect_db.inc +++ b/includes/db/connect_db.inc @@ -31,8 +31,10 @@ function db_query($sql, $err_msg=null) $result = mysql_query($sql, $db); - if ($err_msg != null) + if (function_exists('xdebug_call_file')) + check_db_error('
At file '.xdebug_call_file().':'.xdebug_call_line().':
'.$err_msg, $sql); + else check_db_error($err_msg, $sql); return $result; @@ -71,9 +73,34 @@ function db_num_fields ($result) return mysql_num_fields($result); } -function db_escape ($result) +function db_escape($value = "", $nullify = false) { - return mysql_escape_string($result); + $value = @htmlspecialchars($value, ENT_COMPAT, $_SESSION['language']->encoding); + + //reset default if second parameter is skipped + $nullify = ($nullify === null) ? (false) : ($nullify); + //undo slashes for poorly configured servers + $value = (get_magic_quotes_gpc()) ? (stripslashes($value)) : ($value); + + //check for null/unset/empty strings + if ((!isset($value)) || (is_null($value)) || ($value === "")) { + $value = ($nullify) ? ("NULL") : ("''"); + } else { + if (is_string($value)) { + //value is a string and should be quoted; determine best method based on available extensions + if (function_exists('mysql_real_escape_string')) { + $value = "'" . mysql_real_escape_string($value) . "'"; + } else { + $value = "'" . mysql_escape_string($value) . "'"; + } + } else if (!is_numeric($value)) { + //value is not a string nor numeric + display_error("ERROR: incorrect data type send to sql query"); + echo '

'; + exit(); + } + } + return $value; } function db_error_no () diff --git a/includes/db/inventory_db.inc b/includes/db/inventory_db.inc index 57234f4c..46a16b41 100644 --- a/includes/db/inventory_db.inc +++ b/includes/db/inventory_db.inc @@ -1,34 +1,46 @@ 0) + { + $sql = "SELECT SUM(qty) FROM ".TB_PREF."stock_moves + WHERE stock_id='$stock_id' + AND type=$exclude + AND tran_date = '$date'"; + + $result = db_query($sql, "QOH calulcation failed"); + $myrow2 = db_fetch_row($result); + if ($myrow2 !== false) + $myrow[0] -= $myrow2[0]; + } + + return $myrow[0]; } //-------------------------------------------------------------------------------------- function get_item_edit_info($stock_id) { - $sql = "SELECT material_cost + labour_cost + overhead_cost AS standard_cost, units + $sql = "SELECT material_cost + labour_cost + overhead_cost AS standard_cost, units FROM ".TB_PREF."stock_master WHERE stock_id='$stock_id'"; $result = db_query($sql, "The standard cost cannot be retrieved"); - + return db_fetch($result); } @@ -36,12 +48,12 @@ function get_item_edit_info($stock_id) function get_standard_cost($stock_id) { - $sql = "SELECT material_cost + labour_cost + overhead_cost AS std_cost + $sql = "SELECT material_cost + labour_cost + overhead_cost AS std_cost FROM ".TB_PREF."stock_master WHERE stock_id='$stock_id'"; $result = db_query($sql, "The standard cost cannot be retrieved"); - + $myrow = db_fetch_row($result); - + return $myrow[0]; } @@ -49,11 +61,11 @@ function get_standard_cost($stock_id) function is_inventory_item($stock_id) { - $sql = "SELECT stock_id FROM ".TB_PREF."stock_master + $sql = "SELECT stock_id FROM ".TB_PREF."stock_master WHERE stock_id='$stock_id' AND mb_flag <> 'D'"; $result = db_query($sql, "Cannot query is inventory item or not"); - - return db_num_rows($result) > 0; + + return db_num_rows($result) > 0; } //------------------------------------------------------------------- @@ -62,8 +74,8 @@ Function get_stock_gl_code($stock_id) { /*Gets the GL Codes relevant to the item account */ - $sql = "SELECT inventory_account, cogs_account, - adjustment_account, sales_account, assembly_account, dimension_id, dimension2_id FROM + $sql = "SELECT inventory_account, cogs_account, + adjustment_account, sales_account, assembly_account, dimension_id, dimension2_id FROM ".TB_PREF."stock_master WHERE stock_id = '$stock_id'"; $get = db_query($sql,"retreive stock gl code"); @@ -78,43 +90,52 @@ Function get_stock_gl_code($stock_id) // $price - in $person_id's currency function add_stock_move($type, $stock_id, $trans_no, $location, - $date_, $reference, $quantity, $std_cost, $person_id=null, $show_or_hide=1, + $date_, $reference, $quantity, $std_cost, $person_id=0, $show_or_hide=1, $price=0, $discount_percent=0, $error_msg="") { // do not add a stock move if it's a non-inventory item if (!is_inventory_item($stock_id)) return null; - + $date = date2sql($date_); - - $sql = "INSERT INTO ".TB_PREF."stock_moves (stock_id, trans_no, type, loc_code, - tran_date, person_id, reference, qty, standard_cost, visible, price, - discount_percent) VALUES ('$stock_id', $trans_no, $type, - '$location', '$date', '$person_id', '$reference', $quantity, $std_cost, + + $sql = "INSERT INTO ".TB_PREF."stock_moves (stock_id, trans_no, type, loc_code, + tran_date, person_id, reference, qty, standard_cost, visible, price, + discount_percent) VALUES ('$stock_id', $trans_no, $type, + ".db_escape($location).", '$date', '$person_id', ".db_escape($reference).", $quantity, $std_cost, $show_or_hide, $price, $discount_percent)"; - + if ($error_msg == "") $error_msg = "The stock movement record cannot be inserted"; - + db_query($sql, $error_msg); - - return db_insert_id(); -} + + return db_insert_id(); +} + +function update_stock_move_pid($type, $stock_id, $from, $to, $pid, $cost) +{ + $from = date2sql($from); + $to = date2sql($to); + $sql = "UPDATE ".TB_PREF."stock_moves SET standard_cost=$cost WHERE type=$type + AND stock_id='$stock_id' AND tran_date>='$from' AND tran_date<='$to' AND person_id = $pid"; + db_query($sql, "The stock movement standard_cost cannot be updated"); +} //-------------------------------------------------------------------------------------------------- function get_stock_moves($type, $type_no, $visible=false) { - $sql = "SELECT ".TB_PREF."stock_moves.*, ".TB_PREF."stock_master.description, ".TB_PREF."stock_master.units, + $sql = "SELECT ".TB_PREF."stock_moves.*, ".TB_PREF."stock_master.description, ".TB_PREF."stock_master.units, ".TB_PREF."locations.location_name, ".TB_PREF."stock_master.material_cost + ".TB_PREF."stock_master.labour_cost + ".TB_PREF."stock_master.overhead_cost AS FixedStandardCost FROM ".TB_PREF."stock_moves,".TB_PREF."locations,".TB_PREF."stock_master - WHERE ".TB_PREF."stock_moves.stock_id = ".TB_PREF."stock_master.stock_id - AND ".TB_PREF."locations.loc_code=".TB_PREF."stock_moves.loc_code + WHERE ".TB_PREF."stock_moves.stock_id = ".TB_PREF."stock_master.stock_id + AND ".TB_PREF."locations.loc_code=".TB_PREF."stock_moves.loc_code AND type=$type AND trans_no=$type_no ORDER BY trans_id"; if ($visible) $sql .= " AND ".TB_PREF."stock_moves.visible=1"; - + return db_query($sql, "Could not get stock moves"); } @@ -124,7 +145,7 @@ function void_stock_move($type, $type_no) { $sql = "UPDATE ".TB_PREF."stock_moves SET qty=0, price=0, discount_percent=0, standard_cost=0 WHERE type=$type AND trans_no=$type_no"; - + db_query($sql, "Could not void stock moves"); } @@ -133,15 +154,15 @@ function void_stock_move($type, $type_no) function get_location_name($loc_code) { $sql = "SELECT location_name FROM ".TB_PREF."locations WHERE loc_code='$loc_code'"; - + $result = db_query($sql, "could not retreive the location name for $loc_code"); - + if (db_num_rows($result) == 1) { $row = db_fetch_row($result); return $row[0]; } - + display_db_error("could not retreive the location name for $loc_code", $sql, true); } diff --git a/includes/db/manufacturing_db.inc b/includes/db/manufacturing_db.inc index f9249168..c7c8c5d9 100644 --- a/includes/db/manufacturing_db.inc +++ b/includes/db/manufacturing_db.inc @@ -22,7 +22,7 @@ function get_bom($item) ".TB_PREF."bom.quantity * (".TB_PREF."stock_master.material_cost+ ".TB_PREF."stock_master.labour_cost+ ".TB_PREF."stock_master.overhead_cost) AS ComponentCost FROM (".TB_PREF."workcentres, ".TB_PREF."locations, ".TB_PREF."bom) INNER JOIN ".TB_PREF."stock_master ON ".TB_PREF."bom.component = ".TB_PREF."stock_master.stock_id WHERE ".TB_PREF."bom.parent = '" . $item . "' - AND ".TB_PREF."workcentres.id=CAST(".TB_PREF."bom.workcentre_added AS UNSIGNED) + AND ".TB_PREF."workcentres.id=".TB_PREF."bom.workcentre_added AND ".TB_PREF."bom.loc_code = ".TB_PREF."locations.loc_code ORDER BY ".TB_PREF."bom.id"; return db_query($sql, "The bill of material could not be retrieved"); diff --git a/includes/db/references_db.inc b/includes/db/references_db.inc index 77e688a5..a41597f9 100644 --- a/includes/db/references_db.inc +++ b/includes/db/references_db.inc @@ -5,7 +5,7 @@ function get_reference($type, $id) { $sql = "SELECT * FROM ".TB_PREF."refs WHERE type=$type AND id=$id"; - + return db_query($sql, "could not query reference table"); } @@ -14,8 +14,8 @@ function get_reference($type, $id) function add_reference($type, $id, $reference) { $sql = "INSERT INTO ".TB_PREF."refs (type, id, reference) - VALUES ($type, $id, '" . trim($reference) . "')"; - + VALUES ($type, $id, " . db_escape(trim($reference)) . ")"; + db_query($sql, "could not add reference entry"); } @@ -24,7 +24,7 @@ function add_reference($type, $id, $reference) function delete_reference($type, $id) { $sql = "DELETE FROM ".TB_PREF."refs WHERE type=$type AND id=$id"; - + return db_query($sql, "could not delete from reference table"); } @@ -33,9 +33,9 @@ function delete_reference($type, $id) function find_reference($type, $reference) { $sql = "SELECT id FROM ".TB_PREF."refs WHERE type=$type AND reference='$reference'"; - + $result = db_query($sql, "could not query reference table"); - + return (db_num_rows($result) > 0); } @@ -43,9 +43,9 @@ function find_reference($type, $reference) function save_next_reference($type, $reference) { - $sql = "UPDATE ".TB_PREF."sys_types SET next_reference='" . trim($reference) . "' WHERE type_id = $type"; - - db_query($sql, "The next transaction ref for $type could not be updated"); + $sql = "UPDATE ".TB_PREF."sys_types SET next_reference=" . db_escape(trim($reference)) . " WHERE type_id = $type"; + + db_query($sql, "The next transaction ref for $type could not be updated"); } //-------------------------------------------------------------------------------------------------- @@ -53,9 +53,9 @@ function save_next_reference($type, $reference) function get_next_reference($type) { $sql = "SELECT next_reference FROM ".TB_PREF."sys_types WHERE type_id = $type"; - + $result = db_query($sql,"The last transaction ref for $type could not be retreived"); - + $row = db_fetch_row($result); return $row[0]; } diff --git a/includes/errors.inc b/includes/errors.inc index ed7f281f..04874a39 100644 --- a/includes/errors.inc +++ b/includes/errors.inc @@ -1,25 +1,96 @@ array('bg'=>'#ffcccc', 'txt'=>'#dd2200', 'bd'=>'#cc3300'), + E_USER_WARNING => array('bg'=>'#ffcccc', 'txt'=>'#dd2200', 'bd'=>'#cc3300'), + E_USER_NOTICE => array('bg'=>'#ccffcc', 'txt'=>'#007700', 'bd'=>'#33cc00')); + +//----------------------------------------------------------------------------- +// Error handler - collects all php/user messages for +// display in message box. +// FIX: fatal errors ? + +function error_handler($errno, $errstr, $file, $line) { + global $messages; + + // error_reporting==0 when messages are set off with @ + if ($errno & error_reporting()) + $messages[] = array($errno, $errstr, $file, $line); + + return true; +} +//------------------------------------------------------------------------------ +// Formats system messages before insert them into message
+// FIX center is unused now +function fmt_errors($center=true) { + global $messages, $msg_colors; + + $type = E_USER_NOTICE; + + if (count($messages)) { + $content = ''; + foreach($messages as $msg) { + if ($msg[0]>$type) continue; + if ($msg[0]<$type && $type>E_USER_ERROR) { + $content = ''; // clean notices when we have errors + $type = E_USER_ERROR; // php or user errors + } + $str = $msg[1]; + $c = $msg_colors[$type]; + if ($msg[0]" + .$str."
"; + } + + $str = "
" . _("Account") . "
" + . $content . "

\n"; + + } + else + $str = ''; + + return $str; +} +//----------------------------------------------------------------------------- +// Error box
element. +// +function error_box() { + global $before_box; + + echo "
"; + $before_box = ob_get_clean(); // save html content before error box +// Necessary restart instead of get_contents/clean calls due to a bug in php 4.3.2 + ob_start('output_html'); + echo "
"; +} + function display_db_error($msg, $sql_statement=null, $exit=true) { global $db, $debug; $db_error = db_error_no(); - echo "" . _("DATABASE ERROR :") . " $msg
"; + $str = "" . _("DATABASE ERROR :") . " $msg
"; if ($db_error != 0) { - echo "error code : " . $db_error . "
"; - echo "error message : " . db_error_msg($db) . "
"; + $str .= "error code : " . $db_error . "
"; + $str .= "error message : " . db_error_msg($db) . "
"; } if ($debug == 1) { - echo "sql that failed was : " . $sql_statement . "
"; + $str .= "sql that failed was : " . $sql_statement . "
"; } - echo "

"; - + $str .= "

"; + + trigger_error($str, E_USER_ERROR); + if ($exit) exit; } @@ -30,8 +101,7 @@ function frindly_db_error($db_error) if ($db_error == $db_duplicate_error_code) { - display_error(_("The entered information is a duplicate. Please go back and enter different values.") - . "
" . _("Back") . "", true); + display_error(_("The entered information is a duplicate. Please go back and enter different values.")); return true; } diff --git a/includes/lang/language.php b/includes/lang/language.php index bd7e2082..629a15a0 100644 --- a/includes/lang/language.php +++ b/includes/lang/language.php @@ -35,11 +35,16 @@ class language function set_language($code) { + global $comp_path; + if (isset($_SESSION['languages'][$code]) && $_SESSION['language'] != $_SESSION['languages'][$code]) { - $_SESSION['language'] = $_SESSION['languages'][$code]; - redirect(""); + + // flush cache as we can use several languages in one account + flush_dir($comp_path.'/'.user_company().'/js_cache'); + $_SESSION['language'] = $_SESSION['languages'][$code]; + reload_page(""); } } @@ -89,6 +94,9 @@ get_text::init(); get_text::set_language($lang->code, $lang->encoding); //get_text::add_domain("wa", $path_to_root . "/lang"); get_text::add_domain($lang->code, $path_to_root . "/lang"); +// Unnecessary for ajax calls. +// Due to bug in php 4.3.10 for this version set globally in php.ini +ini_set('default_charset', $_SESSION['language']->encoding); if (!function_exists("_")) { @@ -106,7 +114,7 @@ function _set($key,$value) get_text::set_var($key,$value); } -function redirect($msg) +function reload_page($msg) { // header("Location: $_SERVER['PHP_SELF'].""); // exit; diff --git a/includes/main.inc b/includes/main.inc index 937d9a92..19279f04 100644 --- a/includes/main.inc +++ b/includes/main.inc @@ -8,34 +8,244 @@ include_once($path_to_root . "/includes/systypes.inc"); include_once($path_to_root . "/includes/references.inc"); include_once($path_to_root . "/includes/prefs/sysprefs.inc"); - include_once($path_to_root . "/includes/db/comments_db.inc"); - include_once($path_to_root . "/includes/db/sql_functions.inc"); - - include_once($path_to_root . "/reporting/includes/form_types.inc"); - - include_once($path_to_root . "/admin/db/users_db.inc"); - - function page($title, $no_menu=false, $is_index=false, $onload="", $js="") + include_once($path_to_root . "/includes/db/comments_db.inc"); + include_once($path_to_root . "/includes/db/sql_functions.inc"); + + include_once($path_to_root . "/admin/db/users_db.inc"); + include_once($path_to_root . "/includes/ui/ui_view.inc"); + include_once($path_to_root . "/includes/ui/ui_controls.inc"); + + function page($title, $no_menu=false, $is_index=false, $onload="", $js="", $script_only=false) { - + global $path_to_root; - + $hide_menu = $no_menu; - + include($path_to_root . "/includes/page/header.inc"); - + page_header($title, $no_menu, $is_index, $onload, $js); - } - - function end_page($no_menu=false, $is_index=false) + error_box(); + if($script_only) { + echo ''; + div_start('_page_body', null, true); + } else { + div_start('_page_body'); // whole page content for ajax reloading + } + } + + function end_page($no_menu=false, $is_index=false) { - global $path_to_root; - + global $path_to_root, $Ajax; + $hide_menu = $no_menu; - + + div_end(); // _page_body section include($path_to_root . "/includes/page/footer.inc"); - - page_footer($no_menu, $is_index); + + page_footer($no_menu, $is_index); + } + + function flush_dir($path) { + $dir = opendir($path); + while(false !== ($fname = readdir($dir))) { + if($fname=='.' || $fname=='..') continue; + if(is_dir($path.'/'.$fname)) { + flush_dir($path.'/'.$fname); + @rmdir($path.'/'.$fname); + } else + @unlink($path.'/'.$fname); + } + } + + function cache_js_file($fpath, $text) + { + global $go_debug; + + if(!$go_debug) $text = js_compress($text); + + $file = fopen($fpath, 'w'); + if (!$file) return false; + if (!fwrite($file, $text)) return false; + return fclose($file); + + } + + function add_js_file($filename) + { + global $js_static; + + $search = array_search($filename, $js_static); + if ($search === false || $search === null) // php>4.2.0 returns null + $js_static[] = $filename; + } + + function add_js_ufile($filename) + { + global $js_userlib; + + $search = array_search($filename, $js_userlib); + if ($search === false || $search === null) // php>4.2.0 returns null + $js_userlib[] = $filename; + } + + function add_js_source($text) + { + global $js_lib; + + $search = array_search($text, $js_lib); + if ($search === false || $search === null) // php>4.2.0 returns null + $js_lib[] = $text; } +/** + * Compresses the Javascript code for more efficient delivery. + * copyright (c) 2005 by Jared White & J. Max Wilson + * http://www.xajaxproject.org + * Added removing comments from output. + * Warning: Fails on RegExp with quotes - use new RegExp() in this case. + */ +function js_compress($sJS) +{ + //remove windows cariage returns + $sJS = str_replace("\r","",$sJS); + + //array to store replaced literal strings + $literal_strings = array(); + + //explode the string into lines + $lines = explode("\n",$sJS); + //loop through all the lines, building a new string at the same time as removing literal strings + $clean = ""; + $inComment = false; + $literal = ""; + $inQuote = false; + $escaped = false; + $quoteChar = ""; + + for($i=0;$i \ No newline at end of file diff --git a/includes/page/footer.inc b/includes/page/footer.inc index bb2759c6..7528b7bf 100644 --- a/includes/page/footer.inc +++ b/includes/page/footer.inc @@ -1,44 +1,17 @@ \n"; - else - echo "\n"; - echo ""; - if (isset($_SESSION['wa_current_user'])) - echo "\n"; - echo "
" . Today() . " | " . Now() . "
\n"; - } - echo "
\n"; - echo "\n"; - if ($no_menu == false) - { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - if ($allow_demo_mode==true) - { - echo "\n"; - //echo "\n"; - echo "\n"; - } - echo "

\n"; - } + include_once($path_to_root."/themes/".user_theme()."/renderer.php"); + $rend = new renderer(); + $rend->menu_footer($no_menu, $is_index); echo "\n"; } diff --git a/includes/page/header.inc b/includes/page/header.inc index c421a665..97529207 100644 --- a/includes/page/header.inc +++ b/includes/page/header.inc @@ -1,12 +1,85 @@ '; + } + foreach($js_userlib as $jsfile) + { + $js .= ''; + } + + foreach($js_lib as $text) + { + $js .= $text; + } + echo $js; +} + function page_header($title, $no_menu=false, $is_index=false, $onload="", $js="") { // titles and screen header - global $db_connections, $path_to_root, $def_app; + global $path_to_root, $def_app, $use_popup_windows, $help_base_url; + + if (in_ajax()) + return; // just for speed up + $theme = user_theme(); $local_path_to_root = $path_to_root; + if ($help_base_url != null && $use_popup_windows && $js == '') + { + if (!function_exists('get_js_open_window')) + { + include_once($path_to_root.'/includes/ui/ui_view.inc'); + } + add_js_source(get_js_open_window(900, 500)); + } + if ($js!='') + add_js_source($js); + if (!isset($no_menu)) { $no_menu = false; @@ -15,68 +88,37 @@ function page_header($title, $no_menu=false, $is_index=false, $onload="", $js="" session_register("sel_app"); if (isset($_SESSION["App"]) && is_object($_SESSION["App"]) && isset($_SESSION["App"]->selected_application) && $_SESSION["App"]->selected_application != "") - $sel_app = $_SESSION["App"]->selected_application; + $sel_app = $_SESSION["App"]->selected_application; elseif (isset($_SESSION["sel_app"]) && $_SESSION["sel_app"] != "") $sel_app = $_SESSION["sel_app"]; else $sel_app = $def_app; $_SESSION["sel_app"] = $sel_app; + if (isset($_SESSION["App"]) && is_object($_SESSION["App"])) + $_SESSION["App"]->selected_application = $sel_app; + $encoding = $_SESSION['language']->encoding; - echo "dir . "' >"; - echo "$title"; - $encoding = $_SESSION['language']->encoding; - $local_stylesheet = $_SESSION['language']->get_stylesheet(); - echo ""; - echo " \n"; + if (!headers_sent()){ + header("Content-type: text/html; charset='$encoding'"); + } + echo "\n"; + echo "dir . "' >\n"; + echo "$title"; + $local_stylesheet = $_SESSION['language']->get_stylesheet(); + echo ""; + echo " \n"; if (file_exists($local_path_to_root. "/".$local_stylesheet)) - echo " \n"; - if ($js != "") - echo $js; + echo " \n"; + send_scripts($js); + echo " \n"; if ($onload == "") echo ""; else echo ""; - echo "\n"; - echo "\n"; - echo ""; end_row(); end_table(1); -start_table(); -start_row(); -submit_cells('Update', _("Update")); -if ($_SESSION['adj_items']->count_items() >= 1) -{ - submit_cells('Process', _("Process Adjustment")); -} -end_row(); -end_table(); +submit_center_first('Update', _("Update"), '', null); +submit_center_last('Process', _("Process Adjustment"), '', true); end_form(); end_page(); diff --git a/inventory/cost_update.php b/inventory/cost_update.php index 845ec849..ff58f9eb 100644 --- a/inventory/cost_update.php +++ b/inventory/cost_update.php @@ -26,22 +26,24 @@ if (isset($_GET['stock_id'])) } //-------------------------------------------------------------------------------------- - if (isset($_POST['UpdateData'])) { - $old_cost = $_POST['OldMaterialCost'] + $_POST['OldLabourCost'] + $_POST['OldLabourCost']; - $new_cost = $_POST['material_cost'] + $_POST['labour_cost'] + $_POST['overhead_cost']; + $old_cost = $_POST['OldMaterialCost'] + $_POST['OldLabourCost'] + + $_POST['OldOverheadCost']; + $new_cost = input_num('material_cost') + input_num('labour_cost') + + input_num('overhead_cost'); $should_update = true; - if (!is_numeric($_POST['material_cost']) || !is_numeric($_POST['labour_cost']) || - !is_numeric($_POST['overhead_cost'])) + if (!check_num('material_cost') || !check_num('labour_cost') || + !check_num('overhead_cost')) { display_error( _("The entered cost is not numeric.")); + set_focus('material_cost'); $should_update = false; - } - elseif ($old_cost == $new_cost) + } + elseif ($old_cost == $new_cost) { display_error( _("The new cost is the same as the old cost. Cost was not updated.")); $should_update = false; @@ -49,8 +51,9 @@ if (isset($_POST['UpdateData'])) if ($should_update) { - $update_no = stock_cost_update($_POST['stock_id'], $_POST['material_cost'], - $_POST['labour_cost'], $_POST['overhead_cost'], $old_cost); + $update_no = stock_cost_update($_POST['stock_id'], + input_num('material_cost'), input_num('labour_cost'), + input_num('overhead_cost'), $old_cost); display_note(_("Cost has been updated.")); @@ -61,6 +64,8 @@ if (isset($_POST['UpdateData'])) } } +if (isset($_POST['_stock_id_update'])) + $Ajax->activate('cost_table'); //----------------------------------------------------------------------------------------- start_form(false, true); @@ -74,41 +79,44 @@ stock_costable_items_list('stock_id', $_POST['stock_id'], false, true); echo "
"; set_global_stock_item($_POST['stock_id']); -$sql = "SELECT description, units, last_cost, actual_cost, material_cost, labour_cost, +$sql = "SELECT description, units, material_cost, labour_cost, overhead_cost, mb_flag FROM ".TB_PREF."stock_master WHERE stock_id='" . $_POST['stock_id'] . "' - GROUP BY description, units, last_cost, actual_cost, material_cost, labour_cost, overhead_cost, mb_flag"; + GROUP BY description, units, material_cost, labour_cost, overhead_cost, mb_flag"; $result = db_query($sql); check_db_error("The cost details for the item could not be retrieved", $sql); $myrow = db_fetch($result); - +div_start('cost_table'); hidden("OldMaterialCost", $myrow["material_cost"]); hidden("OldLabourCost", $myrow["labour_cost"]); hidden("OldOverheadCost", $myrow["overhead_cost"]); start_table($table_style2); -label_row(_("Last Cost"), number_format2($myrow["last_cost"],user_price_dec()), - "class='tableheader2'", "nowrap align=right"); -text_row(_("Standard Material Cost Per Unit"), "material_cost", - number_format($myrow["material_cost"],user_price_dec()), "", "", "class='tableheader2'"); +$_POST['material_cost'] = price_format($myrow["material_cost"]); +$_POST['labour_cost'] = price_format($myrow["labour_cost"]); +$_POST['overhead_cost'] = price_format($myrow["overhead_cost"]); + +amount_row(_("Standard Material Cost Per Unit"), "material_cost", + null, "class='tableheader2'"); if ($myrow["mb_flag"]=='M') { - text_row(_("Standard Labour Cost Per Unit"), "labour_cost", - number_format($myrow["labour_cost"],user_price_dec()), "", "", "class='tableheader2'"); - text_row(_("Standard Overhead Cost Per Unit"), "overhead_cost", - number_format($myrow["overhead_cost"],user_price_dec()), "", "", "class='tableheader2'"); -} -else + amount_row(_("Standard Labour Cost Per Unit"), "labour_cost", + null, "class='tableheader2'"); + amount_row(_("Standard Overhead Cost Per Unit"), "overhead_cost", + null, "class='tableheader2'"); +} +else { hidden("labour_cost", 0); hidden("overhead_cost", 0); } end_table(1); +div_end(); submit_center('UpdateData', _("Update")); end_form(); diff --git a/inventory/includes/db/items_adjust_db.inc b/inventory/includes/db/items_adjust_db.inc index c245bb0f..bab75ba7 100644 --- a/inventory/includes/db/items_adjust_db.inc +++ b/inventory/includes/db/items_adjust_db.inc @@ -5,28 +5,26 @@ function add_stock_adjustment($items, $location, $date_, $type, $increase, $reference, $memo_) { begin_transaction(); - + $adj_id = get_next_trans_no(systypes::inventory_adjustment()); - - foreach ($items as $line_item) + + foreach ($items as $line_item) { - + if (!$increase) $line_item->quantity = -$line_item->quantity; - - add_stock_adjustment_item($adj_id, $line_item->stock_id, $location, $date_, $type, $reference, + + add_stock_adjustment_item($adj_id, $line_item->stock_id, $location, $date_, $type, $reference, $line_item->quantity, $line_item->standard_cost, $memo_); } - - add_comments(systypes::inventory_adjustment(), $adj_id, $date_, $memo_); - - add_forms_for_sys_type(systypes::inventory_adjustment(), $adj_id, $increase, $location); - - references::save_last($reference, systypes::inventory_adjustment()); - + + add_comments(systypes::inventory_adjustment(), $adj_id, $date_, $memo_); + + references::save_last($reference, systypes::inventory_adjustment()); + commit_transaction(); - return $adj_id; + return $adj_id; } //------------------------------------------------------------------------------------------------------------- @@ -42,39 +40,39 @@ function void_stock_adjustment($type_no) function get_stock_adjustment_items($trans_no) { $result = get_stock_moves(systypes::inventory_adjustment(), $trans_no); - - if (db_num_rows($result) == 0) + + if (db_num_rows($result) == 0) { - return null; + return null; } - + return $result; } //-------------------------------------------------------------------------------------------------- -function add_stock_adjustment_item($adj_id, $stock_id, $location, $date_, $type, $reference, +function add_stock_adjustment_item($adj_id, $stock_id, $location, $date_, $type, $reference, $quantity, $standard_cost, $memo_) { $mb_flag = get_mb_flag($stock_id); - + if (is_service($mb_flag)) { - display_db_error("Cannot do inventory adjustment for Service item : $stock_id", ""); - } - + display_db_error("Cannot do inventory adjustment for Service item : $stock_id", ""); + } + add_stock_move(systypes::inventory_adjustment(), $stock_id, $adj_id, $location, - $date_, $reference, $quantity, $standard_cost, $type); + $date_, $reference, $quantity, $standard_cost, $type); if ($standard_cost > 0) { - + $stock_gl_codes = get_stock_gl_code($stock_id); - - add_gl_trans_std_cost(systypes::inventory_adjustment(), $adj_id, $date_, + + add_gl_trans_std_cost(systypes::inventory_adjustment(), $adj_id, $date_, $stock_gl_codes['adjustment_account'], $stock_gl_codes['dimension_id'], $stock_gl_codes['dimension2_id'], $memo_, ($standard_cost * -($quantity))); - - add_gl_trans_std_cost(systypes::inventory_adjustment(), $adj_id, $date_, $stock_gl_codes['inventory_account'], 0, 0, $memo_, ($standard_cost * $quantity)); + + add_gl_trans_std_cost(systypes::inventory_adjustment(), $adj_id, $date_, $stock_gl_codes['inventory_account'], 0, 0, $memo_, ($standard_cost * $quantity)); } } diff --git a/inventory/includes/db/items_category_db.inc b/inventory/includes/db/items_category_db.inc index 5c93e317..8883b5f2 100644 --- a/inventory/includes/db/items_category_db.inc +++ b/inventory/includes/db/items_category_db.inc @@ -3,43 +3,43 @@ function add_item_category($description) { - $sql = "INSERT INTO ".TB_PREF."stock_category (description) - VALUES ('$description')"; - + $sql = "INSERT INTO ".TB_PREF."stock_category (description) + VALUES (".db_escape($description).")"; + db_query($sql,"an item category could not be added"); } function update_item_category($ItemCategory, $description) { - $sql = "UPDATE ".TB_PREF."stock_category SET description = '$description' - WHERE category_id = '$ItemCategory'"; - - db_query($sql,"an item category could not be updated"); + $sql = "UPDATE ".TB_PREF."stock_category SET description = ".db_escape($description)." + WHERE category_id = '$ItemCategory'"; + + db_query($sql,"an item category could not be updated"); } function delete_item_category($ItemCategory) { - $sql="DELETE FROM ".TB_PREF."stock_category WHERE category_id='$ItemCategory'"; - - db_query($sql,"an item category could not be deleted"); + $sql="DELETE FROM ".TB_PREF."stock_category WHERE category_id='$ItemCategory'"; + + db_query($sql,"an item category could not be deleted"); } function get_item_category($ItemCategory) { - $sql="SELECT * FROM ".TB_PREF."stock_category WHERE category_id='$ItemCategory'"; - + $sql="SELECT * FROM ".TB_PREF."stock_category WHERE category_id='$ItemCategory'"; + $result = db_query($sql,"an item category could not be retrieved"); - - return db_fetch($result); + + return db_fetch($result); } function get_category_name($id) { $sql = "SELECT description FROM ".TB_PREF."stock_category WHERE category_id=$id"; - + $result = db_query($sql, "could not get sales type"); - + $row = db_fetch_row($result); return $row[0]; } diff --git a/inventory/includes/db/items_db.inc b/inventory/includes/db/items_db.inc index a4645584..f9f60a47 100644 --- a/inventory/includes/db/items_db.inc +++ b/inventory/includes/db/items_db.inc @@ -4,8 +4,8 @@ function update_item($stock_id, $description, $long_description, $category_id, $ $sales_account, $inventory_account, $cogs_account, $adjustment_account, $assembly_account, $dimension_id, $dimension2_id) { - $sql = "UPDATE ".TB_PREF."stock_master SET long_description='$long_description', - description='$description', + $sql = "UPDATE ".TB_PREF."stock_master SET long_description=".db_escape($long_description).", + description=".db_escape($description).", category_id='$category_id', sales_account='$sales_account', inventory_account='$inventory_account', @@ -27,7 +27,7 @@ function add_item($stock_id, $description, $long_description, $category_id, $tax $sql = "INSERT INTO ".TB_PREF."stock_master (stock_id, description, long_description, category_id, tax_type_id, units, mb_flag, sales_account, inventory_account, cogs_account, adjustment_account, assembly_account, dimension_id, dimension2_id) - VALUES ('$stock_id', '$description', '$long_description', + VALUES (".db_escape($stock_id).", ".db_escape($description).", ".db_escape($long_description).", '$category_id', $tax_type_id, '$units', '$mb_flag', '$sales_account', '$inventory_account', '$cogs_account', '$adjustment_account', '$assembly_account', $dimension_id, $dimension2_id)"; diff --git a/inventory/includes/db/items_locations_db.inc b/inventory/includes/db/items_locations_db.inc index 0cdb1e0c..66120c30 100644 --- a/inventory/includes/db/items_locations_db.inc +++ b/inventory/includes/db/items_locations_db.inc @@ -2,16 +2,16 @@ function add_item_location($loc_code, $location_name, $delivery_address, $phone, $fax, $email, $contact) { - $sql = "INSERT INTO ".TB_PREF."locations (loc_code, location_name, delivery_address, phone, fax, email, contact) - VALUES ('$loc_code', '$location_name', '$delivery_address', '$phone', '$fax', '$email', '$contact')"; - + $sql = "INSERT INTO ".TB_PREF."locations (loc_code, location_name, delivery_address, phone, fax, email, contact) + VALUES (".db_escape($loc_code).", ".db_escape($location_name).", ".db_escape($delivery_address).", ".db_escape($phone).", ".db_escape($fax).", ".db_escape($email).", ".db_escape($contact).")"; + db_query($sql,"a location could not be added"); - + /* Also need to add loc_stock records for all existing items */ - $sql = "INSERT INTO ".TB_PREF."loc_stock (loc_code, stock_id, reorder_level) + $sql = "INSERT INTO ".TB_PREF."loc_stock (loc_code, stock_id, reorder_level) SELECT '$loc_code', ".TB_PREF."stock_master.stock_id, 0 FROM ".TB_PREF."stock_master"; - - db_query($sql,"a location could not be added"); + + db_query($sql,"a location could not be added"); } //------------------------------------------------------------------------------------ @@ -19,54 +19,54 @@ function add_item_location($loc_code, $location_name, $delivery_address, $phone, function update_item_location($loc_code, $location_name, $delivery_address, $phone, $fax, $email, $contact) { - $sql = "UPDATE ".TB_PREF."locations SET location_name='$location_name', - delivery_address='$delivery_address', - phone='$phone', fax='$fax', - email='$email', contact='$contact' + $sql = "UPDATE ".TB_PREF."locations SET location_name=".db_escape($location_name).", + delivery_address=".db_escape($delivery_address).", + phone=".db_escape($phone).", fax=".db_escape($fax).", + email=".db_escape($email).", contact=".db_escape($contact)." WHERE loc_code = '$loc_code'"; - - db_query($sql,"a location could not be updated"); + + db_query($sql,"a location could not be updated"); } //------------------------------------------------------------------------------------ function delete_item_location($item_location) { - $sql="DELETE FROM ".TB_PREF."locations WHERE loc_code='$item_location'"; + $sql="DELETE FROM ".TB_PREF."locations WHERE loc_code='$item_location'"; db_query($sql,"a location could not be deleted"); - + $sql = "DELETE FROM ".TB_PREF."loc_stock WHERE loc_code ='$item_location'"; - db_query($sql,"a location could not be deleted"); + db_query($sql,"a location could not be deleted"); } //------------------------------------------------------------------------------------ function get_item_location($item_location) { - $sql="SELECT * FROM ".TB_PREF."locations WHERE loc_code='$item_location'"; - + $sql="SELECT * FROM ".TB_PREF."locations WHERE loc_code='$item_location'"; + $result = db_query($sql,"a location could not be retrieved"); - - return db_fetch($result); + + return db_fetch($result); } //------------------------------------------------------------------------------------ function set_reorder_level($stock_id, $loc_code, $reorder_level) { - $sql = "UPDATE ".TB_PREF."loc_stock SET reorder_level = $reorder_level - WHERE stock_id = '$stock_id' AND loc_code = '$loc_code'"; - - db_query($sql,"an item reorder could not be set"); + $sql = "UPDATE ".TB_PREF."loc_stock SET reorder_level = $reorder_level + WHERE stock_id = '$stock_id' AND loc_code = '$loc_code'"; + + db_query($sql,"an item reorder could not be set"); } //------------------------------------------------------------------------------------ function get_loc_details($stock_id) { - $sql = "SELECT ".TB_PREF."loc_stock.*, ".TB_PREF."locations.location_name - FROM ".TB_PREF."loc_stock, ".TB_PREF."locations - WHERE ".TB_PREF."loc_stock.loc_code=".TB_PREF."locations.loc_code + $sql = "SELECT ".TB_PREF."loc_stock.*, ".TB_PREF."locations.location_name + FROM ".TB_PREF."loc_stock, ".TB_PREF."locations + WHERE ".TB_PREF."loc_stock.loc_code=".TB_PREF."locations.loc_code AND ".TB_PREF."loc_stock.stock_id = '" . $stock_id . "' ORDER BY ".TB_PREF."loc_stock.loc_code"; return db_query($sql,"an item reorder could not be retreived"); } diff --git a/inventory/includes/db/items_transfer_db.inc b/inventory/includes/db/items_transfer_db.inc index 4d4a438b..67bbdc7c 100644 --- a/inventory/includes/db/items_transfer_db.inc +++ b/inventory/includes/db/items_transfer_db.inc @@ -5,24 +5,22 @@ function add_stock_transfer($Items, $location_from, $location_to, $date_, $type, $reference, $memo_) { begin_transaction(); - + $transfer_id = get_next_trans_no(systypes::location_transfer()); - - foreach ($Items as $line_item) + + foreach ($Items as $line_item) { - add_stock_transfer_item($transfer_id, $line_item->stock_id, $location_from, + add_stock_transfer_item($transfer_id, $line_item->stock_id, $location_from, $location_to, $date_, $type, $reference, $line_item->quantity); } - - add_comments(systypes::location_transfer(), $transfer_id, $date_, $memo_); - - add_forms_for_sys_type(systypes::location_transfer(), $transfer_id, $location_from, $location_to); - - references::save_last($reference, systypes::location_transfer()); - + + add_comments(systypes::location_transfer(), $transfer_id, $date_, $memo_); + + references::save_last($reference, systypes::location_transfer()); + commit_transaction(); - return $transfer_id; + return $transfer_id; } //------------------------------------------------------------------------------------------------------------- @@ -32,15 +30,15 @@ function add_stock_transfer($Items, $location_from, $location_to, $date_, $type, // std_cost is in HOME currency // it seems the standard_cost field is not used at all -function add_stock_transfer_item($transfer_id, $stock_id, $location_from, $location_to, +function add_stock_transfer_item($transfer_id, $stock_id, $location_from, $location_to, $date_, $type, $reference, $quantity) { add_stock_move(systypes::location_transfer(), $stock_id, $transfer_id, $location_from, - $date_, $reference, -$quantity, 0, $type); - + $date_, $reference, -$quantity, 0, $type); + add_stock_move(systypes::location_transfer(), $stock_id, $transfer_id, $location_to, - $date_, $reference, $quantity, 0, $type); - + $date_, $reference, $quantity, 0, $type); + } //------------------------------------------------------------------------------------------------------------- @@ -48,17 +46,17 @@ function add_stock_transfer_item($transfer_id, $stock_id, $location_from, $locat function get_stock_transfer($trans_no) { $result = get_stock_transfer_items($trans_no); - if (db_num_rows($result) < 2) + if (db_num_rows($result) < 2) { - display_db_error("transfer with less than 2 items : $trans_no", ""); + display_db_error("transfer with less than 2 items : $trans_no", ""); } - + // this function is very bad that it assumes that 1st record and 2nd record contain the // from and to locations - if get_stock_moves uses a different ordering than trans_no then // it will bomb $move1 = db_fetch($result); $move2 = db_fetch($result); - + // return an array of (From, To) if ($move1['qty'] < 0) return array($move1, $move2); @@ -71,12 +69,12 @@ function get_stock_transfer($trans_no) function get_stock_transfer_items($trans_no) { $result = get_stock_moves(systypes::location_transfer(), $trans_no); - - if (db_num_rows($result) == 0) + + if (db_num_rows($result) == 0) { - return null; + return null; } - + return $result; } diff --git a/inventory/includes/db/items_units_db.inc b/inventory/includes/db/items_units_db.inc new file mode 100644 index 00000000..1f63252a --- /dev/null +++ b/inventory/includes/db/items_units_db.inc @@ -0,0 +1,67 @@ + 0); +} + +function get_all_item_units() { + $sql = "SELECT * FROM ".TB_PREF."item_units ORDER BY name"; + return db_query($sql, "could not get stock categories"); +} +// 2008-06-15. Added Joe Hunt to get a measure of unit by given stock_id +function get_unit_dec($stock_id) +{ + $sql = "SELECT decimals FROM ".TB_PREF."item_units, ".TB_PREF."stock_master + WHERE abbr=units AND stock_id='$stock_id' LIMIT 1"; + $result = db_query($sql, "could not get unit decimals"); + + $row = db_fetch_row($result); + return $row[0]; +} + +?> \ No newline at end of file diff --git a/inventory/includes/db/movement_types_db.inc b/inventory/includes/db/movement_types_db.inc index de9626f8..73c19a21 100644 --- a/inventory/includes/db/movement_types_db.inc +++ b/inventory/includes/db/movement_types_db.inc @@ -2,41 +2,41 @@ function add_movement_type($name) { - $sql = "INSERT INTO ".TB_PREF."movement_types (name) - VALUES ('$name')"; - - db_query($sql, "could not add item movement type"); + $sql = "INSERT INTO ".TB_PREF."movement_types (name) + VALUES (".db_escape($name).")"; + + db_query($sql, "could not add item movement type"); } function update_movement_type($type_id, $name) { - $sql = "UPDATE ".TB_PREF."movement_types SET name='$name' + $sql = "UPDATE ".TB_PREF."movement_types SET name=".db_escape($name)." WHERE id=$type_id"; - - db_query($sql, "could not update item movement type"); + + db_query($sql, "could not update item movement type"); } function get_all_movement_type() { $sql = "SELECT * FROM ".TB_PREF."movement_types"; - + return db_query($sql, "could not get all item movement type"); -} +} function get_movement_type($type_id) { $sql = "SELECT * FROM ".TB_PREF."movement_types WHERE id=$type_id"; - + $result = db_query($sql, "could not get item movement type"); - + return db_fetch($result); } function delete_movement_type($type_id) { $sql="DELETE FROM ".TB_PREF."movement_types WHERE id=$type_id"; - - db_query($sql, "could not delete item movement type"); + + db_query($sql, "could not delete item movement type"); } ?> \ No newline at end of file diff --git a/inventory/includes/inventory_db.inc b/inventory/includes/inventory_db.inc index b48fc54a..1faf253f 100644 --- a/inventory/includes/inventory_db.inc +++ b/inventory/includes/inventory_db.inc @@ -12,5 +12,6 @@ include_once($path_to_root . "/inventory/includes/db/items_locations_db.inc"); include_once($path_to_root . "/inventory/includes/db/movement_types_db.inc"); include_once($path_to_root . "/inventory/includes/db/items_adjust_db.inc"); include_once($path_to_root . "/inventory/includes/db/items_transfer_db.inc"); +include_once($path_to_root . "/inventory/includes/db/items_units_db.inc"); ?> \ No newline at end of file diff --git a/inventory/includes/item_adjustments_ui.inc b/inventory/includes/item_adjustments_ui.inc index ce8762f1..6d0a7740 100644 --- a/inventory/includes/item_adjustments_ui.inc +++ b/inventory/includes/item_adjustments_ui.inc @@ -7,21 +7,10 @@ include_once($path_to_root . "/includes/ui/items_cart.inc"); function add_to_order(&$order, $new_item, $new_item_qty, $standard_cost) { - $allready_on_order = 0; - - foreach ($order->line_items as $order_item) - { - if (strcasecmp($order_item->stock_id, $new_item) == 0) - { - $allready_on_order = 1; - display_error(_("For Part :") . $new_item . " " . "This item is already on this order. You can change the quantity ordered of the existing line if necessary."); - } - } - - if ($allready_on_order != 1) - { - $order->add_to_cart ($new_item, $new_item_qty, $standard_cost); - } /* end of if not already on the order */ + if ($order->find_cart_item($new_item)) + display_error(_("For Part :") . $new_item . " " . "This item is already on this order. You can change the quantity ordered of the existing line if necessary."); + else + $order->add_to_cart (count($order->line_items), $new_item, $new_item_qty, $standard_cost); } //-------------------------------------------------------------------------------- @@ -29,17 +18,17 @@ function add_to_order(&$order, $new_item, $new_item_qty, $standard_cost) function display_order_header(&$order) { global $table_style2; - + start_table("width=70% $table_style2"); // outer table - echo ""; + echo ""; end_table(1); // outer table } @@ -70,97 +59,110 @@ function display_adjustment_items($title, &$order) global $table_style, $path_to_root; display_heading($title); + div_start('items_table'); start_table("$table_style width=80%"); - $th = array(_("Item Code"), _("Item Description"), _("Quantity"), + $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"), _("Unit Cost"), _("Total")); + if ( count($order->line_items)) $th[] = ''; + table_header($th); $total = 0; $k = 0; //row colour counter - foreach ($order->line_items as $stock_item) + $id = find_submit('Edit'); + foreach ($order->line_items as $line_no=>$stock_item) { - $quantity = number_format2($stock_item->quantity,user_qty_dec()); - $total += ($stock_item->standard_cost * $stock_item->quantity); - if (!isset($_GET['Edit']) || $_GET['Edit'] != $stock_item->stock_id) + if ($id != $line_no) { alt_table_row_color($k); - label_cell("$stock_item->stock_id"); + view_stock_status_cell($stock_item->stock_id); label_cell($stock_item->item_description); - label_cell($quantity, "nowrap align=right"); + qty_cell($stock_item->quantity, false, get_qty_dec($stock_item->stock_id)); label_cell($stock_item->units); amount_cell($stock_item->standard_cost); amount_cell($stock_item->standard_cost * $stock_item->quantity); - edit_link_cell(SID . "Edit=$stock_item->stock_id"); - delete_link_cell(SID . "Delete=$stock_item->stock_id"); + edit_button_cell("Edit$line_no", _("Edit"), + _('Edit document line')); + edit_button_cell("Delete$line_no", _("Delete"), + _('Remove line from document')); end_row(); - } - else + } + else { - adjustment_edit_item_controls($order, $stock_item->stock_id); + adjustment_edit_item_controls($order, $line_no); } } - if (!isset($_GET['Edit'])) + if ($id == -1) adjustment_edit_item_controls($order); label_row(_("Total"), number_format2($total,user_price_dec()), "colspan=5", "align=right"); end_table(); + div_end(); } //--------------------------------------------------------------------------------- -function adjustment_edit_item_controls(&$order, $stock_id=null) +function adjustment_edit_item_controls(&$order, $line_no=-1) { + global $Ajax; start_row(); - if (isset($_GET['Edit']) and $stock_id!=null) + $id = find_submit('Edit'); + if ($line_no != -1 && $line_no == $id) { - if (!isset($_POST['stock_id'])) - $_POST['stock_id'] = $order->line_items[$stock_id]->stock_id; - if (!isset($_POST['qty']) OR ($_POST['qty']=="")) - $_POST['qty'] = $order->line_items[$stock_id]->quantity; - if (!isset($_POST['std_cost']) OR ($_POST['std_cost']=="")) - $_POST['std_cost'] = $order->line_items[$stock_id]->standard_cost; - - $_POST['units'] = $order->line_items[$stock_id]->units; + $_POST['stock_id'] = $order->line_items[$id]->stock_id; + $_POST['qty'] = qty_format($order->line_items[$id]->quantity, + $order->line_items[$id]->stock_id, $dec); + $_POST['std_cost'] = price_format($order->line_items[$id]->standard_cost); + $_POST['units'] = $order->line_items[$id]->units; hidden('stock_id', $_POST['stock_id']); label_cell($_POST['stock_id']); - label_cell($order->line_items[$stock_id]->item_description); + label_cell($order->line_items[$id]->item_description, 'nowrap'); + $Ajax->activate('items_table'); } else { - echo ""; + stock_costable_items_list_cells(null, 'stock_id', null, false, true); + if(isset($_POST['_stock_id_update'])) { + $Ajax->activate('units'); + $Ajax->activate('qty'); + $Ajax->activate('std_cost'); + } $item_info = get_item_edit_info($_POST['stock_id']); - $_POST['qty'] = 0; - $_POST['std_cost'] = $item_info["standard_cost"]; + $_POST['qty'] = qty_format(0, $_POST['stock_id'], $dec); + $_POST['std_cost'] = price_format($item_info["standard_cost"]); $_POST['units'] = $item_info["units"]; } - text_cells(null, 'qty', $_POST['qty'], 13, 15); + qty_cells(null, 'qty', $_POST['qty'], null, null, $dec); + label_cell($_POST['units'], '', 'units'); - label_cell($_POST['units']); - text_cells(null, 'std_cost', $_POST['std_cost'], 15, 14); + amount_cells(null, 'std_cost', $_POST['std_cost']); label_cell(" "); - if (isset($_GET['Edit'])) + if ($id != -1) { - submit_cells('UpdateItem', _("Update")); - submit_cells('CancelItemChanges', _("Cancel")); - } - else + edit_button_cell('UpdateItem', _("Update"), + _('Confirm changes')); + edit_button_cell('CancelItemChanges', _("Cancel"), + _('Cancel changes')); + hidden('LineNo', $line_no); + set_focus('qty'); + } + else { - submit_cells('AddItem', _("Add Item"), "colspan=2"); + submit_cells('AddItem', _("Add Item"), "colspan=2", + _('Add new item to document'), true); } end_row(); diff --git a/inventory/includes/stock_transfers_ui.inc b/inventory/includes/stock_transfers_ui.inc index 05b7304f..63d7c970 100644 --- a/inventory/includes/stock_transfers_ui.inc +++ b/inventory/includes/stock_transfers_ui.inc @@ -7,21 +7,10 @@ include_once($path_to_root . "/includes/ui/items_cart.inc"); function add_to_order(&$order, $new_item, $new_item_qty, $standard_cost) { - $already_on_order = 0; - - foreach ($order->line_items as $order_item) - { - if (strcasecmp($order_item->stock_id, $new_item) == 0) - { - $already_on_order = 1; - display_error(_("For Part :") . $new_item . " " . "This item is already on this order. You can change the quantity ordered of the existing line if necessary."); - } - } - - if ($already_on_order != 1) - { - $order->add_to_cart ($new_item, $new_item_qty, $standard_cost); - } /* end of if not already on the order */ + if ($order->find_cart_item($new_item)) + display_error(_("For Part :") . $new_item . " " . "This item is already on this order. You can change the quantity ordered of the existing line if necessary."); + else + $order->add_to_cart (count($order->line_items), $new_item, $new_item_qty, $standard_cost); } //-------------------------------------------------------------------------------- @@ -43,7 +32,7 @@ function display_order_header(&$order) echo "
\n"; - - echo "\n"; - echo "\n"; - echo "
\n"; - echo "\n"; - echo "\n"; - echo "
\n"; - if (!$no_menu) - { - echo "
"; - echo ""; - - echo "
"; - - echo ""; - echo ""; - echo "
" . $db_connections[$_SESSION["wa_current_user"]->company]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "" . _("Logout") . ""; - echo "
"; - } - - echo "
"; - - if ($title && !$no_menu && !$is_index) - { - echo "
$title
"; - } - - if (!$is_index) - echo "
"; + include_once($local_path_to_root."/themes/".user_theme()."/renderer.php"); + $rend = new renderer(); + $rend->menu_header($title, $no_menu, $is_index); } ?> \ No newline at end of file diff --git a/includes/prefs/userprefs.inc b/includes/prefs/userprefs.inc index 63a0828d..1bd5b022 100644 --- a/includes/prefs/userprefs.inc +++ b/includes/prefs/userprefs.inc @@ -19,6 +19,7 @@ class user_prefs var $dec_sep; var $theme; var $pagesize; // for printing + var $show_hints; function user_prefs(&$user) { @@ -39,6 +40,7 @@ class user_prefs $this->dec_sep = $user["dec_sep"]; $this->theme = $user["theme"]; $this->pagesize = $user["page_size"]; + $this->show_hints = $user["show_hints"]; } function language() @@ -118,6 +120,11 @@ class user_prefs return $this->pagesize; } + function show_hints() + { + return $this->show_hints; + } + function set_dec($price_dec, $qty_dec, $exrate_dec, $percent_dec, $showgl, $showcodes) { $this->price_dec = $price_dec; diff --git a/includes/reserved.inc b/includes/reserved.inc index 5f376ade..14b2d8cc 100644 --- a/includes/reserved.inc +++ b/includes/reserved.inc @@ -4,7 +4,7 @@ $any_item = 'AN'; $any_number = -1; -$all_option = "___ALL___"; +$all_option = ''; $all_option_numeric = -1; class reserved_words diff --git a/includes/session.inc b/includes/session.inc index d3ddf600..34e01cd2 100644 --- a/includes/session.inc +++ b/includes/session.inc @@ -9,20 +9,54 @@ | by Joe Hunt Consulting | \--------------------------------------------------*/ - if (!isset($path_to_root)) + function output_html($text) + { + global $before_box, $Ajax, $messages; + // Fatal errors are not send to error_handler, + // so we must check the output + if ($text && preg_match('/\bFatal error(<.*?>)?:(.*)/i', $text, $m)) { + $Ajax->aCommands = array(); // Don't update page on errors + + $messages[] = array(E_ERROR, $m[0], null, null); + } + $Ajax->run(); + return in_ajax() ? fmt_errors() : ($before_box.fmt_errors().$text); + } + + if (!isset($path_to_root)) { $path_to_root = "."; } include_once($path_to_root . "/includes/current_user.inc"); - include_once($path_to_root . "/config.php"); +/* + // Make sure this directory exists and is writable! + $session_save_path = dirname(__FILE__).'/tmp/'; +*/ + + $session_save_path = session_save_path(); + if (strpos($session_save_path, ";") !== false) + $session_save_path = substr($session_save_path, strpos($session_save_path, ";") + 1); - include_once($path_to_root . "/includes/main.inc"); + if (isset($session_save_path)) + { + session_save_path($session_save_path); + unset($session_save_path); + } + if (!isset($path_to_root) || isset($_GET['path_to_root']) || isset($_POST['path_to_root'])) + die("Restricted access"); + include_once($path_to_root . "/includes/lang/language.php"); + include_once($path_to_root . "/config_db.php"); + include_once($path_to_root . "/config.php"); + include_once($path_to_root . "/includes/ajax.inc"); + $Ajax =& new Ajax(); + + include_once($path_to_root . "/includes/main.inc"); //---------------------------------------------------------------------------------------- - function kill_login() + function kill_login() { session_unset(); session_destroy(); @@ -30,7 +64,7 @@ //---------------------------------------------------------------------------------------- - function login_fail() + function login_fail() { echo "


" . _("Incorrect Password") . "

"; echo "" . _("The user and password combination is not valid for the system.") . "

"; @@ -45,9 +79,9 @@ //---------------------------------------------------------------------------------------- - function check_page_security($page_security) + function check_page_security($page_security) { - if (!$_SESSION["wa_current_user"]->check_user_access()) + if (!$_SESSION["wa_current_user"]->check_user_access()) { echo "


"; echo "" . _("Security settings have not been defined for your user account."); @@ -57,14 +91,13 @@ exit; } - if (!$_SESSION["wa_current_user"]->can_access_page($page_security)) + if (!$_SESSION["wa_current_user"]->can_access_page($page_security)) { page(_("Access denied")); echo "



"; echo _("The security settings on your account do not permit you to access this function"); echo ""; - echo "

" . _("Back") . ""; - echo "



"; + echo "



"; //echo '\n"; - return $js; -} - function get_js_open_window($width, $height) { $js = "\n\n"; return $js; } -function get_js_form_entry($edit_name, $sel_name, $next_name) -{ - $js = "\n\n"; - return $js; +/* + Setting focus on element $name in $form. + If $form<0 $name is element id. +*/ +function set_focus($name, $form_no=0) { + global $Ajax; + $Ajax->addFocus(true, $name); + $_POST['_focus'] = $name; } - -function get_js_set_focus($name) -{ - $js = "\n\n"; - return $js; +// +// Set default focus on first field $name if not set yet +// +function default_focus($name, $form_no=0) { + if (!isset($_POST['_focus'])) { + set_focus($name); + } } function get_js_png_fix() { $js = "\n"; return $js; -} +} function get_js_date_picker() { - global $dateseps, $date_system; - - $how = user_date_format(); // 0 = us/ca, 1 = eu, au, nz, 2 = jp, sw - $sep = $dateseps[user_date_sep()]; // date separator - $wstart = (($date_system == 1 || $date_system == 2) ? 6 : ($how == 0 ? 0 : 1)); // weekstart (sun = 0, mon = 1) - $months = array(_("January"),_("February"),_("March"),_("April"),_("May"),_("June"),_("July"),_("August"),_("September"),_("October"),_("November"),_("December")); - $wdays = array(_("Su"),_("Mo"),_("Tu"),_("We"),_("Th"),_("Fr"),_("Sa")); - $back = _("Back"); - if ($date_system == 1) - list($cyear, $cmon, $cday) = gregorian_to_jalali(date("Y"), date("n"), date("j")); - else if ($date_system == 2) - list($cyear, $cmon, $cday) = gregorian_to_islamic(date("Y"), date("n"), date("j")); + global $comp_path, $go_debug; + $fpath = $comp_path.'/'.user_company().'/js_cache/'.'date_picker.js'; $js = " "; - $js .= " -"; - return $js; +document.write(\"
\");"; + + cache_js_file($fpath, $js); + } + add_js_ufile($fpath); + + return ''; } - + function alert($msg) { echo "\n\n"; -} +} -if (!function_exists('_vd')) +if (!function_exists('_vd')) { - function _vd($mixed, $title = '', $exit = false) + function _vd($mixed, $title = '', $exit = false) { // Only the site admin is able to proceed here. echo (!empty($title) ? ($title .':') : '') .'
';
     	var_dump($mixed);
     	echo "
\n"; - if ($exit) + if ($exit) exit; } } diff --git a/index.php b/index.php index 99843199..8afa8b92 100644 --- a/index.php +++ b/index.php @@ -2,6 +2,7 @@ $path_to_root="."; $page_security = 1; + ini_set('xdebug.auto_trace',1); include_once("frontaccounting.php"); include_once("includes/session.inc"); if (!isset($_SESSION["App"])) diff --git a/install.html b/install.html index 15bdd2ec..bf8a0832 100644 --- a/install.html +++ b/install.html @@ -1,307 +1,191 @@ - - +FrontAccounting - - FrontAccounting - - - -
FrontAccounting Installation
- +
FrontAccounting +Installation

Pre-requisites

- -
    - - -
  • A working HTTP web server eg. Apache, IIS.
  • - - -
  • PHP installed on the web server.
  • - - -
  • A working MySQL server - with innodb tables enabled (see notes below)
  • - - -
  • Adobe Acrobat Reader - for viewing the PDF reports before printing them out.
  • - - +
  • A working HTTP web server eg. Apache, +IIS.
  • +
  • PHP +installed on the web server.
  • +
  • A working MySQL +server - with innodb +tables enabled (see notes below)
  • +
  • Adobe Acrobat Reader +- for viewing the PDF reports before printing them out.
- -

Important Notes

- -
    - - -
  • One critical aspect of the PHP installation is the setting of session.auto_start in the php.ini file. Some rpm distributions of PHP have the default setting of session.auto_start = 1. +
  • One critical aspect of the PHP installation is the setting +of session.auto_start +in the php.ini file. Some rpm distributions of PHP have the default +setting of session.auto_start = 1. This starts a new session at the beginning of each script. However, this makes it impossible to instantiate any class objects that the system relies on. Classes are used extensively by this system. When sessions are required they are started by the system and this setting -of session.auto_start can and should be set to 0.
  • - - -
  • Innodb tables must be enabled in the -MySQL server. These tables allow database transactions which are a -critical component of the software. This is enabled by default in the -newer versions of MySQL. If you need to enable it yourself, consult the -MySQL manual.
  • - - -
  • FrontAccounting is implemented and tested with MySQL. Generally +of session.auto_start +can and should be set to 0.
  • +
  • Innodb +tables must be enabled in the MySQL server. These tables allow database +transactions which are a critical component of the software. This is +enabled by default in the newer versions of MySQL. If you need to +enable it yourself, consult the MySQL manual.
  • +
  • FrontAccounting is implemented and tested with MySQL. +Generally it should work with other databases, but this is not supported in any way at the moment.
  • - -
- -

Copying all the project files to the correct directory

- -
    - - -
  • You must obviously have downloaded the project archive to be reading this file.
  • - - -
  • All the files inside this archive should be copied to a directory under the web server root directory.
  • - - -
  • For example, create a folder called /account, and extract the archive into this folder.
  • - - +
  • You must obviously have downloaded the project archive to +be reading this file.
  • +
  • All the files inside this archive should be copied to a +directory under the web server root directory.
  • +
  • For example, create a folder called /account, +and extract the archive into this folder.
- -

Installation Steps (automatic, recommended)

- -
    - - -
  1. If you have the option to create multiple databases on your host, create one, fi. frontacc, -otherwise write down the database name for your account. At the same -time look up the username and password for the database. You will need -these informations during the wizard install.
  2. - - -
  3. Enter your_url/account/install (or -whatever directory you entered). This will run the install wizard, +
  4. If you have the option to create multiple databases on your +host, create one, fi. frontacc, otherwise +write down the database name for your account. At the same time look up +the username and password for the database. You will need these +informations during the wizard install.
  5. +
  6. Enter your_url/account/install +(or whatever directory you entered). This will run the install wizard, setup a drill company and populating with initial data. You can later on create your own real company. It is a good idea to get familiar with -the system before starting your own company. 
  7. -
  8. After successfully install, remove or rename your install directory for safety reasons. You don't need it any more.
  9. - - +the system before starting your own company.  +
  10. After successfully install, remove or rename your install +directory for safety reasons. You don't need it any more.
- - -

Installation Steps (manuel, for advanced users, not recommended)

- - +

Installation Steps (manuel, for advanced users, not +recommended)


-

- -
    - - -
  1. - -

    Creating the Database

    - - - -
      - - -
    1. NOTE : As FrontAccounting is still heavily under development, -the database structure will ALWAYS change between releases, so if you -have a database that you created for a previous release of -FrontAccounting, it WILL NOT WORK after installing a new release. -Please delete any old databases before proceeding.
    2. - - -
    3. We strongly suggest using a GUI to manage your database(s) and database users. If you don’t have any, download phpMyAdmin.
    4. - - -
    5. Create a database with a name of your choice. The default in config_db.php is ‘frontacc’, but of course you can select whatever name you desire.
    6. - - -
    7. Populate the database you have created. There are two scripts +
    8. +

      Creating the Database

      +
        +
      1. NOTE : As FrontAccounting is still heavily under +development, the database structure will ALWAYS change between +releases, so if you have a database that you created for a previous +release of FrontAccounting, it WILL NOT WORK after installing a new +release. You may run the script, update_db.php and select the +appropriate script, f.i. alter.sql  and alter2.sql (from +release 1.XX to release 2.0).
      2. +
      3. We strongly suggest using a GUI to manage your +database(s) and database users. If you don’t have any, download phpMyAdmin. +
      4. +
      5. Create a database with a name of your choice. The +default in config_db.php is ‘frontacc’, +but of course you can select whatever name you desire.
      6. +
      7. Populate the database you have created. There are two +scripts are provided to populate the database (both inside the folder /sql) : - - -
          - - -
        1. en_US-demo.sql. This has a minimal amount of demonstration data set up so that transactions can be tried to see how the system works.
        2. - - -
        3. en_US-new.sql. This script has +
            +
          1. en_US-demo.sql. +This has a minimal amount of demonstration data set up so that +transactions can be tried to see how the system works.
          2. +
          3. en_US-new.sql. +This script has only the basic data necessary to start a new company system off. If you wish to set up your company on FrontAccounting then this is the script to use.
          4. - - - -
          - - -
        4. - - -
        5. Now that the database is created you will need to set up a -database user to access this database. DO NOT USE THE USER -‘ROOT’. Set up a new user and give that user full -privileges over the database ‘frontacc’.
        6. -
        7. After successfully install, remove or rename your install directory your_url/account/install (or -whatever directory you entered) for safety reasons. You don't need it any more.
        8. - - - -
        - - -
      8. - - -
      9. - -

        Editing config_db.php

        - - - -
          - - -
        1. config_db.php contains connection -information for the database. These must be set to your local settings -or you will not be able to access FrontAccounting.
        2. - - -
        3. FrontAccounting allows multiple connections, you can enter as -many connections as you have separate entities (most people will use -only one).
        4. - - -
        5. $db_connections is an array of connections – for each connection :
        6. - - -
        7. name” is the name of the connection, this is the name that will be displayed to the user
        8. - - -
        9. host” is the computer IP +
        +
      10. +
      11. Now that the database is created you will need to set +up a database user to access this database. DO NOT USE THE USER ‘ROOT’. +Set up a new user and give that user full privileges over the database +‘frontacc’.
      12. +
      13. After successfully install, remove or rename your +install directory your_url/account/install +(or +whatever directory you entered) for safety reasons. You don't need it +any more.
      14. +
      +
    9. +
    10. +

      Editing config_db.php

      +
        +
      1. config_db.php +contains connection information for the database. These must be set to +your local settings or you will not be able to access FrontAccounting.
      2. +
      3. FrontAccounting allows multiple connections, you can +enter as many connections as you have separate entities (most people +will use only one).
      4. +
      5. $db_connections is an +array of connections – for each connection :
      6. +
      7. name” is the name of the +connection, this is the name that will be displayed to the user
      8. +
      9. host” is the computer IP address or name where the database is. The default is localhost assuming that the web server is also the sql server.
      10. - - -
      11. dbuser” is the user name under -which the database should be accessed. NB, again, do not use the user -ROOT. A user with appropriate privileges must be set up.
      12. - - -
      13. dbpassword” is the password for “dbuser”. You would have entered this when you created “dbuser”.
      14. - - -
      15. dbname” is the name of the database. The provided scripts use the name OpenAccounting.
      16. - - -
      17. tbpref” is the table prefix for +
      18. dbuser” is the user name +under which the database should be accessed. NB, again, do not use the +user ROOT. A user with appropriate privileges must be set up.
      19. +
      20. dbpassword” is the +password for “dbuser”. You would have entered this when you created +“dbuser”.
      21. +
      22. dbname” is the name of +the database. The provided scripts use the name OpenAccounting.
      23. +
      24. tbpref” is the table +prefix for the tables. If you only have access to one database, you must use table prefix to separate the companies. Table prefix is set by a table prefix counter inside config_db.php, fi. 0_ for the first company.
      25. - - - -
      - - -
    11. - -
    - - +
  2. +

 Logging In For the First Time

- -
    - - -
  1. Open a browser and enter the URL for the web server directory where FrontAccounting is installed.
  2. - - -
  3. Enter the user name:  'admin'
  4. - - -
  5. Enter the password: 'password'
  6. - - -
  7. (NB : enter without quotation marks).
  8. - - -
  9. - -
    You can set up additional user accounts from the System Setup +
  10. Pleae ensure that the folder /company/0 +on the server is writable.
  11. +
  12. Open a browser and enter the URL for the web server +directory where FrontAccounting is installed.
  13. +
  14. Enter the user name:  'admin' +
  15. +
  16. Enter the password: 'password' +
  17. +
  18. (NB : enter without quotation marks).
  19. +
  20. +
    You can set up additional user accounts from the System +Setup tab. Be careful not to delete the demonstration user until a new user has been set up. If there are no users defined the next time you try to login you won't be able to. The only way then to create a user to login with is to manually edit the SQL table "users" to insert a user.
    - - -
  21. - - +
- -

Setting Up Company Specific Data

- -
    - - -
  1. All the standing configuration data is defined from the Setup tab +
  2. All the standing configuration data is defined from the +Setup tab and each link should be reviewed to enter appropriate data for the business. Setup wizards that guide you through this process has been -implemented and we strongly recommend you to use this approach, see Installation steps (automatic, recommended) .
  3. - - +implemented and we strongly recommend you to use this approach, see Installation +steps (automatic, recommended) .
- -

Troubleshooting

- -
    - - -
  1. If FrontAccounting is installed locally, you may have the session save path not set correctly. Normally this is set in your php.ini (for Windows). The entry is called session.save_path. Make sure this is set to a directory that actually exists. The default is set to /tmp, which may not be valid.
  2. - - -
  3. If you are installing FrontAccounting onto a shared server, you -may have to set the session save path within FrontAccounting. At the -top of config.php you will find this line :
  4. - - -
  5. Uncomment this line and set the path to a directory that exists +
  6. If FrontAccounting is installed locally, you may have the session +save path not set correctly. Normally this is +set in your php.ini (for Windows). The entry is called session.save_path. +Make sure this is set to a directory that actually exists. The default +is set to /tmp, which may not be valid.
  7. +
  8. If you are installing FrontAccounting onto a shared server, +you may have to set the session save path within FrontAccounting. At +the top of config.php (in release 2.0 this has moved to +/includes/session.inc) you will find this line :
  9. +
  10. Uncomment this line and set the path to a directory that +exists on your server. Make sure that you have read/write privileges on this directory.
  11. - -
- -

 

- - - + \ No newline at end of file diff --git a/install/index.php b/install/index.php index 65ce6668..a02fb38e 100644 --- a/install/index.php +++ b/install/index.php @@ -1,9 +1,8 @@ Enabled'; // Reload page header('Location: index.php?sessions_checked=true'); exit(0); -} -else +} +else { // Check if session variable has been saved after reload - if(isset($_SESSION['session_support'])) + if(isset($_SESSION['session_support'])) { $session_support = $_SESSION['session_support']; - } - else - { + } + else + { $session_support = 'Disabled'; } } $path_to_root = ".."; +//include_once($path_to_root.'/config.php'); +$comp_path = $path_to_root."/company"; ?> @@ -60,7 +61,7 @@ function change_os(type) { @@ -79,8 +80,8 @@ function change_os(type) {
Logo
- - + +
Error:
EnabledDisabled @@ -128,20 +129,16 @@ function change_os(type) { - - + + - - - - - - - - + +
- FrontAccounting + FrontAccounting Installation Wizard
config_db.php Writeable'; } elseif(!file_exists($path_to_root.'/config_db.php')) { echo 'File Not Found'; } else { echo 'Unwriteable'; } ?>inventory/manage/image/Writeable'; } elseif(!file_exists($path_to_root.'/inventory/manage/image/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>modules/Writeable'; } elseif(!file_exists($path_to_root.'/lang/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>
lang/ Writeable'; } elseif(!file_exists($path_to_root.'/lang/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>reporting/pdf_files/Writeable'; } elseif(!file_exists($path_to_root.'/reporting/pdf_files/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>
modules/Writeable'; } elseif(!file_exists($path_to_root.'/lang/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>admin/backup/Writeable'; } elseif(!file_exists($path_to_root.'/admin/backup/')) { echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>Writeable'; } elseif(!file_exists($comp_path)) { + echo 'Directory Not Found'; } else { echo 'Unwriteable'; } ?>
@@ -225,7 +222,7 @@ function change_os(type) { />
      - (Please note: May remove existing tables and data) + (Please note: May remove existing tables and data) @@ -263,7 +260,7 @@ function change_os(type) { /> - + @@ -273,7 +270,7 @@ function change_os(type) {

 

Please note:   - FrontAccounting is released under the + FrontAccounting is released under the GNU General Public License
By clicking install, you are accepting the license. @@ -286,7 +283,7 @@ function change_os(type) {
- +
diff --git a/install/save.php b/install/save.php index 0c786f26..32ab2a0f 100644 --- a/install/save.php +++ b/install/save.php @@ -1,9 +1,10 @@ 41 && is_writable($temp_dir)) + if($v > 41 && is_writable($temp_dir)) { $filename = $temp_dir.'/test_permissions.txt'; $handle = fopen($filename, 'w'); @@ -77,8 +78,8 @@ function default_file_mode($temp_dir) fclose($handle); $default_file_mode = '0'.substr(sprintf('%o', fileperms($filename)), -3); unlink($filename); - } - else + } + else { $default_file_mode = '0777'; } @@ -86,27 +87,27 @@ function default_file_mode($temp_dir) } // Function to workout what the default permissions are for directories created by the webserver -function default_dir_mode($temp_dir) +function default_dir_mode($temp_dir) { $v = explode(".",PHP_VERSION); $v = $v[0].$v[1]; - if ($v > 41 && is_writable($temp_dir)) + if ($v > 41 && is_writable($temp_dir)) { $dirname = $temp_dir.'/test_permissions/'; mkdir($dirname); $default_dir_mode = '0'.substr(sprintf('%o', fileperms($dirname)), -3); rmdir($dirname); - } - else + } + else { $default_dir_mode = '0777'; } return $default_dir_mode; } -function add_slashes($input) +function add_slashes($input) { - if (get_magic_quotes_gpc() || (!is_string($input))) + if (get_magic_quotes_gpc() || (!is_string($input))) { return $input; } @@ -116,16 +117,16 @@ function add_slashes($input) function check_db_error($err_msg, $sql) { return true; -} +} if (isset($_POST['path_to_root'])) $path_to_root = $_POST['path_to_root']; -else +else $path_to_root = ".."; - + // Begin check to see if form was even submitted // Set error if no post vars found -if (!isset($_POST['company_name'])) +if (!isset($_POST['company_name'])) { set_error('Please fill-in the form below'); } @@ -134,29 +135,29 @@ if (!isset($_POST['company_name'])) // Begin path and timezone details code // Check if user has entered the installation url -if (!isset($_POST['ba_url']) || $_POST['ba_url'] == '') +if (!isset($_POST['ba_url']) || $_POST['ba_url'] == '') { set_error('Please enter an absolute URL'); -} -else +} +else { $ba_url = $_POST['ba_url']; } // Remove any slashes at the end of the URL -if(substr($ba_url, strlen($ba_url) - 1, 1) == "/") +if(substr($ba_url, strlen($ba_url) - 1, 1) == "/") { $ba_url = substr($ba_url, 0, strlen($ba_url) - 1); } -if(substr($ba_url, strlen($ba_url) - 1, 1) == "\\") +if(substr($ba_url, strlen($ba_url) - 1, 1) == "\\") { $ba_url = substr($ba_url, 0, strlen($ba_url) - 1); } -if(substr($ba_url, strlen($ba_url) - 1, 1) == "/") +if(substr($ba_url, strlen($ba_url) - 1, 1) == "/") { $ba_url = substr($ba_url, 0, strlen($ba_url) - 1); } -if(substr($ba_url, strlen($ba_url) - 1, 1) == "\\") +if(substr($ba_url, strlen($ba_url) - 1, 1) == "\\") { $ba_url = substr($ba_url, 0, strlen($ba_url) - 1); } @@ -164,26 +165,26 @@ if(substr($ba_url, strlen($ba_url) - 1, 1) == "\\") // Begin operating system specific code // Get operating system -if (!isset($_POST['operating_system']) || $_POST['operating_system'] != 'linux' && $_POST['operating_system'] != 'windows') +if (!isset($_POST['operating_system']) || $_POST['operating_system'] != 'linux' && $_POST['operating_system'] != 'windows') { set_error('Please select a valid operating system'); -} -else +} +else { $operating_system = $_POST['operating_system']; } // Work-out file permissions -if($operating_system == 'windows') +if($operating_system == 'windows') { $file_mode = '0777'; $dir_mode = '0777'; -} -elseif (isset($_POST['world_writeable']) && $_POST['world_writeable'] == 'true') +} +elseif (isset($_POST['world_writeable']) && $_POST['world_writeable'] == 'true') { $file_mode = '0777'; $dir_mode = '0777'; -} -else +} +else { $file_mode = default_file_mode('../includes'); $dir_mode = default_dir_mode('../includes'); @@ -192,49 +193,49 @@ else // Begin database details code // Check if user has entered a database host -if (!isset($_POST['database_host']) || $_POST['database_host'] == '') +if (!isset($_POST['database_host']) || $_POST['database_host'] == '') { set_error('Please enter a database host name'); -} -else +} +else { $database_host = $_POST['database_host']; } // Check if user has entered a database username -if (!isset($_POST['database_username']) || $_POST['database_username'] == '') +if (!isset($_POST['database_username']) || $_POST['database_username'] == '') { set_error('Please enter a database username'); -} -else +} +else { $database_username = $_POST['database_username']; } // Check if user has entered a database password -if (!isset($_POST['database_password'])) +if (!isset($_POST['database_password'])) { set_error('Please enter a database password'); -} -else +} +else { $database_password = $_POST['database_password']; } // Check if user has entered a database name -if (!isset($_POST['database_name']) || $_POST['database_name'] == '') +if (!isset($_POST['database_name']) || $_POST['database_name'] == '') { set_error('Please enter a database name'); -} -else +} +else { $database_name = $_POST['database_name']; } // Get table prefix $table_prefix = $_POST['table_prefix']; // Find out if the user wants to install tables and data -if (isset($_POST['install_tables']) && $_POST['install_tables'] == 'true') +if (isset($_POST['install_tables']) && $_POST['install_tables'] == 'true') { $install_tables = true; -} -else +} +else { $install_tables = false; } @@ -242,56 +243,56 @@ else // Begin company name code // Get company name -if (!isset($_POST['company_name']) || $_POST['company_name'] == '') +if (!isset($_POST['company_name']) || $_POST['company_name'] == '') { set_error('Please enter a company name'); -} -else +} +else { $company_name = add_slashes($_POST['company_name']); } // End website company name // Check if the user has entered a correct path -if (!file_exists($path_to_root.'/sql/en_US-demo.sql')) +if (!file_exists($path_to_root.'/sql/en_US-demo.sql')) { set_error('It appears the Absolute path that you entered is incorrect'); } // Get admin email and validate it -if (!isset($_POST['admin_email']) || $_POST['admin_email'] == '') +if (!isset($_POST['admin_email']) || $_POST['admin_email'] == '') { set_error('Please enter an email for the Administrator account'); -} -else +} +else { - if (eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $_POST['admin_email'])) + if (eregi("^([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}$", $_POST['admin_email'])) { $admin_email = $_POST['admin_email']; - } - else + } + else { set_error('Please enter a valid email address for the Administrator account'); } } // Get the two admin passwords entered, and check that they match -if (!isset($_POST['admin_password']) || $_POST['admin_password'] == '') +if (!isset($_POST['admin_password']) || $_POST['admin_password'] == '') { set_error('Please enter a password for the Administrator account'); -} -else +} +else { $admin_password = $_POST['admin_password']; } -if (!isset($_POST['admin_repassword']) || $_POST['admin_repassword'] == '') +if (!isset($_POST['admin_repassword']) || $_POST['admin_repassword'] == '') { set_error('Please make sure you re-enter the password for the Administrator account'); -} -else +} +else { $admin_repassword = $_POST['admin_repassword']; } -if ($admin_password != $admin_repassword) +if ($admin_password != $admin_repassword) { set_error('Sorry, the two Administrator account passwords you entered do not match'); } @@ -318,12 +319,12 @@ $config_filename = $path_to_root . '/config_db.php'; $err = write_config_db($table_prefix != ""); if ($err == -1) set_error("Cannot open the configuration file ($config_filename)"); -else if ($err == -2) +else if ($err == -2) set_error("Cannot write to the configuration file ($config_filename)"); -else if ($err == -3) +else if ($err == -3) set_error("The configuration file $config_filename is not writable. Change its permissions so it is, then re-run step 4."); -// Try connecting to database +// Try connecting to database $db = mysql_connect($database_host, $database_username, $database_password); if (!$db) @@ -331,7 +332,7 @@ if (!$db) set_error('Database host name, username and/or password incorrect. MySQL Error:
'.mysql_error()); } -if($install_tables == true) +if($install_tables == true) { if (!mysql_select_db($database_name, $db)) { @@ -339,7 +340,7 @@ if($install_tables == true) // Try to create the database mysql_query('CREATE DATABASE '.$database_name); mysql_select_db($database_name, $db); - } + } $import_filename = $path_to_root."/sql/en_US-demo.sql"; if (!db_import($import_filename, $db_connections[$id])) set_error("Import error, try to import $import_filename manually via phpMyAdmin"); @@ -348,14 +349,14 @@ else { mysql_select_db($database_name, $db); } -$sql = "UPDATE ".$table_prefix."users SET password = '" . md5($admin_password) . "', email = '$admin_email' WHERE user_id = 'admin'"; +$sql = "UPDATE ".$table_prefix."users SET password = '" . md5($admin_password) . "', email = ".db_escape($admin_email)." WHERE user_id = 'admin'"; db_query($sql, "could not update admin account"); -$sql = "UPDATE ".$table_prefix."company SET coy_name = '$company_name' WHERE coy_code = 1"; +$sql = "UPDATE ".$table_prefix."company SET coy_name = ".db_escape($company_name)." WHERE coy_code = 1"; db_query($sql, "could not update company name. Do it manually later in Setup"); session_unset(); session_destroy(); -$_SESSION = array(); +$_SESSION = array(); header("Location: ".$path_to_root."/index.php"); exit(); diff --git a/inventory/adjustments.php b/inventory/adjustments.php index e2a79384..7eac496c 100644 --- a/inventory/adjustments.php +++ b/inventory/adjustments.php @@ -40,29 +40,14 @@ if (isset($_GET['AddedID'])) display_footer_exit(); } - //-------------------------------------------------------------------------------------------------- -function copy_to_st() -{ - $_SESSION['adj_items']->from_loc = $_POST['StockLocation']; - $_SESSION['adj_items']->tran_date = $_POST['AdjDate']; - $_SESSION['adj_items']->transfer_type = $_POST['type']; - $_SESSION['adj_items']->increase = $_POST['Increase']; - $_SESSION['adj_items']->memo_ = $_POST['memo_']; -} +function line_start_focus() { + global $Ajax; -//-------------------------------------------------------------------------------------------------- - -function copy_from_st() -{ - $_POST['StockLocation'] = $_SESSION['adj_items']->from_loc; - $_POST['AdjDate'] = $_SESSION['adj_items']->tran_date; - $_POST['type'] = $_SESSION['adj_items']->transfer_type; - $_POST['Increase'] = $_SESSION['adj_items']->increase; - $_POST['memo_'] = $_SESSION['adj_items']->memo_; + $Ajax->activate('items_table'); + set_focus('_stock_id_edit'); } - //----------------------------------------------------------------------------------------------- function handle_new_order() @@ -75,7 +60,7 @@ function handle_new_order() session_register("adj_items"); - $_SESSION['adj_items'] = new items_cart; + $_SESSION['adj_items'] = new items_cart(systypes::inventory_adjustment()); $_POST['AdjDate'] = Today(); if (!is_date_in_fiscalyear($_POST['AdjDate'])) $_POST['AdjDate'] = end_fiscalyear(); @@ -86,36 +71,50 @@ function handle_new_order() function can_process() { + $adj = &$_SESSION['adj_items']; + + if (count($adj->line_items) == 0) { + display_error(_("You must enter at least one non empty item line.")); + set_focus('stock_id'); + return false; + } if (!references::is_valid($_POST['ref'])) { display_error( _("You must enter a reference.")); + set_focus('ref'); return false; } if (!is_new_reference($_POST['ref'], systypes::inventory_adjustment())) { display_error( _("The entered reference is already in use.")); + set_focus('ref'); return false; } if (!is_date($_POST['AdjDate'])) { display_error(_("The entered date for the adjustment is invalid.")); + set_focus('AdjDate'); return false; } elseif (!is_date_in_fiscalyear($_POST['AdjDate'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('AdjDate'); return false; - } - $failed_item = $_SESSION['adj_items']->check_qoh($_POST['StockLocation'], $_POST['AdjDate'], !$_POST['Increase']); - if ($failed_item != null) - { - display_error(_("The adjustment cannot be processed because an adjustment item would cause a negative inventory balance :") . - " " . $failed_item->stock_id . " - " . $failed_item->item_description); + } else { + $failed_item = $adj->check_qoh($_POST['StockLocation'], $_POST['AdjDate'], !$_POST['Increase']); + if ($failed_item >= 0) + { + $line = $adj->line_items[$failed_item]; + display_error(_("The adjustment cannot be processed because an adjustment item would cause a negative inventory balance :") . + " " . $line->stock_id . " - " . $line->item_description); + $_POST['Edit'.$failed_item] = 1; // enter edit mode + unset($_POST['Process']); return false; + } } - return true; } @@ -129,6 +128,7 @@ if (isset($_POST['Process']) && can_process()){ $_SESSION['adj_items']->clear_items(); unset($_SESSION['adj_items']); + meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no"); } /*end of process credit note */ @@ -136,21 +136,17 @@ if (isset($_POST['Process']) && can_process()){ function check_item_data() { - if (!is_numeric($_POST['qty'])) + if (!check_num('qty',0)) { - display_error(_("The quantity entered is not a valid number.")); + display_error(_("The quantity entered is negative or invalid.")); + set_focus('qty'); return false; } - if ($_POST['qty'] <= 0) - { - display_error(_("The quantity entered must be greater than zero.")); - return false; - } - - if (!is_numeric($_POST['std_cost']) || $_POST['std_cost'] < 0) + if (!check_num('std_cost', 0)) { display_error(_("The entered standard cost is negative or invalid.")); + set_focus('std_cost'); return false; } @@ -163,15 +159,19 @@ function handle_update_item() { if($_POST['UpdateItem'] != "" && check_item_data()) { - $_SESSION['adj_items']->update_cart_item($_POST['stock_id'], $_POST['qty'], $_POST['std_cost']); + $id = $_POST['LineNo']; + $_SESSION['adj_items']->update_cart_item($id, input_num('qty'), + input_num('std_cost')); } + line_start_focus(); } //----------------------------------------------------------------------------------------------- -function handle_delete_item() +function handle_delete_item($id) { - $_SESSION['adj_items']->remove_from_cart($_GET['Delete']); + $_SESSION['adj_items']->remove_from_cart($id); + line_start_focus(); } //----------------------------------------------------------------------------------------------- @@ -181,26 +181,25 @@ function handle_new_item() if (!check_item_data()) return; - add_to_order($_SESSION['adj_items'], $_POST['stock_id'], $_POST['qty'], $_POST['std_cost']); + add_to_order($_SESSION['adj_items'], $_POST['stock_id'], + input_num('qty'), input_num('std_cost')); + line_start_focus(); } //----------------------------------------------------------------------------------------------- +$id = find_submit('Delete'); +if ($id != -1) + handle_delete_item($id); -if (isset($_GET['Delete']) || isset($_GET['Edit'])) - copy_from_st(); - -if (isset($_GET['Delete'])) - handle_delete_item(); - -if (isset($_POST['AddItem']) || isset($_POST['UpdateItem'])) - copy_to_st(); - if (isset($_POST['AddItem'])) handle_new_item(); if (isset($_POST['UpdateItem'])) handle_update_item(); +if (isset($_POST['CancelItemChanges'])) { + line_start_focus(); +} //----------------------------------------------------------------------------------------------- if (isset($_GET['NewAdjustment']) || !isset($_SESSION['adj_items'])) @@ -209,7 +208,6 @@ if (isset($_GET['NewAdjustment']) || !isset($_SESSION['adj_items'])) } //----------------------------------------------------------------------------------------------- - start_form(false, true); display_order_header($_SESSION['adj_items']); @@ -223,15 +221,8 @@ echo "
"; + echo "
"; echo ""; // inner table locations_list_row(_("Location:"), 'StockLocation', null); - ref_row(_("Reference:"), 'ref', references::get_next(systypes::inventory_adjustment())); + ref_row(_("Reference:"), 'ref', '', references::get_next(systypes::inventory_adjustment())); echo "
"; // inner table - echo "
"; + echo ""; echo ""; // inner table @@ -47,7 +36,7 @@ function display_order_header(&$order) echo "
"; // inner table - echo "
"; + echo ""; echo ""; // inner table movement_types_list_row(_("Detail:"), 'type', null); @@ -59,7 +48,7 @@ function display_order_header(&$order) echo "
"; // inner table - echo "
"; - stock_costable_items_list('stock_id', $_POST['stock_id'], false, true); - echo "
"; - ref_row(_("Reference:"), 'ref', references::get_next(systypes::location_transfer())); + ref_row(_("Reference:"), 'ref', '', references::get_next(systypes::location_transfer())); date_row(_("Date:"), 'AdjDate'); @@ -66,85 +55,94 @@ function display_transfer_items($title, &$order) global $table_style, $path_to_root; display_heading($title); + div_start('items_table'); start_table("$table_style width=80%"); - $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit")); + $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"), ''); table_header($th); $subtotal = 0; $k = 0; //row colour counter - foreach ($order->line_items as $stock_item) + $id = find_submit('Edit'); + foreach ($order->line_items as $line_no=>$stock_item) { - $quantity = number_format2($stock_item->quantity,user_qty_dec()); - - if (!isset($_GET['Edit']) || $_GET['Edit'] != $stock_item->stock_id) + if ($id != $line_no) { alt_table_row_color($k); - label_cell("$stock_item->stock_id"); + view_stock_status_cell($stock_item->stock_id); label_cell($stock_item->item_description); - label_cell($quantity, "nowrap align=right"); + qty_cell($stock_item->quantity, false, get_qty_dec($stock_item->stock_id)); label_cell($stock_item->units); - edit_link_cell(SID . "Edit=$stock_item->stock_id"); - delete_link_cell(SID . "Delete=$stock_item->stock_id"); + edit_button_cell("Edit$line_no", _("Edit"), + _('Edit document line')); + edit_button_cell("Delete$line_no", _("Delete"), + _('Remove line from document')); end_row(); - } - else + } + else { - transfer_edit_item_controls($order, $stock_item->stock_id); + transfer_edit_item_controls($order, $line_no); } } - if (!isset($_GET['Edit'])) + if ($id == -1) transfer_edit_item_controls($order); end_table(); + div_end(); } //--------------------------------------------------------------------------------- -function transfer_edit_item_controls(&$order, $stock_id=null) +function transfer_edit_item_controls(&$order, $line_no=-1) { + global $Ajax; start_row(); - if (isset($_GET['Edit']) and $stock_id!=null) + $id = find_submit('Edit'); + if ($line_no != -1 && $line_no == $id) { - if (!isset($_POST['stock_id'])) - $_POST['stock_id'] = $order->line_items[$stock_id]->stock_id; - if (!isset($_POST['qty']) || ($_POST['qty']=="")) - $_POST['qty'] = $order->line_items[$stock_id]->quantity; - - $_POST['units'] = $order->line_items[$stock_id]->units; + $_POST['stock_id'] = $order->line_items[$id]->stock_id; + $_POST['qty'] = qty_format($order->line_items[$id]->quantity, $order->line_items[$id]->stock_id, $dec); + $_POST['units'] = $order->line_items[$id]->units; hidden('stock_id', $_POST['stock_id']); label_cell($_POST['stock_id']); - label_cell($order->line_items[$stock_id]->item_description); + label_cell($order->line_items[$id]->item_description); + $Ajax->activate('items_table'); } else { - echo ""; + stock_costable_items_list_cells(null, 'stock_id', null, false, true); + if(isset($_POST['_stock_id_update'])) { + $Ajax->activate('units'); + $Ajax->activate('qty'); + } $item_info = get_item_edit_info($_POST['stock_id']); - $_POST['qty'] = 0; + $_POST['qty'] = qty_format(0, $_POST['stock_id'], $dec); $_POST['units'] = $item_info["units"]; } + small_qty_cells(null, 'qty', $_POST['qty'], null, null, $dec); + label_cell($_POST['units'], '', 'units'); - text_cells(null, 'qty', $_POST['qty'], 13, 15); - label_cell($_POST['units']); - - if (isset($_GET['Edit'])) + if ($id != -1) { - submit_cells('UpdateItem', _("Update")); - submit_cells('CancelItemChanges', _("Cancel")); - } - else + edit_button_cell('UpdateItem', _("Update"), + _('Confirm changes')); + edit_button_cell('CancelItemChanges', _("Cancel"), + _('Cancel changes')); + hidden('LineNo', $line_no); + set_focus('qty'); + } + else { - submit_cells('AddItem', _("Add Item"), "colspan=2"); + submit_cells('AddItem', _("Add Item"), "colspan=2", + _('Add new item to document'), true); } end_row(); diff --git a/inventory/inquiry/stock_movements.php b/inventory/inquiry/stock_movements.php index 942a1a8e..0f4b21da 100644 --- a/inventory/inquiry/stock_movements.php +++ b/inventory/inquiry/stock_movements.php @@ -17,6 +17,12 @@ if ($use_date_picker) $js .= get_js_date_picker(); page(_("Inventory Item Movement"), false, false, "", $js); +//------------------------------------------------------------------------------------------------ + +if(get_post('ShowMoves')) +{ + $Ajax->activate('doc_tbl'); +} if (isset($_GET['stock_id'])) { @@ -34,10 +40,10 @@ stock_items_list_cells(_("Item:"), 'stock_id', $_POST['stock_id']); locations_list_cells(_("From Location:"), 'StockLocation', null); -date_cells(_("From:"), 'AfterDate', null, -30); +date_cells(_("From:"), 'AfterDate', '', null, -30); date_cells(_("To:"), 'BeforeDate'); -submit_cells('ShowMoves',_("Show Movements")); +submit_cells('ShowMoves',_("Show Movements"),'',_('Refresh Inquiry'), true); end_table(); end_form(); @@ -56,6 +62,7 @@ $result = db_query($sql, "could not query stock moves"); check_db_error("The stock movements for the selected criteria could not be retrieved",$sql); +div_start('doc_tbl'); start_table("$table_style width=70%"); $th = array(_("Type"), _("#"), _("Reference"), _("Date"), _("Detail"), _("Quantity In"), _("Quantity Out"), _("Quantity On Hand")); @@ -70,14 +77,16 @@ $before_qty = db_query($sql, "The starting quantity on hand could not be calcula $before_qty_row = db_fetch_row($before_qty); $after_qty = $before_qty = $before_qty_row[0]; -if (!isset($before_qty_row[0])) +if (!isset($before_qty_row[0])) { $after_qty = $before_qty = 0; } start_row("class='inquirybg'"); -label_cell(""._("Quantity on hand before") . " " . $_POST['AfterDate']."", "align=center colspan=7"); -qty_cell($before_qty); +label_cell(""._("Quantity on hand before") . " " . $_POST['AfterDate']."", "align=center colspan=5"); +label_cell(" ", "colspan=2"); +$dec = get_qty_dec($_POST['stock_id']); +qty_cell($before_qty, false, $dec); end_row(); $j = 1; @@ -86,7 +95,7 @@ $k = 0; //row colour counter $total_in = 0; $total_out = 0; -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { alt_table_row_color($k); @@ -95,14 +104,14 @@ while ($myrow = db_fetch($result)) $type_name = systypes::name($myrow["type"]); - if ($myrow["qty"] > 0) + if ($myrow["qty"] > 0) { - $quantity_formatted = number_format2($myrow["qty"],user_qty_dec()); + $quantity_formatted = number_format2($myrow["qty"], $dec); $total_in += $myrow["qty"]; } - else + else { - $quantity_formatted = number_format2(-$myrow["qty"],user_qty_dec()); + $quantity_formatted = number_format2(-$myrow["qty"], $dec); $total_out += -$myrow["qty"]; } $after_qty += $myrow["qty"]; @@ -112,21 +121,20 @@ while ($myrow = db_fetch($result)) label_cell(get_trans_view_str($myrow["type"], $myrow["trans_no"])); label_cell(get_trans_view_str($myrow["type"], $myrow["trans_no"], $myrow["reference"])); - label_cell($trandate); $person = $myrow["person_id"]; $gl_posting = ""; - if (($myrow["type"] == 10) || ($myrow["type"] == 11)) + if (($myrow["type"] == 13) || ($myrow["type"] == 11)) { $cust_row = get_customer_details_from_trans($myrow["type"], $myrow["trans_no"]); if (strlen($cust_row['name']) > 0) $person = $cust_row['name'] . " (" . $cust_row['br_name'] . ")"; - } - elseif ($myrow["type"] == 25) + } + elseif ($myrow["type"] == 25) { // get the supplier name $sql = "SELECT supp_name FROM ".TB_PREF."suppliers WHERE supplier_id = '" . $myrow["person_id"] . "'"; @@ -136,15 +144,15 @@ while ($myrow = db_fetch($result)) if (strlen($supp_row['supp_name']) > 0) $person = $supp_row['supp_name']; - } - elseif ($myrow["type"] == systypes::location_transfer() || $myrow["type"] == systypes::inventory_adjustment()) + } + elseif ($myrow["type"] == systypes::location_transfer() || $myrow["type"] == systypes::inventory_adjustment()) { // get the adjustment type $movement_type = get_movement_type($myrow["person_id"]); $person = $movement_type["name"]; - } - elseif ($myrow["type"]==systypes::work_order() || $myrow["type"] == 28 || - $myrow["type"] == 29) + } + elseif ($myrow["type"]==systypes::work_order() || $myrow["type"] == 28 || + $myrow["type"] == 29) { $person = ""; } @@ -153,7 +161,7 @@ while ($myrow = db_fetch($result)) label_cell((($myrow["qty"] >= 0) ? $quantity_formatted : ""), "nowrap align=right"); label_cell((($myrow["qty"] < 0) ? $quantity_formatted : ""), "nowrap align=right"); - label_cell(number_format2($after_qty,user_qty_dec()), "nowrap align=right"); + qty_cell($after_qty, false, $dec); end_row(); $j++; If ($j == 12) @@ -165,16 +173,19 @@ while ($myrow = db_fetch($result)) } //end of while loop -if ($total_in != 0 || $total_out != 0) -{ +// 2008-06-14. Always write this. +//if ($total_in != 0 || $total_out != 0) +//{ start_row("class='inquirybg'"); - label_cell(""._("Quantity on hand after") . " " . $_POST['BeforeDate']."", "align=center colspan=7"); - qty_cell($after_qty); + label_cell(""._("Quantity on hand after") . " " . $_POST['BeforeDate']."", "align=center colspan=5"); + qty_cell($total_in, false, $dec); + qty_cell($total_out, false, $dec); + qty_cell($after_qty, false, $dec); end_row(); -} +//} end_table(1); - +div_end(); end_page(); ?> diff --git a/inventory/inquiry/stock_status.php b/inventory/inquiry/stock_status.php index 9b16d753..ae076456 100644 --- a/inventory/inquiry/stock_status.php +++ b/inventory/inquiry/stock_status.php @@ -18,6 +18,8 @@ include_once($path_to_root . "/includes/data_checks.inc"); include_once($path_to_root . "/inventory/includes/inventory_db.inc"); +if (isset($_POST['_stock_id_update'])) + $Ajax->activate('status_tbl'); //---------------------------------------------------------------------------------------------------- check_db_has_stock_items(_("There are no items defined in the system.")); @@ -31,7 +33,7 @@ echo "
" . _("Item:"). " "; stock_items_list('stock_id', $_POST['stock_id'], false, true); echo "
"; -echo "
"; +echo "
"; set_global_stock_item($_POST['stock_id']); @@ -46,31 +48,33 @@ if (is_service($mb_flag)) $loc_details = get_loc_details($_POST['stock_id']); +div_start('status_tbl'); start_table($table_style); if ($kitset_or_service == true) { $th = array(_("Location"), _("Demand")); -} -else +} +else { $th = array(_("Location"), _("Quantity On Hand"), _("Re-Order Level"), _("Demand"), _("Available"), _("On Order")); } table_header($th); +$dec = get_qty_dec($_POST['stock_id']); $j = 1; $k = 0; //row colour counter -while ($myrow = db_fetch($loc_details)) +while ($myrow = db_fetch($loc_details)) { alt_table_row_color($k); - $sql = "SELECT Sum(".TB_PREF."sales_order_details.quantity-".TB_PREF."sales_order_details.qty_invoiced) AS DEM + $sql = "SELECT Sum(".TB_PREF."sales_order_details.quantity-".TB_PREF."sales_order_details.qty_sent) AS DEM FROM ".TB_PREF."sales_order_details, ".TB_PREF."sales_orders WHERE ".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no AND ".TB_PREF."sales_orders.from_stk_loc='" . $myrow["loc_code"] . "' - AND ".TB_PREF."sales_order_details.qty_invoiced < ".TB_PREF."sales_order_details.quantity + AND ".TB_PREF."sales_order_details.qty_sent < ".TB_PREF."sales_order_details.quantity AND ".TB_PREF."sales_order_details.stk_code='" . $_POST['stock_id'] . "'"; $demand_result = db_query($sql,"Could not retreive demand for item"); @@ -79,8 +83,8 @@ while ($myrow = db_fetch($loc_details)) { $demand_row = db_fetch_row($demand_result); $demand_qty = $demand_row[0]; - } - else + } + else { $demand_qty =0; } @@ -100,39 +104,39 @@ while ($myrow = db_fetch($loc_details)) { $qoo_row = db_fetch_row($qoo_result); $qoo = $qoo_row[0]; - } - else + } + else { $qoo = 0; } label_cell($myrow["location_name"]); - qty_cell($qoh); - qty_cell($myrow["reorder_level"]); - qty_cell($demand_qty); - qty_cell($qoh - $demand_qty); - qty_cell($qoo); + qty_cell($qoh, false, $dec); + qty_cell($myrow["reorder_level"], false, $dec); + qty_cell($demand_qty, false, $dec); + qty_cell($qoh - $demand_qty, false, $dec); + qty_cell($qoo, false, $dec); end_row(); - } - else + } + else { /* It must be a service or kitset part */ label_cell($myrow["location_name"]); - qty_cell($demand_qty); + qty_cell($demand_qty, false, $dec); end_row(); } $j++; If ($j == 12) { - $j = 1; + $j = 1; table_header($th); } } end_table(); - +div_end(); end_form(); end_page(); diff --git a/inventory/manage/item_categories.php b/inventory/manage/item_categories.php index d32ba2ea..4bf0cd78 100644 --- a/inventory/manage/item_categories.php +++ b/inventory/manage/item_categories.php @@ -10,18 +10,10 @@ include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/inventory/includes/inventory_db.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = strtoupper($_GET['selected_id']); -} -else if (isset($_POST['selected_id'])) -{ - $selected_id = strtoupper($_POST['selected_id']); -} - +simple_page_mode(true); //---------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -31,25 +23,28 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error(_("The item category description cannot be empty.")); + set_focus('description'); } if ($input_error !=1) { - if (isset($selected_id)) + if ($selected_id != -1) { update_item_category($selected_id, $_POST['description']); + display_notification(_('Selected item category has been updated')); } else { add_item_category($_POST['description']); + display_notification(_('New item category has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } //---------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { // PREVENT DELETES IF DEPENDENT RECORDS IN 'stock_master' @@ -59,20 +54,26 @@ if (isset($_GET['delete'])) if ($myrow[0] > 0) { display_error(_("Cannot delete this item category because items have been created using this item category.")); - } else { delete_item_category($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected item category has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //---------------------------------------------------------------------------------- $sql = "SELECT * FROM ".TB_PREF."stock_category"; $result = db_query($sql, "could not get stock categories"); +start_form(); start_table("$table_style width=30%"); $th = array(_("Name"), "", ""); table_header($th); @@ -84,39 +85,38 @@ while ($myrow = db_fetch($result)) alt_table_row_color($k); label_cell($myrow["description"]); - edit_link_cell(SID."selected_id=$myrow[0]"); - delete_link_cell(SID."selected_id=$myrow[0]&delete=yes"); + edit_button_cell("Edit".$myrow[0], _("Edit")); + edit_button_cell("Delete".$myrow[0], _("Delete")); end_row(); } end_table(); - +end_form(); +echo '
'; //---------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Item Category")); - start_form(); start_table("class='tablestyle_noborder'"); -if (isset($selected_id)) +if ($selected_id != -1) { - //editing an existing item category - - $myrow = get_item_category($selected_id); - - $_POST['category_id'] = $myrow["category_id"]; - $_POST['description'] = $myrow["description"]; + if ($Mode == 'Edit') { + //editing an existing item category + $myrow = get_item_category($selected_id); + $_POST['category_id'] = $myrow["category_id"]; + $_POST['description'] = $myrow["description"]; + } hidden('selected_id', $selected_id); - hidden('category_id', $_POST['category_id']); + hidden('category_id'); } text_row(_("Category Name:"), 'description', null, 30, 30); end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/inventory/manage/item_units.php b/inventory/manage/item_units.php new file mode 100644 index 00000000..b8e432bc --- /dev/null +++ b/inventory/manage/item_units.php @@ -0,0 +1,134 @@ +'; + +//---------------------------------------------------------------------------------- + +start_form(); + +start_table("class='tablestyle_noborder'"); + +if ($selected_id != '') +{ + if ($Mode == 'Edit') { + //editing an existing item category + + $myrow = get_item_unit($selected_id); + + $_POST['abbr'] = $myrow["abbr"]; + $_POST['description'] = $myrow["name"]; + $_POST['decimals'] = $myrow["decimals"]; + } + hidden('selected_id', $selected_id); +} +if ($selected_id != '' && item_unit_used($selected_id)) { + label_row(_("Unit Abbreviation:"), $_POST['abbr']); + hidden('abbr', $_POST['abbr']); +} else + text_row(_("Unit Abbreviation:"), 'abbr', null, 20, 20); +text_row(_("Descriptive Name:"), 'description', null, 40, 40); + +number_list_row(_("Decimal Places:"), 'decimals', null, 0, 6, _("User Quantity Decimals")); + +end_table(1); + +submit_add_or_update_center($selected_id == '', '', true); + +end_form(); + +end_page(); + +?> diff --git a/inventory/manage/items.php b/inventory/manage/items.php index af08d027..24335def 100644 --- a/inventory/manage/items.php +++ b/inventory/manage/items.php @@ -13,6 +13,7 @@ include_once($path_to_root . "/includes/data_checks.inc"); include_once($path_to_root . "/inventory/includes/inventory_db.inc"); $user_comp = user_company(); +$new_item = (!isset($_POST['stock_id']) || $_POST['stock_id'] == ""); //------------------------------------------------------------------------------------ if (isset($_GET['stock_id'])) @@ -24,27 +25,29 @@ else if (isset($_POST['stock_id'])) $stock_id = strtoupper($_POST['stock_id']); } -if (isset($_GET['New']) || !isset($_POST['NewStockID'])) -{ - $_POST['New'] = "1"; -} - -if (isset($_POST['SelectStockItem'])) -{ +if(get_post('_stock_id_update')) { $_POST['NewStockID'] = $_POST['stock_id']; - unset($_POST['New']); + if ($new_item) { + clear_data(); + set_focus('NewStockID'); + } else { + set_focus('description'); + } + $Ajax->activate('details'); + $Ajax->activate('controls'); +// unset($_POST['New']); } $upload_file = ""; if (isset($_FILES['pic']) && $_FILES['pic']['name'] != '') { $result = $_FILES['pic']['error']; $upload_file = 'Yes'; //Assume all is well to start off with - $filename = $path_to_root . "/inventory/manage/image/$user_comp/"; + $filename = $comp_path . "/$user_comp/images"; if (!file_exists($filename)) { mkdir($filename); } - $filename .= "$stock_id.jpg"; + $filename .= "/$stock_id.jpg"; //But check for the worst if (strtoupper(substr(trim($_FILES['pic']['name']), strlen($_FILES['pic']['name']) - 3)) != 'JPG') @@ -88,6 +91,8 @@ check_db_has_item_tax_types(_("There are no item tax types defined in the system function clear_data() { + global $new_item; + unset($_POST['long_description']); unset($_POST['description']); unset($_POST['category_id']); @@ -97,7 +102,7 @@ function clear_data() unset($_POST['NewStockID']); unset($_POST['dimension_id']); unset($_POST['dimension2_id']); - $_POST['New'] = "1"; + $new_item = true; } //------------------------------------------------------------------------------------ @@ -112,11 +117,13 @@ if (isset($_POST['addupdate'])) { $input_error = 1; display_error( _('The item name must be entered.')); + set_focus('description'); } elseif (strlen($_POST['NewStockID']) == 0) { $input_error = 1; display_error( _('The item code cannot be empty')); + set_focus('NewStockID'); } elseif (strstr($_POST['NewStockID'], " ") || strstr($_POST['NewStockID'],"'") || strstr($_POST['NewStockID'], "+") || strstr($_POST['NewStockID'], "\"") || @@ -124,13 +131,14 @@ if (isset($_POST['addupdate'])) { $input_error = 1; display_error( _('The item code cannot contain any of the following characters - & + OR a space OR quotes')); + set_focus('NewStockID'); } if ($input_error != 1) { - if (!isset($_POST['New'])) + if (!$new_item) { /*so its an existing one */ update_item($_POST['NewStockID'], $_POST['description'], @@ -139,6 +147,9 @@ if (isset($_POST['addupdate'])) $_POST['adjustment_account'], $_POST['assembly_account'], $_POST['dimension_id'], $_POST['dimension2_id']); + display_notification(_("Item has been updated.")); + set_focus('stock_id'); + $Ajax->activate('details'); //update image if any } else { //it is a NEW part @@ -149,8 +160,13 @@ if (isset($_POST['addupdate'])) $_POST['inventory_account'], $_POST['cogs_account'], $_POST['adjustment_account'], $_POST['assembly_account'], $_POST['dimension_id'], $_POST['dimension2_id']); + + display_notification(_("A new item has been added.")); + $_POST['stock_id'] = $_POST['NewStockID']; + $new_item = false; + set_focus('stock_id'); + $Ajax->activate('_page_body'); } - meta_forward($_SERVER['PHP_SELF']); } } @@ -206,10 +222,16 @@ if (isset($_POST['delete']) && strlen($_POST['delete']) > 1) $stock_id = $_POST['NewStockID']; delete_item($stock_id); - $filename = $path_to_root . "/inventory/manage/image/$user_comp/$stock_id.jpg"; + $filename = $comp_path . "/$user_comp/images/$stock_id.jpg"; if (file_exists($filename)) unlink($filename); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_("Selected item has been deleted.")); + $new_item = true; + $_POST['stock_id'] = ''; + clear_data(); + set_focus('stock_id'); + $Ajax->activate('_page_body'); +// meta_forward($_SERVER['PHP_SELF']); } } @@ -221,28 +243,28 @@ if (db_has_stock_items()) { start_table("class='tablestyle_noborder'"); start_row(); - stock_items_list_cells(_("Select an item:"), 'stock_id', null); - submit_cells('SelectStockItem', _("Edit Item")); + stock_items_list_cells(_("Select an item:"), 'stock_id', null, + _('New item'), true); +// submit_cells('SelectStockItem', _("Edit Item")); end_row(); end_table(); } -hyperlink_params($_SERVER['PHP_SELF'], _("Enter a new item"), "New=1"); -echo "
"; +//hyperlink_params($_SERVER['PHP_SELF'], _("Enter a new item"), "New=1"); +//echo "
"; +div_start('details'); start_table("$table_style2 width=40%"); table_section_title(_("Item")); //------------------------------------------------------------------------------------ -if (!isset($_POST['NewStockID']) || isset($_POST['New'])) +if (!isset($_POST['NewStockID']) || $new_item) { /*If the page was called without $_POST['NewStockID'] passed to page then assume a new item is to be entered show a form with a part Code field other wise the form showing the fields with the existing entries against the part will show for editing with only a hidden stock_id field. New is set to flag that the page may have called itself and still be entering a new part, in which case the page needs to know not to go looking up details for an existing part*/ - hidden('New', 'Yes'); - text_row(_("Item Code:"), 'NewStockID', null, 21, 20); $company_record = get_company_prefs(); @@ -266,7 +288,7 @@ if (!isset($_POST['NewStockID']) || isset($_POST['New'])) else { // Must be modifying an existing item - if (!isset($_POST['New'])) + if (!$new_item) { $myrow = get_item($_POST['NewStockID']); @@ -300,9 +322,9 @@ start_table("$table_style2 width=40%"); start_row(); label_cells(_("Image File (.jpg)") . ":", ""); // Add Image upload for New Item - by Joe -if (isset($_POST['NewStockID']) && file_exists("$path_to_root/inventory/manage/image/$user_comp/".$_POST['NewStockID'].".jpg")) +if (isset($_POST['NewStockID']) && file_exists("$comp_path/$user_comp/images/".$_POST['NewStockID'].".jpg")) { - $stock_img_link = ""; + $stock_img_link = ""; } else { @@ -317,13 +339,10 @@ stock_categories_list_row(_("Category:"), 'category_id', null); item_tax_types_list_row(_("Item Tax Type:"), 'tax_type_id', null); stock_item_types_list_row(_("Item Type:"), 'mb_flag', null, - (!isset($_POST['NewStockID']) || isset($_POST['New']))); - -/* The array stock_units is set up in config.php for user modification -possible units of measure can added or modifying the array definition by editing that file */ + (!isset($_POST['NewStockID']) || $new_item)); stock_units_list_row(_('Units of Measure:'), 'units', null, - (!isset($_POST['NewStockID']) || isset($_POST['New']))); + (!isset($_POST['NewStockID']) || $new_item)); end_table(); start_table("$table_style2 width=40%"); @@ -364,20 +383,20 @@ if ($dim < 2) hidden('dimension2_id', 0); end_table(1); - -if (!isset($_POST['NewStockID']) || (isset($_POST['New']) && $_POST['New'] != "")) +div_end(); +div_start('controls'); +if (!isset($_POST['NewStockID']) || $new_item) { - submit_center('addupdate', _("Insert New Item")); - + submit_center('addupdate', _("Insert New Item"), true, '', true); } else { - submit_center_first('addupdate', _("Update Item")); + submit_center_first('addupdate', _("Update Item"), '', true); - submit_center_last('delete', _("Delete This Item")); + submit_center_last('delete', _("Delete This Item"), '', true); } - +div_end(); end_form(); //------------------------------------------------------------------------------------ diff --git a/inventory/manage/locations.php b/inventory/manage/locations.php index fe90a68c..4b6d291c 100644 --- a/inventory/manage/locations.php +++ b/inventory/manage/locations.php @@ -10,16 +10,9 @@ include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/inventory/includes/inventory_db.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif (isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} +simple_page_mode(true); -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -35,20 +28,23 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error( _("The location code must be five characters or less long.")); + set_focus('loc_code'); } elseif (strlen($_POST['location_name']) == 0) { $input_error = 1; display_error( _("The location name must be entered.")); + set_focus('location_name'); } if ($input_error != 1) { - if (isset($selected_id)) + if ($selected_id != -1) { update_item_location($selected_id, $_POST['location_name'], $_POST['delivery_address'], $_POST['phone'], $_POST['fax'], $_POST['email'], $_POST['contact']); + display_notification(_('Selected location has been updated')); } else { @@ -57,9 +53,10 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) add_item_location($_POST['loc_code'], $_POST['location_name'], $_POST['delivery_address'], $_POST['phone'], $_POST['fax'], $_POST['email'], $_POST['contact']); + display_notification(_('New location has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -97,24 +94,27 @@ function can_delete($selected_id) //---------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_item_location($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected location has been deleted')); } //end if Delete Location + $Mode = 'RESET'; } -/* It could still be the second time the page has been run and a record has been selected for modification - selected_id will exist because it was sent with the new call. If its the first time the page has been displayed with no parameters -then none of the above are true and the list of locations will be displayed with -links to delete or edit each. These will call the same page again and allow update/input -or deletion of the records*/ +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} $sql = "SELECT * FROM ".TB_PREF."locations"; $result = db_query($sql, "could not query locations");; +start_form(); start_table("$table_style width=30%"); $th = array(_("Location Code"), _("Location Name"), "", ""); table_header($th); @@ -126,8 +126,8 @@ while ($myrow = db_fetch_row($result)) label_cell($myrow[0]); label_cell($myrow[1]); - edit_link_cell("selected_id=$myrow[0]"); - delete_link_cell("selected_id=$myrow[0]&delete=1"); + edit_button_cell("Edit".$myrow[0], _("Edit")); + edit_button_cell("Delete".$myrow[0], _("Delete")); end_row(); } //END WHILE LIST LOOP @@ -136,27 +136,30 @@ while ($myrow = db_fetch_row($result)) end_table(); -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Location")); +end_form(); +echo '
'; start_form(); start_table($table_style2); -if (isset($selected_id)) + +if ($selected_id != -1) { //editing an existing Location - $myrow = get_item_location($selected_id); - - $_POST['loc_code'] = $myrow["loc_code"]; - $_POST['location_name'] = $myrow["location_name"]; - $_POST['delivery_address'] = $myrow["delivery_address"]; - $_POST['contact'] = $myrow["contact"]; - $_POST['phone'] = $myrow["phone"]; - $_POST['fax'] = $myrow["fax"]; - $_POST['email'] = $myrow["email"]; + if ($Mode == 'Edit') { + $myrow = get_item_location($selected_id); + $_POST['loc_code'] = $myrow["loc_code"]; + $_POST['location_name'] = $myrow["location_name"]; + $_POST['delivery_address'] = $myrow["delivery_address"]; + $_POST['contact'] = $myrow["contact"]; + $_POST['phone'] = $myrow["phone"]; + $_POST['fax'] = $myrow["fax"]; + $_POST['email'] = $myrow["email"]; + } hidden("selected_id", $selected_id); - hidden("loc_code", $_POST['loc_code']); + hidden("loc_code"); label_row(_("Location Code:"), $_POST['loc_code']); } else @@ -174,12 +177,10 @@ text_row_ex(_("Facsimile No:"), 'fax', 30, 30); text_row_ex(_("Email:"), 'email', 30, 30); end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); -//end if record deleted no point displaying form to add record - - end_page(); +end_page(); ?> diff --git a/inventory/manage/movement_types.php b/inventory/manage/movement_types.php index 4a2369e7..fb866fc2 100644 --- a/inventory/manage/movement_types.php +++ b/inventory/manage/movement_types.php @@ -10,18 +10,10 @@ include_once($path_to_root . "/inventory/includes/inventory_db.inc"); include_once($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} - +simple_page_mode(true); //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -31,24 +23,23 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error(_("The inventory movement type name cannot be empty.")); + set_focus('name'); } if ($input_error != 1) { - - if (isset($selected_id)) + if ($selected_id != -1) { - update_movement_type($selected_id, $_POST['name']); - + display_notification(_('Selected movement type has been updated')); } else { - add_movement_type($_POST['name']); + display_notification(_('New movement type has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -72,20 +63,26 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { - if (can_delete($selected_id)) { delete_movement_type($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected movement type has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //----------------------------------------------------------------------------------- $result = get_all_movement_type(); +start_form(); start_table("$table_style width=30%"); $th = array(_("Description"), "", ""); @@ -97,29 +94,30 @@ while ($myrow = db_fetch($result)) alt_table_row_color($k); label_cell($myrow["name"]); - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + edit_button_cell("Edit".$myrow['id'], _("Edit")); + edit_button_cell("Delete".$myrow['id'], _("Delete")); end_row(); } end_table(); +end_form(); +echo '
'; //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Inventory Movement Type")); - start_form(); start_table(); -if (isset($selected_id)) +if ($selected_id != -1) { - //editing an existing status code - - $myrow = get_movement_type($selected_id); + if ($Mode == 'Edit') { + //editing an existing status code - $_POST['name'] = $myrow["name"]; + $myrow = get_movement_type($selected_id); + $_POST['name'] = $myrow["name"]; + } hidden('selected_id', $selected_id); } @@ -127,7 +125,7 @@ text_row(_("Description:"), 'name', null, 50, 50); end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/inventory/prices.php b/inventory/prices.php index 073289c6..5a3238ff 100644 --- a/inventory/prices.php +++ b/inventory/prices.php @@ -6,6 +6,8 @@ include_once($path_to_root . "/includes/session.inc"); page(_("Inventory Item Sales prices")); +include_once($path_to_root . "/sales/includes/sales_db.inc"); +include_once($path_to_root . "/sales/includes/db/sales_types_db.inc"); include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/includes/data_checks.inc"); @@ -17,8 +19,8 @@ check_db_has_stock_items(_("There are no items defined in the system.")); check_db_has_sales_types(_("There are no sales types in the system. Please set up sales types befor entering pricing.")); +simple_page_mode(true); //--------------------------------------------------------------------------------------------------- - $input_error = 0; if (isset($_GET['stock_id'])) @@ -44,81 +46,89 @@ if (!isset($_POST['stock_id'])) echo "
" . _("Item:"). " "; stock_items_list('stock_id', $_POST['stock_id'], false, true); -echo "
"; - -// if stock sel has changed, clear the form -if ($_POST['stock_id'] != get_global_stock_item()) -{ - clear_data(); -} +echo "
"; set_global_stock_item($_POST['stock_id']); //---------------------------------------------------------------------------------------------------- -function clear_data() -{ - unset($_POST['PriceID']); - unset($_POST['price']); -} - -//---------------------------------------------------------------------------------------------------- - -if (isset($_POST['updatePrice'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { - if (!is_numeric($_POST['price']) || $_POST['price'] == "") + if (!check_num('price', 0)) { $input_error = 1; display_error( _("The price entered must be numeric.")); + set_focus('price'); } if ($input_error != 1) { - if (isset($_POST['PriceID'])) + if ($selected_id != -1) { //editing an existing price - update_item_price($_POST['PriceID'], $_POST['sales_type_id'], $_POST['curr_abrev'], $_POST['price']); + update_item_price($selected_id, $_POST['sales_type_id'], + $_POST['curr_abrev'], input_num('price')); $msg = _("This price has been updated."); - } - elseif ($input_error !=1) + } + else { - add_item_price($_POST['stock_id'], $_POST['sales_type_id'], $_POST['curr_abrev'], $_POST['price']); + add_item_price($_POST['stock_id'], $_POST['sales_type_id'], + $_POST['curr_abrev'], input_num('price')); - display_note(_("The new price has been added.")); + $msg = _("The new price has been added."); } - clear_data(); + display_notification($msg); + $Mode = 'RESET'; } } //------------------------------------------------------------------------------------------------------ -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { - //the link to delete a selected record was clicked - delete_item_price($_GET['PriceID']); - echo _("The selected price has been deleted."); + delete_item_price($selected_id); + display_notification(_("The selected price has been deleted.")); + $Mode = 'RESET'; +} +if ($Mode == 'RESET') +{ + $selected_id = -1; } +if (isset($_POST['_stock_id_update'])) { + $Ajax->activate('price_table'); + $Ajax->activate('price_details'); +} +if (isset($_POST['_stock_id_update']) || isset($_POST['_sales_type_id_update']) + || isset($_POST['_curr_abrev_update']) ) { + // after change of stock, currency or salestype selector + // display default calculated price for new settings. + // If we have this price already in db it is overwritten later. + $_POST['price'] = price_format(get_price(get_post('stock_id'), + get_post('curr_abrev'), get_post('sales_type_id'))); + $Ajax->activate('price_details'); +} //--------------------------------------------------------------------------------------------------- $mb_flag = get_mb_flag($_POST['stock_id']); $prices_list = get_prices($_POST['stock_id']); +div_start('price_table'); start_table("$table_style width=30%"); $th = array(_("Currency"), _("Sales Type"), _("Price"), "", ""); table_header($th); $k = 0; //row colour counter -while ($myrow = db_fetch($prices_list)) +while ($myrow = db_fetch($prices_list)) { alt_table_row_color($k); @@ -126,43 +136,43 @@ while ($myrow = db_fetch($prices_list)) label_cell($myrow["curr_abrev"]); label_cell($myrow["sales_type"]); amount_cell($myrow["price"]); - edit_link_cell("PriceID=" . $myrow["id"]. "&Edit=1"); - delete_link_cell("PriceID=" . $myrow["id"]. "&delete=yes"); + edit_button_cell("Edit".$myrow['id'], _("Edit")); + edit_button_cell("Delete".$myrow['id'], _("Delete")); end_row(); } end_table(); - -//------------------------------------------------------------------------------------------------ - -if (db_num_rows($prices_list) == 0) +if (db_num_rows($prices_list) == 0) { display_note(_("There are no prices set up for this part.")); } +div_end(); +//------------------------------------------------------------------------------------------------ echo "
"; -if (isset($_GET['Edit'])) +if ($Mode == 'Edit') { - $myrow = get_stock_price($_GET['PriceID']); - hidden('PriceID', $_GET['PriceID']); + $myrow = get_stock_price($selected_id); $_POST['curr_abrev'] = $myrow["curr_abrev"]; $_POST['sales_type_id'] = $myrow["sales_type_id"]; - $_POST['price'] = $myrow["price"]; + $_POST['price'] = price_format($myrow["price"]); } +hidden('selected_id', $selected_id); +div_start('price_details'); start_table($table_style2); -currencies_list_row(_("Currency:"), 'curr_abrev', null); +currencies_list_row(_("Currency:"), 'curr_abrev', null, true); -sales_types_list_row(_("Sales Type:"), 'sales_type_id', null); +sales_types_list_row(_("Sales Type:"), 'sales_type_id', null, true); -text_row(_("Price:"), 'price', null, 10, 10); +small_amount_row(_("Price:"), 'price', null); end_table(1); -submit_center('updatePrice', _("Add/Update Price")); - +submit_add_or_update_center($selected_id == -1, '', true); +div_end(); end_form(); end_page(); diff --git a/inventory/purchasing_data.php b/inventory/purchasing_data.php index 8e2cb59d..67b670ff 100644 --- a/inventory/purchasing_data.php +++ b/inventory/purchasing_data.php @@ -1,6 +1,4 @@ activate('_page_body'); +} + +if (isset($_POST['_stock_id_update'])) + $Ajax->activate('price_table'); //-------------------------------------------------------------------------------------------------- start_form(false, true); @@ -113,17 +104,18 @@ if (!isset($_POST['stock_id'])) echo "
" . _("Item:"). " "; stock_purchasable_items_list('stock_id', $_POST['stock_id'], false, true); -echo "
"; +echo "
"; set_global_stock_item($_POST['stock_id']); $mb_flag = get_mb_flag($_POST['stock_id']); -if ($mb_flag == -1) +if ($mb_flag == -1) { display_error(_("Entered item is not defined. Please re-enter.")); -} -else + set_focus('stock_id'); +} +else { $sql = "SELECT ".TB_PREF."purch_data.*,".TB_PREF."suppliers.supp_name,".TB_PREF."suppliers.curr_code @@ -132,12 +124,12 @@ else WHERE stock_id = '" . $_POST['stock_id'] . "'"; $result = db_query($sql, "The supplier purchasing details for the selected part could not be retrieved"); - + div_start('price_table'); if (db_num_rows($result) == 0) { display_note(_("There is no purchasing data set up for the part selected")); - } - else + } + else { start_table("$table_style width=60%"); @@ -157,8 +149,8 @@ else label_cell($myrow["curr_code"]); label_cell($myrow["suppliers_uom"]); label_cell($myrow["supplier_description"]); - edit_link_cell("stock_id=" . $_POST['stock_id']. "&supplier_id=" . $myrow["supplier_id"] . "&Edit=1"); - delete_link_cell("stock_id=" . $_POST['stock_id']. "&supplier_id=" . $myrow["supplier_id"] . "&Delete=1"); + edit_button_cell("Edit".$myrow['supplier_id'], _("Edit")); + edit_button_cell("Delete".$myrow['supplier_id'], _("Delete")); end_row(); $j++; @@ -171,16 +163,17 @@ else end_table(); } + div_end(); } -//------------------------------------------------------------------------------------------------ +//----------------------------------------------------------------------------------------------- -if (isset($_GET['Edit'])) +if ($Mode =='Edit') { $sql = "SELECT ".TB_PREF."purch_data.*,".TB_PREF."suppliers.supp_name FROM ".TB_PREF."purch_data INNER JOIN ".TB_PREF."suppliers ON ".TB_PREF."purch_data.supplier_id=".TB_PREF."suppliers.supplier_id - WHERE ".TB_PREF."purch_data.supplier_id='$supplier_id' + WHERE ".TB_PREF."purch_data.supplier_id='$selected_id' AND ".TB_PREF."purch_data.stock_id='" . $_POST['stock_id'] . "'"; $result = db_query($sql, "The supplier purchasing details for the selected supplier and item could not be retrieved"); @@ -188,45 +181,39 @@ if (isset($_GET['Edit'])) $myrow = db_fetch($result); $supp_name = $myrow["supp_name"]; - $_POST['price'] = $myrow["price"]; + $_POST['price'] = price_format($myrow["price"]); $_POST['suppliers_uom'] = $myrow["suppliers_uom"]; $_POST['supplier_description'] = $myrow["supplier_description"]; - $_POST['conversion_factor'] = $myrow["conversion_factor"]; + $_POST['conversion_factor'] = exrate_format($myrow["conversion_factor"]); } echo "
"; +hidden('selected_id', $selected_id); start_table($table_style2); -if (isset($_GET['Edit'])) +if ($Mode == 'Edit') { - hidden('supplier_id', $supplier_id); + hidden('supplier_id'); label_row(_("Supplier:"), $supp_name); -} +} else { supplier_list_row(_("Supplier:"), 'supplier_id', null, false, true); - $supplier_id = $_POST['supplier_id']; -} -text_row(_("Price:"), 'price', null, 12, 12, "", get_supplier_currency($supplier_id)); +} +amount_row(_("Price:"), 'price', null,'', get_supplier_currency($selected_id)); text_row(_("Suppliers Unit of Measure:"), 'suppliers_uom', null, 50, 51); if (!isset($_POST['conversion_factor']) || $_POST['conversion_factor'] == "") { - $_POST['conversion_factor'] = 1; + $_POST['conversion_factor'] = exrate_format(1); } -text_row(_("Conversion Factor (to our UOM):"), 'conversion_factor', $_POST['conversion_factor'], 12, 12); +amount_row(_("Conversion Factor (to our UOM):"), 'conversion_factor', + exrate_format($_POST['conversion_factor']), null, null, user_exrate_dec() ); text_row(_("Supplier's Code or Description:"), 'supplier_description', null, 50, 51); end_table(1); -if (isset($_GET['Edit'])) -{ - submit_center('UpdateRecord', _("Update Purchasing Data")); -} -else -{ - submit_center('AddRecord', _("Add Purchasing Data")); -} +submit_add_or_update_center($selected_id == -1, '', true); end_form(); end_page(); diff --git a/inventory/reorder_level.php b/inventory/reorder_level.php index 980d04cf..83283d5b 100644 --- a/inventory/reorder_level.php +++ b/inventory/reorder_level.php @@ -17,10 +17,13 @@ check_db_has_costable_items(_("There are no inventory items defined in the syste //------------------------------------------------------------------------------------ if (isset($_GET['stock_id'])) -{ $_POST['stock_id'] = $_GET['stock_id']; -} +if (isset($_POST['_stock_id_update'])) +{ + $Ajax->activate('show_heading'); + $Ajax->activate('reorders'); +} //------------------------------------------------------------------------------------ start_form(false, true); @@ -31,12 +34,14 @@ if (!isset($_POST['stock_id'])) echo "
" . _("Item:"). " "; stock_costable_items_list('stock_id', $_POST['stock_id'], false, true); -echo "
"; +echo "
"; +div_start('show_heading'); stock_item_heading($_POST['stock_id']); - +div_end(); set_global_stock_item($_POST['stock_id']); +div_start('reorders'); start_table("$table_style width=30%"); $th = array(_("Location"), _("Quantity On Hand"), _("Re-Order Level")); @@ -47,23 +52,26 @@ $k=0; //row colour counter $result = get_loc_details($_POST['stock_id']); -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { alt_table_row_color($k); - if (isset($_POST['UpdateData']) && is_numeric($_POST[$myrow["loc_code"]])) + if (isset($_POST['UpdateData']) && check_num($myrow["loc_code"])) { - $myrow["reorder_level"] = $_POST[$myrow["loc_code"]]; - set_reorder_level($_POST['stock_id'], $myrow["loc_code"], $_POST[$myrow["loc_code"]]); + $myrow["reorder_level"] = input_num($myrow["loc_code"]); + set_reorder_level($_POST['stock_id'], $myrow["loc_code"], input_num($myrow["loc_code"])); } $qoh = get_qoh_on_date($_POST['stock_id'], $myrow["loc_code"]); label_cell($myrow["location_name"]); - label_cell(number_format2($qoh,user_qty_dec()), "nowrap align='right'"); - text_cells(null, $myrow["loc_code"], $myrow["reorder_level"], 10, 10); + + $_POST[$myrow["loc_code"]] = qty_format($myrow["reorder_level"], $_POST['stock_id'], $dec); + + qty_cell($qoh, false, $dec); + qty_cells(null, $myrow["loc_code"], null, null, null, $dec); end_row(); $j++; If ($j == 12) @@ -74,8 +82,8 @@ while ($myrow = db_fetch($result)) } end_table(1); - -submit('UpdateData', _("Update")); +div_end(); +submit_center('UpdateData', _("Update")); end_form(); end_page(); diff --git a/inventory/transfers.php b/inventory/transfers.php index 4b0339b2..13f4c109 100644 --- a/inventory/transfers.php +++ b/inventory/transfers.php @@ -18,7 +18,6 @@ if ($use_date_picker) $js .= get_js_date_picker(); page(_("Inventory Location Transfers"), false, false, "", $js); - //----------------------------------------------------------------------------------------------- check_db_has_costable_items(_("There are no inventory items defined in the system (Purchased or manufactured items).")); @@ -39,29 +38,14 @@ if (isset($_GET['AddedID'])) display_footer_exit(); } - //-------------------------------------------------------------------------------------------------- -function copy_to_st() -{ - $_SESSION['transfer_items']->from_loc = $_POST['FromStockLocation']; - $_SESSION['transfer_items']->to_loc = $_POST['ToStockLocation']; - $_SESSION['transfer_items']->tran_date = $_POST['AdjDate']; - $_SESSION['transfer_items']->transfer_type = $_POST['type']; - $_SESSION['transfer_items']->memo_ = $_POST['memo_']; -} +function line_start_focus() { + global $Ajax; -//-------------------------------------------------------------------------------------------------- - -function copy_from_st() -{ - $_POST['FromStockLocation'] = $_SESSION['transfer_items']->from_loc; - $_POST['ToStockLocation'] = $_SESSION['transfer_items']->to_loc; - $_POST['AdjDate'] = $_SESSION['transfer_items']->tran_date; - $_POST['type'] = $_SESSION['transfer_items']->transfer_type; - $_POST['memo_'] = $_SESSION['transfer_items']->memo_; + $Ajax->activate('items_table'); + set_focus('_stock_id_edit'); } - //----------------------------------------------------------------------------------------------- function handle_new_order() @@ -74,7 +58,7 @@ function handle_new_order() session_register("transfer_items"); - $_SESSION['transfer_items'] = new items_cart; + $_SESSION['transfer_items'] = new items_cart(systypes::location_transfer()); $_POST['AdjDate'] = Today(); if (!is_date_in_fiscalyear($_POST['AdjDate'])) $_POST['AdjDate'] = end_fiscalyear(); @@ -86,41 +70,54 @@ function handle_new_order() if (isset($_POST['Process'])) { + $tr = &$_SESSION['transfer_items']; $input_error = 0; + if (count($tr->line_items) == 0) { + display_error(_("You must enter at least one non empty item line.")); + set_focus('stock_id'); + return false; + } if (!references::is_valid($_POST['ref'])) { display_error(_("You must enter a reference.")); + set_focus('ref'); $input_error = 1; } elseif (!is_new_reference($_POST['ref'], systypes::location_transfer())) { display_error(_("The entered reference is already in use.")); + set_focus('ref'); $input_error = 1; } elseif (!is_date($_POST['AdjDate'])) { display_error(_("The entered date for the adjustment is invalid.")); + set_focus('AdjDate'); $input_error = 1; } elseif (!is_date_in_fiscalyear($_POST['AdjDate'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('AdjDate'); $input_error = 1; } elseif ($_POST['FromStockLocation'] == $_POST['ToStockLocation']) { display_error(_("The locations to transfer from and to must be different.")); + set_focus('FromStockLocation'); $input_error = 1; } else { - $failed_item = $_SESSION['transfer_items']->check_qoh($_POST['FromStockLocation'], $_POST['AdjDate'], true); - if ($failed_item != null) + $failed_item = $tr->check_qoh($_POST['FromStockLocation'], $_POST['AdjDate'], true); + if ($failed_item >= 0) { + $line = $tr->line_items[$failed_item]; display_error(_("The quantity entered is greater than the available quantity for this item at the source location :") . - " " . $failed_item->stock_id . " - " . $failed_item->item_description); + " " . $line->stock_id . " - " . $line->item_description); echo "
"; + $_POST['Edit'.$failed_item] = 1; // enter edit mode $input_error = 1; } } @@ -148,18 +145,12 @@ if (isset($_POST['Process'])) function check_item_data() { - if (!is_numeric($_POST['qty']) || ($_POST['qty'] == 0)) - { - display_error( _("The quantity entered is not a valid number.")); - return false; - } - - if ($_POST['qty'] <= 0) + if (!check_num('qty', 0)) { display_error(_("The quantity entered must be a positive number.")); + set_focus('qty'); return false; } - return true; } @@ -169,17 +160,20 @@ function handle_update_item() { if($_POST['UpdateItem'] != "" && check_item_data()) { + $id = $_POST['LineNo']; if (!isset($_POST['std_cost'])) - $_POST['std_cost'] = $_SESSION['transfer_items']->line_items[$_POST['stock_id']]->standard_cost; - $_SESSION['transfer_items']->update_cart_item($_POST['stock_id'], $_POST['qty'], $_POST['std_cost']); + $_POST['std_cost'] = $_SESSION['transfer_items']->line_items[$id]->standard_cost; + $_SESSION['transfer_items']->update_cart_item($id, input_num('qty'), $_POST['std_cost']); } + line_start_focus(); } //----------------------------------------------------------------------------------------------- -function handle_delete_item() +function handle_delete_item($id) { - $_SESSION['transfer_items']->remove_from_cart($_GET['Delete']); + $_SESSION['transfer_items']->remove_from_cart($id); + line_start_focus(); } //----------------------------------------------------------------------------------------------- @@ -190,19 +184,14 @@ function handle_new_item() return; if (!isset($_POST['std_cost'])) $_POST['std_cost'] = 0; - add_to_order($_SESSION['transfer_items'], $_POST['stock_id'], $_POST['qty'], $_POST['std_cost']); + add_to_order($_SESSION['transfer_items'], $_POST['stock_id'], input_num('qty'), $_POST['std_cost']); + line_start_focus(); } //----------------------------------------------------------------------------------------------- - -if (isset($_GET['Delete']) || isset($_GET['Edit'])) - copy_from_st(); - -if (isset($_GET['Delete'])) - handle_delete_item(); - -if (isset($_POST['AddItem']) || isset($_POST['UpdateItem'])) - copy_to_st(); +$id = find_submit('Delete'); +if ($id != -1) + handle_delete_item($id); if (isset($_POST['AddItem'])) handle_new_item(); @@ -210,6 +199,9 @@ if (isset($_POST['AddItem'])) if (isset($_POST['UpdateItem'])) handle_update_item(); +if (isset($_POST['CancelItemChanges'])) { + line_start_focus(); +} //----------------------------------------------------------------------------------------------- if (isset($_GET['NewTransfer']) || !isset($_SESSION['transfer_items'])) @@ -218,7 +210,6 @@ if (isset($_GET['NewTransfer']) || !isset($_SESSION['transfer_items'])) } //----------------------------------------------------------------------------------------------- - start_form(false, true); display_order_header($_SESSION['transfer_items']); @@ -232,16 +223,9 @@ echo ""; end_row(); end_table(1); -if (!isset($_POST['Process'])) -{ - if ($_SESSION['transfer_items']->count_items() >= 1) - { - submit_center_first('Update', _("Update")); - submit_center_last('Process', _("Process Transfer")); - } - else - submit_center('Update', _("Update")); -} +submit_center_first('Update', _("Update"), '', null); +submit_center_last('Process', _("Process Transfer"), '', true); + end_form(); end_page(); diff --git a/inventory/view/view_adjustment.php b/inventory/view/view_adjustment.php index f5d9cbd6..a4eb1fe9 100644 --- a/inventory/view/view_adjustment.php +++ b/inventory/view/view_adjustment.php @@ -21,13 +21,13 @@ display_heading(systypes::name(systypes::inventory_adjustment()) . " #$trans_no" $adjustment_items = get_stock_adjustment_items($trans_no); $k = 0; $header_shown = false; -while ($adjustment = db_fetch($adjustment_items)) +while ($adjustment = db_fetch($adjustment_items)) { - if (!$header_shown) + if (!$header_shown) { $adjustment_type = get_movement_type($adjustment['person_id']) ; - + start_table("$table_style2 width=90%"); start_row(); label_cells(_("At Location"), $adjustment['location_name'], "class='tableheader2'"); @@ -45,14 +45,14 @@ while ($adjustment = db_fetch($adjustment_items)) $th = array(_("Item"), _("Description"), _("Quantity"), _("Units"), _("Unit Cost")); - table_header($th); + table_header($th); } alt_table_row_color($k); label_cell($adjustment['stock_id']); label_cell($adjustment['description']); - qty_cell($adjustment['qty']); + qty_cell($adjustment['qty'], false, get_qty_dec($adjustment['stock_id'])); label_cell($adjustment['units']); amount_cell($adjustment['standard_cost']); end_row(); diff --git a/inventory/view/view_transfer.php b/inventory/view/view_transfer.php index 66f5a7a4..75f567cb 100644 --- a/inventory/view/view_transfer.php +++ b/inventory/view/view_transfer.php @@ -48,16 +48,16 @@ start_table("$table_style width=90%"); $th = array(_("Item"), _("Description"), _("Quantity"), _("Units")); table_header($th); $transfer_items = get_stock_moves(systypes::location_transfer(), $trans_no); - -while ($item = db_fetch($transfer_items)) +$k = 0; +while ($item = db_fetch($transfer_items)) { - if ($item['loc_code'] == $to_trans['loc_code']) + if ($item['loc_code'] == $to_trans['loc_code']) { alt_table_row_color($k); label_cell($item['stock_id']); label_cell($item['description']); - qty_cell($item['qty']); + qty_cell($item['qty'], false, get_qty_dec($item['stock_id'])); label_cell($item['units']); end_row();; } diff --git a/js/JsHttpRequest.js b/js/JsHttpRequest.js new file mode 100644 index 00000000..d89ff4b2 --- /dev/null +++ b/js/JsHttpRequest.js @@ -0,0 +1,798 @@ +/** + * JsHttpRequest: JavaScript "AJAX" data loader + * + * @license LGPL + * @author Dmitry Koterov, http://en.dklab.ru/lib/JsHttpRequest/ + * @version 5.x $Id$ + */ + +// {{{ +function JsHttpRequest() { + // Standard properties. + var t = this; + t.onreadystatechange = null; + t.readyState = 0; + t.responseText = null; + t.responseXML = null; + t.status = 200; + t.statusText = "OK"; + // JavaScript response array/hash + t.responseJS = null; + + // Additional properties. + t.caching = false; // need to use caching? + t.loader = null; // loader to use ('form', 'script', 'xml'; null - autodetect) + t.session_name = "PHPSESSID"; // set to SID cookie or GET parameter name + + // Internals. + t._ldObj = null; // used loader object + t._reqHeaders = []; // collected request headers + t._openArgs = null; // parameters from open() + t._errors = { + inv_form_el: 'Invalid FORM element detected: name=%, tag=%', + must_be_single_el: 'If used,
must be a single HTML element in the list.', + js_invalid: 'JavaScript code generated by backend is invalid!\n%', + url_too_long: 'Cannot use so long query with GET request (URL is larger than % bytes)', + unk_loader: 'Unknown loader: %', + no_loaders: 'No loaders registered at all, please check JsHttpRequest.LOADERS array', + no_loader_matched: 'Cannot find a loader which may process the request. Notices are:\n%' + } + + /** + * Aborts the request. Behaviour of this function for onreadystatechange() + * is identical to IE (most universal and common case). E.g., readyState -> 4 + * on abort() after send(). + */ + t.abort = function() { with (this) { + if (_ldObj && _ldObj.abort) _ldObj.abort(); + _cleanup(); + if (readyState == 0) { + // start->abort: no change of readyState (IE behaviour) + return; + } + if (readyState == 1 && !_ldObj) { + // open->abort: no onreadystatechange call, but change readyState to 0 (IE). + // send->abort: change state to 4 (_ldObj is not null when send() is called) + readyState = 0; + return; + } + _changeReadyState(4, true); // 4 in IE & FF on abort() call; Opera does not change to 4. + }} + + /** + * Prepares the object for data loading. + * You may also pass URLs like "GET url" or "script.GET url". + */ + t.open = function(method, url, asyncFlag, username, password) { with (this) { + // Extract methor and loader from the URL (if present). + if (url.match(/^((\w+)\.)?(GET|POST)\s+(.*)/i)) { + this.loader = RegExp.$2? RegExp.$2 : null; + method = RegExp.$3; + url = RegExp.$4; + } + // Append SID to original URL. Use try...catch for security problems. + try { + if ( + document.location.search.match(new RegExp('[&?]' + session_name + '=([^&?]*)')) + || document.cookie.match(new RegExp('(?:;|^)\\s*' + session_name + '=([^;]*)')) + ) { + url += (url.indexOf('?') >= 0? '&' : '?') + session_name + "=" + this.escape(RegExp.$1); + } + } catch (e) {} + // Store open arguments to hash. + _openArgs = { + method: (method || '').toUpperCase(), + url: url, + asyncFlag: asyncFlag, + username: username != null? username : '', + password: password != null? password : '' + } + _ldObj = null; + _changeReadyState(1, true); // compatibility with XMLHttpRequest + return true; + }} + + /** + * Sends a request to a server. + */ + t.send = function(content) { + if (!this.readyState) { + // send without open or after abort: no action (IE behaviour). + return; + } + this._changeReadyState(1, true); // compatibility with XMLHttpRequest + this._ldObj = null; + + // Prepare to build QUERY_STRING from query hash. + var queryText = []; + var queryElem = []; + if (!this._hash2query(content, null, queryText, queryElem)) return; + + // Solve the query hashcode & return on cache hit. + var hash = null; + if (this.caching && !queryElem.length) { + hash = this._openArgs.username + ':' + this._openArgs.password + '@' + this._openArgs.url + '|' + queryText + "#" + this._openArgs.method; + var cache = JsHttpRequest.CACHE[hash]; + if (cache) { + this._dataReady(cache[0], cache[1]); + return false; + } + } + + // Try all the loaders. + var loader = (this.loader || '').toLowerCase(); + if (loader && !JsHttpRequest.LOADERS[loader]) return this._error('unk_loader', loader); + var errors = []; + var lds = JsHttpRequest.LOADERS; + for (var tryLoader in lds) { + var ldr = lds[tryLoader].loader; + if (!ldr) continue; // exclude possibly derived prototype properties from "for .. in". + if (loader && tryLoader != loader) continue; + // Create sending context. + var ldObj = new ldr(this); + JsHttpRequest.extend(ldObj, this._openArgs); + JsHttpRequest.extend(ldObj, { + queryText: queryText.join('&'), + queryElem: queryElem, + id: (new Date().getTime()) + "" + JsHttpRequest.COUNT++, + hash: hash, + span: null + }); + var error = ldObj.load(); + if (!error) { + // Save loading script. + this._ldObj = ldObj; + JsHttpRequest.PENDING[ldObj.id] = this; + return true; + } + if (!loader) { + errors[errors.length] = '- ' + tryLoader.toUpperCase() + ': ' + this._l(error); + } else { + return this._error(error); + } + } + + // If no loader matched, generate error message. + return tryLoader? this._error('no_loader_matched', errors.join('\n')) : this._error('no_loaders'); + } + + /** + * Returns all response headers (if supported). + */ + t.getAllResponseHeaders = function() { with (this) { + return _ldObj && _ldObj.getAllResponseHeaders? _ldObj.getAllResponseHeaders() : []; + }} + + /** + * Returns one response header (if supported). + */ + t.getResponseHeader = function(label) { with (this) { + return _ldObj && _ldObj.getResponseHeader? _ldObj.getResponseHeader(label) : null; + }} + + /** + * Adds a request header to a future query. + */ + t.setRequestHeader = function(label, value) { with (this) { + _reqHeaders[_reqHeaders.length] = [label, value]; + }} + + // + // Internal functions. + // + + /** + * Do all the work when a data is ready. + */ + t._dataReady = function(text, js) { with (this) { + if (caching && _ldObj) JsHttpRequest.CACHE[_ldObj.hash] = [text, js]; + responseText = responseXML = text; + responseJS = js; + if (js !== null) { + status = 200; + statusText = "OK"; + } else { + status = 500; + statusText = "Internal Server Error"; + } + _changeReadyState(2); + _changeReadyState(3); + _changeReadyState(4); + _cleanup(); + }} + + /** + * Analog of sprintf(), but translates the first parameter by _errors. + */ + t._l = function(args) { + var i = 0, p = 0, msg = this._errors[args[0]]; + // Cannot use replace() with a callback, because it is incompatible with IE5. + while ((p = msg.indexOf('%', p)) >= 0) { + var a = args[++i] + ""; + msg = msg.substring(0, p) + a + msg.substring(p + 1, msg.length); + p += 1 + a.length; + } + return msg; + } + + /** + * Called on error. + */ + t._error = function(msg) { + msg = this._l(typeof(msg) == 'string'? arguments : msg) + msg = "JsHttpRequest: " + msg; + if (!window.Error) { + // Very old browser... + throw msg; + } else if ((new Error(1, 'test')).description == "test") { + // We MUST (!!!) pass 2 parameters to the Error() constructor for IE5. + throw new Error(1, msg); + } else { + // Mozilla does not support two-parameter call style. + throw new Error(msg); + } + } + + /** + * Convert hash to QUERY_STRING. + * If next value is scalar or hash, push it to queryText. + * If next value is form element, push [name, element] to queryElem. + */ + t._hash2query = function(content, prefix, queryText, queryElem) { + if (prefix == null) prefix = ""; + if((''+typeof(content)).toLowerCase() == 'object') { + var formAdded = false; + if (content && content.parentNode && content.parentNode.appendChild && content.tagName && content.tagName.toUpperCase() == 'FORM') { + content = { form: content }; + } + for (var k in content) { + var v = content[k]; + if (v instanceof Function) continue; + var curPrefix = prefix? prefix + '[' + this.escape(k) + ']' : this.escape(k); + var isFormElement = v && v.parentNode && v.parentNode.appendChild && v.tagName; + if (isFormElement) { + var tn = v.tagName.toUpperCase(); + if (tn == 'FORM') { + // FORM itself is passed. + formAdded = true; + } else if (tn == 'INPUT' || tn == 'TEXTAREA' || tn == 'SELECT') { + // This is a single form elemenent. + } else { + return this._error('inv_form_el', (v.name||''), v.tagName); + } + queryElem[queryElem.length] = { name: curPrefix, e: v }; + } else if (v instanceof Object) { + this._hash2query(v, curPrefix, queryText, queryElem); + } else { + // We MUST skip NULL values, because there is no method + // to pass NULL's via GET or POST request in PHP. + if (v === null) continue; + // Convert JS boolean true and false to corresponding PHP values. + if (v === true) v = 1; + if (v === false) v = ''; + queryText[queryText.length] = curPrefix + "=" + this.escape('' + v); + } + if (formAdded && queryElem.length > 1) { + return this._error('must_be_single_el'); + } + } + } else { + queryText[queryText.length] = content; + } + return true; + } + + /** + * Remove last used script element (clean memory). + */ + t._cleanup = function() { + var ldObj = this._ldObj; + if (!ldObj) return; + // Mark this loading as aborted. + JsHttpRequest.PENDING[ldObj.id] = false; + var span = ldObj.span; + if (!span) return; + // Do NOT use iframe.contentWindow.back() - it is incompatible with Opera 9! + ldObj.span = null; + var closure = function() { + span.parentNode.removeChild(span); + } + // IE5 crashes on setTimeout(function() {...}, ...) construction! Use tmp variable. + JsHttpRequest.setTimeout(closure, 50); + } + + /** + * Change current readyState and call trigger method. + */ + t._changeReadyState = function(s, reset) { with (this) { + if (reset) { + status = statusText = responseJS = null; + responseText = ''; + } + readyState = s; + if (onreadystatechange) onreadystatechange(); + }} + + /** + * JS escape() does not quote '+'. + */ + t.escape = function(s) { + return escape(s).replace(new RegExp('\\+','g'), '%2B'); + } +} + + +// Global library variables. +JsHttpRequest.COUNT = 0; // unique ID; used while loading IDs generation +JsHttpRequest.MAX_URL_LEN = 2000; // maximum URL length +JsHttpRequest.CACHE = {}; // cached data +JsHttpRequest.PENDING = {}; // pending loadings +JsHttpRequest.LOADERS = {}; // list of supported data loaders (filled at the bottom of the file) +JsHttpRequest._dummy = function() {}; // avoid memory leaks + + +/** + * These functions are dirty hacks for IE 5.0 which does not increment a + * reference counter for an object passed via setTimeout(). So, if this + * object (closure function) is out of scope at the moment of timeout + * applying, IE 5.0 crashes. + */ + +/** + * Timeout wrappers storage. Used to avoid zeroing of referece counts in IE 5.0. + * Please note that you MUST write "window.setTimeout", not "setTimeout", else + * IE 5.0 crashes again. Strange, very strange... + */ +JsHttpRequest.TIMEOUTS = { s: window.setTimeout, c: window.clearTimeout }; + +/** + * Wrapper for IE5 buggy setTimeout. + * Use this function instead of a usual setTimeout(). + */ +JsHttpRequest.setTimeout = function(func, dt) { + // Always save inside the window object before a call (for FF)! + window.JsHttpRequest_tmp = JsHttpRequest.TIMEOUTS.s; + if (typeof(func) == "string") { + id = window.JsHttpRequest_tmp(func, dt); + } else { + var id = null; + var mediator = function() { + func(); + delete JsHttpRequest.TIMEOUTS[id]; // remove circular reference + } + id = window.JsHttpRequest_tmp(mediator, dt); + // Store a reference to the mediator function to the global array + // (reference count >= 1); use timeout ID as an array key; + JsHttpRequest.TIMEOUTS[id] = mediator; + } + window.JsHttpRequest_tmp = null; // no delete() in IE5 for window + return id; +} + +/** + * Complimental wrapper for clearTimeout. + * Use this function instead of usual clearTimeout(). + */ +JsHttpRequest.clearTimeout = function(id) { + window.JsHttpRequest_tmp = JsHttpRequest.TIMEOUTS.c; + delete JsHttpRequest.TIMEOUTS[id]; // remove circular reference + var r = window.JsHttpRequest_tmp(id); + window.JsHttpRequest_tmp = null; // no delete() in IE5 for window + return r; +} + + +/** + * Global static function. + * Simple interface for most popular use-cases. + * You may also pass URLs like "GET url" or "script.GET url". + */ +JsHttpRequest.query = function(url, content, onready, nocache) { + var req = new this(); + req.caching = !nocache; + req.onreadystatechange = function() { + if (req.readyState == 4) { + onready(req.responseJS, req.responseText); + } + } + req.open(null, url, true); + req.send(content); +} + + +/** + * Global static function. + * Called by server backend script on data load. + */ +JsHttpRequest.dataReady = function(d) { + var th = this.PENDING[d.id]; + delete this.PENDING[d.id]; + if (th) { + th._dataReady(d.text, d.js); + } else if (th !== false) { + throw "dataReady(): unknown pending id: " + d.id; + } +} + + +// Adds all the properties of src to dest. +JsHttpRequest.extend = function(dest, src) { + for (var k in src) dest[k] = src[k]; +} + +/** + * Each loader has the following properties which must be initialized: + * - method + * - url + * - asyncFlag (ignored) + * - username + * - password + * - queryText (string) + * - queryElem (array) + * - id + * - hash + * - span + */ + +// }}} + +// {{{ xml +// Loader: XMLHttpRequest or ActiveX. +// [+] GET and POST methods are supported. +// [+] Most native and memory-cheap method. +// [+] Backend data can be browser-cached. +// [-] Cannot work in IE without ActiveX. +// [-] No support for loading from different domains. +// [-] No uploading support. +// +JsHttpRequest.LOADERS.xml = { loader: function(req) { + JsHttpRequest.extend(req._errors, { + xml_no: 'Cannot use XMLHttpRequest or ActiveX loader: not supported', + xml_no_diffdom: 'Cannot use XMLHttpRequest to load data from different domain %', + xml_no_headers: 'Cannot use XMLHttpRequest loader or ActiveX loader, POST method: headers setting is not supported, needed to work with encodings correctly', + xml_no_form_upl: 'Cannot use XMLHttpRequest loader: direct form elements using and uploading are not implemented' + }); + + this.load = function() { + if (this.queryElem.length) return ['xml_no_form_upl']; + + // XMLHttpRequest (and MS ActiveX'es) cannot work with different domains. + if (this.url.match(new RegExp('^([a-z]+://[^\\/]+)(.*)((:[0-9]*)+)', 'i'))) { + // We MUST also check if protocols matched: cannot send from HTTP + // to HTTPS and vice versa. + if (RegExp.$1.toLowerCase() != document.location.protocol + '//' + document.location.hostname.toLowerCase()) { + return ['xml_no_diffdom', RegExp.$1]; + } + } + + // Try to obtain a loader. + var xr = null; + if (window.XMLHttpRequest) { + try { xr = new XMLHttpRequest() } catch(e) {} + } else if (window.ActiveXObject) { + try { xr = new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {} + if (!xr) try { xr = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) {} + } + if (!xr) return ['xml_no']; + + // Loading method detection. We cannot POST if we cannot set "octet-stream" + // header, because we need to process the encoded data in the backend manually. + var canSetHeaders = window.ActiveXObject || xr.setRequestHeader; + if (!this.method) this.method = canSetHeaders && this.queryText.length? 'POST' : 'GET'; + + // Build & validate the full URL. + if (this.method == 'GET') { + if (this.queryText) this.url += (this.url.indexOf('?') >= 0? '&' : '?') + this.queryText; + this.queryText = ''; + if (this.url.length > JsHttpRequest.MAX_URL_LEN) return ['url_too_long', JsHttpRequest.MAX_URL_LEN]; + } else if (this.method == 'POST' && !canSetHeaders) { + return ['xml_no_headers']; + } + + // Add ID to the url if we need to disable the cache. + this.url += (this.url.indexOf('?') >= 0? '&' : '?') + 'JsHttpRequest=' + (req.caching? '0' : this.id) + '-xml'; + + // Assign the result handler. + var id = this.id; + xr.onreadystatechange = function() { + if (xr.readyState != 4) return; + // Avoid memory leak by removing the closure. + xr.onreadystatechange = JsHttpRequest._dummy; + req.status = null; + try { + // In case of abort() call, xr.status is unavailable and generates exception. + // But xr.readyState equals to 4 in this case. Stupid behaviour. :-( + req.status = xr.status; + req.responseText = xr.responseText; + } catch (e) {} + if (!req.status) return; + try { + // Prepare generator function & catch syntax errors on this stage. + eval('JsHttpRequest._tmp = function(id) { var d = ' + req.responseText + '; d.id = id; JsHttpRequest.dataReady(d); }'); + } catch (e) { + // Note that FF 2.0 does not throw any error from onreadystatechange handler. + return req._error('js_invalid', req.responseText) + } + // Call associated dataReady() outside the try-catch block + // to pass exceptions in onreadystatechange in usual manner. + JsHttpRequest._tmp(id); + JsHttpRequest._tmp = null; + }; + + // Open & send the request. + xr.open(this.method, this.url, true, this.username, this.password); + if (canSetHeaders) { + // Pass pending headers. + for (var i = 0; i < req._reqHeaders.length; i++) { + xr.setRequestHeader(req._reqHeaders[i][0], req._reqHeaders[i][1]); + } + // Set non-default Content-type. We cannot use + // "application/x-www-form-urlencoded" here, because + // in PHP variable HTTP_RAW_POST_DATA is accessible only when + // enctype is not default (e.g., "application/octet-stream" + // is a good start). We parse POST data manually in backend + // library code. Note that Safari sets by default "x-www-form-urlencoded" + // header, but FF sets "text/xml" by default. + xr.setRequestHeader('Content-Type', 'application/octet-stream'); + } + xr.send(this.queryText); + + // No SPAN is used for this loader. + this.span = null; + this.xr = xr; // save for later usage on abort() + + // Success. + return null; + } + + // Override req.getAllResponseHeaders method. + this.getAllResponseHeaders = function() { + return this.xr.getAllResponseHeaders(); + } + + // Override req.getResponseHeader method. + this.getResponseHeader = function(label) { + return this.xr.getResponseHeader(label); + } + + this.abort = function() { + this.xr.abort(); + this.xr = null; + } +}} +// }}} + + +// {{{ script +// Loader: SCRIPT tag. +// [+] Most cross-browser. +// [+] Supports loading from different domains. +// [-] Only GET method is supported. +// [-] No uploading support. +// [-] Backend data cannot be browser-cached. +// +JsHttpRequest.LOADERS.script = { loader: function(req) { + JsHttpRequest.extend(req._errors, { + script_only_get: 'Cannot use SCRIPT loader: it supports only GET method', + script_no_form: 'Cannot use SCRIPT loader: direct form elements using and uploading are not implemented' + }) + + this.load = function() { + // Move GET parameters to the URL itself. + if (this.queryText) this.url += (this.url.indexOf('?') >= 0? '&' : '?') + this.queryText; + this.url += (this.url.indexOf('?') >= 0? '&' : '?') + 'JsHttpRequest=' + this.id + '-' + 'script'; + this.queryText = ''; + + if (!this.method) this.method = 'GET'; + if (this.method !== 'GET') return ['script_only_get']; + if (this.queryElem.length) return ['script_no_form']; + if (this.url.length > JsHttpRequest.MAX_URL_LEN) return ['url_too_long', JsHttpRequest.MAX_URL_LEN]; + + var th = this, d = document, s = null, b = d.body; + if (!window.opera) { + // Safari, IE, FF, Opera 7.20. + this.span = s = d.createElement('SCRIPT'); + var closure = function() { + s.language = 'JavaScript'; + if (s.setAttribute) s.setAttribute('src', th.url); else s.src = th.url; + b.insertBefore(s, b.lastChild); + } + } else { + // Oh shit! Damned stupid Opera 7.23 does not allow to create SCRIPT + // element over createElement (in HEAD or BODY section or in nested SPAN - + // no matter): it is created deadly, and does not response the href assignment. + // So - always create SPAN. + this.span = s = d.createElement('SPAN'); + s.style.display = 'none'; + b.insertBefore(s, b.lastChild); + s.innerHTML = 'Workaround for IE.'; + var closure = function() { + s = s.getElementsByTagName('SCRIPT')[0]; // get with timeout! + s.language = 'JavaScript'; + if (s.setAttribute) s.setAttribute('src', th.url); else s.src = th.url; + } + } + JsHttpRequest.setTimeout(closure, 10); + + // Success. + return null; + } +}} +// }}} + + +// {{{ form +// Loader: FORM & IFRAME. +// [+] Supports file uploading. +// [+] GET and POST methods are supported. +// [+] Supports loading from different domains. +// [-] Uses a lot of system resources. +// [-] Backend data cannot be browser-cached. +// [-] Pollutes browser history on some old browsers. +// +JsHttpRequest.LOADERS.form = { loader: function(req) { + JsHttpRequest.extend(req._errors, { + form_el_not_belong: 'Element "%" does not belong to any form!', + form_el_belong_diff: 'Element "%" belongs to a different form. All elements must belong to the same form!', + form_el_inv_enctype: 'Attribute "enctype" of the form must be "%" (for IE), "%" given.' + }) + + this.load = function() { + var th = this; + + if (!th.method) th.method = 'POST'; + th.url += (th.url.indexOf('?') >= 0? '&' : '?') + 'JsHttpRequest=' + th.id + '-' + 'form'; + + // If GET, build full URL. Then copy QUERY_STRING to queryText. + if (th.method == 'GET') { + if (th.queryText) th.url += (th.url.indexOf('?') >= 0? '&' : '?') + th.queryText; + if (th.url.length > JsHttpRequest.MAX_URL_LEN) return ['url_too_long', JsHttpRequest.MAX_URL_LEN]; + var p = th.url.split('?', 2); + th.url = p[0]; + th.queryText = p[1] || ''; + } + + // Check if all form elements belong to same form. + var form = null; + var wholeFormSending = false; + if (th.queryElem.length) { + if (th.queryElem[0].e.tagName.toUpperCase() == 'FORM') { + // Whole FORM sending. + form = th.queryElem[0].e; + wholeFormSending = true; + th.queryElem = []; + } else { + // If we have at least one form element, we use its FORM as a POST container. + form = th.queryElem[0].e.form; + // Validate all the elements. + for (var i = 0; i < th.queryElem.length; i++) { + var e = th.queryElem[i].e; + if (!e.form) { + return ['form_el_not_belong', e.name]; + } + if (e.form != form) { + return ['form_el_belong_diff', e.name]; + } + } + } + + // Check enctype of the form. + if (th.method == 'POST') { + var need = "multipart/form-data"; + var given = (form.attributes.encType && form.attributes.encType.nodeValue) || (form.attributes.enctype && form.attributes.enctype.value) || form.enctype; + if (given != need) { + return ['form_el_inv_enctype', need, given]; + } + } + } + + // Create invisible IFRAME with temporary form (form is used on empty queryElem). + // We ALWAYS create th IFRAME in the document of the form - for Opera 7.20. + var d = form && (form.ownerDocument || form.document) || document; + var ifname = 'jshr_i_' + th.id; + var s = th.span = d.createElement('DIV'); + s.style.position = 'absolute'; + s.style.display = 'none'; + s.style.visibility = 'hidden'; + s.innerHTML = + (form? '' : '') + // stupid IE, MUST use innerHTML assignment :-( + '' + if (!form) { + form = th.span.firstChild; + } + + // Insert generated form inside the document. + // Be careful: don't forget to close FORM container in document body! + d.body.insertBefore(s, d.body.lastChild); + + // Function to safely set the form attributes. Parameter attr is NOT a hash + // but an array, because "for ... in" may badly iterate over derived attributes. + var setAttributes = function(e, attr) { + var sv = []; + var form = e; + // This strange algorythm is needed, because form may contain element + // with name like 'action'. In IE for such attribute will be returned + // form element node, not form action. Workaround: copy all attributes + // to new empty form and work with it, then copy them back. This is + // THE ONLY working algorythm since a lot of bugs in IE5.0 (e.g. + // with e.attributes property: causes IE crash). + if (e.mergeAttributes) { + var form = d.createElement('form'); + form.mergeAttributes(e, false); + } + for (var i = 0; i < attr.length; i++) { + var k = attr[i][0], v = attr[i][1]; + // TODO: http://forum.dklab.ru/viewtopic.php?p=129059#129059 + sv[sv.length] = [k, form.getAttribute(k)]; + form.setAttribute(k, v); + } + if (e.mergeAttributes) { + e.mergeAttributes(form, false); + } + return sv; + } + + // Run submit with delay - for old Opera: it needs some time to create IFRAME. + var closure = function() { + // Save JsHttpRequest object to new IFRAME. + top.JsHttpRequestGlobal = JsHttpRequest; + + // Disable ALL the form elements. + var savedNames = []; + if (!wholeFormSending) { + for (var i = 0, n = form.elements.length; i < n; i++) { + savedNames[i] = form.elements[i].name; + form.elements[i].name = ''; + } + } + + // Insert hidden fields to the form. + var qt = th.queryText.split('&'); + for (var i = qt.length - 1; i >= 0; i--) { + var pair = qt[i].split('=', 2); + var e = d.createElement('INPUT'); + e.type = 'hidden'; + e.name = unescape(pair[0]); + e.value = pair[1] != null? unescape(pair[1]) : ''; + form.appendChild(e); + } + + + // Change names of along user-passed form elements. + for (var i = 0; i < th.queryElem.length; i++) { + th.queryElem[i].e.name = th.queryElem[i].name; + } + + // Temporary modify form attributes, submit form, restore attributes back. + var sv = setAttributes( + form, + [ + ['action', th.url], + ['method', th.method], + ['onsubmit', null], + ['target', ifname] + ] + ); + form.submit(); + setAttributes(form, sv); + + // Remove generated temporary hidden elements from the top of the form. + for (var i = 0; i < qt.length; i++) { + // Use "form.firstChild.parentNode", not "form", or IE5 crashes! + form.lastChild.parentNode.removeChild(form.lastChild); + } + // Enable all disabled elements back. + if (!wholeFormSending) { + for (var i = 0, n = form.elements.length; i < n; i++) { + form.elements[i].name = savedNames[i]; + } + } + } + JsHttpRequest.setTimeout(closure, 100); + + // Success. + return null; + } +}} +// }}} + diff --git a/js/allocate.js b/js/allocate.js new file mode 100644 index 00000000..c550a298 --- /dev/null +++ b/js/allocate.js @@ -0,0 +1,56 @@ +function focus_alloc(i) { + save_focus(i); + i.setAttribute('_last', get_amount(i.name)); +} + +function blur_alloc(i) { + var change = get_amount(i.name); + price_format(i.name, change, user.pdec); + if(change<0) change = 0; + change = change-i.getAttribute('_last'); + var total = get_amount('total_allocated', 1)+change; + var left = get_amount('left_to_allocate', 1)-change; + + price_format('left_to_allocate', left, user.pdec, 1, 1); + price_format('total_allocated', total, user.pdec, 1, 1); +} + +function allocate_all(doc) { + var amount = get_amount('amount'+doc); + var unallocated = get_amount('un_allocated'+doc); + var total = get_amount('total_allocated', 1); + var left = get_amount('left_to_allocate', 1); + total -= (amount-unallocated); + left += (amount-unallocated); + amount = unallocated; + if(left<0) { + total += left; + amount += left; + left = 0; + } + price_format('amount'+doc, amount, user.pdec); + price_format('left_to_allocate', left, user.pdec, 1,1); + price_format('total_allocated', total, user.pdec, 1, 1); +} + +function allocate_none(doc) { + amount = get_amount('amount'+doc); + left = get_amount('left_to_allocate', 1); + total = get_amount('total_allocated', 1); + price_format('left_to_allocate',amount+left, user.pdec, 1, 1); + price_format('amount'+doc, 0, user.pdec); + price_format('total_allocated', total-amount, user.pdec, 1, 1); +} + +var allocations = { + '.amount': function(e) { + e.onblur = function() { + blur_alloc(this); + }; + e.onfocus = function() { + focus_alloc(this); + }; + } +} + +Behaviour.register(allocations); diff --git a/js/behaviour.js b/js/behaviour.js new file mode 100644 index 00000000..a5ed0480 --- /dev/null +++ b/js/behaviour.js @@ -0,0 +1,259 @@ +/* + Behaviour v1.1 by Ben Nolan, June 2005. Based largely on the work + of Simon Willison (see comments by Simon below). + Small fixes by J.Dobrowolski for Front Accounting May 2008 + Description: + + Uses css selectors to apply javascript behaviours to enable + unobtrusive javascript in html documents. + + Usage: + + var myrules = { + 'b.someclass' : function(element){ + element.onclick = function(){ + alert(this.innerHTML); + } + }, + '#someid u' : function(element){ + element.onmouseover = function(){ + this.innerHTML = "BLAH!"; + } + } + }; + + Behaviour.register(myrules); + + // Call Behaviour.apply() to re-apply the rules (if you + // update the dom, etc). + + License: + + This file is entirely BSD licensed. + + More information: + + http://ripcord.co.nz/behaviour/ + +*/ + +var Behaviour = { + list : new Array, + + register : function(sheet){ + Behaviour.list.push(sheet); + }, + + start : function(){ + Behaviour.addLoadEvent(function(){ + Behaviour.apply(); + }); + }, + + apply : function(){ + for (h=0;sheet=Behaviour.list[h];h++){ + for (selector in sheet){ + var sels = selector.split(','); + for (var n = 0; n < sels.length; n++) { + list = document.getElementsBySelector(sels[n]); + + if (!list){ + continue; + } + + for (i=0;element=list[i];i++){ + sheet[selector](element); + } + } + } + } + }, + + addLoadEvent : function(func){ + var oldonload = window.onload; + + if (typeof window.onload != 'function') { + window.onload = func; + } else { + window.onload = function() { + oldonload(); + func(); + } + } + } +} + +Behaviour.start(); + +/* + The following code is Copyright (C) Simon Willison 2004. + + document.getElementsBySelector(selector) + - returns an array of element objects from the current document + matching the CSS selector. Selectors can contain element names, + class names and ids and can be nested. For example: + + elements = document.getElementsBySelect('div#main p a.external') + + Will return an array of all 'a' elements with 'external' in their + class attribute that are contained inside 'p' elements that are + contained inside the 'div' element which has id="main" + + New in version 0.4: Support for CSS2 and CSS3 attribute selectors: + See http://www.w3.org/TR/css3-selectors/#attribute-selectors + + Version 0.4 - Simon Willison, March 25th 2003 + -- Works in Phoenix 0.5, Mozilla 1.3, Opera 7, Internet Explorer 6, Internet Explorer 5 on Windows + -- Opera 7 fails +*/ + +function getAllChildren(e) { + // Returns all children of element. Workaround required for IE5/Windows. Ugh. + return e.all ? e.all : e.getElementsByTagName('*'); +} + +document.getElementsBySelector = function(selector) { + // Attempt to fail gracefully in lesser browsers + if (!document.getElementsByTagName) { + return new Array(); + } + // Split selector in to tokens + var tokens = selector.split(' '); + var currentContext = new Array(document); + for (var i = 0; i < tokens.length; i++) { + token = tokens[i].replace(/^\s+/,'').replace(/\s+$/,'');; + if (token.indexOf('#') > -1) { + // Token is an ID selector + var bits = token.split('#'); + var tagName = bits[0]; + var id = bits[1]; + var element = document.getElementById(id); + if (tagName && element.nodeName.toLowerCase() != tagName) { + // tag with that ID not found, return false + return new Array(); + } + // Set currentContext to contain just this element + currentContext = new Array(element); + continue; // Skip to next token + } + if (token.indexOf('.') > -1) { + // Token contains a class selector + var bits = token.split('.'); + var tagName = bits[0]; + var className = bits[1]; + if (!tagName) { + tagName = '*'; + } + // Get elements matching tag, filter them for class selector + var found = new Array; + var foundCount = 0; + for (var h = 0; h < currentContext.length; h++) { + var elements; + if (tagName == '*') { + elements = getAllChildren(currentContext[h]); + } else { + elements = currentContext[h].getElementsByTagName(tagName); + } + for (var j = 0; j < elements.length; j++) { + found[foundCount++] = elements[j]; + } + } + currentContext = new Array; + var currentContextIndex = 0; + for (var k = 0; k < found.length; k++) { + if (found[k].className && found[k].className.match(new RegExp('\\b'+className+'\\b'))) { + currentContext[currentContextIndex++] = found[k]; + } + } + continue; // Skip to next token + } + // Code to deal with attribute selectors +/* Original reg expression /^(\w*)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/ + was replaced by new RegExp() cuz compressor fault */ + if (token.match(new RegExp('^(\\w*)\\[(\\w+)([=~\\|\\^\\$\\*]?)=?"?([^\\]"]*)"?\\]$'))) { + var tagName = RegExp.$1; + var attrName = RegExp.$2; + var attrOperator = RegExp.$3; + var attrValue = RegExp.$4; + if (!tagName) { + tagName = '*'; + } + // Grab all of the tagName elements within current context + var found = new Array; + var foundCount = 0; + for (var h = 0; h < currentContext.length; h++) { + var elements; + if (tagName == '*') { + elements = getAllChildren(currentContext[h]); + } else { + elements = currentContext[h].getElementsByTagName(tagName); + } + for (var j = 0; j < elements.length; j++) { + found[foundCount++] = elements[j]; + } + } + currentContext = new Array; + var currentContextIndex = 0; + var checkFunction; // This function will be used to filter the elements + switch (attrOperator) { + case '=': // Equality + checkFunction = function(e) { return (e.getAttribute(attrName) == attrValue); }; + break; + case '~': // Match one of space seperated words + checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('\\b'+attrValue+'\\b'))); }; + break; + case '|': // Match start with value followed by optional hyphen + checkFunction = function(e) { return (e.getAttribute(attrName).match(new RegExp('^'+attrValue+'-?'))); }; + break; + case '^': // Match starts with value + checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) == 0); }; + break; + case '$': // Match ends with value - fails with "Warning" in Opera 7 + checkFunction = function(e) { return (e.getAttribute(attrName).lastIndexOf(attrValue) == e.getAttribute(attrName).length - attrValue.length); }; + break; + case '*': // Match ends with value + checkFunction = function(e) { return (e.getAttribute(attrName).indexOf(attrValue) > -1); }; + break; + default : + // Just test for existence of attribute + checkFunction = function(e) { return e.getAttribute(attrName); }; + } + currentContext = new Array; + var currentContextIndex = 0; + for (var k = 0; k < found.length; k++) { + if (checkFunction(found[k])) { + currentContext[currentContextIndex++] = found[k]; + } + } + // alert('Attribute Selector: '+tagName+' '+attrName+' '+attrOperator+' '+attrValue); + continue; // Skip to next token + } + + if (!currentContext[0]){ + return; + } + + // If we get here, token is JUST an element (not a class or ID selector) + tagName = token; + var found = new Array; + var foundCount = 0; + for (var h = 0; h < currentContext.length; h++) { + var elements = currentContext[h].getElementsByTagName(tagName); + for (var j = 0; j < elements.length; j++) { + found[foundCount++] = elements[j]; + } + } + currentContext = found; + } + return currentContext; +} + +/* That revolting regular expression explained +/^(\w+)\[(\w+)([=~\|\^\$\*]?)=?"?([^\]"]*)"?\]$/ + \---/ \---/\-------------/ \-------/ + | | | | + | | | The value + | | ~,|,^,$,* or = + | Attribute + Tag +*/ diff --git a/js/budget.js b/js/budget.js new file mode 100644 index 00000000..92902323 --- /dev/null +++ b/js/budget.js @@ -0,0 +1,27 @@ +function focus_budget(i) { + save_focus(i); + i.setAttribute('_last', get_amount(i.name)); +} + +function blur_budget(i) { + var amount = get_amount(i.name); + var total = get_amount('Total', 1); + + if(amount<0) amount = 0; + price_format(i.name, amount, 0); + price_format('Total', total+amount-i.getAttribute('_last'), 0, 1, 1); +} + + +var budget_calc = { + '.amount': function(e) { + e.onblur = function() { + blur_budget(this); + }; + e.onfocus = function() { + focus_budget(this); + }; + } +} + +Behaviour.register(budget_calc); diff --git a/js/index.php b/js/index.php new file mode 100644 index 00000000..763940a7 --- /dev/null +++ b/js/index.php @@ -0,0 +1,3 @@ + diff --git a/js/inserts.js b/js/inserts.js new file mode 100644 index 00000000..ff479f30 --- /dev/null +++ b/js/inserts.js @@ -0,0 +1,254 @@ +var _focus; + +function debug(msg) { + box = document.getElementById('msgbox') + box.innerHTML= box.innerHTML+'
'+msg +} + +function progbar() { + box = document.getElementById('msgbox'); + box.innerHTML= "
"; - stock_costable_items_list('stock_id', $_POST['stock_id'], false, true); - echo "
" + +"
" + +""
+		+user.loadtxt+"

"; + box.style.display = 'block'; +} + +function save_focus(e) { + _focus = e.name||e.id; + var h = document.getElementById('hints'); + if (h) { + h.style.display = e.title && e.title.length ? 'inline' : 'none'; + h.innerHTML = e.title ? e.title : ''; + } +} + +function _expand(tabobj) { + + var ul = tabobj.parentNode.parentNode; + var alltabs=ul.getElementsByTagName("input"); + var frm = tabobj.form; + + if (ul.getAttribute("rel")){ + for (var i=0; i=0) { + var len = select.length; + var byid = this.className=='combo'; + var ac = this.value.toUpperCase(); + select.options[select.selectedIndex].selected = false; + for (i = 0; i < len; i++) { + var txt = byid ? select.options[i].value : select.options[i].text; + if (txt.toUpperCase().indexOf(ac) >= 0) { + select.options[i].selected = true; + break; + } + } + } + }; + e.onkeydown = function(ev) { + ev = ev||window.event; + key = ev.keyCode||ev.which; + if(key == 13) { + this.blur(); + return false; + } + } +} + +function _update_box(s) { + var byid = s.className=='combo'; + var rel = s.getAttribute('rel'); + var box = document.getElementsByName(rel)[0]; + if(box && s.selectedIndex>=0) { + var opt = s.options[s.selectedIndex]; + if(box) { + box.value = byid ? opt.value : opt.text; + box.setAttribute('_last', box.value); + } + } +} + +function _set_combo_select(e) { + // When combo position is changed via js (eg from searchbox) + // no onchange event is generated. To ensure proper change + // signaling we must track selectedIndex in onblur handler. + e.setAttribute('_last', e.selectedIndex); + e.onblur = function() { + if(this.className=='combo') + _update_box(this); + if (this.selectedIndex != this.getAttribute('_last')) + this.onchange(); + } + e.onchange = function() { + var s = this; + this.setAttribute('_last', this.selectedIndex); + if(s.className=='combo') + _update_box(s); + if(s.selectedIndex>=0) { + var sname = '_'+s.name+'_update'; + var update = document.getElementsByName(sname)[0]; + if(update) { + JsHttpRequest.request(update); + } + } + return true; + } + e.onkeydown = function(event) { + event = event||window.event; + key = event.keyCode||event.which; + var box = document.getElementsByName(this.getAttribute('rel'))[0]; + if (box && key == 32 && this.className == 'combo2') { + this.style.display = 'none'; + box.style.display = 'inline'; + box.value=''; + setFocus(box.name); + return false; + } + } +} + +/* + Behaviour definitions +*/ +var inserts = { + 'input': function(e) { + if(e.onfocus==undefined) { + e.onfocus = function() { + save_focus(this); + if (this.className == 'combo') + this.select(); + }; + } + if (e.className == 'combo' || e.className == 'combo2') { + _set_combo_input(e); + } + }, + 'input.combo2,input[aspect="fallback"]': + function(e) { + // this hides search button for js enabled browsers + e.style.display = 'none'; + }, + 'div.js_only': + function(e) { + // this shows divs for js enabled browsers only + e.style.display = 'block'; + }, + 'input.ajaxsubmit,input.editbutton,input.navibutton': + function(e) { + e.onclick = function() { + if (this.getAttribute('aspect') == 'process') + progbar(); + JsHttpRequest.request(this); + return false; + } + }, + '.amount': function(e) { + if(e.onblur==undefined) { + e.onblur = function() { + var dec = this.getAttribute("dec"); + price_format(this.name, get_amount(this.name), dec); + }; + } + }, + '.searchbox': // emulated onchange event handling for text inputs + function(e) { + e.setAttribute('_last_val', e.value); + e.setAttribute('autocomplete', 'off'); //must be off when calling onblur + e.onblur = function() { + var val = this.getAttribute('_last_val'); + if (val != this.value) { + this.setAttribute('_last_val', this.value); + JsHttpRequest.request('_'+this.name+'_changed', this.form); + } + } +/* e.onkeydown = function(ev) { + ev = ev||window.event; + key = ev.keyCode||ev.which; + if (key == 13 && (this.value != this.getAttribute('_last_val'))) { + this.blur(); + return false; + } + } +*/ }, + 'select': function(e) { + if(e.onfocus==undefined) { + e.onfocus = function() { + save_focus(this); + }; + var c = e.className; + if (c == 'combo' || c == 'combo2') + _set_combo_select(e); + } + }, + 'textarea,a': function(e) { + if(e.onfocus==undefined) { + e.onfocus = function() { + save_focus(this); + }; + } + }, + 'ul.ajaxtabs': function(ul) { + var ulist=ul.getElementsByTagName("li"); + for (var x=0; xUnknown ajax function: '+cmd; + } + } + + // Write errors to the debug div. + document.getElementById('msgbox').innerHTML = errors; + + Behaviour.apply(); + if (errors.length>0) + window.scrollTo(0,0); + //document.getElementById('msgbox').scrollIntoView(true); + // Restore focus if we've just lost focus because of DOM element refresh + setFocus(); + } + }, + false // do not disable caching + ); + } + // returns input field values submitted when form button 'name' is pressed + // + JsHttpRequest.formValues = function(inp, objForm) + { + var submitObj = inp; + var q = {}; + + + if (typeof(inp) == "string") + submitObj = document.getElementsByName(inp)[0]; + else + submitObj = inp; + + objForm = objForm || (submitObj && submitObj.form); + + if (objForm) + { + var formElements = objForm.elements; + for( var i=0; i < formElements.length; i++) + { + var el = formElements[i]; + if (!el.name) continue; + if (el.type ) + if( + ((el.type == 'radio' || el.type == 'checkbox') && el.checked == false) + || (el.type == 'submit' && (!submitObj || el.name!=submitObj.name))) + continue; + if (el.disabled && el.disabled == true) + continue; + var name = el.name; + if (name) + { + if(el.type=='select-multiple') + { + for (var j = 0; j < el.length; j++) + { + if (el.options[j].selected == true) + q[name] = el.options[j].value; + } + } + else + { + q[name] = el.value; + } + } + } + } + return q; + } +// +// User price formatting +// +function price_format(post, num, dec, label, color) { + var el = label ? document.getElementById(post) : document.getElementsByName(post)[0]; + //num = num.toString().replace(/\$|\,/g,''); + if(isNaN(num)) + num = "0"; + sign = (num == (num = Math.abs(num))); + if(dec<0) dec = 2; + decsize = Math.pow(10, dec); + num = Math.floor(num*decsize+0.50000000001); + cents = num%decsize; + num = Math.floor(num/decsize).toString(); + for( i=cents.toString().length; ifpe1H(}U1_o{*eh6d>0qM6unjc6rFf%al04afqnfrJxbPY^&4UH9y zjIB(~CYvxSNZDlNr|M;t=9TCr=jRod=9FaSr8}hOCT8YrE@o6^WHg#QgUJg>K4P*1 E0D_zukpKVy delta 110 zcmbQswt#Jdi>e$G1H(}U1_o{*egb3*0qGAwnjc6rGcz#o0BPZgnfrLnbqy?Z4NMda z4XlhTCYvxS$UEof6_@6eWagzS*kt9WI;0il=anQTC+C;ufdn__F{(07p2Flc`96~! E0JfzYU;qFB diff --git a/lang/new_language_template/LC_MESSAGES/empty.po b/lang/new_language_template/LC_MESSAGES/empty.po index bc3d68bd..6f7ffd45 100644 --- a/lang/new_language_template/LC_MESSAGES/empty.po +++ b/lang/new_language_template/LC_MESSAGES/empty.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: FrontAccounting\n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2008-01-25 23:42+0100\n" +"PO-Revision-Date: 2008-04-07 10:26+0100\n" "Last-Translator: Joe Hunt \n" "Language-Team: Translators\n" "MIME-Version: 1.0\n" @@ -11,174 +11,194 @@ msgstr "" "X-Poedit-Language: English\n" "X-Poedit-Country: UNITED KINGDOM\n" "X-Poedit-SourceCharset: iso-8859-1\n" -"X-Poedit-Basepath: c:\\Apache2\\htdocs\\account\n" -"X-Poedit-SearchPath-0: c:\\Apache2\\htdocs\\account\n" +"X-Poedit-Basepath: c:\\Apache2\\htdocs\\account2\n" +"X-Poedit-SearchPath-0: c:\\Apache2\\htdocs\\account2\n" -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "ea." -msgstr "" - -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "m" -msgstr "" - -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "kgg" +# c:\Apache2\htdocs\account/config.php:118 +#: c:\Apache2\htdocs\account2/config.php:138 +msgid "Inquiries" msgstr "" -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "tons" +# c:\Apache2\htdocs\account/config.php:119 +#: c:\Apache2\htdocs\account2/config.php:139 +msgid "Accountant" msgstr "" -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "l" +# c:\Apache2\htdocs\account/config.php:120 +#: c:\Apache2\htdocs\account2/config.php:140 +msgid "System Administrator" msgstr "" -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "lbs" +# c:\Apache2\htdocs\account/applications/customers.php:7 +# c:\Apache2\htdocs\account/sales/manage/customer_branches.php:277 +# c:\Apache2\htdocs\account/includes/page/header.inc:42 +#: c:\Apache2\htdocs\account2/config.php:153 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:16 +#: c:\Apache2\htdocs\account2/applications/customers.php:9 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:276 +msgid "Sales" msgstr "" -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "dozen" +# c:\Apache2\htdocs\account/applications/suppliers.php:7 +# c:\Apache2\htdocs\account/includes/page/header.inc:43 +#: c:\Apache2\htdocs\account2/config.php:154 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:16 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:9 +msgid "Purchases" msgstr "" -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "pack" +# c:\Apache2\htdocs\account/applications/inventory.php:7 +# c:\Apache2\htdocs\account/includes/page/header.inc:44 +#: c:\Apache2\htdocs\account2/config.php:155 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:16 +#: c:\Apache2\htdocs\account2/applications/inventory.php:9 +msgid "Items and Inventory" msgstr "" -# c:\Apache2\htdocs\account/config.php:59 -#: c:\Apache2\htdocs\account/config.php:66 -msgid "hrs" +# c:\Apache2\htdocs\account/applications/manufacturing.php:7 +# c:\Apache2\htdocs\account/includes/page/header.inc:45 +#: c:\Apache2\htdocs\account2/config.php:156 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:16 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:9 +msgid "Manufacturing" msgstr "" -# c:\Apache2\htdocs\account/config.php:118 -#: c:\Apache2\htdocs\account/config.php:159 -msgid "Inquiries" +# c:\Apache2\htdocs\account/applications/dimensions.php:8 +# c:\Apache2\htdocs\account/inventory/manage/items.php:355 +# c:\Apache2\htdocs\account/reporting/reports_main.php:123 +# c:\Apache2\htdocs\account/reporting/reports_main.php:126 +# c:\Apache2\htdocs\account/reporting/reports_main.php:131 +# c:\Apache2\htdocs\account/includes/page/header.inc:46 +#: c:\Apache2\htdocs\account2/config.php:157 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:17 +#: c:\Apache2\htdocs\account2/applications/dimensions.php:10 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:355 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:133 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:136 +msgid "Dimensions" msgstr "" -# c:\Apache2\htdocs\account/config.php:119 -#: c:\Apache2\htdocs\account/config.php:160 -msgid "Accountant" +# c:\Apache2\htdocs\account/applications/generalledger.php:7 +# c:\Apache2\htdocs\account/includes/page/header.inc:47 +#: c:\Apache2\htdocs\account2/config.php:158 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:17 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:9 +msgid "Banking and General Ledger" msgstr "" -# c:\Apache2\htdocs\account/config.php:120 -#: c:\Apache2\htdocs\account/config.php:161 -msgid "System Administrator" +# c:\Apache2\htdocs\account/applications/setup.php:7 +# c:\Apache2\htdocs\account/includes/page/header.inc:48 +#: c:\Apache2\htdocs\account2/config.php:159 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:17 +#: c:\Apache2\htdocs\account2/applications/setup.php:9 +msgid "Setup" msgstr "" # c:\Apache2\htdocs\account/boxaccounting.php:63 # c:\Apache2\htdocs\account/boxaccounting.php:64 -#: c:\Apache2\htdocs\account/frontaccounting.php:38 -#: c:\Apache2\htdocs\account/frontaccounting.php:39 +#: c:\Apache2\htdocs\account2/frontaccounting.php:56 +#: c:\Apache2\htdocs\account2/frontaccounting.php:57 msgid "Main Menu" msgstr "" # c:\Apache2\htdocs\account/boxaccounting.php:65 # c:\Apache2\htdocs\account/access/logout.php:7 # c:\Apache2\htdocs\account/includes/page/header.inc:55 -#: c:\Apache2\htdocs\account/frontaccounting.php:40 -#: c:\Apache2\htdocs\account/access/logout.php:8 -#: c:\Apache2\htdocs\account/includes/page/header.inc:65 +#: c:\Apache2\htdocs\account2/frontaccounting.php:58 +#: c:\Apache2\htdocs\account2/access/logout.php:8 +#: c:\Apache2\htdocs\account2/includes/page/header.inc:129 msgid "Logout" msgstr "" # c:\Apache2\htdocs\account/access/login.php:38 -#: c:\Apache2\htdocs\account/access/login.php:43 +#: c:\Apache2\htdocs\account2/access/login.php:43 msgid "Version" msgstr "" # c:\Apache2\htdocs\account/access/logout.php:21 -#: c:\Apache2\htdocs\account/access/logout.php:22 +#: c:\Apache2\htdocs\account2/access/logout.php:22 msgid "Thank you for using" msgstr "" # c:\Apache2\htdocs\account/access/logout.php:33 -#: c:\Apache2\htdocs\account/access/logout.php:34 +#: c:\Apache2\htdocs\account2/access/logout.php:34 msgid "Click here to Login Again." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:14 -#: c:\Apache2\htdocs\account/admin/backups.php:14 +#: c:\Apache2\htdocs\account2/admin/backups.php:14 msgid "Backup and Restore Database - Error" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:15 -#: c:\Apache2\htdocs\account/admin/backups.php:15 +#: c:\Apache2\htdocs\account2/admin/backups.php:15 msgid "Backup paths have not been set correctly." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:15 -#: c:\Apache2\htdocs\account/admin/backups.php:15 +#: c:\Apache2\htdocs\account2/admin/backups.php:15 msgid "Please contact System Administrator." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:23 -#: c:\Apache2\htdocs\account/admin/backups.php:23 +#: c:\Apache2\htdocs\account2/admin/backups.php:23 msgid "Backup and Restore Database" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:46 -#: c:\Apache2\htdocs\account/admin/backups.php:46 +#: c:\Apache2\htdocs\account2/admin/backups.php:46 msgid "This extension can not be be viewed: " msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:53 -#: c:\Apache2\htdocs\account/admin/backups.php:53 +#: c:\Apache2\htdocs\account2/admin/backups.php:53 msgid "Are you sure you want to delete the backup file - " msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:63 -#: c:\Apache2\htdocs\account/admin/backups.php:63 +#: c:\Apache2\htdocs\account2/admin/backups.php:63 msgid "Please select a file to upload." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:74 -#: c:\Apache2\htdocs\account/admin/backups.php:74 +#: c:\Apache2\htdocs\account2/admin/backups.php:74 msgid "Backup scripts" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:83 # c:\Apache2\htdocs\account/admin/backups.php:95 -#: c:\Apache2\htdocs\account/admin/backups.php:83 -#: c:\Apache2\htdocs\account/admin/backups.php:95 +#: c:\Apache2\htdocs\account2/admin/backups.php:83 +#: c:\Apache2\htdocs\account2/admin/backups.php:95 msgid "Create Backup" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:83 -#: c:\Apache2\htdocs\account/admin/backups.php:83 +#: c:\Apache2\htdocs\account2/admin/backups.php:83 msgid "Compression" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:84 -#: c:\Apache2\htdocs\account/admin/backups.php:84 +#: c:\Apache2\htdocs\account2/admin/backups.php:84 msgid "Restore Backup" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:85 -#: c:\Apache2\htdocs\account/admin/backups.php:85 +#: c:\Apache2\htdocs\account2/admin/backups.php:85 msgid "View Backup" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:86 -#: c:\Apache2\htdocs\account/admin/backups.php:86 +#: c:\Apache2\htdocs\account2/admin/backups.php:86 msgid "Delete Backup" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:87 -#: c:\Apache2\htdocs\account/admin/backups.php:87 +#: c:\Apache2\htdocs\account2/admin/backups.php:87 msgid "Download Backup" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:88 -#: c:\Apache2\htdocs\account/admin/backups.php:88 +#: c:\Apache2\htdocs\account2/admin/backups.php:88 msgid "Upload Backup" msgstr "" @@ -222,84 +242,85 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:250 # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:63 # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:238 -#: c:\Apache2\htdocs\account/admin/backups.php:95 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:25 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:32 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:36 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:42 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:49 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:57 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:63 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:71 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:78 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:85 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:90 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:93 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:100 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:107 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:111 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:116 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:122 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:130 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:133 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:145 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:150 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:162 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:167 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:174 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:182 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:189 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:199 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:203 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:209 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:216 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:222 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:231 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:234 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:239 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:245 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:250 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:256 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:63 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:238 +#: c:\Apache2\htdocs\account2/admin/backups.php:95 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:25 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:32 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:36 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:42 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:49 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:54 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:62 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:67 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:73 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:81 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:88 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:95 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:100 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:103 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:110 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:117 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:121 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:126 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:132 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:140 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:155 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:160 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:172 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:177 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:184 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:192 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:199 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:209 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:213 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:219 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:226 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:232 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:241 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:244 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:249 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:255 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:260 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:266 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:60 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:238 msgid "Comments" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:144 -#: c:\Apache2\htdocs\account/admin/backups.php:144 +#: c:\Apache2\htdocs\account2/admin/backups.php:144 msgid "File successfully deleted." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:145 # c:\Apache2\htdocs\account/admin/backups.php:162 -#: c:\Apache2\htdocs\account/admin/backups.php:145 -#: c:\Apache2\htdocs\account/admin/backups.php:162 -#: c:\Apache2\htdocs\account/admin/inst_module.php:265 +#: c:\Apache2\htdocs\account2/admin/backups.php:145 +#: c:\Apache2\htdocs\account2/admin/backups.php:162 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:265 msgid "Filename" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:152 -#: c:\Apache2\htdocs\account/admin/backups.php:152 +#: c:\Apache2\htdocs\account2/admin/backups.php:152 msgid "Backup is being downloaded..." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:161 -#: c:\Apache2\htdocs\account/admin/backups.php:161 +#: c:\Apache2\htdocs\account2/admin/backups.php:161 msgid "Backup successfully generated." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:176 -#: c:\Apache2\htdocs\account/admin/backups.php:176 +#: c:\Apache2\htdocs\account2/admin/backups.php:176 msgid "Restore backup completed." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:186 -#: c:\Apache2\htdocs\account/admin/backups.php:186 +#: c:\Apache2\htdocs\account2/admin/backups.php:186 msgid "Uploaded file has been restored." msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:190 -#: c:\Apache2\htdocs\account/admin/backups.php:190 +#: c:\Apache2\htdocs\account2/admin/backups.php:190 msgid "Backup was not uploaded into the system." msgstr "" @@ -316,89 +337,90 @@ msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:156 # c:\Apache2\htdocs\account/taxes/tax_types.php:109 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1467 -#: c:\Apache2\htdocs\account/admin/backups.php:238 -#: c:\Apache2\htdocs\account/admin/create_coy.php:167 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:140 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:263 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:146 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:108 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:133 -#: c:\Apache2\htdocs\account/reporting/rep104.php:82 -#: c:\Apache2\htdocs\account/reporting/rep501.php:99 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:114 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:156 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:109 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1686 +#: c:\Apache2\htdocs\account2/admin/backups.php:238 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:202 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:143 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:263 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:146 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:109 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:133 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:82 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:62 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:99 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:102 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:116 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:153 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:1679 msgid "No" msgstr "" # c:\Apache2\htdocs\account/admin/backups.php:267 -#: c:\Apache2\htdocs\account/admin/backups.php:270 +#: c:\Apache2\htdocs\account2/admin/backups.php:270 msgid "cannot find backup directory" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:7 # c:\Apache2\htdocs\account/applications/setup.php:9 # c:\Apache2\htdocs\account/applications/setup.php:10 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:7 -#: c:\Apache2\htdocs\account/applications/setup.php:11 -#: c:\Apache2\htdocs\account/applications/setup.php:12 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:7 +#: c:\Apache2\htdocs\account2/applications/setup.php:11 +#: c:\Apache2\htdocs\account2/applications/setup.php:12 msgid "Company Setup" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:24 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:24 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:24 msgid "The company name must be entered." msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:34 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:34 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:36 msgid "Company setup has been updated." msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:69 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:69 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:74 msgid "Name (to appear on reports):" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:70 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:70 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:75 msgid "Official Company Number:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:71 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:71 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:76 msgid "Tax Authority Reference:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:73 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:73 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:78 msgid "Tax Periods:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:73 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:73 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:78 msgid "Months." msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:74 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:74 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:79 msgid "Tax Last Period:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:74 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:74 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:79 msgid "Months back." msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:76 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:76 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:81 msgid "Home Currency:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:77 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:77 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:97 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:82 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:97 msgid "Fiscal Year:" msgstr "" @@ -408,54 +430,66 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:185 # c:\Apache2\htdocs\account/sales/manage/customers.php:274 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:364 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:79 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:154 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:170 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:185 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:274 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:375 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:84 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:155 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:172 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:185 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:254 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:413 msgid "Address:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:81 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:81 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:86 msgid "Telephone Number:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:82 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:82 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:87 msgid "Facsimile Number:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:83 # c:\Apache2\htdocs\account/admin/users.php:195 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:83 -#: c:\Apache2\htdocs\account/admin/users.php:195 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:88 +#: c:\Apache2\htdocs\account2/admin/users.php:198 msgid "Email Address:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:84 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:84 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:89 msgid "Company Logo:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:85 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:85 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:90 msgid "Domicile:" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:87 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:87 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:92 msgid "Use Dimensions:" msgstr "" +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:94 +msgid "No Item List" +msgstr "" + +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:95 +msgid "No Customer List" +msgstr "" + +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:96 +msgid "No Supplier List" +msgstr "" + # c:\Apache2\htdocs\account/admin/company_preferences.php:91 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:91 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:100 msgid "Custom Field Name" msgstr "" # c:\Apache2\htdocs\account/admin/company_preferences.php:91 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:91 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:100 msgid "Custom Field Value" msgstr "" @@ -487,142 +521,147 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:320 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:212 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:327 -#: c:\Apache2\htdocs\account/admin/company_preferences.php:110 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:89 -#: c:\Apache2\htdocs\account/admin/forms_setup.php:45 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:191 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:247 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:246 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:228 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:112 -#: c:\Apache2\htdocs\account/inventory/reorder_level.php:78 -#: c:\Apache2\htdocs\account/inventory/transfers.php:239 -#: c:\Apache2\htdocs\account/inventory/transfers.php:243 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:194 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:293 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:244 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:271 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:387 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:481 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:236 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:223 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:172 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:222 -#: c:\Apache2\htdocs\account/includes/ui/ui_input.inc:47 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:158 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:142 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:125 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:328 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:212 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:336 +#: c:\Apache2\htdocs\account2/admin/company_preferences.php:119 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:91 +#: c:\Apache2\htdocs\account2/admin/forms_setup.php:45 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:192 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:250 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:247 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:230 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:116 +#: c:\Apache2\htdocs\account2/inventory/reorder_level.php:81 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:246 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:250 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:201 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:296 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:247 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:247 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:364 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:438 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:432 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:247 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:223 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:175 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:225 +#: c:\Apache2\htdocs\account2/includes/ui/ui_input.inc:75 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:160 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:142 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:125 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:329 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:230 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:365 msgid "Update" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:12 -#: c:\Apache2\htdocs\account/admin/create_coy.php:12 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:12 msgid "Create/Update Company" msgstr "" +# c:\Apache2\htdocs\account/admin/create_coy.php:79 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:88 +msgid "Error creating Database: " +msgstr "" + +# c:\Apache2\htdocs\account/admin/create_coy.php:79 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:88 +msgid ", Please create it manually" +msgstr "" + +# c:\Apache2\htdocs\account/admin/create_coy.php:91 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:103 +msgid "Error uploading Database Script, please upload it manually" +msgstr "" + # c:\Apache2\htdocs\account/admin/create_coy.php:67 # c:\Apache2\htdocs\account/admin/create_coy.php:120 -#: c:\Apache2\htdocs\account/admin/create_coy.php:69 -#: c:\Apache2\htdocs\account/admin/create_coy.php:124 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:111 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:153 msgid "Cannot open the configuration file - " msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:69 # c:\Apache2\htdocs\account/admin/create_coy.php:122 -#: c:\Apache2\htdocs\account/admin/create_coy.php:71 -#: c:\Apache2\htdocs\account/admin/create_coy.php:126 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:113 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:155 msgid "Cannot write to the configuration file - " msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:71 # c:\Apache2\htdocs\account/admin/create_coy.php:124 -#: c:\Apache2\htdocs\account/admin/create_coy.php:73 -#: c:\Apache2\htdocs\account/admin/create_coy.php:128 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:115 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:157 msgid "The configuration file " msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:71 # c:\Apache2\htdocs\account/admin/create_coy.php:124 # c:\Apache2\htdocs\account/admin/inst_lang.php:136 -#: c:\Apache2\htdocs\account/admin/create_coy.php:73 -#: c:\Apache2\htdocs\account/admin/create_coy.php:128 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:136 -#: c:\Apache2\htdocs\account/admin/inst_module.php:169 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:115 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:157 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:136 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:169 msgid " is not writable. Change its permissions so it is, then re-run the operation." msgstr "" -# c:\Apache2\htdocs\account/admin/create_coy.php:79 -#: c:\Apache2\htdocs\account/admin/create_coy.php:81 -msgid "Error creating Database: " -msgstr "" - -# c:\Apache2\htdocs\account/admin/create_coy.php:79 -#: c:\Apache2\htdocs\account/admin/create_coy.php:81 -msgid ", Please create it manually" -msgstr "" - -# c:\Apache2\htdocs\account/admin/create_coy.php:91 -#: c:\Apache2\htdocs\account/admin/create_coy.php:95 -msgid "Error uploading Database Script, please upload it manually" -msgstr "" - # c:\Apache2\htdocs\account/admin/create_coy.php:128 -#: c:\Apache2\htdocs\account/admin/create_coy.php:132 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:147 msgid "Error removing Database: " msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:128 -#: c:\Apache2\htdocs\account/admin/create_coy.php:132 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:147 msgid ", please remove it manuallly" msgstr "" +#: c:\Apache2\htdocs\account2/admin/create_coy.php:165 +msgid "Cannot remove company data directory " +msgstr "" + # c:\Apache2\htdocs\account/admin/create_coy.php:144 -#: c:\Apache2\htdocs\account/admin/create_coy.php:148 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:183 msgid "Are you sure you want to delete company no. " msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:151 # c:\Apache2\htdocs\account/admin/create_coy.php:232 -#: c:\Apache2\htdocs\account/admin/create_coy.php:155 -#: c:\Apache2\htdocs\account/admin/create_coy.php:237 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:190 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:272 msgid "Company" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:151 -#: c:\Apache2\htdocs\account/admin/create_coy.php:155 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:190 msgid "Database Host" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:151 # c:\Apache2\htdocs\account/admin/create_coy.php:234 -#: c:\Apache2\htdocs\account/admin/create_coy.php:155 -#: c:\Apache2\htdocs\account/admin/create_coy.php:239 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:190 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:274 msgid "Database User" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:152 # c:\Apache2\htdocs\account/admin/create_coy.php:236 -#: c:\Apache2\htdocs\account/admin/create_coy.php:156 -#: c:\Apache2\htdocs\account/admin/create_coy.php:242 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:191 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:277 msgid "Database Name" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:152 # c:\Apache2\htdocs\account/admin/create_coy.php:238 # c:\Apache2\htdocs\account/admin/create_coy.php:240 -#: c:\Apache2\htdocs\account/admin/create_coy.php:156 -#: c:\Apache2\htdocs\account/admin/create_coy.php:244 -#: c:\Apache2\htdocs\account/admin/create_coy.php:246 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:191 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:279 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:281 msgid "Table Pref" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:152 # c:\Apache2\htdocs\account/admin/create_coy.php:241 -#: c:\Apache2\htdocs\account/admin/create_coy.php:156 -#: c:\Apache2\htdocs\account/admin/create_coy.php:247 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:191 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:282 msgid "Default" msgstr "" @@ -639,19 +678,20 @@ msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:107 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1459 # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:159 -#: c:\Apache2\htdocs\account/admin/create_coy.php:165 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:144 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:261 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:146 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:112 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:133 -#: c:\Apache2\htdocs\account/reporting/rep104.php:84 -#: c:\Apache2\htdocs\account/reporting/rep501.php:97 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:118 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:154 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:107 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1678 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:164 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:200 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:147 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:261 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:146 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:113 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:133 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:84 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:64 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:97 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:102 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:120 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:151 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:1671 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:164 msgid "Yes" msgstr "" @@ -663,41 +703,45 @@ msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:149 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:187 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:295 -#: c:\Apache2\htdocs\account/admin/create_coy.php:179 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:149 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:142 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:145 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:167 -#: c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:149 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:187 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:295 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:214 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:149 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:142 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:148 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:260 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:243 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:244 +#: c:\Apache2\htdocs\account2/includes/ui/ui_controls.inc:155 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:181 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:289 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:129 msgid "Edit" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:178 # c:\Apache2\htdocs\account/admin/inst_lang.php:259 # c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:154 -#: c:\Apache2\htdocs\account/admin/create_coy.php:181 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:267 -#: c:\Apache2\htdocs\account/admin/inst_module.php:280 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:170 -#: c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:154 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:216 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:267 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:280 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:170 +#: c:\Apache2\htdocs\account2/includes/ui/ui_controls.inc:160 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:130 msgid "Delete" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:183 -#: c:\Apache2\htdocs\account/admin/create_coy.php:186 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:221 msgid "The marked company is the current company which cannot be deleted." msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:233 -#: c:\Apache2\htdocs\account/admin/create_coy.php:238 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:273 msgid "Host" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:151 # c:\Apache2\htdocs\account/admin/create_coy.php:235 -#: c:\Apache2\htdocs\account/admin/create_coy.php:241 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:276 msgid "Database Password" msgstr "" @@ -706,188 +750,188 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:221 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:214 # c:\Apache2\htdocs\account/taxes/tax_groups.php:219 -#: c:\Apache2\htdocs\account/admin/create_coy.php:244 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:167 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:221 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:214 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:219 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:279 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:168 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:220 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:223 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:213 msgid "None" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:244 -#: c:\Apache2\htdocs\account/admin/create_coy.php:250 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:285 msgid "Database Script" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:254 -#: c:\Apache2\htdocs\account/admin/create_coy.php:254 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:289 msgid "New script Admin Password" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:249 -#: c:\Apache2\htdocs\account/admin/create_coy.php:257 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:292 msgid "Choose from Database scripts in SQL folder. No Datase is created without a script." msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:250 # c:\Apache2\htdocs\account/admin/inst_lang.php:312 # c:\Apache2\htdocs\account/includes/ui/ui_input.inc:45 -#: c:\Apache2\htdocs\account/admin/create_coy.php:258 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:321 -#: c:\Apache2\htdocs\account/admin/inst_module.php:329 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:169 -#: c:\Apache2\htdocs\account/includes/ui/ui_input.inc:45 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:293 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:321 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:329 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:169 +#: c:\Apache2\htdocs\account2/includes/ui/ui_input.inc:73 msgid "Save" msgstr "" # c:\Apache2\htdocs\account/admin/create_coy.php:278 -#: c:\Apache2\htdocs\account/admin/create_coy.php:286 +#: c:\Apache2\htdocs\account2/admin/create_coy.php:321 msgid "Create a new company" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:7 # c:\Apache2\htdocs\account/applications/setup.php:13 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:7 -#: c:\Apache2\htdocs\account/applications/setup.php:15 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:7 +#: c:\Apache2\htdocs\account2/applications/setup.php:15 msgid "Display Setup" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:32 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:32 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:34 msgid "Display settings have been updated." msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:38 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:38 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:40 msgid "Decimal Places" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:40 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:40 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:42 msgid "Prices/Amounts:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:41 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:41 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:43 msgid "Quantities:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:42 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:42 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:44 msgid "Exchange Rates:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:43 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:43 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:45 msgid "Percentages:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:45 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:45 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:47 msgid "Dateformat and Separators" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:47 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:47 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:49 msgid "Dateformat:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:49 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:49 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:51 msgid "Date Separator:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:54 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:54 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:56 msgid "Thousand Separator:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:59 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:59 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:61 msgid "Decimal Separator:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:64 # c:\Apache2\htdocs\account/applications/setup.php:21 # c:\Apache2\htdocs\account/includes/types.inc:137 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:64 -#: c:\Apache2\htdocs\account/applications/setup.php:23 -#: c:\Apache2\htdocs\account/includes/types.inc:137 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:66 +#: c:\Apache2\htdocs\account2/applications/setup.php:23 +#: c:\Apache2\htdocs\account2/includes/types.inc:143 msgid "Miscellaneous" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:66 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:66 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:68 msgid "Show GL Information:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:68 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:68 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:70 msgid "Show Item Codes:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:70 # c:\Apache2\htdocs\account/includes/page/footer.inc:29 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:70 -#: c:\Apache2\htdocs\account/includes/page/footer.inc:29 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:72 +#: c:\Apache2\htdocs\account2/includes/page/footer.inc:31 msgid "Theme:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:75 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:75 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:77 msgid "Page Size:" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:80 # c:\Apache2\htdocs\account/admin/inst_lang.php:236 # c:\Apache2\htdocs\account/admin/inst_lang.php:302 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:80 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:244 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:310 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:82 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:244 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:310 msgid "Language" msgstr "" # c:\Apache2\htdocs\account/admin/display_prefs.php:85 # c:\Apache2\htdocs\account/admin/users.php:199 -#: c:\Apache2\htdocs\account/admin/display_prefs.php:85 -#: c:\Apache2\htdocs\account/admin/users.php:199 +#: c:\Apache2\htdocs\account2/admin/display_prefs.php:87 +#: c:\Apache2\htdocs\account2/admin/users.php:202 msgid "Language:" msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:7 # c:\Apache2\htdocs\account/applications/setup.php:19 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:13 -#: c:\Apache2\htdocs\account/applications/setup.php:21 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:13 +#: c:\Apache2\htdocs\account2/applications/setup.php:21 msgid "Fiscal Years" msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:36 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:38 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:38 msgid "Invalid BEGIN date in fiscal year." msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:41 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:43 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:44 msgid "Invalid END date in fiscal year." msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:46 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:48 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:50 msgid "BEGIN date bigger than END date." msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:87 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:89 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:92 msgid "Cannot delete this fiscal year because items have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:121 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:123 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:126 msgid "Fiscal Year Begin" msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:121 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:123 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:126 msgid "Fiscal Year End" msgstr "" @@ -896,109 +940,109 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:89 # c:\Apache2\htdocs\account/reporting/rep501.php:75 # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:168 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:123 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:101 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:89 -#: c:\Apache2\htdocs\account/reporting/rep501.php:75 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:168 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:126 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:101 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:89 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:75 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:168 msgid "Closed" msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:154 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:156 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:159 msgid "The marked fiscal year is the current fiscal year which cannot be deleted." msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:176 # c:\Apache2\htdocs\account/admin/fiscalyears.php:181 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:178 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:183 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:181 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:186 msgid "Fiscal Year Begin:" msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:177 # c:\Apache2\htdocs\account/admin/fiscalyears.php:182 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:179 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:184 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:182 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:187 msgid "Fiscal Year End:" msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:185 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:187 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:190 msgid "Is Closed:" msgstr "" # c:\Apache2\htdocs\account/admin/fiscalyears.php:215 -#: c:\Apache2\htdocs\account/admin/fiscalyears.php:217 +#: c:\Apache2\htdocs\account2/admin/fiscalyears.php:220 msgid "Enter a New Fiscal Year" msgstr "" # c:\Apache2\htdocs\account/admin/forms_setup.php:7 # c:\Apache2\htdocs\account/applications/setup.php:14 -#: c:\Apache2\htdocs\account/admin/forms_setup.php:7 -#: c:\Apache2\htdocs\account/applications/setup.php:16 +#: c:\Apache2\htdocs\account2/admin/forms_setup.php:7 +#: c:\Apache2\htdocs\account2/applications/setup.php:16 msgid "Forms Setup" msgstr "" # c:\Apache2\htdocs\account/admin/forms_setup.php:27 -#: c:\Apache2\htdocs\account/admin/forms_setup.php:27 +#: c:\Apache2\htdocs\account2/admin/forms_setup.php:27 msgid "Forms settings have been updated." msgstr "" # c:\Apache2\htdocs\account/admin/forms_setup.php:35 -#: c:\Apache2\htdocs\account/admin/forms_setup.php:35 +#: c:\Apache2\htdocs\account2/admin/forms_setup.php:35 msgid "Form" msgstr "" # c:\Apache2\htdocs\account/admin/forms_setup.php:35 -#: c:\Apache2\htdocs\account/admin/forms_setup.php:35 +#: c:\Apache2\htdocs\account2/admin/forms_setup.php:35 msgid "Next Reference" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:7 # c:\Apache2\htdocs\account/applications/setup.php:18 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:7 -#: c:\Apache2\htdocs\account/applications/setup.php:20 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:7 +#: c:\Apache2\htdocs\account2/applications/setup.php:20 msgid "System and General GL Setup" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:21 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:21 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:21 msgid "The delivery over-receive allowance must be between 0 and 100." msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:28 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:28 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:28 msgid "The invoice over-charge allowance must be between 0 and 100." msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:35 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:35 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:35 msgid "The past due days interval allowance must be between 0 and 100." msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:65 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:65 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:66 msgid "The general GL setup has been updated." msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:113 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:113 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:114 msgid "General GL" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:115 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:115 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:116 msgid "Retained Earning Clearing Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:116 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:116 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:117 msgid "Payroll Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:117 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:117 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:118 msgid "Past Due Days Interval:" msgstr "" @@ -1006,42 +1050,42 @@ msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:179 # c:\Apache2\htdocs\account/admin/gl_setup.php:185 # c:\Apache2\htdocs\account/admin/payment_terms.php:160 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:117 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:179 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:185 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:160 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:118 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:180 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:186 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:164 msgid "days" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:121 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:121 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:122 msgid "Customers and Sales" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:123 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:123 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:124 msgid "Default Credit Limit:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:125 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:125 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:126 msgid "Sales Exchange Variances Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:127 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:127 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:128 msgid "Shipping Charged Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:131 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:131 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:132 msgid "Customers and Sales Defaults" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:133 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:303 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:133 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:303 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:134 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:302 msgid "Accounts Receivable Account:" msgstr "" @@ -1049,153 +1093,153 @@ msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:165 # c:\Apache2\htdocs\account/inventory/manage/items.php:332 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:299 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:135 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:165 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:332 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:299 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:136 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:166 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:332 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:298 msgid "Sales Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:137 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:301 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:137 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:301 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:138 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:300 msgid "Sales Discount Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:139 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:305 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:139 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:305 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:140 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:304 msgid "Prompt Payment Discount Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:143 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:143 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:144 msgid "Suppliers and Purchasing" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:145 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:145 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:146 msgid "Delivery Over-Receive Allowance:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:147 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:147 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:148 msgid "Invoice Over-Charge Allowance:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:149 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:149 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:150 msgid "Purchases Exchange Variances Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:151 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:151 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:152 msgid "Goods Received Clearing Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:153 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:153 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:154 msgid "Suppliers and Purchasing Defaults" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:155 # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:206 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:155 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:206 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:156 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:206 msgid "Accounts Payable Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:157 # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:210 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:157 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:210 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:158 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:210 msgid "Purchase Discount Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:161 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:161 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:162 msgid "Inventory Defaults" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:163 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:163 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:164 msgid "Allow Negative Inventory:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:167 # c:\Apache2\htdocs\account/inventory/manage/items.php:334 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:167 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:334 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:168 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:334 msgid "Inventory Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:169 # c:\Apache2\htdocs\account/inventory/manage/items.php:338 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:169 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:338 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:170 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:338 msgid "C.O.G.S. Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:171 # c:\Apache2\htdocs\account/inventory/manage/items.php:339 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:171 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:339 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:172 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:339 msgid "Inventory Adjustments Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:173 # c:\Apache2\htdocs\account/inventory/manage/items.php:349 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:173 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:349 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:174 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:349 msgid "Item Assembly Costs Account:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:177 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:177 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:178 msgid "Manufacturing Defaults" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:179 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:179 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:180 msgid "Default Work Order Required By After:" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:183 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:183 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:184 msgid "Dimension Defaults" msgstr "" # c:\Apache2\htdocs\account/admin/gl_setup.php:185 -#: c:\Apache2\htdocs\account/admin/gl_setup.php:185 +#: c:\Apache2\htdocs\account2/admin/gl_setup.php:186 msgid "Default Dimension Required By After:" msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:7 # c:\Apache2\htdocs\account/applications/setup.php:30 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:7 -#: c:\Apache2\htdocs\account/applications/setup.php:32 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:7 +#: c:\Apache2\htdocs\account2/applications/setup.php:32 msgid "Install/Update Languages" msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:119 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:119 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:119 msgid "Cannot open the languages file - " msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:126 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:126 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:126 msgid "Cannot write to the language file - " msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:136 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:136 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:136 msgid "The language file " msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:230 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:238 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:238 msgid "Are you sure you want to delete language no. " msgstr "" @@ -1217,215 +1261,149 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:197 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:201 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:244 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:311 -#: c:\Apache2\htdocs\account/admin/inst_module.php:265 -#: c:\Apache2\htdocs\account/admin/inst_module.php:321 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:104 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:232 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:100 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:103 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:35 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:114 -#: c:\Apache2\htdocs\account/inventory/manage/item_categories.php:77 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:97 -#: c:\Apache2\htdocs\account/reporting/rep501.php:75 -#: c:\Apache2\htdocs\account/reporting/rep709.php:171 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:169 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:87 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:103 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:197 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:201 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:244 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:311 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:265 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:321 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:105 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:238 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:100 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:103 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:35 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:115 +#: c:\Apache2\htdocs\account2/inventory/manage/item_categories.php:78 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:98 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:171 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:168 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:92 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:104 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:191 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:193 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:195 msgid "Name" msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:236 # c:\Apache2\htdocs\account/admin/inst_lang.php:304 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:244 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:312 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:244 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:312 msgid "Encoding" msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:236 # c:\Apache2\htdocs\account/admin/inst_lang.php:306 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:244 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:314 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:244 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:314 msgid "Right To Left" msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:264 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:272 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:272 msgid "The marked language is the current language which cannot be deleted." msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:308 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:316 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:317 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:316 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:317 msgid "Language File" msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_lang.php:320 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:320 msgid "Select your language files from your local harddisk." msgstr "" # c:\Apache2\htdocs\account/admin/inst_lang.php:341 -#: c:\Apache2\htdocs\account/admin/inst_lang.php:350 +#: c:\Apache2\htdocs\account2/admin/inst_lang.php:350 msgid "Create a new language" msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:7 -#: c:\Apache2\htdocs\account/applications/setup.php:33 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:7 +#: c:\Apache2\htdocs\account2/applications/setup.php:33 msgid "Install/Update Modules" msgstr "" -# c:\Apache2\htdocs\account/applications/customers.php:7 -# c:\Apache2\htdocs\account/sales/manage/customer_branches.php:277 -# c:\Apache2\htdocs\account/includes/page/header.inc:42 -#: c:\Apache2\htdocs\account/admin/inst_module.php:16 -#: c:\Apache2\htdocs\account/applications/customers.php:9 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:277 -#: c:\Apache2\htdocs\account/includes/page/header.inc:52 -msgid "Sales" -msgstr "" - -# c:\Apache2\htdocs\account/applications/suppliers.php:7 -# c:\Apache2\htdocs\account/includes/page/header.inc:43 -#: c:\Apache2\htdocs\account/admin/inst_module.php:16 -#: c:\Apache2\htdocs\account/applications/suppliers.php:9 -#: c:\Apache2\htdocs\account/includes/page/header.inc:53 -msgid "Purchases" -msgstr "" - -# c:\Apache2\htdocs\account/applications/inventory.php:7 -# c:\Apache2\htdocs\account/includes/page/header.inc:44 -#: c:\Apache2\htdocs\account/admin/inst_module.php:16 -#: c:\Apache2\htdocs\account/applications/inventory.php:9 -#: c:\Apache2\htdocs\account/includes/page/header.inc:54 -msgid "Items and Inventory" -msgstr "" - -# c:\Apache2\htdocs\account/applications/manufacturing.php:7 -# c:\Apache2\htdocs\account/includes/page/header.inc:45 -#: c:\Apache2\htdocs\account/admin/inst_module.php:16 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:9 -#: c:\Apache2\htdocs\account/includes/page/header.inc:55 -msgid "Manufacturing" -msgstr "" - -# c:\Apache2\htdocs\account/applications/dimensions.php:8 -# c:\Apache2\htdocs\account/inventory/manage/items.php:355 -# c:\Apache2\htdocs\account/reporting/reports_main.php:123 -# c:\Apache2\htdocs\account/reporting/reports_main.php:126 -# c:\Apache2\htdocs\account/reporting/reports_main.php:131 -# c:\Apache2\htdocs\account/includes/page/header.inc:46 -#: c:\Apache2\htdocs\account/admin/inst_module.php:17 -#: c:\Apache2\htdocs\account/applications/dimensions.php:10 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:355 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:123 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:126 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:131 -#: c:\Apache2\htdocs\account/includes/page/header.inc:56 -msgid "Dimensions" -msgstr "" - -# c:\Apache2\htdocs\account/applications/generalledger.php:7 -# c:\Apache2\htdocs\account/includes/page/header.inc:47 -#: c:\Apache2\htdocs\account/admin/inst_module.php:17 -#: c:\Apache2\htdocs\account/applications/generalledger.php:9 -#: c:\Apache2\htdocs\account/includes/page/header.inc:57 -msgid "Banking and General Ledger" -msgstr "" - -# c:\Apache2\htdocs\account/applications/setup.php:7 -# c:\Apache2\htdocs\account/includes/page/header.inc:48 -#: c:\Apache2\htdocs\account/admin/inst_module.php:17 -#: c:\Apache2\htdocs\account/applications/setup.php:9 -#: c:\Apache2\htdocs\account/includes/page/header.inc:58 -msgid "Setup" -msgstr "" - -#: c:\Apache2\htdocs\account/admin/inst_module.php:152 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:152 msgid "Cannot open the modules file - " msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:159 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:159 msgid "Cannot write to the modules file - " msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:169 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:169 msgid "The modules file " msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:259 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:259 msgid "Are you sure you want to delete module: " msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:265 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:265 msgid "Tab" msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:265 -#: c:\Apache2\htdocs\account/admin/inst_module.php:322 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:265 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:322 msgid "Folder" msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:320 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:320 msgid "Menu Tab" msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:324 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:324 msgid "Module File" msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:325 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:325 msgid "SQL File" msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:328 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:328 msgid "Select your module PHP file from your local harddisk." msgstr "" -#: c:\Apache2\htdocs\account/admin/inst_module.php:358 +#: c:\Apache2\htdocs\account2/admin/inst_module.php:358 msgid "Create a new module" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:7 # c:\Apache2\htdocs\account/applications/setup.php:22 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:17 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:7 -#: c:\Apache2\htdocs\account/applications/setup.php:24 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:17 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:7 +#: c:\Apache2\htdocs\account2/applications/setup.php:24 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:17 msgid "Payment Terms" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:33 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:33 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:33 msgid "The number of days or the day in the following month must be numeric." msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:38 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:38 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:39 msgid "The Terms description must be entered." msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:43 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:43 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:45 msgid "When the check box to indicate a day in the following month is the due date, the due date cannot be a day after the 30th. A number between 1 and 30 is expected." msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:48 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:48 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:51 msgid "When the check box is not checked to indicate that the term expects a number of days after which accounts are due, the number entered should be less than 500 days." msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:109 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:109 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:113 msgid "Cannot delete this payment term, because customer accounts have been created referring to this term." msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:118 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:118 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:122 msgid "Cannot delete this payment term, because supplier accounts have been created referring to this term" msgstr "" @@ -1449,63 +1427,65 @@ msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:98 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:21 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:302 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:139 -#: c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:94 -#: c:\Apache2\htdocs\account/inventory/manage/movement_types.php:91 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:46 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:48 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:91 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:51 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:112 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:144 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:207 -#: c:\Apache2\htdocs\account/reporting/rep104.php:88 -#: c:\Apache2\htdocs\account/reporting/rep105.php:101 -#: c:\Apache2\htdocs\account/reporting/rep204.php:70 -#: c:\Apache2\htdocs\account/reporting/rep303.php:124 -#: c:\Apache2\htdocs\account/reporting/rep401.php:60 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:89 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:143 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:98 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:21 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:302 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:143 +#: c:\Apache2\htdocs\account2/gl/manage/bank_trans_types.php:95 +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:79 +#: c:\Apache2\htdocs\account2/inventory/manage/movement_types.php:92 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:46 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:48 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:91 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:51 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:108 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:140 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:204 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:88 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:101 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:124 +#: c:\Apache2\htdocs\account2/reporting/rep401.php:60 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:179 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:89 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:140 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:95 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:21 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:296 msgid "Description" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:139 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:139 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:143 msgid "Following Month On" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:139 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:139 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:143 msgid "Due After (Days)" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:147 # c:\Apache2\htdocs\account/admin/payment_terms.php:156 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:147 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:156 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:151 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:160 msgid "N/A" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:177 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:177 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:181 msgid "New Payment Term" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:201 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:201 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:205 msgid "Terms Description:" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:203 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:203 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:207 msgid "Due After A Given No. Of Days:" msgstr "" # c:\Apache2\htdocs\account/admin/payment_terms.php:213 -#: c:\Apache2\htdocs\account/admin/payment_terms.php:213 +#: c:\Apache2\htdocs\account2/admin/payment_terms.php:217 msgid "Days (Or Day In Following Month):" msgstr "" @@ -1515,49 +1495,52 @@ msgstr "" # c:\Apache2\htdocs\account/sales/view/view_credit.php:65 # c:\Apache2\htdocs\account/sales/view/view_invoice.php:79 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:8 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:7 -#: c:\Apache2\htdocs\account/applications/setup.php:25 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:348 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:65 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:83 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:8 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:7 +#: c:\Apache2\htdocs\account2/applications/setup.php:25 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:241 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:322 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:301 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:65 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:83 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:83 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:8 msgid "Shipping Company" msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:26 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:26 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:26 msgid "The shipping company name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:74 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:74 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:75 msgid "Cannot delete this shipping company because sales orders have been created using this shipper." msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:86 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:86 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:87 msgid "Cannot delete this shipping company because invoices have been created using this shipping company." msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:104 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:104 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:105 msgid "Contact Person" msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:104 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:104 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:105 msgid "Phone Number" msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:104 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:21 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:104 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:21 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:105 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:27 msgid "Address" msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:125 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:125 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:126 msgid "New Shipping Company" msgstr "" @@ -1566,85 +1549,86 @@ msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:293 # c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:135 # c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:45 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:148 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:165 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:293 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:135 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:45 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:149 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:166 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:296 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:136 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:45 msgid "Name:" msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:150 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:270 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:150 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:270 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:151 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:269 msgid "Contact Person:" msgstr "" # c:\Apache2\htdocs\account/admin/shipping_companies.php:152 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:272 -#: c:\Apache2\htdocs\account/admin/shipping_companies.php:152 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:272 +#: c:\Apache2\htdocs\account2/admin/shipping_companies.php:153 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:271 msgid "Phone Number:" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:7 -#: c:\Apache2\htdocs\account/admin/users.php:7 +#: c:\Apache2\htdocs\account2/admin/users.php:7 msgid "Users" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:27 -#: c:\Apache2\htdocs\account/admin/users.php:27 +#: c:\Apache2\htdocs\account2/admin/users.php:27 msgid "A new user has been added." msgstr "" # c:\Apache2\htdocs\account/admin/users.php:32 -#: c:\Apache2\htdocs\account/admin/users.php:32 +#: c:\Apache2\htdocs\account2/admin/users.php:32 msgid "The selected user has been updated." msgstr "" # c:\Apache2\htdocs\account/admin/users.php:37 -#: c:\Apache2\htdocs\account/admin/users.php:37 +#: c:\Apache2\htdocs\account2/admin/users.php:37 msgid "User has been deleted." msgstr "" # c:\Apache2\htdocs\account/admin/users.php:47 -#: c:\Apache2\htdocs\account/admin/users.php:47 +#: c:\Apache2\htdocs\account2/admin/users.php:47 msgid "The user login entered must be at least 4 characters long." msgstr "" # c:\Apache2\htdocs\account/admin/users.php:55 -#: c:\Apache2\htdocs\account/admin/users.php:55 +#: c:\Apache2\htdocs\account2/admin/users.php:56 msgid "The password entered must be at least 4 characters long." msgstr "" # c:\Apache2\htdocs\account/admin/users.php:61 -#: c:\Apache2\htdocs\account/admin/users.php:61 +#: c:\Apache2\htdocs\account2/admin/users.php:63 msgid "The password cannot contain the user login." msgstr "" # c:\Apache2\htdocs\account/admin/users.php:115 # c:\Apache2\htdocs\account/admin/users.php:118 -#: c:\Apache2\htdocs\account/admin/users.php:115 -#: c:\Apache2\htdocs\account/admin/users.php:118 +#: c:\Apache2\htdocs\account2/admin/users.php:118 +#: c:\Apache2\htdocs\account2/admin/users.php:121 msgid "User login" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:115 # c:\Apache2\htdocs\account/admin/users.php:118 # c:\Apache2\htdocs\account/admin/users.php:191 -#: c:\Apache2\htdocs\account/admin/users.php:115 -#: c:\Apache2\htdocs\account/admin/users.php:118 -#: c:\Apache2\htdocs\account/admin/users.php:191 +#: c:\Apache2\htdocs\account2/admin/users.php:118 +#: c:\Apache2\htdocs\account2/admin/users.php:121 +#: c:\Apache2\htdocs\account2/admin/users.php:194 msgid "Full Name" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:115 # c:\Apache2\htdocs\account/admin/users.php:118 # c:\Apache2\htdocs\account/sales/manage/sales_people.php:87 -#: c:\Apache2\htdocs\account/admin/users.php:115 -#: c:\Apache2\htdocs\account/admin/users.php:118 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:87 +#: c:\Apache2\htdocs\account2/admin/users.php:118 +#: c:\Apache2\htdocs\account2/admin/users.php:121 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:75 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:92 msgid "Phone" msgstr "" @@ -1652,69 +1636,73 @@ msgstr "" # c:\Apache2\htdocs\account/admin/users.php:119 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:61 -#: c:\Apache2\htdocs\account/admin/users.php:116 -#: c:\Apache2\htdocs\account/admin/users.php:119 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:61 +#: c:\Apache2\htdocs\account2/admin/users.php:119 +#: c:\Apache2\htdocs\account2/admin/users.php:122 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:169 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:58 msgid "E-mail" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:116 # c:\Apache2\htdocs\account/admin/users.php:119 -#: c:\Apache2\htdocs\account/admin/users.php:116 -#: c:\Apache2\htdocs\account/admin/users.php:119 +#: c:\Apache2\htdocs\account2/admin/users.php:119 +#: c:\Apache2\htdocs\account2/admin/users.php:122 msgid "Last Visit" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:116 # c:\Apache2\htdocs\account/admin/users.php:119 -#: c:\Apache2\htdocs\account/admin/users.php:116 -#: c:\Apache2\htdocs\account/admin/users.php:119 +#: c:\Apache2\htdocs\account2/admin/users.php:119 +#: c:\Apache2\htdocs\account2/admin/users.php:122 msgid "Access Level" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:151 -#: c:\Apache2\htdocs\account/admin/users.php:151 +#: c:\Apache2\htdocs\account2/admin/users.php:154 msgid "New User" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:173 -#: c:\Apache2\htdocs\account/admin/users.php:173 +#: c:\Apache2\htdocs\account2/admin/users.php:176 msgid "User login:" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:178 -#: c:\Apache2\htdocs\account/admin/users.php:178 +#: c:\Apache2\htdocs\account2/admin/users.php:181 msgid "User Login:" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:182 -#: c:\Apache2\htdocs\account/admin/users.php:182 +#: c:\Apache2\htdocs\account2/admin/users.php:185 msgid "Password:" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:188 -#: c:\Apache2\htdocs\account/admin/users.php:188 +#: c:\Apache2\htdocs\account2/admin/users.php:191 msgid "Enter a new password to change, leave empty to keep current." msgstr "" # c:\Apache2\htdocs\account/admin/users.php:193 -#: c:\Apache2\htdocs\account/admin/users.php:193 +#: c:\Apache2\htdocs\account2/admin/users.php:196 msgid "Telephone No.:" msgstr "" # c:\Apache2\htdocs\account/admin/users.php:197 -#: c:\Apache2\htdocs\account/admin/users.php:197 +#: c:\Apache2\htdocs\account2/admin/users.php:200 msgid "Access Level:" msgstr "" # c:\Apache2\htdocs\account/admin/view_print_transaction.php:8 # c:\Apache2\htdocs\account/applications/setup.php:27 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:16 -#: c:\Apache2\htdocs\account/applications/setup.php:29 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:16 +#: c:\Apache2\htdocs\account2/applications/setup.php:29 msgid "View or Print Transactions" msgstr "" +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:22 +msgid "Only documents can be printed." +msgstr "" + # c:\Apache2\htdocs\account/admin/view_print_transaction.php:25 # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:148 # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:329 @@ -1724,25 +1712,25 @@ msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:85 # c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:57 # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:149 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:27 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:151 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:335 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:342 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:201 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:37 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:85 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:57 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:149 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:28 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:152 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:335 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:342 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:189 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:37 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:85 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:57 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:149 msgid "Type:" msgstr "" # c:\Apache2\htdocs\account/admin/view_print_transaction.php:27 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:29 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:35 msgid "from #:" msgstr "" # c:\Apache2\htdocs\account/admin/view_print_transaction.php:29 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:31 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:37 msgid "to #:" msgstr "" @@ -1756,32 +1744,33 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:39 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:40 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:49 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:33 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:54 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:45 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:36 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:35 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:47 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:43 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:41 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:42 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:51 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:6 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:39 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:54 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:45 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:37 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:36 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:47 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:43 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:41 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:43 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:93 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:81 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:6 msgid "Search" msgstr "" # c:\Apache2\htdocs\account/admin/view_print_transaction.php:45 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:47 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:53 msgid "The starting transaction number is expected to be numeric and greater than zero." msgstr "" # c:\Apache2\htdocs\account/admin/view_print_transaction.php:51 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:53 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:59 msgid "The ending transaction number is expected to be numeric and greater than zero." msgstr "" # c:\Apache2\htdocs\account/admin/view_print_transaction.php:90 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:92 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:103 msgid "There are no transactions for the given parameters." msgstr "" @@ -1829,50 +1818,52 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:272 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:323 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:45 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:98 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:100 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:100 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:103 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:35 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:60 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:90 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:93 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:96 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:60 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:88 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:195 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:60 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:63 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:107 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:110 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:100 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:103 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:160 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:164 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:97 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:122 -#: c:\Apache2\htdocs\account/reporting/rep101.php:69 -#: c:\Apache2\htdocs\account/reporting/rep201.php:70 -#: c:\Apache2\htdocs\account/reporting/rep203.php:75 -#: c:\Apache2\htdocs\account/reporting/rep704.php:63 -#: c:\Apache2\htdocs\account/reporting/rep704.php:66 -#: c:\Apache2\htdocs\account/reporting/rep704.php:69 -#: c:\Apache2\htdocs\account/reporting/rep709.php:171 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:187 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:62 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:65 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:163 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:166 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:70 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:101 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:23 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:149 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:192 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:228 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:268 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:272 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:323 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:113 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:115 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:120 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:122 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:100 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:103 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:35 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:60 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:91 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:94 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:97 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:60 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:88 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:193 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:60 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:63 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:110 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:113 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:103 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:106 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:160 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:164 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:97 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:122 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:66 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:69 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:171 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:194 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:62 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:65 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:172 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:68 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:101 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:133 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:23 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:149 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:192 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:228 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:268 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:272 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:323 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:54 msgid "#" msgstr "" @@ -1925,98 +1916,124 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:28 # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:43 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:223 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:98 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:100 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:103 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:35 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:60 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:76 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:66 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:64 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:60 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:34 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:35 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:88 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:32 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:33 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:60 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:63 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:107 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:110 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:100 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:103 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:126 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:130 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:160 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:164 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:97 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:32 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:38 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:61 -#: c:\Apache2\htdocs\account/reporting/rep501.php:75 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:259 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:324 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:62 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:65 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:121 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:124 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:163 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:166 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:76 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:36 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:23 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:149 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:192 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:228 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:268 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:272 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:323 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:28 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:43 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:223 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:113 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:120 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:100 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:103 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:35 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:60 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:76 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:66 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:64 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:60 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:34 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:35 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:88 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:32 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_production_view.php:33 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:60 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:63 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:110 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:113 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:103 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:106 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:126 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:130 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:160 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:164 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:97 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:32 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:38 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:61 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:75 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:231 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:233 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:302 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:304 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:285 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:287 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:62 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:65 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:134 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:172 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:197 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:76 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:76 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:36 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:23 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:149 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:192 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:228 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:268 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:272 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:323 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:28 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:43 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:225 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:48 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:50 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:234 msgid "Reference" msgstr "" # c:\Apache2\htdocs\account/admin/view_print_transaction.php:96 # c:\Apache2\htdocs\account/admin/view_print_transaction.php:98 # c:\Apache2\htdocs\account/admin/view_print_transaction.php:109 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:98 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:100 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:111 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:113 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:115 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:120 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:122 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:135 msgid "View" msgstr "" # c:\Apache2\htdocs\account/admin/view_print_transaction.php:96 # c:\Apache2\htdocs\account/admin/view_print_transaction.php:98 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:98 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:100 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:113 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:115 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:137 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:149 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:129 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:262 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:244 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:245 msgid "Print" msgstr "" +# c:\Apache2\htdocs\account/includes/ui/ui_view.inc:51 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:113 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:115 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:120 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:122 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:51 +msgid "GL" +msgstr "" + # c:\Apache2\htdocs\account/admin/view_print_transaction.php:110 -#: c:\Apache2\htdocs\account/admin/view_print_transaction.php:112 +#: c:\Apache2\htdocs\account2/admin/view_print_transaction.php:138 msgid "View GL" msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:7 # c:\Apache2\htdocs\account/applications/setup.php:26 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:15 -#: c:\Apache2\htdocs\account/applications/setup.php:28 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:15 +#: c:\Apache2\htdocs\account2/applications/setup.php:28 msgid "Void a Transaction" msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:25 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:27 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:27 msgid "Transaction Type:" msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:27 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:29 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:29 msgid "Transaction #:" msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:29 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:31 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:31 msgid "Voiding Date:" msgstr "" @@ -2033,34 +2050,34 @@ msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:303 # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:157 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:146 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:33 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:242 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:80 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:158 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:387 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:85 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:412 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:102 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:122 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:205 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:305 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:157 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:146 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:33 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:248 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:80 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:159 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:387 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:87 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:414 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:97 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:125 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:193 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:315 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:157 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:140 msgid "Memo:" msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:36 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:38 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:38 msgid "Void Transaction" msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:40 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:42 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:42 msgid "Are you sure you want to void this transaction ? This action cannot be undone." msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:41 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:43 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:43 msgid "Proceed" msgstr "" @@ -2074,16 +2091,16 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:321 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:213 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:328 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:44 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:224 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:173 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:223 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:159 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:143 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:126 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:329 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:213 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:337 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:44 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:224 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:176 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:226 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:161 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:143 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:126 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:330 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:231 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:366 msgid "Cancel" msgstr "" @@ -2095,14 +2112,16 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:154 # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:151 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:49 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:56 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:98 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:88 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:34 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:79 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:156 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:153 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:51 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:56 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:98 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:89 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:76 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:156 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:151 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:75 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:193 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:187 msgid "The entered date is invalid." msgstr "" @@ -2122,42 +2141,42 @@ msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:123 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:54 # c:\Apache2\htdocs\account/sales/customer_payments.php:55 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:61 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:103 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:120 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:93 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:119 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:108 -#: c:\Apache2\htdocs\account/inventory/transfers.php:108 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:84 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:137 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:59 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:97 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:97 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:158 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:125 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:56 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:57 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:62 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:104 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:123 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:95 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:122 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:111 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:111 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:82 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:135 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:60 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:102 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:101 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:157 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:123 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:79 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:55 msgid "The entered date is not in fiscal year." msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:65 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:67 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:69 msgid "The transaction number is expected to be numeric and greater than zero." msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:82 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:84 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:87 msgid "The selected transaction has already been voided." msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:94 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:96 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:100 msgid "Selected transaction has been voided." msgstr "" # c:\Apache2\htdocs\account/admin/void_transaction.php:100 -#: c:\Apache2\htdocs\account/admin/void_transaction.php:102 +#: c:\Apache2\htdocs\account2/admin/void_transaction.php:106 msgid "The entered transaction does not exist or cannot be voided." msgstr "" @@ -2167,50 +2186,57 @@ msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:9 # c:\Apache2\htdocs\account/applications/manufacturing.php:9 # c:\Apache2\htdocs\account/applications/suppliers.php:9 -#: c:\Apache2\htdocs\account/applications/customers.php:11 -#: c:\Apache2\htdocs\account/applications/dimensions.php:14 -#: c:\Apache2\htdocs\account/applications/generalledger.php:11 -#: c:\Apache2\htdocs\account/applications/inventory.php:11 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:11 -#: c:\Apache2\htdocs\account/applications/suppliers.php:11 +#: c:\Apache2\htdocs\account2/applications/customers.php:11 +#: c:\Apache2\htdocs\account2/applications/dimensions.php:14 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:11 +#: c:\Apache2\htdocs\account2/applications/inventory.php:11 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:11 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:11 msgid "Transactions" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:10 # c:\Apache2\htdocs\account/sales/sales_order_entry.php:29 -#: c:\Apache2\htdocs\account/applications/customers.php:12 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:31 +#: c:\Apache2\htdocs\account2/applications/customers.php:12 msgid "Sales Order Entry" msgstr "" -# c:\Apache2\htdocs\account/applications/customers.php:11 -#: c:\Apache2\htdocs\account/applications/customers.php:13 -msgid "Select a Sales Order to Invoice" +#: c:\Apache2\htdocs\account2/applications/customers.php:13 +msgid "Direct Delivery" msgstr "" -# c:\Apache2\htdocs\account/applications/customers.php:12 -#: c:\Apache2\htdocs\account/applications/customers.php:14 -msgid "Customer Payments" +#: c:\Apache2\htdocs\account2/applications/customers.php:14 +msgid "Direct Invoice" msgstr "" -# c:\Apache2\htdocs\account/applications/customers.php:14 -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:25 -# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:35 -# c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1851 -#: c:\Apache2\htdocs\account/applications/customers.php:16 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:27 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:35 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2071 -msgid "Sales Invoices" +#: c:\Apache2\htdocs\account2/applications/customers.php:16 +msgid "Delivery Against Sales Orders" +msgstr "" + +#: c:\Apache2\htdocs\account2/applications/customers.php:17 +msgid "Invoice Against Sales Delivery" +msgstr "" + +#: c:\Apache2\htdocs\account2/applications/customers.php:19 +msgid "Template Delivery" +msgstr "" + +#: c:\Apache2\htdocs\account2/applications/customers.php:20 +msgid "Template Invoice" +msgstr "" + +# c:\Apache2\htdocs\account/applications/customers.php:12 +#: c:\Apache2\htdocs\account2/applications/customers.php:22 +msgid "Customer Payments" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:15 -#: c:\Apache2\htdocs\account/applications/customers.php:17 +#: c:\Apache2\htdocs\account2/applications/customers.php:23 msgid "Customer Credit Notes" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:16 -#: c:\Apache2\htdocs\account/applications/customers.php:18 +#: c:\Apache2\htdocs\account2/applications/customers.php:24 msgid "Allocate Customer Payments or Credit Notes" msgstr "" @@ -2220,34 +2246,34 @@ msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:13 # c:\Apache2\htdocs\account/applications/manufacturing.php:13 # c:\Apache2\htdocs\account/applications/suppliers.php:18 -#: c:\Apache2\htdocs\account/applications/customers.php:20 -#: c:\Apache2\htdocs\account/applications/dimensions.php:18 -#: c:\Apache2\htdocs\account/applications/generalledger.php:18 -#: c:\Apache2\htdocs\account/applications/inventory.php:15 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:15 -#: c:\Apache2\htdocs\account/applications/suppliers.php:20 +#: c:\Apache2\htdocs\account2/applications/customers.php:26 +#: c:\Apache2\htdocs\account2/applications/dimensions.php:18 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:18 +#: c:\Apache2\htdocs\account2/applications/inventory.php:15 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:15 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:20 msgid "Inquiries and Reports" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:19 -#: c:\Apache2\htdocs\account/applications/customers.php:21 +#: c:\Apache2\htdocs\account2/applications/customers.php:27 msgid "Sales Order Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:20 -#: c:\Apache2\htdocs\account/applications/customers.php:22 +#: c:\Apache2\htdocs\account2/applications/customers.php:28 msgid "Customer Transaction Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:22 # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:13 -#: c:\Apache2\htdocs\account/applications/customers.php:24 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:15 +#: c:\Apache2\htdocs\account2/applications/customers.php:30 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:15 msgid "Customer Allocation Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:24 -#: c:\Apache2\htdocs\account/applications/customers.php:26 +#: c:\Apache2\htdocs\account2/applications/customers.php:32 msgid "Customer and Sales Reports" msgstr "" @@ -2256,40 +2282,40 @@ msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:18 # c:\Apache2\htdocs\account/applications/manufacturing.php:19 # c:\Apache2\htdocs\account/applications/suppliers.php:26 -#: c:\Apache2\htdocs\account/applications/customers.php:28 -#: c:\Apache2\htdocs\account/applications/dimensions.php:30 -#: c:\Apache2\htdocs\account/applications/generalledger.php:27 -#: c:\Apache2\htdocs\account/applications/inventory.php:20 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:21 -#: c:\Apache2\htdocs\account/applications/suppliers.php:28 +#: c:\Apache2\htdocs\account2/applications/customers.php:34 +#: c:\Apache2\htdocs\account2/applications/dimensions.php:30 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:27 +#: c:\Apache2\htdocs\account2/applications/inventory.php:20 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:21 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:28 msgid "Maintenance" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:27 -#: c:\Apache2\htdocs\account/applications/customers.php:29 +#: c:\Apache2\htdocs\account2/applications/customers.php:35 msgid "Add and Manage Customers" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:28 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:7 -#: c:\Apache2\htdocs\account/applications/customers.php:30 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:7 +#: c:\Apache2\htdocs\account2/applications/customers.php:36 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:7 msgid "Customer Branches" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:29 # c:\Apache2\htdocs\account/reporting/reports_main.php:38 # c:\Apache2\htdocs\account/sales/manage/sales_types.php:7 -#: c:\Apache2\htdocs\account/applications/customers.php:31 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:39 -#: c:\Apache2\htdocs\account/sales/manage/sales_types.php:7 +#: c:\Apache2\htdocs\account2/applications/customers.php:37 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:39 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:7 msgid "Sales Types" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:30 # c:\Apache2\htdocs\account/sales/manage/sales_people.php:7 -#: c:\Apache2\htdocs\account/applications/customers.php:32 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:7 +#: c:\Apache2\htdocs\account2/applications/customers.php:38 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:7 msgid "Sales Persons" msgstr "" @@ -2297,37 +2323,37 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:135 # c:\Apache2\htdocs\account/reporting/reports_main.php:34 # c:\Apache2\htdocs\account/sales/manage/sales_areas.php:8 -#: c:\Apache2\htdocs\account/applications/customers.php:33 -#: c:\Apache2\htdocs\account/reporting/rep103.php:135 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:35 -#: c:\Apache2\htdocs\account/sales/manage/sales_areas.php:8 +#: c:\Apache2\htdocs\account2/applications/customers.php:39 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:135 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:35 +#: c:\Apache2\htdocs\account2/sales/manage/sales_areas.php:8 msgid "Sales Areas" msgstr "" # c:\Apache2\htdocs\account/applications/customers.php:32 -#: c:\Apache2\htdocs\account/applications/customers.php:34 +#: c:\Apache2\htdocs\account2/applications/customers.php:40 msgid "Credit Status Setup" msgstr "" # c:\Apache2\htdocs\account/applications/dimensions.php:13 # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:8 -#: c:\Apache2\htdocs\account/applications/dimensions.php:15 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:18 +#: c:\Apache2\htdocs\account2/applications/dimensions.php:15 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:18 msgid "Dimension Entry" msgstr "" # c:\Apache2\htdocs\account/applications/dimensions.php:14 -#: c:\Apache2\htdocs\account/applications/dimensions.php:16 +#: c:\Apache2\htdocs\account2/applications/dimensions.php:16 msgid "Outstanding Dimensions" msgstr "" # c:\Apache2\htdocs\account/applications/dimensions.php:17 -#: c:\Apache2\htdocs\account/applications/dimensions.php:19 +#: c:\Apache2\htdocs\account2/applications/dimensions.php:19 msgid "Dimension Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/dimensions.php:19 -#: c:\Apache2\htdocs\account/applications/dimensions.php:21 +#: c:\Apache2\htdocs\account2/applications/dimensions.php:21 msgid "Dimension Reports" msgstr "" @@ -2335,44 +2361,44 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:57 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1853 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1866 -#: c:\Apache2\htdocs\account/applications/generalledger.php:12 -#: c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:57 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2073 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2086 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:12 +#: c:\Apache2\htdocs\account2/manufacturing/view/work_order_view.php:57 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2089 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2106 msgid "Payments" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:11 -#: c:\Apache2\htdocs\account/applications/generalledger.php:13 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:13 msgid "Deposits" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:12 -#: c:\Apache2\htdocs\account/applications/generalledger.php:14 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:14 msgid "Bank Account Transfers" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:13 # c:\Apache2\htdocs\account/gl/gl_journal.php:21 # c:\Apache2\htdocs\account/includes/types.inc:6 -#: c:\Apache2\htdocs\account/applications/generalledger.php:15 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:23 -#: c:\Apache2\htdocs\account/includes/types.inc:6 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:15 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:24 +#: c:\Apache2\htdocs\account2/includes/types.inc:6 msgid "Journal Entry" msgstr "" -#: c:\Apache2\htdocs\account/applications/generalledger.php:16 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:7 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:16 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:7 msgid "Budget Entry" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:16 -#: c:\Apache2\htdocs\account/applications/generalledger.php:19 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:19 msgid "Bank Account Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:17 -#: c:\Apache2\htdocs\account/applications/generalledger.php:20 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:20 msgid "GL Account Inquiry" msgstr "" @@ -2382,335 +2408,340 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:181 # c:\Apache2\htdocs\account/reporting/reports_main.php:213 # c:\Apache2\htdocs\account/reporting/reports_main.php:240 -#: c:\Apache2\htdocs\account/applications/generalledger.php:22 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:18 -#: c:\Apache2\htdocs\account/reporting/rep708.php:89 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:183 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:217 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:246 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:22 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:18 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:89 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:193 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:227 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:256 msgid "Trial Balance" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:21 -#: c:\Apache2\htdocs\account/applications/generalledger.php:24 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:24 msgid "Banking Reports" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:22 -#: c:\Apache2\htdocs\account/applications/generalledger.php:25 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:25 msgid "General Ledger Reports" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:25 # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:7 -#: c:\Apache2\htdocs\account/applications/generalledger.php:28 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:7 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:28 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:7 msgid "Bank Accounts" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:26 -#: c:\Apache2\htdocs\account/applications/generalledger.php:29 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:29 msgid "Payment, Deposit and Transfer Types" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:28 # c:\Apache2\htdocs\account/gl/manage/currencies.php:7 -#: c:\Apache2\htdocs\account/applications/generalledger.php:31 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:7 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:31 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:7 msgid "Currencies" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:29 # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:7 -#: c:\Apache2\htdocs\account/applications/generalledger.php:32 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:14 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:32 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:14 msgid "Exchange Rates" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:31 # c:\Apache2\htdocs\account/inventory/manage/items.php:330 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:297 -#: c:\Apache2\htdocs\account/applications/generalledger.php:34 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:330 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:297 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:34 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:330 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:296 msgid "GL Accounts" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:32 # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:7 -#: c:\Apache2\htdocs\account/applications/generalledger.php:35 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:7 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:35 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:7 msgid "GL Account Groups" msgstr "" # c:\Apache2\htdocs\account/applications/generalledger.php:33 # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:7 -#: c:\Apache2\htdocs\account/applications/generalledger.php:36 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:7 +#: c:\Apache2\htdocs\account2/applications/generalledger.php:36 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:7 msgid "GL Account Classes" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:10 # c:\Apache2\htdocs\account/inventory/transfers.php:17 -#: c:\Apache2\htdocs\account/applications/inventory.php:12 -#: c:\Apache2\htdocs\account/inventory/transfers.php:19 +#: c:\Apache2\htdocs\account2/applications/inventory.php:12 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:19 msgid "Inventory Location Transfers" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:11 -#: c:\Apache2\htdocs\account/applications/inventory.php:13 +#: c:\Apache2\htdocs\account2/applications/inventory.php:13 msgid "Inventory Adjustments" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:14 -#: c:\Apache2\htdocs\account/applications/inventory.php:16 +#: c:\Apache2\htdocs\account2/applications/inventory.php:16 msgid "Inventory Item Movements" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:15 # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:9 # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:11 -#: c:\Apache2\htdocs\account/applications/inventory.php:17 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:9 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:11 +#: c:\Apache2\htdocs\account2/applications/inventory.php:17 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:9 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:11 msgid "Inventory Item Status" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:16 -#: c:\Apache2\htdocs\account/applications/inventory.php:18 +#: c:\Apache2\htdocs\account2/applications/inventory.php:18 msgid "Inventory Reports" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:19 # c:\Apache2\htdocs\account/inventory/transfers.php:227 # c:\Apache2\htdocs\account/inventory/manage/items.php:7 -#: c:\Apache2\htdocs\account/applications/inventory.php:21 -#: c:\Apache2\htdocs\account/inventory/transfers.php:229 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:7 +#: c:\Apache2\htdocs\account2/applications/inventory.php:21 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:236 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:7 msgid "Items" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:20 # c:\Apache2\htdocs\account/inventory/manage/item_categories.php:7 -#: c:\Apache2\htdocs\account/applications/inventory.php:22 -#: c:\Apache2\htdocs\account/inventory/manage/item_categories.php:7 +#: c:\Apache2\htdocs\account2/applications/inventory.php:22 +#: c:\Apache2\htdocs\account2/inventory/manage/item_categories.php:7 msgid "Item Categories" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:21 # c:\Apache2\htdocs\account/inventory/manage/locations.php:7 -#: c:\Apache2\htdocs\account/applications/inventory.php:23 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:7 +#: c:\Apache2\htdocs\account2/applications/inventory.php:23 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:7 msgid "Inventory Locations" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:22 # c:\Apache2\htdocs\account/inventory/manage/movement_types.php:7 -#: c:\Apache2\htdocs\account/applications/inventory.php:24 -#: c:\Apache2\htdocs\account/inventory/manage/movement_types.php:7 +#: c:\Apache2\htdocs\account2/applications/inventory.php:24 +#: c:\Apache2\htdocs\account2/inventory/manage/movement_types.php:7 msgid "Inventory Movement Types" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:23 # c:\Apache2\htdocs\account/taxes/item_tax_types.php:8 -#: c:\Apache2\htdocs\account/applications/inventory.php:25 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:8 +#: c:\Apache2\htdocs\account2/applications/inventory.php:25 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:8 msgid "Item Tax Types" msgstr "" +#: c:\Apache2\htdocs\account2/applications/inventory.php:26 +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:7 +msgid "Units of Measure" +msgstr "" + # c:\Apache2\htdocs\account/applications/inventory.php:25 # c:\Apache2\htdocs\account/inventory/reorder_level.php:7 -#: c:\Apache2\htdocs\account/applications/inventory.php:27 -#: c:\Apache2\htdocs\account/inventory/reorder_level.php:7 +#: c:\Apache2\htdocs\account2/applications/inventory.php:27 +#: c:\Apache2\htdocs\account2/inventory/reorder_level.php:7 msgid "Reorder Levels" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:27 -#: c:\Apache2\htdocs\account/applications/inventory.php:29 +#: c:\Apache2\htdocs\account2/applications/inventory.php:29 msgid "Pricing and Costs" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:28 -#: c:\Apache2\htdocs\account/applications/inventory.php:30 +#: c:\Apache2\htdocs\account2/applications/inventory.php:30 msgid "Sales Pricing" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:29 -#: c:\Apache2\htdocs\account/applications/inventory.php:31 +#: c:\Apache2\htdocs\account2/applications/inventory.php:31 msgid "Purchasing Pricing" msgstr "" # c:\Apache2\htdocs\account/applications/inventory.php:30 -#: c:\Apache2\htdocs\account/applications/inventory.php:32 +#: c:\Apache2\htdocs\account2/applications/inventory.php:32 msgid "Standard Costs" msgstr "" # c:\Apache2\htdocs\account/applications/manufacturing.php:10 # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:8 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:12 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:18 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:12 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:18 msgid "Work Order Entry" msgstr "" # c:\Apache2\htdocs\account/applications/manufacturing.php:11 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:13 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:13 msgid "Outstanding Work Orders" msgstr "" # c:\Apache2\htdocs\account/applications/manufacturing.php:15 # c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:7 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:17 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:7 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:17 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/where_used_inquiry.php:7 msgid "Inventory Item Where Used Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/manufacturing.php:16 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:18 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:18 msgid "Work Order Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/manufacturing.php:17 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:19 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:19 msgid "Manufactoring Reports" msgstr "" # c:\Apache2\htdocs\account/applications/manufacturing.php:20 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:22 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:22 msgid "Bills Of Material" msgstr "" # c:\Apache2\htdocs\account/applications/manufacturing.php:21 # c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:7 -#: c:\Apache2\htdocs\account/applications/manufacturing.php:23 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:7 +#: c:\Apache2\htdocs\account2/applications/manufacturing.php:23 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:7 msgid "Work Centres" msgstr "" # c:\Apache2\htdocs\account/applications/setup.php:11 -#: c:\Apache2\htdocs\account/applications/setup.php:13 +#: c:\Apache2\htdocs\account2/applications/setup.php:13 msgid "User Accounts Setup" msgstr "" # c:\Apache2\htdocs\account/applications/setup.php:15 -#: c:\Apache2\htdocs\account/applications/setup.php:17 +#: c:\Apache2\htdocs\account2/applications/setup.php:17 msgid "Taxes" msgstr "" # c:\Apache2\htdocs\account/applications/setup.php:16 # c:\Apache2\htdocs\account/taxes/tax_groups.php:8 -#: c:\Apache2\htdocs\account/applications/setup.php:18 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:8 +#: c:\Apache2\htdocs\account2/applications/setup.php:18 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:8 msgid "Tax Groups" msgstr "" # c:\Apache2\htdocs\account/applications/setup.php:25 -#: c:\Apache2\htdocs\account/applications/setup.php:27 +#: c:\Apache2\htdocs\account2/applications/setup.php:27 msgid "Maintanance" msgstr "" # c:\Apache2\htdocs\account/applications/setup.php:28 -#: c:\Apache2\htdocs\account/applications/setup.php:30 +#: c:\Apache2\htdocs\account2/applications/setup.php:30 msgid "Backup and Restore" msgstr "" # c:\Apache2\htdocs\account/applications/setup.php:29 -#: c:\Apache2\htdocs\account/applications/setup.php:31 +#: c:\Apache2\htdocs\account2/applications/setup.php:31 msgid "Create/Update Companies" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:10 # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:25 -#: c:\Apache2\htdocs\account/applications/suppliers.php:12 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:27 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:12 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:24 msgid "Purchase Order Entry" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:11 -#: c:\Apache2\htdocs\account/applications/suppliers.php:13 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:13 msgid "Outstanding Purchase Orders Maintenance" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:12 -#: c:\Apache2\htdocs\account/applications/suppliers.php:14 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:14 msgid "Payments to Suppliers" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:14 -#: c:\Apache2\htdocs\account/applications/suppliers.php:16 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:16 msgid "Supplier Invoices" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:15 -#: c:\Apache2\htdocs\account/applications/suppliers.php:17 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:17 msgid "Supplier Credit Notes" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:16 -#: c:\Apache2\htdocs\account/applications/suppliers.php:18 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:18 msgid "Allocate Supplier Payments or Credit Notes" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:19 -#: c:\Apache2\htdocs\account/applications/suppliers.php:21 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:21 msgid "Purchase Orders Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:20 -#: c:\Apache2\htdocs\account/applications/suppliers.php:22 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:22 msgid "Supplier Transaction Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:22 # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:11 -#: c:\Apache2\htdocs\account/applications/suppliers.php:24 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:13 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:24 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:13 msgid "Supplier Allocation Inquiry" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:24 -#: c:\Apache2\htdocs\account/applications/suppliers.php:26 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:26 msgid "Supplier and Purchasing Reports" msgstr "" # c:\Apache2\htdocs\account/applications/suppliers.php:27 # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:7 -#: c:\Apache2\htdocs\account/applications/suppliers.php:29 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:7 +#: c:\Apache2\htdocs\account2/applications/suppliers.php:29 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:7 msgid "Suppliers" msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:35 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:38 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:38 msgid "The dimension has been entered." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:46 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:49 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:49 msgid "The dimension has been updated." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:56 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:59 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:59 msgid "The dimension has been deleted." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:66 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:69 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:69 msgid "The dimension has been closed. There can be no more changes to it." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:76 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:79 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:79 msgid "Enter a new dimension" msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:78 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:81 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:81 msgid "Select an existing dimension" msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:97 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:100 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:100 msgid "The dimension reference must be entered." msgstr "" @@ -2733,30 +2764,31 @@ msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:66 # c:\Apache2\htdocs\account/sales/customer_invoice.php:209 # c:\Apache2\htdocs\account/sales/customer_payments.php:67 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:106 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:126 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:108 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:103 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:109 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:97 -#: c:\Apache2\htdocs\account/inventory/transfers.php:98 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:61 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:113 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:70 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:274 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:168 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:80 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:80 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:169 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:115 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:68 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:211 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:69 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:107 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:125 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:109 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:107 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:110 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:98 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:99 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:62 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:114 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:73 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:273 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:170 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:82 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:81 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:170 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:113 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:92 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:157 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:209 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:67 msgid "The entered reference is already in use." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:110 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:113 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:115 msgid "The dimension name must be entered." msgstr "" @@ -2764,37 +2796,37 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:128 # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:198 # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:170 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:119 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:132 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:204 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:172 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:122 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:129 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:201 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:167 msgid "The date entered is in an invalid format." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:122 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:125 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:129 msgid "The required by date entered is in an invalid format." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:164 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:167 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:172 msgid "This dimension cannot be deleted because it has already been processed." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:199 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:202 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:208 msgid "The dimension sent is not valid." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:206 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:209 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:215 msgid "This dimension is closed and cannot be edited." msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:220 # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:226 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:223 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:229 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:229 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:235 msgid "Dimension Reference:" msgstr "" @@ -2832,40 +2864,39 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:268 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:272 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:323 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:236 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:41 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:100 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:103 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:35 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:60 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:90 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:93 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:96 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:89 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:60 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:88 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:126 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:130 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:160 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:164 -#: c:\Apache2\htdocs\account/reporting/rep102.php:151 -#: c:\Apache2\htdocs\account/reporting/rep202.php:160 -#: c:\Apache2\htdocs\account/reporting/rep501.php:75 -#: c:\Apache2\htdocs\account/reporting/rep702.php:46 -#: c:\Apache2\htdocs\account/reporting/rep704.php:63 -#: c:\Apache2\htdocs\account/reporting/rep704.php:66 -#: c:\Apache2\htdocs\account/reporting/rep704.php:69 -#: c:\Apache2\htdocs\account/reporting/rep709.php:178 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:149 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:121 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:124 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:163 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:166 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:23 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:465 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:268 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:272 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:323 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:242 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:41 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:100 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:103 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:35 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:60 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:91 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:94 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:97 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:89 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:60 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:88 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:126 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:130 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:160 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:164 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:152 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:160 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:46 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:66 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:69 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:178 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:159 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:134 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:172 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:23 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:475 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:268 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:272 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:323 msgid "Type" msgstr "" @@ -2885,49 +2916,50 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:236 # c:\Apache2\htdocs\account/reporting/reports_main.php:241 # c:\Apache2\htdocs\account/reporting/reports_main.php:247 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:238 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:44 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:147 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:156 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:169 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:176 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:184 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:194 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:205 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:211 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:218 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:227 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:236 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:241 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:247 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:253 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:244 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:44 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:51 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:157 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:166 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:179 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:186 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:194 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:204 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:215 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:221 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:228 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:237 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:246 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:251 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:257 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:263 msgid "Start Date" msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:237 # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:364 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:240 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:370 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:246 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:370 msgid "Date Required By" msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:249 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:252 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:258 msgid "Close This Dimension" msgstr "" # c:\Apache2\htdocs\account/dimensions/dimension_entry.php:250 -#: c:\Apache2\htdocs\account/dimensions/dimension_entry.php:253 +#: c:\Apache2\htdocs\account2/dimensions/dimension_entry.php:259 msgid "Delete This Dimension" msgstr "" # c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:17 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:19 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:19 msgid "Search Outstanding Dimensionss" msgstr "" # c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:22 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:24 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:24 msgid "Search Dimensions" msgstr "" @@ -2950,25 +2982,24 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:87 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:92 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:48 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:39 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:78 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:35 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:146 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:334 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:340 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:100 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:203 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:87 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:18 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:87 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:38 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:46 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:144 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:75 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:77 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:87 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:92 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:48 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:39 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:78 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:35 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:147 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:334 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:340 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:95 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:191 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:87 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:18 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:87 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:38 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:46 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:144 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:73 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:75 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:87 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:92 msgid "Reference:" msgstr "" @@ -2981,15 +3012,15 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:32 # c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:40 # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:16 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:42 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:31 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:29 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:37 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:40 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:38 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:34 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:40 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:16 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:42 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:31 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:29 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:37 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:40 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:38 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:35 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:40 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:16 msgid "From:" msgstr "" @@ -3001,28 +3032,28 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:37 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:33 # c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:16 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:43 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:32 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:30 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:38 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:41 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:39 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:35 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:16 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:43 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:32 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:30 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:38 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:41 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:39 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:36 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:16 msgid "To:" msgstr "" # c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:43 # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:39 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:45 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:39 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:45 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:39 msgid "Only Overdue:" msgstr "" # c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:47 # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:41 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:49 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:41 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:49 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:41 msgid "Only Open:" msgstr "" @@ -3082,62 +3113,63 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:237 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:5 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:45 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:100 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:103 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:35 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:60 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:90 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:93 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:96 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:74 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:59 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:57 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:27 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:60 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:35 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:38 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:89 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:369 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:375 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:34 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:195 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:60 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:63 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:127 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:130 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:161 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:165 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:122 -#: c:\Apache2\htdocs\account/reporting/rep101.php:69 -#: c:\Apache2\htdocs\account/reporting/rep201.php:70 -#: c:\Apache2\htdocs\account/reporting/rep501.php:75 -#: c:\Apache2\htdocs\account/reporting/rep704.php:63 -#: c:\Apache2\htdocs\account/reporting/rep704.php:66 -#: c:\Apache2\htdocs\account/reporting/rep704.php:69 -#: c:\Apache2\htdocs\account/reporting/rep709.php:171 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:365 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:187 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:62 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:65 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:121 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:124 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:163 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:166 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:60 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:70 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:101 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:24 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:465 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:149 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:192 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:228 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:269 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:273 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:324 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:87 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:237 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:5 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:100 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:103 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:35 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:60 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:91 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:94 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:97 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:74 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:59 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:57 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:27 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:60 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:35 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:38 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:89 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:369 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:375 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_production_view.php:34 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:193 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:60 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:63 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:127 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:130 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:161 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:165 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:122 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:66 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:69 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:171 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:332 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:311 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:194 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:62 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:65 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:134 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:172 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:60 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:68 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:101 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:133 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:24 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:475 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:149 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:192 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:228 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:269 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:273 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:324 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:85 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:239 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:5 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:54 msgid "Date" msgstr "" @@ -3164,30 +3196,30 @@ msgstr "" # c:\Apache2\htdocs\account/sales/view/view_invoice.php:84 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:89 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:12 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:101 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:104 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:35 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:195 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:127 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:130 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:161 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:165 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:37 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:43 -#: c:\Apache2\htdocs\account/reporting/rep101.php:69 -#: c:\Apache2\htdocs\account/reporting/rep201.php:70 -#: c:\Apache2\htdocs\account/reporting/rep203.php:75 -#: c:\Apache2\htdocs\account/reporting/rep501.php:75 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:371 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:187 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:121 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:124 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:163 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:166 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:88 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:89 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:12 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:356 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:101 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:104 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:35 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:193 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:127 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:130 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:161 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:165 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:37 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:43 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:75 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:317 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:194 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:134 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:172 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:88 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:88 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:87 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:12 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:386 msgid "Due Date" msgstr "" @@ -3209,48 +3241,48 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep708.php:55 # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:120 # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:123 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:101 -#: c:\Apache2\htdocs\account/dimensions/inquiry/search_dimensions.php:104 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:61 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:91 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:94 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:97 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:81 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:128 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:131 -#: c:\Apache2\htdocs\account/reporting/rep203.php:76 -#: c:\Apache2\htdocs\account/reporting/rep204.php:70 -#: c:\Apache2\htdocs\account/reporting/rep701.php:36 -#: c:\Apache2\htdocs\account/reporting/rep704.php:64 -#: c:\Apache2\htdocs\account/reporting/rep704.php:67 -#: c:\Apache2\htdocs\account/reporting/rep704.php:70 -#: c:\Apache2\htdocs\account/reporting/rep708.php:55 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:122 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:125 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:101 +#: c:\Apache2\htdocs\account2/dimensions/inquiry/search_dimensions.php:104 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:61 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:92 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:95 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:98 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:81 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:128 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:76 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep701.php:36 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:64 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:67 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:55 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:132 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:135 msgid "Balance" msgstr "" # c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:8 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:8 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:8 msgid "View Dimension" msgstr "" # c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:29 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:261 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:317 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:29 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:261 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:317 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:29 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:261 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:317 msgid "The work order number sent is not valid." msgstr "" # c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:53 -#: c:\Apache2\htdocs\account/dimensions/view/view_dimension.php:53 +#: c:\Apache2\htdocs\account2/dimensions/view/view_dimension.php:53 msgid "This dimension is closed." msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:17 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:19 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:19 msgid "Transfer between Bank Accounts" msgstr "" @@ -3260,47 +3292,47 @@ msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:19 # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:28 # c:\Apache2\htdocs\account/sales/customer_payments.php:24 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:21 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:25 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:25 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:21 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:30 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:26 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:21 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:25 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:25 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:21 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:30 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:25 msgid "There are no bank accounts defined in the system." msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:20 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:22 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:22 msgid "There are no bank transfer types defined in the system." msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:29 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:31 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:31 msgid "Transfer has been entered" msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:31 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:33 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:33 msgid "View the GL Journal Entries for this Transfer" msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:33 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:35 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:35 msgid "Enter Another Transfer" msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:51 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:53 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:53 msgid "From Account:" msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:53 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:55 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:55 msgid "To Account:" msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:55 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:57 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:57 msgid "Transfer Date:" msgstr "" @@ -3310,35 +3342,31 @@ msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:177 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:409 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:427 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:63 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:69 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:120 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:179 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:411 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:429 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:63 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:69 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:123 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:168 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:421 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:439 msgid "Amount:" msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:74 # c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:55 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:76 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:55 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:76 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:55 msgid "Transfer Type:" msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:85 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:87 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:87 msgid "Enter Transfer" msgstr "" -# c:\Apache2\htdocs\account/gl/bank_transfer.php:107 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:109 -msgid "The entered amount is invalid." -msgstr "" - -# c:\Apache2\htdocs\account/gl/bank_transfer.php:112 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:114 -msgid "The entered amount must be a positive number." +# c:\Apache2\htdocs\account/purchasing/supplier_payment.php:128 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:111 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:125 +msgid "The entered amount is invalid or less than zero." msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:118 @@ -3356,48 +3384,51 @@ msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:60 # c:\Apache2\htdocs\account/sales/customer_invoice.php:203 # c:\Apache2\htdocs\account/sales/customer_payments.php:61 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:120 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:103 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:98 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:104 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:91 -#: c:\Apache2\htdocs\account/inventory/transfers.php:93 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:55 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:107 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:64 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:162 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:163 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:110 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:62 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:205 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:63 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:118 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:103 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:101 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:104 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:91 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:93 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:55 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:107 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:66 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:163 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:163 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:109 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:86 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:151 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:203 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:61 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:237 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:223 msgid "You must enter a reference." msgstr "" # c:\Apache2\htdocs\account/gl/bank_transfer.php:130 -#: c:\Apache2\htdocs\account/gl/bank_transfer.php:132 +#: c:\Apache2\htdocs\account2/gl/bank_transfer.php:132 msgid "The source and destination bank accouts cannot be the same." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:13 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:13 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:13 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:13 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:13 msgid "There are no account groups defined. Please define at least one account group before entering accounts." msgstr "" -#: c:\Apache2\htdocs\account/gl/gl_budget.php:82 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:82 msgid "The Budget has been saved." msgstr "" -#: c:\Apache2\htdocs\account/gl/gl_budget.php:84 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:84 msgid "The Budget has been deleted." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:217 # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:221 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:98 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:219 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:223 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:98 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:222 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:226 msgid "Account Code:" msgstr "" @@ -3462,78 +3493,77 @@ msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:25 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:197 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:105 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:106 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:110 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:57 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:59 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:90 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:93 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:56 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:59 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:357 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:359 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:113 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:115 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:215 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:217 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:219 -#: c:\Apache2\htdocs\account/reporting/rep501.php:80 -#: c:\Apache2\htdocs\account/reporting/rep704.php:63 -#: c:\Apache2\htdocs\account/reporting/rep704.php:66 -#: c:\Apache2\htdocs\account/reporting/rep704.php:77 -#: c:\Apache2\htdocs\account/reporting/rep704.php:79 -#: c:\Apache2\htdocs\account/reporting/rep704.php:87 -#: c:\Apache2\htdocs\account/reporting/rep705.php:137 -#: c:\Apache2\htdocs\account/reporting/rep705.php:139 -#: c:\Apache2\htdocs\account/reporting/rep705.php:149 -#: c:\Apache2\htdocs\account/reporting/rep706.php:72 -#: c:\Apache2\htdocs\account/reporting/rep706.php:74 -#: c:\Apache2\htdocs\account/reporting/rep706.php:81 -#: c:\Apache2\htdocs\account/reporting/rep707.php:86 -#: c:\Apache2\htdocs\account/reporting/rep707.php:88 -#: c:\Apache2\htdocs\account/reporting/rep707.php:95 -#: c:\Apache2\htdocs\account/reporting/rep708.php:71 -#: c:\Apache2\htdocs\account/reporting/rep708.php:73 -#: c:\Apache2\htdocs\account/reporting/rep708.php:80 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:132 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:160 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:161 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:165 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:166 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:171 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:172 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:179 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:180 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:187 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:188 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:198 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:202 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:207 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:214 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:221 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:299 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:301 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:110 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:111 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:113 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:47 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:48 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:50 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:109 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:110 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:112 -#: c:\Apache2\htdocs\account/includes/types.inc:25 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:197 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:105 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:106 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:110 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:58 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:60 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:91 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:94 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:56 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:59 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:357 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:359 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:116 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:118 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:215 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:217 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:219 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:80 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:66 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:77 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:79 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:87 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:137 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:139 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:149 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:72 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:74 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:81 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:86 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:88 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:95 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:73 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:80 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:170 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:171 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:175 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:176 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:181 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:182 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:189 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:190 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:197 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:198 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:208 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:212 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:217 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:224 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:231 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:279 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:281 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:110 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:111 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:113 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:47 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:48 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:50 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:109 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:110 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:112 +#: c:\Apache2\htdocs\account2/includes/types.inc:26 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:191 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:193 msgid "Dimension" msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:150 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:285 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:118 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:153 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:287 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:118 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:155 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:297 msgid "Get" msgstr "" @@ -3554,25 +3584,26 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep708.php:79 # c:\Apache2\htdocs\account/reporting/rep708.php:86 # c:\Apache2\htdocs\account/reporting/rep709.php:177 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:124 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:126 -#: c:\Apache2\htdocs\account/reporting/rep105.php:105 -#: c:\Apache2\htdocs\account/reporting/rep702.php:45 -#: c:\Apache2\htdocs\account/reporting/rep704.php:75 -#: c:\Apache2\htdocs\account/reporting/rep704.php:85 -#: c:\Apache2\htdocs\account/reporting/rep704.php:93 -#: c:\Apache2\htdocs\account/reporting/rep706.php:63 -#: c:\Apache2\htdocs\account/reporting/rep706.php:71 -#: c:\Apache2\htdocs\account/reporting/rep706.php:80 -#: c:\Apache2\htdocs\account/reporting/rep706.php:87 -#: c:\Apache2\htdocs\account/reporting/rep707.php:78 -#: c:\Apache2\htdocs\account/reporting/rep707.php:85 -#: c:\Apache2\htdocs\account/reporting/rep707.php:94 -#: c:\Apache2\htdocs\account/reporting/rep707.php:101 -#: c:\Apache2\htdocs\account/reporting/rep708.php:70 -#: c:\Apache2\htdocs\account/reporting/rep708.php:79 -#: c:\Apache2\htdocs\account/reporting/rep708.php:86 -#: c:\Apache2\htdocs\account/reporting/rep709.php:177 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:124 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:126 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:105 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:79 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:45 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:85 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:93 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:80 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:87 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:78 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:85 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:94 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:101 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:79 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:86 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:177 msgid "Period" msgstr "" @@ -3599,44 +3630,44 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:201 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:67 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:124 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:126 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:61 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:71 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:58 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:89 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:56 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:88 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:195 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:51 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:60 -#: c:\Apache2\htdocs\account/reporting/rep102.php:249 -#: c:\Apache2\htdocs\account/reporting/rep202.php:264 -#: c:\Apache2\htdocs\account/reporting/rep706.php:255 -#: c:\Apache2\htdocs\account/reporting/rep707.php:290 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:187 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:31 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:111 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:114 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:117 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:110 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:113 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:116 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:395 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:228 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:197 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:201 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:69 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:124 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:126 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:61 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:71 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:58 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:89 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:56 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:88 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:193 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:51 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:60 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:256 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:264 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:256 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:290 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:194 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:31 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:111 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:114 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:117 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:110 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:113 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:116 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:405 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:228 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:191 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:193 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:195 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:78 msgid "Amount" msgstr "" -#: c:\Apache2\htdocs\account/gl/gl_budget.php:124 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:124 msgid "Dim. incl." msgstr "" -#: c:\Apache2\htdocs\account/gl/gl_budget.php:124 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:126 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:124 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:126 msgid "Last Year" msgstr "" @@ -3689,61 +3720,67 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:40 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:104 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 -#: c:\Apache2\htdocs\account/gl/gl_budget.php:162 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:111 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:110 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:52 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:146 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:61 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:64 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:122 -#: c:\Apache2\htdocs\account/reporting/rep101.php:148 -#: c:\Apache2\htdocs\account/reporting/rep201.php:149 -#: c:\Apache2\htdocs\account/reporting/rep203.php:76 -#: c:\Apache2\htdocs\account/reporting/rep203.php:140 -#: c:\Apache2\htdocs\account/reporting/rep204.php:96 -#: c:\Apache2\htdocs\account/reporting/rep204.php:124 -#: c:\Apache2\htdocs\account/reporting/rep301.php:111 -#: c:\Apache2\htdocs\account/reporting/rep301.php:145 -#: c:\Apache2\htdocs\account/reporting/rep705.php:210 -#: c:\Apache2\htdocs\account/reporting/rep705.php:220 -#: c:\Apache2\htdocs\account/reporting/rep705.php:275 -#: c:\Apache2\htdocs\account/reporting/rep705.php:285 -#: c:\Apache2\htdocs\account/reporting/rep706.php:133 -#: c:\Apache2\htdocs\account/reporting/rep706.php:149 -#: c:\Apache2\htdocs\account/reporting/rep706.php:210 -#: c:\Apache2\htdocs\account/reporting/rep706.php:240 -#: c:\Apache2\htdocs\account/reporting/rep707.php:165 -#: c:\Apache2\htdocs\account/reporting/rep707.php:182 -#: c:\Apache2\htdocs\account/reporting/rep707.php:242 -#: c:\Apache2\htdocs\account/reporting/rep707.php:261 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:286 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:381 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:63 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:66 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:82 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:104 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:70 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:101 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:141 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:50 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:149 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:98 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:149 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:75 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:111 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:170 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:246 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:340 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:38 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:41 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:104 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 +#: c:\Apache2\htdocs\account2/gl/gl_budget.php:162 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:111 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:110 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:52 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:142 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:61 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:64 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:122 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:151 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:109 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:159 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:149 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:76 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:140 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:96 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:124 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:111 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:145 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:201 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:211 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:266 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:276 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:134 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:150 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:211 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:241 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:165 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:182 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:242 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:261 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:267 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:354 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:326 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:63 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:66 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:82 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:104 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:104 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:68 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:101 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:133 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:173 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:50 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:149 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:101 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:152 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:75 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:113 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:170 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:240 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:335 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:49 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:109 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:87 msgid "Total" msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:19 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:21 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:21 msgid "Bank Account Deposit Entry" msgstr "" @@ -3751,199 +3788,173 @@ msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:27 # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:30 # c:\Apache2\htdocs\account/sales/customer_payments.php:26 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:27 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:27 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:32 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:28 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:27 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:27 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:32 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:27 msgid "There are no bank payment types defined in the system." msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:34 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:36 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:36 msgid "Deposit has been entered" msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:36 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:38 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:38 msgid "View the GL Postings for this Deposit" msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:38 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:40 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:40 msgid "Enter Another Deposit" msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:112 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:114 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:116 msgid "The entered date for the deposit is invalid." msgstr "" -# c:\Apache2\htdocs\account/gl/gl_deposit.php:152 -# c:\Apache2\htdocs\account/gl/gl_payment.php:151 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:154 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:151 -msgid "The amount entered is not a valid number." -msgstr "" - -# c:\Apache2\htdocs\account/gl/gl_deposit.php:158 -# c:\Apache2\htdocs\account/gl/gl_payment.php:157 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:160 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:157 -msgid "The amount entered must be a postitive number." +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:158 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:155 +msgid "The amount entered is not a valid number or is less than zero." msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:164 # c:\Apache2\htdocs\account/gl/gl_payment.php:163 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:166 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:163 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:165 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:162 msgid "The source and destination accouts cannot be the same." msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:170 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:172 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:172 msgid "You cannot make a deposit from a bank account. Please use the transfer funds facility for this." msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:237 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:239 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:242 msgid "Deposit Items" msgstr "" # c:\Apache2\htdocs\account/gl/gl_deposit.php:247 -#: c:\Apache2\htdocs\account/gl/gl_deposit.php:249 +#: c:\Apache2\htdocs\account2/gl/gl_deposit.php:252 msgid "Process Deposit" msgstr "" # c:\Apache2\htdocs\account/gl/gl_journal.php:30 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:32 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:33 msgid "Journal entry has been entered" msgstr "" # c:\Apache2\htdocs\account/gl/gl_journal.php:32 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:34 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:35 msgid "View this Journal Entry" msgstr "" # c:\Apache2\htdocs\account/gl/gl_journal.php:34 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:36 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:37 msgid "Enter Another Journal Entry" msgstr "" # c:\Apache2\htdocs\account/gl/gl_journal.php:127 # c:\Apache2\htdocs\account/gl/gl_journal.php:133 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:129 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:135 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:134 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:141 msgid "Dimension is closed." msgstr "" -# c:\Apache2\htdocs\account/gl/gl_journal.php:139 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:141 -msgid "You cannot enter both a debit amount and a credit amount." -msgstr "" - # c:\Apache2\htdocs\account/gl/gl_journal.php:146 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:148 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:148 msgid "You must enter either a debit amount or a credit amount." msgstr "" -# c:\Apache2\htdocs\account/gl/gl_journal.php:155 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:157 -msgid "The debit amount entered is not a valid number." -msgstr "" - -# c:\Apache2\htdocs\account/gl/gl_journal.php:161 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:163 -msgid "The debit amount entered cannot be zero or negative." -msgstr "" - -# c:\Apache2\htdocs\account/gl/gl_journal.php:171 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:173 -msgid "The credit amount entered is not a valid number." +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:155 +msgid "The debit amount entered is not a valid number or is less than zero." msgstr "" -# c:\Apache2\htdocs\account/gl/gl_journal.php:177 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:179 -msgid "The credit amount entered cannot be zero or negative." +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:160 +msgid "The credit amount entered is not a valid number or is less than zero." msgstr "" # c:\Apache2\htdocs\account/gl/gl_journal.php:184 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:186 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:168 msgid "You cannot make a journal entry for a bank account. Please use one of the banking functions for bank transactions." msgstr "" # c:\Apache2\htdocs\account/gl/gl_journal.php:263 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:265 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:248 msgid "Rows" msgstr "" # c:\Apache2\htdocs\account/gl/gl_journal.php:274 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:276 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:257 msgid "Process Journal Entry" msgstr "" # c:\Apache2\htdocs\account/gl/gl_journal.php:278 -#: c:\Apache2\htdocs\account/gl/gl_journal.php:280 +#: c:\Apache2\htdocs\account2/gl/gl_journal.php:261 msgid "The journal must balance (debits equal to credits) before it can be processed." msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:21 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:21 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:21 msgid "Bank Account Payment Entry" msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:36 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:36 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:36 msgid "Payment has been entered" msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:38 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:38 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:38 msgid "View the GL Postings for this Payment" msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:40 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:40 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:40 msgid "Enter Another Payment" msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:114 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:114 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:116 msgid "The entered date for the payment is invalid." msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:169 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:169 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:169 msgid "You cannot make a payment to a bank account. Please use the transfer funds facility for this." msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:238 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:238 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:239 msgid "Payment Items" msgstr "" # c:\Apache2\htdocs\account/gl/gl_payment.php:248 -#: c:\Apache2\htdocs\account/gl/gl_payment.php:248 +#: c:\Apache2\htdocs\account2/gl/gl_payment.php:249 msgid "Process Payment" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:17 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:19 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:19 msgid "Bank Statement" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:27 # c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:46 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:29 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:48 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:29 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:49 msgid "Account:" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:32 # c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:50 # c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:29 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:34 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:52 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:33 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:34 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:53 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:33 msgid "Show" msgstr "" @@ -3975,34 +3986,33 @@ msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:48 # c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:51 # c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:54 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:61 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:91 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:94 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:97 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:83 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:85 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:87 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:57 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:60 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:63 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:128 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:131 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:162 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:166 -#: c:\Apache2\htdocs\account/reporting/rep702.php:40 -#: c:\Apache2\htdocs\account/reporting/rep704.php:64 -#: c:\Apache2\htdocs\account/reporting/rep704.php:67 -#: c:\Apache2\htdocs\account/reporting/rep704.php:70 -#: c:\Apache2\htdocs\account/reporting/rep708.php:62 -#: c:\Apache2\htdocs\account/reporting/rep708.php:63 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:122 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:125 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:164 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:167 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:24 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:48 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:51 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:54 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:61 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:92 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:95 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:98 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:83 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:85 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:87 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:57 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:60 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:63 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:128 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:162 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:166 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:40 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:64 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:67 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:62 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:63 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:132 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:135 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:173 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:24 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:48 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:51 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:54 msgid "Debit" msgstr "" @@ -4034,34 +4044,33 @@ msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:48 # c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:51 # c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:54 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:61 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:91 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:94 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:97 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:84 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:86 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:88 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:57 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:60 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:63 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:128 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:131 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:162 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:166 -#: c:\Apache2\htdocs\account/reporting/rep702.php:40 -#: c:\Apache2\htdocs\account/reporting/rep704.php:64 -#: c:\Apache2\htdocs\account/reporting/rep704.php:67 -#: c:\Apache2\htdocs\account/reporting/rep704.php:70 -#: c:\Apache2\htdocs\account/reporting/rep708.php:62 -#: c:\Apache2\htdocs\account/reporting/rep708.php:63 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:122 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:125 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:164 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:167 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:24 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:48 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:51 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:54 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:61 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:92 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:95 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:98 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:84 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:86 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:88 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:57 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:60 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:63 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:128 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:162 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:166 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:40 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:64 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:67 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:62 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:63 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:132 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:135 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:173 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:24 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:48 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:51 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:54 msgid "Credit" msgstr "" @@ -4073,37 +4082,37 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep704.php:64 # c:\Apache2\htdocs\account/reporting/rep704.php:66 # c:\Apache2\htdocs\account/reporting/rep704.php:69 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:61 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:91 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:94 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:97 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:27 -#: c:\Apache2\htdocs\account/reporting/rep704.php:64 -#: c:\Apache2\htdocs\account/reporting/rep704.php:66 -#: c:\Apache2\htdocs\account/reporting/rep704.php:69 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:61 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:92 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:95 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:98 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:27 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:64 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:66 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:69 msgid "Person/Item" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:67 # c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:105 # c:\Apache2\htdocs\account/reporting/rep704.php:118 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:69 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:112 -#: c:\Apache2\htdocs\account/reporting/rep704.php:122 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:69 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:113 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:122 msgid "Opening Balance" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:106 # c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:146 # c:\Apache2\htdocs\account/reporting/rep704.php:155 -#: c:\Apache2\htdocs\account/gl/inquiry/bank_inquiry.php:108 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:153 -#: c:\Apache2\htdocs\account/reporting/rep704.php:159 +#: c:\Apache2\htdocs\account2/gl/inquiry/bank_inquiry.php:108 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:154 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:159 msgid "Ending Balance" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:18 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:20 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:21 msgid "General Ledger Account Inquiry" msgstr "" @@ -4112,11 +4121,12 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:26 # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:32 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:42 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:50 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:29 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:28 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:34 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:44 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:51 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:30 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:29 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:34 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:86 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:74 msgid "from:" msgstr "" @@ -4125,11 +4135,12 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:27 # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:33 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:43 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:51 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:30 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:29 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:35 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:45 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:52 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:31 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:30 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:35 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:87 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:75 msgid "to:" msgstr "" @@ -4162,45 +4173,45 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:201 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:249 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:380 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:91 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:94 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:97 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:89 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:88 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:57 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:60 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:63 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:377 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:477 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:111 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:114 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:117 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:241 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:48 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:51 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:54 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:188 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:110 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:113 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:116 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:238 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:177 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:161 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:197 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:201 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:249 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:391 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:92 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:95 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:98 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:89 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:88 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:57 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:60 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:63 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:354 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:434 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:428 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:111 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:114 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:117 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:241 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:48 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:51 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:54 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:191 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:110 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:113 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:116 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:241 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:179 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:161 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:191 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:193 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:195 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:269 msgid "Memo" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:84 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_account_inquiry.php:160 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_account_inquiry.php:161 msgid "No general ledger transactions have been created for this account on the selected dates." msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:27 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:31 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:31 msgid "No zero values" msgstr "" @@ -4213,15 +4224,15 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:197 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:201 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:77 -#: c:\Apache2\htdocs\account/reporting/rep701.php:36 -#: c:\Apache2\htdocs\account/reporting/rep705.php:126 -#: c:\Apache2\htdocs\account/reporting/rep706.php:63 -#: c:\Apache2\htdocs\account/reporting/rep707.php:78 -#: c:\Apache2\htdocs\account/reporting/rep708.php:62 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:197 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:199 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:201 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:77 +#: c:\Apache2\htdocs\account2/reporting/rep701.php:36 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:126 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:78 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:62 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:191 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:193 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:195 msgid "Account" msgstr "" @@ -4236,53 +4247,53 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep706.php:55 # c:\Apache2\htdocs\account/reporting/rep707.php:70 # c:\Apache2\htdocs\account/reporting/rep708.php:62 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:78 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:88 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:56 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:59 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:62 -#: c:\Apache2\htdocs\account/reporting/rep701.php:36 -#: c:\Apache2\htdocs\account/reporting/rep702.php:39 -#: c:\Apache2\htdocs\account/reporting/rep705.php:126 -#: c:\Apache2\htdocs\account/reporting/rep706.php:63 -#: c:\Apache2\htdocs\account/reporting/rep707.php:78 -#: c:\Apache2\htdocs\account/reporting/rep708.php:62 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:78 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:88 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:56 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:59 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:62 +#: c:\Apache2\htdocs\account2/reporting/rep701.php:36 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:39 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:126 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:78 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:62 msgid "Account Name" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:75 # c:\Apache2\htdocs\account/reporting/rep708.php:55 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:79 -#: c:\Apache2\htdocs\account/reporting/rep708.php:55 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:79 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:55 msgid "Brought Forward" msgstr "" # c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:76 # c:\Apache2\htdocs\account/reporting/rep708.php:55 -#: c:\Apache2\htdocs\account/gl/inquiry/gl_trial_balance.php:80 -#: c:\Apache2\htdocs\account/reporting/rep708.php:55 +#: c:\Apache2\htdocs\account2/gl/inquiry/gl_trial_balance.php:80 +#: c:\Apache2\htdocs\account2/reporting/rep708.php:55 msgid "This Period" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:31 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:31 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:30 msgid "The bank account name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:69 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:69 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:69 msgid "Cannot delete this bank account because transactions have been created using this account." msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:88 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:88 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:88 msgid "GL Account" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:88 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:23 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:88 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:23 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:88 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:29 msgid "Bank" msgstr "" @@ -4292,12 +4303,12 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:119 # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:122 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:463 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:89 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:126 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:130 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:121 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:124 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:465 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:89 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:126 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:130 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:134 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:475 msgid "Number" msgstr "" @@ -4333,107 +4344,110 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:126 # c:\Apache2\htdocs\account/sales/view/view_credit.php:61 # c:\Apache2\htdocs\account/sales/view/view_invoice.php:73 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:89 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:60 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:69 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:57 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:55 -#: c:\Apache2\htdocs\account/inventory/prices.php:117 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:144 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:61 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:108 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:111 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:101 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:104 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:127 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:66 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:161 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:38 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:45 -#: c:\Apache2\htdocs\account/reporting/rep101.php:77 -#: c:\Apache2\htdocs\account/reporting/rep102.php:150 -#: c:\Apache2\htdocs\account/reporting/rep102.php:154 -#: c:\Apache2\htdocs\account/reporting/rep201.php:78 -#: c:\Apache2\htdocs\account/reporting/rep202.php:159 -#: c:\Apache2\htdocs\account/reporting/rep203.php:83 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:252 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:317 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:63 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:122 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:68 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:164 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:128 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:61 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:77 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:89 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:60 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:69 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:57 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:55 +#: c:\Apache2\htdocs\account2/inventory/prices.php:120 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:149 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:61 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:111 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:114 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:104 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:107 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:127 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:66 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:161 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:38 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:45 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:79 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:151 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:155 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:78 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:159 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:83 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:223 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:294 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:280 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:63 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:132 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:69 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:173 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:198 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:175 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:61 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:77 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:77 msgid "Currency" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:89 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:89 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:89 msgid "Bank Address" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:114 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:114 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:114 msgid "New Bank Account" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:138 # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:142 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:138 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:142 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:138 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:142 msgid "Bank Account GL Code:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:145 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:145 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:145 msgid "Account Type:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:147 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:147 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:147 msgid "Bank Name:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:148 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:148 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:148 msgid "Bank Account Name:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:149 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:149 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:149 msgid "Bank Account Number:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:153 # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:157 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:153 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:157 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:153 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:157 msgid "Bank Account Currency:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:160 -#: c:\Apache2\htdocs\account/gl/manage/bank_accounts.php:160 +#: c:\Apache2\htdocs\account2/gl/manage/bank_accounts.php:160 msgid "Bank Address:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:8 -#: c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:8 +#: c:\Apache2\htdocs\account2/gl/manage/bank_trans_types.php:8 msgid "Bank Transaction Types" msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:35 -#: c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:35 +#: c:\Apache2\htdocs\account2/gl/manage/bank_trans_types.php:35 msgid "The bank transaction type name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:68 -#: c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:68 +#: c:\Apache2\htdocs\account2/gl/manage/bank_trans_types.php:69 msgid "Cannot delete this bank transaction type because bank transactions have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:113 -#: c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:113 +#: c:\Apache2\htdocs\account2/gl/manage/bank_trans_types.php:114 msgid "New Bank Transaction Type" msgstr "" @@ -4445,309 +4459,308 @@ msgstr "" # c:\Apache2\htdocs\account/taxes/item_tax_types.php:163 # c:\Apache2\htdocs\account/taxes/tax_groups.php:202 # c:\Apache2\htdocs\account/taxes/tax_types.php:149 -#: c:\Apache2\htdocs\account/gl/manage/bank_trans_types.php:130 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:295 -#: c:\Apache2\htdocs\account/inventory/manage/movement_types.php:126 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:136 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:136 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:163 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:202 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:149 +#: c:\Apache2\htdocs\account2/gl/manage/bank_trans_types.php:131 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:298 +#: c:\Apache2\htdocs\account2/inventory/manage/movement_types.php:127 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:137 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:136 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:165 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:198 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:141 msgid "Description:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:30 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:30 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:30 msgid "The currency abbreviation must be entered." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:35 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:35 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:36 msgid "The currency name must be entered." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:40 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:40 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:42 msgid "The currency symbol must be entered." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:45 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:45 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:48 msgid "The hundredths name must be entered." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:91 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:91 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:95 msgid "Cannot delete this currency, because customer accounts have been created referring to this currency." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:100 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:100 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:104 msgid "Cannot delete this currency, because supplier accounts have been created referring to this currency." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:109 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:109 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:113 msgid "Cannot delete this currency, because the company preferences uses this currency." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:119 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:119 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:123 msgid "Cannot delete this currency, because thre are bank accounts that use this currency." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:151 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:151 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:155 msgid "Abbreviation" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:151 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:151 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:155 msgid "Symbol" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:151 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:151 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:155 msgid "Currency Name" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:152 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:152 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:156 msgid "Hundredths name" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:152 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:152 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:156 msgid "Country" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:182 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:182 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:186 msgid "The marked currency is the home currency which cannot be deleted." msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:207 # c:\Apache2\htdocs\account/gl/manage/currencies.php:211 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:207 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:211 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:211 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:215 msgid "Currency Abbreviation:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:214 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:214 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:218 msgid "Currency Symbol:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:215 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:215 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:219 msgid "Currency Name:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:216 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:216 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:220 msgid "Hundredths Name:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:217 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:217 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:221 msgid "Country:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/currencies.php:249 -#: c:\Apache2\htdocs\account/gl/manage/currencies.php:249 +#: c:\Apache2\htdocs\account2/gl/manage/currencies.php:253 msgid "Enter a New Currency" msgstr "" -# c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:36 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:39 -msgid "The exchange rate must be numeric." +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:39 +msgid "The exchange rate must be numeric and greater than zero." msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:41 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:44 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:45 msgid "The exchange rate cannot be zero or a negative number." msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:96 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:99 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:101 msgid "Date to Use From" msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:96 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:99 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:101 msgid "Exchange Rate" msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:144 # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:148 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:147 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:151 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:148 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:152 msgid "Date to Use From:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:150 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:284 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:153 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:286 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:154 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:296 msgid "Exchange Rate:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:156 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:159 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:161 msgid "Exchange rates are entered against the company currency." msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:195 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:198 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:200 msgid "Select a currency :" msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:210 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:213 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:215 msgid "The selected currency is the company currency." msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:211 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:214 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:216 msgid "The company currency is the base currency so exchange rates cannot be set for it." msgstr "" # c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:218 -#: c:\Apache2\htdocs\account/gl/manage/exchange_rates.php:221 +#: c:\Apache2\htdocs\account2/gl/manage/exchange_rates.php:223 msgid "Enter a New Exchange Rate" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:7 # c:\Apache2\htdocs\account/reporting/rep701.php:42 # c:\Apache2\htdocs\account/reporting/reports_main.php:143 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:7 -#: c:\Apache2\htdocs\account/reporting/rep701.php:42 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:143 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:7 +#: c:\Apache2\htdocs\account2/reporting/rep701.php:42 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:153 msgid "Chart of Accounts" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:43 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:43 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:43 msgid "The account code must be entered." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:48 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:48 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:49 msgid "The account name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:53 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:53 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:55 msgid "The account code must be numeric." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:78 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:80 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:83 msgid "Cannot delete this account because transactions have been created using this account." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:104 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:106 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:109 msgid "Cannot delete this account because it is used as one of the company default GL accounts." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:114 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:116 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:119 msgid "Cannot delete this account because it is used by a bank account." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:128 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:130 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:133 msgid "Cannot delete this account because it is used by one or more Items." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:138 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:140 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:143 msgid "Cannot delete this account because it is used by one or more Taxes." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:152 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:154 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:157 msgid "Cannot delete this account because it is used by one or more Customer Branches." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:165 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:167 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:170 msgid "Cannot delete this account because it is used by one or more suppliers." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:191 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:193 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:196 msgid "Select an Account:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:194 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:196 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:199 msgid "Edit Account" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:198 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:200 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:203 msgid "New Account" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:224 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:226 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:229 msgid "Account Code 2:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:226 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:228 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:231 msgid "Account Name:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:228 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:230 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:233 msgid "Account Group:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:230 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:232 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:235 msgid "Tax Type:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:230 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:232 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:235 msgid "No Tax" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:236 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:238 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:241 msgid "Add Account" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:240 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:242 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:245 msgid "Update Account" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:241 -#: c:\Apache2\htdocs\account/gl/manage/gl_accounts.php:243 +#: c:\Apache2\htdocs\account2/gl/manage/gl_accounts.php:246 msgid "Delete account" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:30 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:30 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:30 msgid "The account class name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:72 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:72 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:73 msgid "Cannot delete this account class because GL account types have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:97 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:97 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:98 msgid "Class ID" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:97 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:97 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:98 msgid "Class Name" msgstr "" @@ -4756,121 +4769,121 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:168 # c:\Apache2\htdocs\account/reporting/reports_main.php:202 # c:\Apache2\htdocs\account/reporting/reports_main.php:231 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:97 -#: c:\Apache2\htdocs\account/reporting/rep706.php:90 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:168 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:204 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:235 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:98 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:90 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:178 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:214 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:245 msgid "Balance Sheet" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:126 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:126 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:127 msgid "New Account Class" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:142 # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:148 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:142 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:148 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:143 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:149 msgid "Class ID:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:151 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:151 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:152 msgid "Class Name:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:153 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_classes.php:153 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_classes.php:154 msgid "Balance Sheet:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:31 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:31 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:31 msgid "The account group name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:37 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:37 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:38 msgid "You cannot set an account group to be a subgroup of itself." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:79 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:79 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:80 msgid "Cannot delete this account group because GL accounts have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:89 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:89 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:90 msgid "Cannot delete this account group because GL account groups have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:114 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:114 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:115 msgid "Subgroup Of" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:114 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:114 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:115 msgid "Class Type" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:146 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:146 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:147 msgid "New Account Group" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:167 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:167 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:168 msgid "Subgroup Of:" msgstr "" # c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:169 -#: c:\Apache2\htdocs\account/gl/manage/gl_account_types.php:169 +#: c:\Apache2\htdocs\account2/gl/manage/gl_account_types.php:170 msgid "Class Type:" msgstr "" # c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:8 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:8 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:8 msgid "View Bank Transfer" msgstr "" # c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:58 # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:53 # c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:45 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:58 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:53 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:45 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:58 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:53 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:45 msgid "From Bank Account" msgstr "" # c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:67 # c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:55 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:67 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:55 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:67 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:55 msgid "To Bank Account" msgstr "" # c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:75 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:75 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:75 msgid "Transfer Type" msgstr "" # c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:82 # c:\Apache2\htdocs\account/inventory/view/view_transfer.php:68 -#: c:\Apache2\htdocs\account/gl/view/bank_transfer_view.php:82 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:68 +#: c:\Apache2\htdocs\account2/gl/view/bank_transfer_view.php:82 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:68 msgid "This transfer has been voided." msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:8 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:8 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:8 msgid "View Bank Deposit" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:39 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:39 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:39 msgid "GL Deposit" msgstr "" @@ -4878,37 +4891,38 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:50 # c:\Apache2\htdocs\account/reporting/reports_main.php:63 # c:\Apache2\htdocs\account/reporting/reports_main.php:95 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:62 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:51 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:65 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:95 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:62 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:56 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:64 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:75 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:105 msgid "From" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:63 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:63 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:63 msgid "Deposit Type" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:72 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:72 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:72 msgid "This deposit has been voided." msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:78 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:78 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:78 msgid "There are no items for this deposit." msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:83 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:83 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:83 msgid "Items for this Deposit" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:85 # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:83 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:85 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:83 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:85 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:83 msgid "Item Amounts are Shown in :" msgstr "" @@ -4927,21 +4941,21 @@ msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:109 # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:112 # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:115 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:88 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:87 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:56 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:59 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:62 -#: c:\Apache2\htdocs\account/reporting/rep701.php:36 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:110 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:113 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:116 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:47 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:50 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:53 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:109 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:112 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:115 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:88 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:87 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:56 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:59 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:62 +#: c:\Apache2\htdocs\account2/reporting/rep701.php:36 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:110 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:113 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:116 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:47 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:50 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:53 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:109 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:112 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:115 msgid "Account Code" msgstr "" @@ -4956,203 +4970,185 @@ msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:109 # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:112 # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:115 -#: c:\Apache2\htdocs\account/gl/view/gl_deposit_view.php:88 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:87 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:110 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:113 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:116 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:47 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:50 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:53 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:109 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:112 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:115 +#: c:\Apache2\htdocs\account2/gl/view/gl_deposit_view.php:88 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:87 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:110 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:113 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:116 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:47 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:50 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:53 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:109 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:112 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:115 msgid "Account Description" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:8 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:8 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:8 msgid "View Bank Payment" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:37 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:37 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:37 msgid "GL Payment" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:60 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:60 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:60 msgid "Pay To" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:61 # c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:52 # c:\Apache2\htdocs\account/sales/view/view_receipt.php:35 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:61 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:52 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:35 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:61 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:52 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:35 msgid "Payment Type" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:70 # c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:67 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:70 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:67 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:70 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:67 msgid "This payment has been voided." msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:76 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:76 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:76 msgid "There are no items for this payment." msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:81 -#: c:\Apache2\htdocs\account/gl/view/gl_payment_view.php:81 +#: c:\Apache2\htdocs\account2/gl/view/gl_payment_view.php:81 msgid "Items for this Payment" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:7 # c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:26 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:7 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:26 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:7 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:26 msgid "General Ledger Transaction Details" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:17 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:17 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:17 msgid "The script must be called with a valid transaction type and transaction number to review the general ledger postings for." msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:47 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:47 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:47 msgid "No general ledger transactions have been created for" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:47 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:47 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:47 msgid "number" msgstr "" # c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:95 -#: c:\Apache2\htdocs\account/gl/view/gl_trans_view.php:95 +#: c:\Apache2\htdocs\account2/gl/view/gl_trans_view.php:95 msgid "This transaction has been voided." msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:17 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:19 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:19 msgid "Item Adjustments Note" msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:21 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:23 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:23 msgid "There are no inventory items defined in the system which can be adjusted (Purchased or Manufactured)." msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:23 # c:\Apache2\htdocs\account/inventory/transfers.php:24 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:25 -#: c:\Apache2\htdocs\account/inventory/transfers.php:26 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:25 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:26 msgid "There are no inventory movement types defined in the system. Please define at least one inventory adjustment type." msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:32 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:34 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:34 msgid "Items adjustment has been processed" msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:33 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:35 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:35 msgid "View this adjustment" msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:35 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:37 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:37 msgid "View the GL Postings for this Adjustment" msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:37 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:39 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:39 msgid "Enter Another Adjustment" msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:101 # c:\Apache2\htdocs\account/inventory/transfers.php:101 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:103 -#: c:\Apache2\htdocs\account/inventory/transfers.php:103 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:105 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:105 msgid "The entered date for the adjustment is invalid." msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:112 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:114 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:118 msgid "The adjustment cannot be processed because an adjustment item would cause a negative inventory balance :" msgstr "" -# c:\Apache2\htdocs\account/inventory/adjustments.php:139 -# c:\Apache2\htdocs\account/inventory/transfers.php:151 -# c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:64 -# c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:110 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:141 -#: c:\Apache2\htdocs\account/inventory/transfers.php:153 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:67 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:112 -msgid "The quantity entered is not a valid number." -msgstr "" - -# c:\Apache2\htdocs\account/inventory/adjustments.php:145 -# c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:70 -# c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:116 -# c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:129 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:147 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:73 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:118 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:127 -msgid "The quantity entered must be greater than zero." +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:145 +msgid "The quantity entered is negative or invalid." msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:151 # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:122 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:153 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:124 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:152 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:130 msgid "The entered standard cost is negative or invalid." msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:218 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:220 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:222 msgid "Adjustment Items" msgstr "" # c:\Apache2\htdocs\account/inventory/adjustments.php:229 -#: c:\Apache2\htdocs\account/inventory/adjustments.php:231 +#: c:\Apache2\htdocs\account2/inventory/adjustments.php:233 msgid "Process Adjustment" msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:17 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:17 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:17 msgid "Inventory Item Cost Update" msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:21 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:21 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:21 msgid "There are no costable inventory items defined in the system (Purchased or manufactured items)." msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:41 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:41 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:43 msgid "The entered cost is not numeric." msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:46 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:46 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:49 msgid "The new cost is the same as the old cost. Cost was not updated." msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:55 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:55 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:59 msgid "Cost has been updated." msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:59 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:59 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:63 msgid "View the GL Journal Entries for this Cost Update" msgstr "" @@ -5167,42 +5163,43 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:22 # c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:32 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:47 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:71 -#: c:\Apache2\htdocs\account/inventory/prices.php:45 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:113 -#: c:\Apache2\htdocs\account/inventory/reorder_level.php:31 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:33 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:30 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:351 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:356 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:22 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:34 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:49 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:75 +#: c:\Apache2\htdocs\account2/inventory/prices.php:45 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:117 +#: c:\Apache2\htdocs\account2/inventory/reorder_level.php:31 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:33 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:30 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:351 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:356 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/bom_cost_inquiry.php:22 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:35 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:91 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:79 msgid "Item:" msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:92 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:92 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:96 msgid "Last Cost" msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:95 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:95 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:99 msgid "Standard Material Cost Per Unit" msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:100 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:100 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:104 msgid "Standard Labour Cost Per Unit" msgstr "" # c:\Apache2\htdocs\account/inventory/cost_update.php:102 -#: c:\Apache2\htdocs\account/inventory/cost_update.php:102 +#: c:\Apache2\htdocs\account2/inventory/cost_update.php:106 msgid "Standard Overhead Cost Per Unit" msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:7 -#: c:\Apache2\htdocs\account/inventory/prices.php:7 +#: c:\Apache2\htdocs\account2/inventory/prices.php:7 msgid "Inventory Item Sales prices" msgstr "" @@ -5210,37 +5207,36 @@ msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:23 # c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:13 # c:\Apache2\htdocs\account/sales/credit_note_entry.php:28 -#: c:\Apache2\htdocs\account/inventory/prices.php:16 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:23 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:13 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:30 +#: c:\Apache2\htdocs\account2/inventory/prices.php:16 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:23 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/where_used_inquiry.php:12 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:37 msgid "There are no items defined in the system." msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:18 -#: c:\Apache2\htdocs\account/inventory/prices.php:18 +#: c:\Apache2\htdocs\account2/inventory/prices.php:18 msgid "There are no sales types in the system. Please set up sales types befor entering pricing." msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:73 # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:166 -#: c:\Apache2\htdocs\account/inventory/prices.php:73 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:168 +#: c:\Apache2\htdocs\account2/inventory/prices.php:73 msgid "The price entered must be numeric." msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:84 -#: c:\Apache2\htdocs\account/inventory/prices.php:84 +#: c:\Apache2\htdocs\account2/inventory/prices.php:86 msgid "This price has been updated." msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:91 -#: c:\Apache2\htdocs\account/inventory/prices.php:91 +#: c:\Apache2\htdocs\account2/inventory/prices.php:94 msgid "The new price has been added." msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:105 -#: c:\Apache2\htdocs\account/inventory/prices.php:105 +#: c:\Apache2\htdocs\account2/inventory/prices.php:108 msgid "The selected price has been deleted." msgstr "" @@ -5250,12 +5246,14 @@ msgstr "" # c:\Apache2\htdocs\account/sales/view/view_credit.php:64 # c:\Apache2\htdocs\account/sales/view/view_invoice.php:80 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:68 -#: c:\Apache2\htdocs\account/inventory/prices.php:117 -#: c:\Apache2\htdocs\account/reporting/rep104.php:94 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:338 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:64 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:84 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:68 +#: c:\Apache2\htdocs\account2/inventory/prices.php:120 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:94 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:309 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:293 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:64 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:84 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:84 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:72 msgid "Sales Type" msgstr "" @@ -5276,64 +5274,65 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:40 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:104 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 -#: c:\Apache2\htdocs\account/inventory/prices.php:117 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:144 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:52 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:28 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:38 -#: c:\Apache2\htdocs\account/reporting/rep104.php:88 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:286 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:381 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:82 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:104 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:141 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:303 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:168 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:38 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:41 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:104 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 +#: c:\Apache2\htdocs\account2/inventory/prices.php:120 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:149 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:52 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:28 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:38 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:88 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:267 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:354 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:326 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:82 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:104 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:104 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:173 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:297 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:168 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:49 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:109 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:87 msgid "Price" msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:140 -#: c:\Apache2\htdocs\account/inventory/prices.php:140 +#: c:\Apache2\htdocs\account2/inventory/prices.php:143 msgid "There are no prices set up for this part." msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:156 -#: c:\Apache2\htdocs\account/inventory/prices.php:156 +#: c:\Apache2\htdocs\account2/inventory/prices.php:159 msgid "Currency:" msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:158 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:235 -#: c:\Apache2\htdocs\account/inventory/prices.php:158 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:235 +#: c:\Apache2\htdocs\account2/inventory/prices.php:161 msgid "Sales Type:" msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:160 # c:\Apache2\htdocs\account/inventory/purchasing_data.php:210 -#: c:\Apache2\htdocs\account/inventory/prices.php:160 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:210 +#: c:\Apache2\htdocs\account2/inventory/prices.php:163 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:215 msgid "Price:" msgstr "" # c:\Apache2\htdocs\account/inventory/prices.php:164 -#: c:\Apache2\htdocs\account/inventory/prices.php:164 +#: c:\Apache2\htdocs\account2/inventory/prices.php:167 msgid "Add/Update Price" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:8 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:8 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:8 msgid "Supplier Purchasing Data" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:15 # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:32 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:15 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:34 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:15 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:31 msgid "There are no purchasable inventory items defined in the system." msgstr "" @@ -5342,51 +5341,51 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:22 # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:22 # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:26 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:16 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:32 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:24 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:24 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:28 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:16 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:29 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:24 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:24 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:28 msgid "There are no suppliers defined in the system." msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:41 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:41 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:41 msgid "There is no item selected." msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:46 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:46 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:47 msgid "The price entered was not numeric." msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:51 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:51 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:53 msgid "The conversion factor entered was not numeric. The conversion factor is the number by which the price must be divided by to get the unit price in our unit of measure." msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:65 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:65 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:69 msgid "This supplier purchasing data has been added." msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:78 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:78 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:82 msgid "Supplier purchasing data has been updated." msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:102 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:102 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:106 msgid "The purchasing data item has been sucessfully deleted." msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:124 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:124 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:128 msgid "Entered item is not defined. Please re-enter." msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:138 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:138 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:143 msgid "There is no purchasing data set up for the part selected" msgstr "" @@ -5415,45 +5414,45 @@ msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:140 # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:11 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:225 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:144 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:60 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:107 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:110 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:100 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:103 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:126 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:160 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:151 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:31 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:37 -#: c:\Apache2\htdocs\account/reporting/rep201.php:77 -#: c:\Apache2\htdocs\account/reporting/rep202.php:151 -#: c:\Apache2\htdocs\account/reporting/rep202.php:158 -#: c:\Apache2\htdocs\account/reporting/rep203.php:82 -#: c:\Apache2\htdocs\account/reporting/rep204.php:76 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:73 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:74 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:76 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:79 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:81 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:86 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:88 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:91 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:92 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:94 -#: c:\Apache2\htdocs\account/includes/types.inc:140 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:11 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:225 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:149 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:60 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:110 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:113 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:103 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:106 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:126 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:160 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:151 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:31 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:37 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:77 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:151 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:158 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:82 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:76 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:83 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:84 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:86 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:89 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:91 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:96 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:98 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:101 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:102 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:104 +#: c:\Apache2\htdocs\account2/includes/types.inc:146 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:11 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:227 msgid "Supplier" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:145 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:145 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:150 msgid "Supplier's Unit" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:145 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:145 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:150 msgid "Supplier's Description" msgstr "" @@ -5464,45 +5463,45 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:62 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:57 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:70 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:203 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:207 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:51 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:51 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:62 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:57 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:70 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:208 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:212 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:51 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:51 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:60 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:57 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:70 msgid "Supplier:" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:211 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:211 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:216 msgid "Suppliers Unit of Measure:" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:217 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:217 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:222 msgid "Conversion Factor (to our UOM):" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:218 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:218 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:224 msgid "Supplier's Code or Description:" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:224 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:224 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:230 msgid "Update Purchasing Data" msgstr "" # c:\Apache2\htdocs\account/inventory/purchasing_data.php:228 -#: c:\Apache2\htdocs\account/inventory/purchasing_data.php:228 +#: c:\Apache2\htdocs\account2/inventory/purchasing_data.php:234 msgid "Add Purchasing Data" msgstr "" # c:\Apache2\htdocs\account/inventory/reorder_level.php:15 # c:\Apache2\htdocs\account/inventory/transfers.php:22 -#: c:\Apache2\htdocs\account/inventory/reorder_level.php:15 -#: c:\Apache2\htdocs\account/inventory/transfers.php:24 +#: c:\Apache2\htdocs\account2/inventory/reorder_level.php:15 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:24 msgid "There are no inventory items defined in the system (Purchased or manufactured items)." msgstr "" @@ -5521,232 +5520,241 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:105 # c:\Apache2\htdocs\account/reporting/reports_main.php:110 # c:\Apache2\htdocs\account/reporting/reports_main.php:114 -#: c:\Apache2\htdocs\account/inventory/reorder_level.php:42 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:53 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:57 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:88 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:45 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:91 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:107 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:100 -#: c:\Apache2\htdocs\account/reporting/rep105.php:107 -#: c:\Apache2\htdocs\account/reporting/rep301.php:91 -#: c:\Apache2\htdocs\account/reporting/rep302.php:177 -#: c:\Apache2\htdocs\account/reporting/rep303.php:130 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:105 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:110 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:114 +#: c:\Apache2\htdocs\account2/inventory/reorder_level.php:42 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:53 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:57 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:88 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/where_used_inquiry.php:44 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:91 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:110 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:103 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:107 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:91 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:177 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:130 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:115 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:120 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:124 msgid "Location" msgstr "" # c:\Apache2\htdocs\account/inventory/reorder_level.php:42 # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:58 # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:57 -#: c:\Apache2\htdocs\account/inventory/reorder_level.php:42 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:61 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:57 +#: c:\Apache2\htdocs\account2/inventory/reorder_level.php:42 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:61 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:57 msgid "Quantity On Hand" msgstr "" # c:\Apache2\htdocs\account/inventory/reorder_level.php:42 # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:57 -#: c:\Apache2\htdocs\account/inventory/reorder_level.php:42 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:57 -#: c:\Apache2\htdocs\account/sales/includes/db/sales_order_db.inc:130 -#: c:\Apache2\htdocs\account/sales/includes/db/sales_order_db.inc:240 +#: c:\Apache2\htdocs\account2/inventory/reorder_level.php:42 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:57 +#: c:\Apache2\htdocs\account2/sales/includes/db/sales_order_db.inc:128 +#: c:\Apache2\htdocs\account2/sales/includes/db/sales_order_db.inc:269 msgid "Re-Order Level" msgstr "" # c:\Apache2\htdocs\account/inventory/transfers.php:33 -#: c:\Apache2\htdocs\account/inventory/transfers.php:35 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:35 msgid "Inventory transfer has been processed" msgstr "" # c:\Apache2\htdocs\account/inventory/transfers.php:34 -#: c:\Apache2\htdocs\account/inventory/transfers.php:36 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:36 msgid "View this transfer" msgstr "" # c:\Apache2\htdocs\account/inventory/transfers.php:36 -#: c:\Apache2\htdocs\account/inventory/transfers.php:38 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:38 msgid "Enter Another Inventory Transfer" msgstr "" # c:\Apache2\htdocs\account/inventory/transfers.php:111 -#: c:\Apache2\htdocs\account/inventory/transfers.php:113 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:117 msgid "The locations to transfer from and to must be different." msgstr "" # c:\Apache2\htdocs\account/inventory/transfers.php:119 -#: c:\Apache2\htdocs\account/inventory/transfers.php:121 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:126 msgid "The quantity entered is greater than the available quantity for this item at the source location :" msgstr "" +# c:\Apache2\htdocs\account/inventory/adjustments.php:139 +# c:\Apache2\htdocs\account/inventory/transfers.php:151 +# c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:64 +# c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:110 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:158 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:116 +msgid "The quantity entered is not a valid number." +msgstr "" + # c:\Apache2\htdocs\account/inventory/transfers.php:157 -#: c:\Apache2\htdocs\account/inventory/transfers.php:159 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:165 msgid "The quantity entered must be a positive number." msgstr "" # c:\Apache2\htdocs\account/inventory/transfers.php:238 -#: c:\Apache2\htdocs\account/inventory/transfers.php:240 +#: c:\Apache2\htdocs\account2/inventory/transfers.php:247 msgid "Process Transfer" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:16 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:19 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:19 msgid "Inventory Item Movement" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:32 # c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:37 # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:152 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:35 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:37 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:152 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:35 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:37 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:152 msgid "From Location:" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:37 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:40 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:40 msgid "Show Movements" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:57 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:60 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:60 msgid "Detail" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:58 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:61 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:61 msgid "Quantity In" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:58 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:61 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:61 msgid "Quantity Out" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:76 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:79 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:79 msgid "Quantity on hand before" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:168 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_movements.php:171 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_movements.php:171 msgid "Quantity on hand after" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:43 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:43 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:43 msgid "This is a service and cannot have a stock holding, only the total quantity on outstanding sales orders is shown." msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:53 # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:58 # c:\Apache2\htdocs\account/reporting/rep303.php:124 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:53 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:58 -#: c:\Apache2\htdocs\account/reporting/rep303.php:124 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:53 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:58 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:124 msgid "Demand" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:58 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:58 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:58 msgid "Available" msgstr "" # c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:58 -#: c:\Apache2\htdocs\account/inventory/inquiry/stock_status.php:58 +#: c:\Apache2\htdocs\account2/inventory/inquiry/stock_status.php:58 msgid "On Order" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:52 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:52 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:52 msgid "Only jpg files are supported - a file extension of .jpg is expected" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:57 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:57 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:57 msgid "The file size is over the maximum allowed. The maximum size allowed in KB is" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:62 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:62 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:62 msgid "Only graphics files can be uploaded" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:67 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:67 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:67 msgid "Attempting to overwrite an existing item image" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:71 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:71 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:71 msgid "The existing image could not be removed" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:79 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:79 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:79 msgid "File url" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:85 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:85 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:85 msgid "There are no item categories defined in the system. At least one item category is required to add a item." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:87 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:87 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:87 msgid "There are no item tax types defined in the system. At least one item tax type is required to add a item." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:114 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:114 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:114 msgid "The item name must be entered." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:119 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:119 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:120 msgid "The item code cannot be empty" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:126 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:126 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:128 msgid "The item code cannot contain any of the following characters - & + OR a space OR quotes" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:166 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:166 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:169 msgid "Cannot delete this item because there are stock movements that refer to this item." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:175 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:175 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:178 msgid "Cannot delete this item record because there are bills of material that require this part as a component." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:184 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:184 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:187 msgid "Cannot delete this item record because there are existing sales orders for this part." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:193 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:193 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:196 msgid "Cannot delete this item because there are existing purchase order items for it." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:224 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:224 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:227 msgid "Select an item:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:225 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:225 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:228 msgid "Edit Item" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:230 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:230 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:233 msgid "Enter a new item" msgstr "" @@ -5762,152 +5770,220 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:204 # c:\Apache2\htdocs\account/reporting/rep204.php:71 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:302 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:235 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:46 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:30 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:48 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:88 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:33 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:34 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:167 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:144 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:207 -#: c:\Apache2\htdocs\account/reporting/rep204.php:70 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:302 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:238 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:46 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:30 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:48 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:88 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_production_view.php:34 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:163 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:140 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:204 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:70 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:296 msgid "Item" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:246 # c:\Apache2\htdocs\account/inventory/manage/items.php:288 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:246 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:288 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:249 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:291 msgid "Item Code:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:301 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:301 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:304 msgid "Image File (.jpg)" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:315 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:315 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:318 msgid "Category:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:317 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:317 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:320 msgid "Item Tax Type:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:319 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:319 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:322 msgid "Item Type:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:325 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:325 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:325 msgid "Units of Measure:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:370 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:370 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:370 msgid "Insert New Item" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:375 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:375 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:375 msgid "Update Item" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/items.php:377 -#: c:\Apache2\htdocs\account/inventory/manage/items.php:377 +#: c:\Apache2\htdocs\account2/inventory/manage/items.php:377 msgid "Delete This Item" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/item_categories.php:33 -#: c:\Apache2\htdocs\account/inventory/manage/item_categories.php:33 +#: c:\Apache2\htdocs\account2/inventory/manage/item_categories.php:33 msgid "The item category description cannot be empty." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/item_categories.php:61 -#: c:\Apache2\htdocs\account/inventory/manage/item_categories.php:61 +#: c:\Apache2\htdocs\account2/inventory/manage/item_categories.php:62 msgid "Cannot delete this item category because items have been created using this item category." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/item_categories.php:96 -#: c:\Apache2\htdocs\account/inventory/manage/item_categories.php:96 +#: c:\Apache2\htdocs\account2/inventory/manage/item_categories.php:97 msgid "New Item Category" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/item_categories.php:115 -#: c:\Apache2\htdocs\account/inventory/manage/item_categories.php:115 +#: c:\Apache2\htdocs\account2/inventory/manage/item_categories.php:116 msgid "Category Name:" msgstr "" +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:33 +msgid "The unit of measure code cannot be empty." +msgstr "" + +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:39 +msgid "The unit of measure description cannot be empty." +msgstr "" + +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:45 +msgid "The number of decimal places must be integer." +msgstr "" + +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:65 +msgid "Cannot delete this unit of measure because items have been created using this units." +msgstr "" + +# c:\Apache2\htdocs\account/purchasing/view/view_grn.php:28 +# c:\Apache2\htdocs\account/purchasing/view/view_po.php:38 +# c:\Apache2\htdocs\account/sales/view/view_credit.php:82 +# c:\Apache2\htdocs\account/sales/view/view_invoice.php:100 +# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:140 +# c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:75 +# c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:70 +# c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:44 +# c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:167 +# c:\Apache2\htdocs\account/reporting/includes/doctext.inc:37 +# c:\Apache2\htdocs\account/reporting/includes/doctext.inc:40 +# c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 +# c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:79 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:28 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:38 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:82 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:104 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:104 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:172 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:75 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:70 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:44 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:167 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:49 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:108 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:87 +msgid "Unit" +msgstr "" + +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:79 +msgid "Decimals" +msgstr "" + +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:102 +msgid "New Unit of Measure" +msgstr "" + +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:122 +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:125 +msgid "Unit Abbreviation:" +msgstr "" + +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:126 +msgid "Descriptive Name:" +msgstr "" + +#: c:\Apache2\htdocs\account2/inventory/manage/item_units.php:127 +msgid "Decimal Places:" +msgstr "" + # c:\Apache2\htdocs\account/inventory/manage/locations.php:37 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:37 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:37 msgid "The location code must be five characters or less long." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:42 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:42 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:43 msgid "The location name must be entered." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:73 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:73 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:75 msgid "Cannot delete this location because item movements have been created using this location." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:82 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:82 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:84 msgid "Cannot delete this location because it is used by some work orders records." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:91 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:91 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:93 msgid "Cannot delete this location because it is used by some branch records as the default location to deliver from." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:119 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:119 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:121 msgid "Location Code" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:119 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:119 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:121 msgid "Location Name" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:139 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:139 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:141 msgid "New Location" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:160 # c:\Apache2\htdocs\account/inventory/manage/locations.php:164 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:160 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:164 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:162 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:166 msgid "Location Code:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:167 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:167 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:169 msgid "Location Name:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:168 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:168 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:170 msgid "Contact for deliveries:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:172 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:172 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:174 msgid "Telephone No:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/locations.php:173 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:173 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:175 msgid "Facsimile No:" msgstr "" @@ -5915,42 +5991,42 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:186 # c:\Apache2\htdocs\account/sales/manage/customers.php:276 # c:\Apache2\htdocs\account/sales/manage/sales_people.php:138 -#: c:\Apache2\htdocs\account/inventory/manage/locations.php:174 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:186 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:276 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:138 +#: c:\Apache2\htdocs\account2/inventory/manage/locations.php:176 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:186 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:256 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:149 msgid "Email:" msgstr "" # c:\Apache2\htdocs\account/inventory/manage/movement_types.php:33 -#: c:\Apache2\htdocs\account/inventory/manage/movement_types.php:33 +#: c:\Apache2\htdocs\account2/inventory/manage/movement_types.php:33 msgid "The inventory movement type name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/movement_types.php:65 -#: c:\Apache2\htdocs\account/inventory/manage/movement_types.php:65 +#: c:\Apache2\htdocs\account2/inventory/manage/movement_types.php:66 msgid "Cannot delete this inventory movement type because item transactions have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/inventory/manage/movement_types.php:109 -#: c:\Apache2\htdocs\account/inventory/manage/movement_types.php:109 +#: c:\Apache2\htdocs\account2/inventory/manage/movement_types.php:110 msgid "New Inventory Movement Type" msgstr "" # c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:8 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:8 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:8 msgid "View Inventory Adjustment" msgstr "" # c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:33 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:33 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:33 msgid "At Location" msgstr "" # c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:36 # c:\Apache2\htdocs\account/inventory/view/view_transfer.php:37 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:36 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:37 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:36 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:37 msgid "Adjustment Type" msgstr "" @@ -5978,30 +6054,31 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:39 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:109 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:46 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:48 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:92 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:68 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:27 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:38 -#: c:\Apache2\htdocs\account/reporting/rep301.php:85 -#: c:\Apache2\htdocs\account/reporting/rep303.php:124 -#: c:\Apache2\htdocs\account/reporting/rep401.php:60 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:81 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:103 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:140 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:74 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:70 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:22 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:149 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:324 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:43 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:303 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:38 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:40 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:109 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:46 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:48 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:92 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:68 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:27 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:38 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:85 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:124 +#: c:\Apache2\htdocs\account2/reporting/rep401.php:60 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:81 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:103 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:103 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:172 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:74 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:70 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:22 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:149 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:324 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:43 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:297 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:167 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:48 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:108 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:85 msgid "Quantity" msgstr "" @@ -6012,13 +6089,14 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:49 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:283 # c:\Apache2\htdocs\account/sales/customer_invoice.php:378 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:47 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:48 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:92 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:68 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:51 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:285 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:380 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:47 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:48 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:92 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:68 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:51 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:266 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:353 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:325 msgid "Units" msgstr "" @@ -6027,21 +6105,21 @@ msgstr "" # c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:75 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:22 # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:44 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:47 -#: c:\Apache2\htdocs\account/reporting/rep301.php:85 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:75 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:22 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:44 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:47 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:85 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:75 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:22 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:44 msgid "Unit Cost" msgstr "" # c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:63 -#: c:\Apache2\htdocs\account/inventory/view/view_adjustment.php:63 +#: c:\Apache2\htdocs\account2/inventory/view/view_adjustment.php:63 msgid "This adjustment has been voided." msgstr "" # c:\Apache2\htdocs\account/inventory/view/view_transfer.php:8 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:8 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:8 msgid "View Inventory Transfer" msgstr "" @@ -6049,51 +6127,51 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:33 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:22 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:76 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:31 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:33 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:22 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:76 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:31 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:22 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:76 msgid "From Location" msgstr "" # c:\Apache2\htdocs\account/inventory/view/view_transfer.php:32 -#: c:\Apache2\htdocs\account/inventory/view/view_transfer.php:32 +#: c:\Apache2\htdocs\account2/inventory/view/view_transfer.php:32 msgid "To Location" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:15 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:15 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:15 msgid "Search Outstanding Work Orders" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:20 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:20 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:20 msgid "Search Work Orders" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:37 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:37 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:37 msgid "at Location:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:43 # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:31 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:43 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:43 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:34 msgid "for item:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:89 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:89 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:89 msgid "Required" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:89 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:818 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:270 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:89 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1037 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:270 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:89 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:1018 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:270 msgid "Manufactured" msgstr "" @@ -6101,52 +6179,52 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:126 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:269 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:273 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:89 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:128 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:269 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:273 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:89 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:175 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:269 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:273 msgid "Required By" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:115 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:115 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:115 msgid "Issue" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:116 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:116 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:116 msgid "Produce" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:117 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:117 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:117 msgid "Costs" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:117 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:117 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:117 msgid "Not Released" msgstr "" # c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:138 -#: c:\Apache2\htdocs\account/manufacturing/search_work_orders.php:138 +#: c:\Apache2\htdocs\account2/manufacturing/search_work_orders.php:138 msgid "Release" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:7 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:17 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:17 msgid "Produce or Unassemble Finished Items From Work Order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:26 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:29 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:29 msgid "The manufacturing process has been entered." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:28 # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:24 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:31 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:26 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:31 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:26 msgid "Select another Work Order to Process" msgstr "" @@ -6154,39 +6232,43 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:294 # c:\Apache2\htdocs\account/manufacturing/includes/db/work_order_issues_db.inc:14 # c:\Apache2\htdocs\account/manufacturing/includes/db/work_order_produce_items_db.inc:11 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:43 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:300 -#: c:\Apache2\htdocs\account/manufacturing/includes/db/work_order_issues_db.inc:14 -#: c:\Apache2\htdocs\account/manufacturing/includes/db/work_order_produce_items_db.inc:11 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:43 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:298 +#: c:\Apache2\htdocs\account2/manufacturing/includes/db/work_order_issues_db.inc:14 +#: c:\Apache2\htdocs\account2/manufacturing/includes/db/work_order_produce_items_db.inc:11 msgid "The order number sent is not valid." msgstr "" +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:69 +msgid "The quantity entered is not a valid number or less then zero." +msgstr "" + # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:86 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:89 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:88 msgid "The production date cannot be before the release date of the work order." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:98 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:101 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:101 msgid "The unassembling cannot be processed because there is insufficient stock." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:149 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:152 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:153 msgid "Produce Finished Items" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:149 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:152 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:153 msgid "Return Items to Work Order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:151 # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:368 # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:274 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:154 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:374 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:272 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:155 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:374 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:272 msgid "Quantity:" msgstr "" @@ -6199,96 +6281,82 @@ msgstr "" # c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:46 # c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:48 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:80 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:156 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:187 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:178 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:18 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:17 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:18 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:46 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:48 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:80 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:157 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:185 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:185 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:18 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:17 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:18 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:46 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:48 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:84 msgid "Date:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:159 # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:246 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:237 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:162 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:246 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:237 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:163 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:249 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:248 msgid "Process" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:160 -#: c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:163 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_add_finished.php:164 msgid "Process And Close Order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:17 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:21 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:21 msgid "There are no manufacturable items defined in the system." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:38 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:42 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:42 msgid "The work order been added." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:49 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:53 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:53 msgid "The work order been updated." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:59 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:63 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:63 msgid "Work order has been deleted." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:69 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:73 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:73 msgid "This work order has been closed. There can be no more issues against it." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:79 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:83 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:83 msgid "Enter a new work order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:80 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:84 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:84 msgid "Select an existing work order" msgstr "" -# c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:116 -# c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:123 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:120 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:121 -msgid "The quantity entered must be numeric." -msgstr "" - -# c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:122 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:126 -msgid "The quantity entered must be a positive number greater than zero." +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:122 +msgid "The quantity entered is invalid or less than zero." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:141 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:145 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:144 msgid "The selected item to manufacture does not have a bom." msgstr "" -# c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:147 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:153 -msgid "The cost entered must be numeric." -msgstr "" - -# c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:153 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:159 -msgid "The cost entered cannot be negative." +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:153 +msgid "The cost entered is invalid or less than zero." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:175 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:181 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:176 msgid "The work order cannot be processed because there is an insufficient quantity for component:" msgstr "" @@ -6296,196 +6364,205 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:30 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:45 # c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:37 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:182 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:32 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:47 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:37 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:177 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:33 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:89 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:77 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:37 msgid "Location:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:188 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:194 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:190 msgid "The selected item cannot be unassembled because there is insufficient stock." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:212 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:218 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:216 msgid "The quantity cannot be changed to be less than the quantity already manufactured for this order." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:257 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:263 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:261 msgid "This work order cannot be deleted because it has already been processed." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:302 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:308 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:306 msgid "This work order is closed and cannot be edited." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:346 # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:352 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:352 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:358 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:352 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:358 msgid "Destination Location:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:360 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:366 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:366 msgid "Quantity Required:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:362 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:368 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:368 msgid "Quantity Manufactured:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:375 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:381 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:381 msgid "Total Additional Costs:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:379 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:385 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:385 msgid "Released On:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:393 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:399 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:399 msgid "Close This Work Order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:395 -#: c:\Apache2\htdocs\account/manufacturing/work_order_entry.php:401 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_entry.php:401 msgid "Delete This Work Order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:9 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:18 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:18 msgid "Issue Items to Work Order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:22 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:24 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:24 msgid "The work order issue has been entered." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:52 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:54 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:54 msgid "The entered date for the issue is invalid." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:75 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:77 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:81 msgid "The issue cannot be processed because an entered item would cause a negative inventory balance :" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:93 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:95 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:99 msgid "The process cannot be completed because there is an insufficient total quantity for a component." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:94 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:96 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:100 msgid "Component is :" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:95 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:97 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:101 msgid "From location :" msgstr "" +# c:\Apache2\htdocs\account/inventory/adjustments.php:145 +# c:\Apache2\htdocs\account/manufacturing/work_order_add_finished.php:70 +# c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:116 +# c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:129 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:123 +msgid "The quantity entered must be greater than zero." +msgstr "" + # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:182 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:184 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:191 msgid "Items to Issue" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:195 -#: c:\Apache2\htdocs\account/manufacturing/work_order_issue.php:197 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_issue.php:204 msgid "Process Issue" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:7 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:16 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:16 msgid "Work Order Release to Manufacturing" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:35 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:38 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:38 msgid "This work order has already been released." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:42 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:45 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:46 msgid "This Work Order cannot be released. The selected item to manufacture does not have a bom." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:55 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:58 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:60 msgid "The work order has been released to manufacturing." msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:57 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:60 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:62 msgid "Select another work order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:77 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:80 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:82 msgid "Work Order #:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:78 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:81 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:83 msgid "Work Order Reference:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:80 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:270 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:83 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:270 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:85 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:270 msgid "Released Date" msgstr "" # c:\Apache2\htdocs\account/manufacturing/work_order_release.php:86 -#: c:\Apache2\htdocs\account/manufacturing/work_order_release.php:89 +#: c:\Apache2\htdocs\account2/manufacturing/work_order_release.php:91 msgid "Release Work Order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:7 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:7 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/bom_cost_inquiry.php:7 msgid "Costed Bill Of Material Inquiry" msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:14 # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:15 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:14 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:15 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/bom_cost_inquiry.php:14 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:15 msgid "There are no manufactured or kit items defined in the system." msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:29 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:29 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/bom_cost_inquiry.php:29 msgid "All Costs Are In:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:34 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/bom_cost_inquiry.php:34 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/bom_cost_inquiry.php:34 msgid "Enter an item code above, to view the costed bill of material for." msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:20 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:20 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/where_used_inquiry.php:19 msgid "Select an item to display its parent item(s)." msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:38 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:38 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/where_used_inquiry.php:37 msgid "The selected item is not used in any BOMs." msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:45 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:45 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/where_used_inquiry.php:44 msgid "Parent Item" msgstr "" @@ -6493,175 +6570,179 @@ msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:92 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:21 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:76 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:45 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:92 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:21 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:76 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/where_used_inquiry.php:44 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:92 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:21 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:76 msgid "Work Centre" msgstr "" # c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:45 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:269 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:273 -#: c:\Apache2\htdocs\account/manufacturing/inquiry/where_used_inquiry.php:45 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:269 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:273 +#: c:\Apache2\htdocs\account2/manufacturing/inquiry/where_used_inquiry.php:44 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:269 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:273 msgid "Quantity Required" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:7 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:7 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:7 msgid "Bill Of Materials" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:17 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:17 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:17 msgid "There are no work centres defined in the system. BOMs require at least one work centre be defined." msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:91 # c:\Apache2\htdocs\account/reporting/rep105.php:101 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:91 -#: c:\Apache2\htdocs\account/reporting/rep105.php:101 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:91 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:101 msgid "Code" msgstr "" +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:121 +msgid "The quantity entered must be numeric and greater than zero." +msgstr "" + # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:177 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:175 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:173 msgid "The selected component is already on this bom. You can modify it's quantity but it cannot appear more than once on the same bom." msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:183 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:181 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:179 msgid "The selected component is a parent of the current item. Recursive BOMs are not allowed." msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:196 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:194 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:192 msgid "The component item has been deleted from this bom." msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:205 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:203 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:201 msgid "Select a manufacturable item:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:225 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:223 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:223 msgid "Add a new Component" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:250 # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:259 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:248 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:257 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:248 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:257 msgid "Component:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:267 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:265 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:265 msgid "Location to Draw From:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:268 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:266 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:266 msgid "Work Centre Added:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:277 -#: c:\Apache2\htdocs\account/manufacturing/manage/bom_edit.php:275 +#: c:\Apache2\htdocs\account2/manufacturing/manage/bom_edit.php:275 msgid "Add/Update" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:33 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:33 msgid "The work centre name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:63 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:63 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:64 msgid "Cannot delete this work centre because BOMs have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:72 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:72 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:73 msgid "Cannot delete this work centre because work order requirements have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:97 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:97 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:98 msgid "description" msgstr "" # c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:117 -#: c:\Apache2\htdocs\account/manufacturing/manage/work_centres.php:117 +#: c:\Apache2\htdocs\account2/manufacturing/manage/work_centres.php:118 msgid "New Work Centre" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:17 -#: c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:17 +#: c:\Apache2\htdocs\account2/manufacturing/view/work_order_view.php:17 msgid "View Work Order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:41 -#: c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:41 +#: c:\Apache2\htdocs\account2/manufacturing/view/work_order_view.php:41 msgid "BOM for item:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:46 -#: c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:46 +#: c:\Apache2\htdocs\account2/manufacturing/view/work_order_view.php:46 msgid "Work Order Requirements" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:51 -#: c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:51 +#: c:\Apache2\htdocs\account2/manufacturing/view/work_order_view.php:51 msgid "Issues" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:54 -#: c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:54 +#: c:\Apache2\htdocs\account2/manufacturing/view/work_order_view.php:54 msgid "Productions" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:65 -#: c:\Apache2\htdocs\account/manufacturing/view/work_order_view.php:65 +#: c:\Apache2\htdocs\account2/manufacturing/view/work_order_view.php:65 msgid "This work order has been voided." msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:7 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:7 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:7 msgid "View Work Order Issue" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:32 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:32 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:32 msgid "Issue #" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:32 # c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:33 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:32 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:32 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_production_view.php:33 msgid "For Work Order #" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:33 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:33 msgid "To Work Centre" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:33 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:33 msgid "Date of Issue" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:50 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:50 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:50 msgid "This issue has been voided." msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:63 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:63 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:63 msgid "There are no items for this issue." msgstr "" @@ -6670,203 +6751,205 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep401.php:65 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:21 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:76 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:68 -#: c:\Apache2\htdocs\account/reporting/rep401.php:60 -#: c:\Apache2\htdocs\account/reporting/rep401.php:65 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:21 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:76 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:68 +#: c:\Apache2\htdocs\account2/reporting/rep401.php:60 +#: c:\Apache2\htdocs\account2/reporting/rep401.php:65 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:21 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:76 msgid "Component" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:105 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_issue_view.php:105 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_issue_view.php:105 msgid "Items for this Issue" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:8 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:8 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_production_view.php:8 msgid "View Work Order Production" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:33 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:33 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_production_view.php:33 msgid "Production #" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:34 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:34 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_production_view.php:34 msgid "Quantity Manufactured" msgstr "" # c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:50 -#: c:\Apache2\htdocs\account/manufacturing/view/wo_production_view.php:50 +#: c:\Apache2\htdocs\account2/manufacturing/view/wo_production_view.php:50 msgid "This production has been voided." msgstr "" +#: c:\Apache2\htdocs\account2/modules/wiki/local/config.php:29 +#: c:\Apache2\htdocs\account2/includes/page/header.inc:127 +msgid "Help" +msgstr "" + # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:21 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:23 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:20 msgid "Modify Purchase Order #" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:42 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:44 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:41 msgid "Purchase Order has been entered" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:44 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:46 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:43 msgid "Purchase Order has been updated" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:45 # c:\Apache2\htdocs\account/sales/sales_order_entry.php:41 # c:\Apache2\htdocs\account/sales/sales_order_entry.php:58 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:47 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:43 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:60 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:44 msgid "View this order" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:47 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:49 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:46 msgid "Receive Items on this Purchase Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:49 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:51 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:48 msgid "Enter Another Purchase Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:51 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:53 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:50 msgid "Select An Outstanding Purchase Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:103 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:105 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:102 msgid "This item cannot be deleted because some of it has already been received." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:117 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:119 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:116 msgid "This order cannot be cancelled because some of it has already been received." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:118 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:120 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:117 msgid "The line item quantities may be modified to quantities more than already received. prices cannot be altered for lines that have already been received and quantities cannot be reduced below the quantity already received." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:130 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:132 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:129 msgid "This purchase order has been cancelled." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:132 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:134 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:131 msgid "Enter a new purchase order" msgstr "" -# c:\Apache2\htdocs\account/purchasing/po_entry_items.php:156 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:158 -msgid "The quantity of the order item must be numeric." +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:155 +msgid "The quantity of the order item must be numeric and not less than zero." msgstr "" -# c:\Apache2\htdocs\account/purchasing/po_entry_items.php:161 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:163 -msgid "The quantity of the ordered item entered must be a positive amount." +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:162 +msgid "The price entered must be numeric and not less than zero." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:187 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:189 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:185 msgid "You are attempting to make the quantity ordered a quantity less than has already been invoiced or received. This is prohibited." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:188 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:190 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:186 msgid "The quantity received can only be modified by entering a negative receipt and the quantity invoiced can only be reduced by entering a credit note against this item." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:216 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:218 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:215 msgid "The selected item is already on this order." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:244 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:247 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:244 msgid "The selected item does not exist or it is a kit part and therefore cannot be purchased." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:257 # c:\Apache2\htdocs\account/sales/sales_order_entry.php:116 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:260 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:118 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:257 msgid "The entered order date is invalid." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:265 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:268 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:266 msgid "There is no reference entered for this purchase order." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:278 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:281 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:281 msgid "There is no delivery address specified." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:284 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:287 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:288 msgid "There is no location specified to move any items into." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:290 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:293 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:295 msgid "The order cannot be placed because there are no lines entered on this order." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:415 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:418 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:420 msgid "Update Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:417 # c:\Apache2\htdocs\account/sales/sales_order_entry.php:469 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:420 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:472 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:422 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:441 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:411 msgid "Place Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:418 # c:\Apache2\htdocs\account/purchasing/po_entry_items.php:421 # c:\Apache2\htdocs\account/sales/sales_order_entry.php:438 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:421 -#: c:\Apache2\htdocs\account/purchasing/po_entry_items.php:424 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:441 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:423 +#: c:\Apache2\htdocs\account2/purchasing/po_entry_items.php:426 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:440 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:410 msgid "Cancel Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:13 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:15 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:15 msgid "Receive Purchase Order Items" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:22 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:24 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:24 msgid "Purchase Order Delivery has been processed" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:24 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:26 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:26 msgid "View this Delivery" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:30 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:32 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:32 msgid "Select a different purchase order for receiving items against" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:40 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:42 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:42 msgid "This page can only be opened if a purchase order has been selected. Please select a purchase order first." msgstr "" @@ -6887,37 +6970,39 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:39 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:109 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:51 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:112 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:27 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:38 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:285 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:380 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:81 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:103 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:140 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:74 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:70 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:43 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:37 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:40 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:109 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:51 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:108 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:27 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:38 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:266 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:353 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:325 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:81 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:103 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:103 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:172 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:74 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:70 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:43 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:167 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:45 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:48 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:108 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:85 msgid "Item Code" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:49 # c:\Apache2\htdocs\account/reporting/rep105.php:101 # c:\Apache2\htdocs\account/sales/customer_invoice.php:378 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:51 -#: c:\Apache2\htdocs\account/reporting/rep105.php:101 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:380 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:51 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:101 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:353 msgid "Ordered" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:49 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:51 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:51 msgid "Received" msgstr "" @@ -6928,186 +7013,181 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep201.php:72 # c:\Apache2\htdocs\account/taxes/tax_types.php:99 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:46 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:52 -#: c:\Apache2\htdocs\account/reporting/rep101.php:70 -#: c:\Apache2\htdocs\account/reporting/rep105.php:102 -#: c:\Apache2\htdocs\account/reporting/rep105.php:155 -#: c:\Apache2\htdocs\account/reporting/rep201.php:71 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:99 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:47 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:52 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:72 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:102 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:155 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:71 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:55 msgid "Outstanding" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:50 # c:\Apache2\htdocs\account/sales/customer_invoice.php:379 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:52 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:381 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:52 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:354 msgid "This Delivery" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:98 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:100 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:100 msgid "Total value of items received" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:148 # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:194 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:150 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:196 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:150 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:199 msgid "There is nothing to process. Please enter valid quantities greater than zero." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:199 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:201 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:204 msgid "Entered quantities cannot be greater than the quantity entered on the purchase order including the allowed over-receive percentage" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:201 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:203 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:206 msgid "Modify the ordered items on the purchase order if you wish to increase the quantities." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:219 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:221 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:224 msgid "This order has been changed or invoiced since this delivery was started to be actioned. Processing halted. To enter a delivery against this purchase order, it must be re-selected and re-read again to update the changes made by the other user." msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:221 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:223 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:226 msgid "Select a different purchase order for receiving goods against" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:222 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:224 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:227 msgid "Re-Read the updated purchase order for receiving goods against" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:287 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:289 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:292 msgid "Items to Receive" msgstr "" # c:\Apache2\htdocs\account/purchasing/po_receive_items.php:293 -#: c:\Apache2\htdocs\account/purchasing/po_receive_items.php:295 +#: c:\Apache2\htdocs\account2/purchasing/po_receive_items.php:298 msgid "Process Receive Items" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:18 # c:\Apache2\htdocs\account/includes/types.inc:17 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:20 -#: c:\Apache2\htdocs\account/includes/types.inc:17 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:20 +#: c:\Apache2\htdocs\account2/includes/types.inc:18 msgid "Supplier Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:33 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:35 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:35 msgid "Supplier credit note has been processed." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:34 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:36 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:36 msgid "View this Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:36 # c:\Apache2\htdocs\account/sales/credit_note_entry.php:42 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:30 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:38 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:44 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:32 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:38 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:51 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:50 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:65 msgid "View the GL Journal Entries for this Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:38 # c:\Apache2\htdocs\account/sales/credit_note_entry.php:44 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:40 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:46 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:40 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:53 msgid "Enter Another Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:66 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:68 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:68 msgid "The credit note cannot be processed because the there are no items or values on the invoice. Credit notes are expected to have a charge." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:72 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:74 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:75 msgid "You must enter an credit note reference." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:84 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:86 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:89 msgid "You must enter a supplier's credit note reference." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:90 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:92 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:96 msgid "The credit note as entered cannot be processed because the date entered is not valid." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:100 # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:100 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:102 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:102 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:108 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:107 msgid "The invoice as entered cannot be processed because the due date is in an incorrect format." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:106 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:108 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:115 msgid "The credit note total as entered is less than the sum of the the general ledger entires (if any) and the charges for goods received. There must be a mistake somewhere, the credit note as entered will not be processed." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit.php:162 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit.php:164 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit.php:171 msgid "Enter Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:9 # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:12 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:14 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:15 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:14 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:15 msgid "Select Received Items to Add" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:16 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:18 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:18 msgid "To enter supplier transactions the supplier must first be selected from the supplier selection screen, then the link to enter a supplier credit note must be clicked on." msgstr "" -# c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:32 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:34 -msgid "The quantity to credit must be numeric." -msgstr "" - -# c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:38 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:40 -msgid "The quantity to credit must be greater than zero." +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:34 +msgid "The quantity to credit must be numeric and greater than zero." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:44 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:46 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:41 msgid "The price is either not numeric or negative." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:88 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:90 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:86 msgid "Return to Credit Note Entry" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:98 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:100 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:96 msgid "There are no received items for the selected supplier that have been invoiced." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:99 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:101 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:97 msgid "Credits can only be applied to invoiced items." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:110 # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:141 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:112 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:144 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:108 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:140 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:235 msgid "Delivery" msgstr "" @@ -7115,10 +7195,10 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:165 # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:141 # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:204 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:112 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:167 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:144 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:207 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:108 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:163 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:140 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:204 msgid "Sequence #" msgstr "" @@ -7129,37 +7209,38 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:122 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:161 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:164 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:112 -#: c:\Apache2\htdocs\account/reporting/rep105.php:96 -#: c:\Apache2\htdocs\account/reporting/rep204.php:70 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:121 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:124 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:163 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:166 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:108 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:96 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:70 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:134 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:172 msgid "Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:111 # c:\Apache2\htdocs\account/sales/customer_invoice.php:378 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:113 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:380 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:109 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:353 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:325 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:86 msgid "Delivered" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:111 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:113 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:109 msgid "Total Qty Received" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:111 # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:165 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:113 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:167 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:109 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:163 msgid "Qty Already Invoiced" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:112 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:114 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:110 msgid "Qty Yet To Invoice" msgstr "" @@ -7167,368 +7248,346 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:166 # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:143 # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:205 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:114 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:168 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:146 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:208 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:110 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:164 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:142 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:205 msgid "Order Price" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:112 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:303 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:114 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:303 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:110 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:297 msgid "Line Value" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:163 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:165 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:161 msgid "Delivery Item Selected For Adding To A Supplier Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:166 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:168 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:164 msgid "Quantity to Credit" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:166 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:168 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:164 msgid "Credit Price" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:179 -#: c:\Apache2\htdocs\account/purchasing/supplier_credit_grns.php:181 +#: c:\Apache2\htdocs\account2/purchasing/supplier_credit_grns.php:177 msgid "Add to Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:17 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:19 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:19 msgid "Enter Supplier Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:33 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:35 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:35 msgid "Supplier invoice has been processed." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:34 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:36 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:36 msgid "View this Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:36 # c:\Apache2\htdocs\account/sales/customer_invoice.php:31 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:38 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:33 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:38 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:51 msgid "View the GL Journal Entries for this Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:38 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:40 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:40 msgid "Enter Another Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:66 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:68 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:68 msgid "The invoice cannot be processed because the there are no items or values on the invoice. Invoices are expected to have a charge." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:72 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:74 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:74 msgid "You must enter an invoice reference." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:84 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:86 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:88 msgid "You must enter a supplier's invoice reference." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:90 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:92 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:95 msgid "The invoice as entered cannot be processed because the invoice date is in an incorrect format." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:110 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:112 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:118 msgid "This invoice number has already been entered. It cannot be entered again." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:169 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice.php:171 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice.php:177 msgid "Enter Invoice" msgstr "" -# c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:35 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:38 -msgid "The quantity to invoice must be numeric." -msgstr "" - -# c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:41 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:44 -msgid "The quantity to invoice must be greater than zero." +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:38 +msgid "The quantity to invoice must be numeric and greater than zero." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:47 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:50 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:45 msgid "The price is not numeric." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:56 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:59 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:57 msgid "The price being invoiced is more than the purchase order price by more than the allowed over-charge percentage. The system is set up to prohibit this. See the system administrator to modify the set up parameters if necessary." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:57 # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:68 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:60 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:71 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:58 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:71 msgid "The over-charge percentage allowance is :" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:67 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:70 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:70 msgid "The quantity being invoiced is more than the outstanding quantity by more than the allowed over-charge percentage. The system is set up to prohibit this. See the system administrator to modify the set up parameters if necessary." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:117 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:120 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:116 msgid "Back to Supplier Invoice Entry" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:130 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:133 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:129 msgid "There are no outstanding items received from this supplier that have not been invoiced by them." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:138 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:141 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:137 msgid "Items Received Yet to be Invoiced" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:141 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:144 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:140 msgid "P.O." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:142 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:145 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:141 msgid "Received On" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:142 # c:\Apache2\htdocs\account/purchasing/view/view_po.php:39 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:145 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:39 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:141 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:39 msgid "Quantity Received" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:142 # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:28 # c:\Apache2\htdocs\account/purchasing/view/view_po.php:39 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:145 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:28 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:39 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:141 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:28 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:39 msgid "Quantity Invoiced" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:143 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:146 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:142 msgid "Uninvoiced Quantity" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:202 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:205 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:202 msgid "Delivery Item Selected For Adding To A Supplier Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:204 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:207 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:204 msgid "Quantity Outstanding" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:205 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:208 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:205 msgid "Quantity to Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:205 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:208 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:205 msgid "Actual Price" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:219 -#: c:\Apache2\htdocs\account/purchasing/supplier_invoice_grns.php:222 +#: c:\Apache2\htdocs\account2/purchasing/supplier_invoice_grns.php:219 msgid "Add to Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:16 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:18 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:18 msgid "Supplier Payment Entry" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:38 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:40 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:40 msgid "Payment has been sucessfully entered" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:40 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:42 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:42 msgid "View the GL Journal Entries for this Payment" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:43 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:45 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:44 msgid "Allocate this Payment" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:46 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:48 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:46 msgid "Enter another supplier payment" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:74 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:76 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:71 msgid "From Bank Account:" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:76 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:78 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:73 msgid "Amount of Payment:" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:77 # c:\Apache2\htdocs\account/sales/customer_payments.php:179 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:79 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:181 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:74 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:170 msgid "Amount of Discount:" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:79 # c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:46 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:81 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:46 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:76 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:46 msgid "Date Paid" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:85 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:87 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:82 msgid "Payment To:" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:96 # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:85 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:98 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:85 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:93 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:85 msgid "Payment Type:" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:107 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:109 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:104 msgid "Enter Payment" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:111 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:113 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:108 msgid "The amount and discount are in the bank account's currency." msgstr "" -# c:\Apache2\htdocs\account/purchasing/supplier_payment.php:128 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:130 -msgid "The entered amount is invalid or less than zero." -msgstr "" - # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:139 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:141 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:137 msgid "The entered discount is invalid or less than zero." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_payment.php:145 -#: c:\Apache2\htdocs\account/purchasing/supplier_payment.php:147 +#: c:\Apache2\htdocs\account2/purchasing/supplier_payment.php:144 msgid "The total of the amount and the discount negative. Please enter positive values." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:9 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:13 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:13 msgid "Add GL Items" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:15 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:18 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:18 msgid "To enter a supplier invoice or credit note the supplier must first be selected." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:47 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:50 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:50 msgid "The account code entered is not a valid code, this line cannot be added to the transaction." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:56 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:59 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:60 msgid "The amount entered is not numeric. This line cannot be added to the transaction." msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:87 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:90 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:93 msgid "Back to Invoice Entry" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:91 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:94 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:97 msgid "Back to Credit Note Entry" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:101 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:104 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:107 msgid "Enter a GL Line" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:107 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:110 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:113 msgid "GL Account Selection:" msgstr "" # c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:123 -#: c:\Apache2\htdocs\account/purchasing/supplier_trans_gl.php:126 +#: c:\Apache2\htdocs\account2/purchasing/supplier_trans_gl.php:129 msgid "Add GL Line" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:18 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:18 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:21 msgid "Allocate Supplier Payment or Credit Note" msgstr "" -# c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:45 -# c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:39 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:45 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:39 -msgid "The entry for one or more amounts is invalid." -msgstr "" - -# c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:51 -# c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:45 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:51 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:45 -msgid "The entry for an amount to allocate was negative. A positive allocation amount is expected." +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:48 +msgid "The entry for one or more amounts is invalid or negative." msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:69 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:63 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:69 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:63 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:67 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:69 msgid "These allocations cannot be processed because the amount allocated is more than the total amount left to allocate." msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:183 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:174 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:183 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:174 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:181 msgid "Allocation of" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:188 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:179 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:188 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:179 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:186 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:186 msgid "Total:" msgstr "" @@ -7538,28 +7597,28 @@ msgstr "" # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:187 # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:62 # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:65 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:195 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:60 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:63 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:187 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:62 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:65 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:193 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:60 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:63 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:194 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:62 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:65 msgid "Transaction Type" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:196 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:188 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:196 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:188 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:194 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:195 msgid "Other Allocations" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:196 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:188 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:464 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:196 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:188 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:466 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:194 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:195 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:476 msgid "This Allocation" msgstr "" @@ -7568,11 +7627,11 @@ msgstr "" # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:188 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:230 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:464 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:196 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:237 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:188 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:230 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:466 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:194 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:240 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:195 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:241 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:476 msgid "Left to Allocate" msgstr "" @@ -7588,62 +7647,62 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep303.php:111 # c:\Apache2\htdocs\account/reporting/rep303.php:118 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:213 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:220 -#: c:\Apache2\htdocs\account/reporting/rep101.php:54 -#: c:\Apache2\htdocs\account/reporting/rep102.php:118 -#: c:\Apache2\htdocs\account/reporting/rep104.php:74 -#: c:\Apache2\htdocs\account/reporting/rep104.php:78 -#: c:\Apache2\htdocs\account/reporting/rep105.php:82 -#: c:\Apache2\htdocs\account/reporting/rep105.php:86 -#: c:\Apache2\htdocs\account/reporting/rep201.php:55 -#: c:\Apache2\htdocs\account/reporting/rep202.php:127 -#: c:\Apache2\htdocs\account/reporting/rep203.php:59 -#: c:\Apache2\htdocs\account/reporting/rep204.php:63 -#: c:\Apache2\htdocs\account/reporting/rep301.php:72 -#: c:\Apache2\htdocs\account/reporting/rep301.php:79 -#: c:\Apache2\htdocs\account/reporting/rep302.php:150 -#: c:\Apache2\htdocs\account/reporting/rep302.php:157 -#: c:\Apache2\htdocs\account/reporting/rep303.php:111 -#: c:\Apache2\htdocs\account/reporting/rep303.php:118 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:213 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:218 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:56 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:119 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:74 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:78 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:82 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:86 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:55 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:127 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:59 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:72 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:79 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:150 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:157 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:111 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:118 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:221 msgid "All" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:228 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:221 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:228 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:221 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:230 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:230 msgid "Total Allocated" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:251 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:241 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:251 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:241 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:254 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:252 msgid "There are no unsettled transactions to allocate." msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:255 # c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:244 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:255 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:244 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocate.php:258 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:255 msgid "Back to Allocations" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:16 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:16 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:16 msgid "Supplier Allocations" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:35 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:35 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:35 msgid "Select a Supplier: " msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:38 # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:34 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:38 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:34 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:38 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:34 msgid "Show Settled Items:" msgstr "" @@ -7651,45 +7710,46 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:64 # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:63 # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:66 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:61 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:64 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:63 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:66 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:61 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:64 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:63 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:66 msgid "Left To Allocate" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:94 # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:96 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:94 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:96 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:94 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:97 msgid "Allocate" msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:101 # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:105 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:101 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:105 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:101 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:106 msgid "Marked items are settled." msgstr "" # c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:104 # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:108 -#: c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocation_main.php:104 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:108 +#: c:\Apache2\htdocs\account2/purchasing/allocations/supplier_allocation_main.php:104 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:109 msgid "There are no allocations to be done." msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:12 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:14 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:15 msgid "Search Outstanding Purchase Orders" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:25 # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:24 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:41 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:27 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:26 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:43 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:28 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:27 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:85 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:71 msgid "#:" msgstr "" @@ -7703,16 +7763,16 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:39 # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:20 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:253 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:108 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:111 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:101 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:104 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:161 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:165 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:33 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:39 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:20 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:253 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:111 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:114 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:104 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:107 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:161 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:165 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:33 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:39 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:20 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:255 msgid "Supplier's Reference" msgstr "" @@ -7721,11 +7781,11 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:99 # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:102 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:125 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:108 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:111 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:101 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:104 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:127 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:111 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:114 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:104 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:107 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:174 msgid "Order Date" msgstr "" @@ -7734,59 +7794,59 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:99 # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:102 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:126 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:108 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:111 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:101 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:104 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:128 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:111 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:114 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:104 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:107 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:175 msgid "Order Total" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:144 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:146 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:150 msgid "Receive" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:160 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search.php:162 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search.php:166 msgid "Marked orders have overdue items." msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:11 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:13 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:14 msgid "Search Purchase Orders" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:29 -#: c:\Apache2\htdocs\account/purchasing/inquiry/po_search_completed.php:31 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/po_search_completed.php:32 msgid "into location:" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:36 # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:135 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:38 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:135 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:38 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:135 msgid "Select a supplier: " msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:43 # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:37 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:45 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:39 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:45 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:39 msgid "show settled:" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:113 # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:147 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:115 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:149 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:115 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:149 msgid "There are no transactions to display for the given dates." msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:125 # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:128 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:127 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:130 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:127 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:130 msgid "Supp Reference" msgstr "" @@ -7797,20 +7857,20 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:120 # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:123 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:46 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:128 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:131 -#: c:\Apache2\htdocs\account/reporting/rep101.php:70 -#: c:\Apache2\htdocs\account/reporting/rep201.php:71 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:122 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:125 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:47 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:128 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:131 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:72 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:71 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:132 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:135 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:55 msgid "Allocated" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:181 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:459 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:183 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:461 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:183 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:471 msgid "Allocations" msgstr "" @@ -7820,22 +7880,23 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:207 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:250 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:188 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_allocation_inquiry.php:200 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:222 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:82 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:209 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:252 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:190 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_allocation_inquiry.php:200 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:222 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:82 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:219 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:283 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:270 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:263 msgid "Marked items are overdue." msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:12 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:14 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:14 msgid "Supplier Inquiry" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:34 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:36 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:36 msgid "Select a supplier:" msgstr "" @@ -7855,24 +7916,24 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:62 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:63 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:79 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:60 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:61 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:62 -#: c:\Apache2\htdocs\account/reporting/rep102.php:137 -#: c:\Apache2\htdocs\account/reporting/rep102.php:138 -#: c:\Apache2\htdocs\account/reporting/rep102.php:139 -#: c:\Apache2\htdocs\account/reporting/rep102.php:248 -#: c:\Apache2\htdocs\account/reporting/rep202.php:145 -#: c:\Apache2\htdocs\account/reporting/rep202.php:146 -#: c:\Apache2\htdocs\account/reporting/rep202.php:147 -#: c:\Apache2\htdocs\account/reporting/rep202.php:175 -#: c:\Apache2\htdocs\account/reporting/rep202.php:176 -#: c:\Apache2\htdocs\account/reporting/rep202.php:177 -#: c:\Apache2\htdocs\account/reporting/rep202.php:263 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:63 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:64 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:65 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:81 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:60 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:61 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:62 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:138 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:139 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:140 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:255 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:145 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:146 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:147 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:175 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:176 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:177 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:263 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:64 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:65 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:66 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:91 msgid "Days" msgstr "" @@ -7882,19 +7943,19 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep202.php:173 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:63 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:80 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:62 -#: c:\Apache2\htdocs\account/reporting/rep102.php:139 -#: c:\Apache2\htdocs\account/reporting/rep202.php:147 -#: c:\Apache2\htdocs\account/reporting/rep202.php:177 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:65 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:82 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:62 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:140 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:147 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:177 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:66 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:92 msgid "Over" msgstr "" # c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:64 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:66 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:66 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:68 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:66 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:69 msgid "Terms" msgstr "" @@ -7903,13 +7964,13 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep202.php:146 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:66 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:75 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:66 -#: c:\Apache2\htdocs\account/reporting/rep102.php:142 -#: c:\Apache2\htdocs\account/reporting/rep102.php:246 -#: c:\Apache2\htdocs\account/reporting/rep202.php:151 -#: c:\Apache2\htdocs\account/reporting/rep202.php:261 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:68 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:77 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:66 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:143 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:253 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:151 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:261 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:69 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:87 msgid "Current" msgstr "" @@ -7918,62 +7979,62 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep202.php:147 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:67 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:76 -#: c:\Apache2\htdocs\account/purchasing/inquiry/supplier_inquiry.php:67 -#: c:\Apache2\htdocs\account/reporting/rep102.php:143 -#: c:\Apache2\htdocs\account/reporting/rep202.php:152 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:69 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:78 +#: c:\Apache2\htdocs\account2/purchasing/inquiry/supplier_inquiry.php:67 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:144 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:152 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:70 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:88 msgid "Total Balance" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:14 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:22 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:14 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:22 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:13 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:21 msgid "There are no tax groups defined in the system. At least one tax group is required before proceeding." msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:40 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:40 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:39 msgid "The supplier name must be entered." msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:104 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:104 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:104 msgid "Cannot delete this supplier because there are transactions that refer to this supplier." msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:115 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:115 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:115 msgid "Cannot delete the supplier record because purchase orders have been created against this supplier." msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:136 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:136 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:136 msgid "Edit Supplier" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:145 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:145 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:145 msgid "Enter a new supplier" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:184 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:184 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:184 msgid "Supplier Name:" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:187 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:187 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:187 msgid "Bank Account:" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:192 # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:197 # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:105 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:192 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:197 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:105 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:192 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:197 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:103 msgid "Supplier's Currency:" msgstr "" @@ -7983,19 +8044,17 @@ msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:84 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:262 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:266 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:200 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:287 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:112 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:84 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:262 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:266 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:200 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:286 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:107 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:296 msgid "Tax Group:" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:202 # c:\Apache2\htdocs\account/sales/manage/customers.php:311 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:202 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:311 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:202 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:291 msgid "Payment Terms:" msgstr "" @@ -8003,56 +8062,56 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep704.php:76 # c:\Apache2\htdocs\account/reporting/rep704.php:86 # c:\Apache2\htdocs\account/reporting/rep704.php:94 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:204 -#: c:\Apache2\htdocs\account/reporting/rep704.php:76 -#: c:\Apache2\htdocs\account/reporting/rep704.php:86 -#: c:\Apache2\htdocs\account/reporting/rep704.php:94 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:204 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:76 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:86 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:94 msgid "Accounts" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:208 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:208 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:208 msgid "Purchase Account:" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:230 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:230 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:230 msgid "Update Supplier" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:231 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:231 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:231 msgid "Delete Supplier" msgstr "" # c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:235 -#: c:\Apache2\htdocs\account/purchasing/manage/suppliers.php:235 +#: c:\Apache2\htdocs\account2/purchasing/manage/suppliers.php:235 msgid "Add New Supplier Details" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:8 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:8 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:8 msgid "View Purchase Order Delivery" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:14 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:14 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:14 msgid "This page must be called with a Purchase Order Delivery number to review." msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:20 # c:\Apache2\htdocs\account/includes/types.inc:19 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:20 -#: c:\Apache2\htdocs\account/includes/types.inc:19 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:20 +#: c:\Apache2\htdocs\account2/includes/types.inc:20 msgid "Purchase Order Delivery" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:24 # c:\Apache2\htdocs\account/purchasing/view/view_po.php:34 # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:137 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:24 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:34 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:137 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:24 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:34 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:169 msgid "Line Details" msgstr "" @@ -8071,92 +8130,65 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:39 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:109 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:27 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:38 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:285 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:380 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:81 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:103 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:140 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:74 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:70 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:43 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:37 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:40 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:109 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:27 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:38 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:266 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:353 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:325 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:81 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:103 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:103 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:172 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:74 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:70 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:43 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:167 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:45 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:48 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:108 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:85 msgid "Item Description" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:27 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:10 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:37 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:27 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:10 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:38 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:27 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:197 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:10 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:46 msgid "Delivery Date" msgstr "" -# c:\Apache2\htdocs\account/purchasing/view/view_grn.php:28 -# c:\Apache2\htdocs\account/purchasing/view/view_po.php:38 -# c:\Apache2\htdocs\account/sales/view/view_credit.php:82 -# c:\Apache2\htdocs\account/sales/view/view_invoice.php:100 -# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:140 -# c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:75 -# c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:70 -# c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:44 -# c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:167 -# c:\Apache2\htdocs\account/reporting/includes/doctext.inc:37 -# c:\Apache2\htdocs\account/reporting/includes/doctext.inc:40 -# c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 -# c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:28 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:38 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:82 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:104 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:140 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:75 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:70 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:44 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:38 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:41 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:103 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 -msgid "Unit" -msgstr "" - # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:28 # c:\Apache2\htdocs\account/purchasing/view/view_po.php:39 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:168 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:28 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:39 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:168 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:28 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:39 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:168 msgid "Line Total" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:56 # c:\Apache2\htdocs\account/purchasing/view/view_po.php:76 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:158 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:56 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:76 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:158 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:56 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:76 msgid "Total Excluding Tax/Shipping" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_grn.php:61 -#: c:\Apache2\htdocs\account/purchasing/view/view_grn.php:61 +#: c:\Apache2\htdocs\account2/purchasing/view/view_grn.php:61 msgid "This delivery has been voided." msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_po.php:9 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:9 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:9 msgid "View Purchase Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_po.php:15 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:15 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:15 msgid "This page must be called with a purchase order number to review." msgstr "" @@ -8164,40 +8196,41 @@ msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:15 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:232 # c:\Apache2\htdocs\account/reporting/includes/form_types.inc:9 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:18 -#: c:\Apache2\htdocs\account/includes/types.inc:15 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:232 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:9 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:18 +#: c:\Apache2\htdocs\account2/includes/types.inc:16 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:234 msgid "Purchase Order" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_po.php:39 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:39 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:39 msgid "Requested By" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_po.php:95 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:95 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:95 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:32 msgid "Deliveries" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_po.php:97 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:97 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:97 msgid "Delivered On" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_po.php:120 -#: c:\Apache2\htdocs\account/purchasing/view/view_po.php:120 +#: c:\Apache2\htdocs\account2/purchasing/view/view_po.php:120 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:34 msgid "Invoices/Credits" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:9 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:9 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:9 msgid "View Supplier Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:27 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:27 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:27 msgid "SUPPLIER CREDIT NOTE" msgstr "" @@ -8205,67 +8238,67 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:42 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:272 # c:\Apache2\htdocs\account/sales/view/view_invoice.php:83 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:36 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:42 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:274 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:87 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:36 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:42 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:255 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:87 msgid "Invoice Date" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:49 # c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:57 # c:\Apache2\htdocs\account/sales/view/view_credit.php:127 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:49 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:57 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:127 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:49 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:57 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:127 msgid "Sub Total" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:55 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:55 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:55 msgid "TOTAL CREDIT NOTE" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:59 # c:\Apache2\htdocs\account/sales/view/view_credit.php:138 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_credit.php:59 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:138 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_credit.php:59 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:138 msgid "This credit note has been voided." msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:14 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:14 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:14 msgid "View Supplier Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:32 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:32 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:32 msgid "SUPPLIER INVOICE" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:64 # c:\Apache2\htdocs\account/sales/view/view_invoice.php:149 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:68 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:64 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:153 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:70 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:64 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:154 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:79 msgid "TOTAL INVOICE" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:68 # c:\Apache2\htdocs\account/sales/view/view_invoice.php:153 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_invoice.php:68 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:157 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_invoice.php:68 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:158 msgid "This invoice has been voided." msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:13 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:13 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:13 msgid "View Payment to Supplier" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:38 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:38 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:38 msgid "Payment to Supplier" msgstr "" @@ -8274,19 +8307,19 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:80 # c:\Apache2\htdocs\account/reporting/reports_main.php:87 # c:\Apache2\htdocs\account/reporting/reports_main.php:92 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:44 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:44 msgid "To Supplier" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:50 # c:\Apache2\htdocs\account/sales/view/view_receipt.php:30 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:50 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:30 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:50 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:30 msgid "Payment Currency" msgstr "" # c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:57 -#: c:\Apache2\htdocs\account/purchasing/view/view_supp_payment.php:57 +#: c:\Apache2\htdocs\account2/purchasing/view/view_supp_payment.php:57 msgid "Supplier's Currency" msgstr "" @@ -8294,10 +8327,10 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep102.php:125 # c:\Apache2\htdocs\account/reporting/rep202.php:134 # c:\Apache2\htdocs\account/reporting/rep203.php:69 -#: c:\Apache2\htdocs\account/reporting/rep101.php:62 -#: c:\Apache2\htdocs\account/reporting/rep102.php:130 -#: c:\Apache2\htdocs\account/reporting/rep202.php:139 -#: c:\Apache2\htdocs\account/reporting/rep203.php:68 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:64 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:131 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:139 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:68 msgid "Balances in Home Currency" msgstr "" @@ -8306,29 +8339,29 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep203.php:76 # c:\Apache2\htdocs\account/reporting/rep709.php:171 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:45 -#: c:\Apache2\htdocs\account/reporting/rep101.php:69 -#: c:\Apache2\htdocs\account/reporting/rep201.php:70 -#: c:\Apache2\htdocs\account/reporting/rep203.php:75 -#: c:\Apache2\htdocs\account/reporting/rep709.php:171 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:171 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:54 msgid "Trans Type" msgstr "" # c:\Apache2\htdocs\account/reporting/rep101.php:70 # c:\Apache2\htdocs\account/reporting/rep201.php:71 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:45 -#: c:\Apache2\htdocs\account/reporting/rep101.php:69 -#: c:\Apache2\htdocs\account/reporting/rep201.php:70 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:70 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:54 msgid "Charges" msgstr "" # c:\Apache2\htdocs\account/reporting/rep101.php:70 # c:\Apache2\htdocs\account/reporting/rep201.php:72 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:46 -#: c:\Apache2\htdocs\account/reporting/rep101.php:69 -#: c:\Apache2\htdocs\account/reporting/rep201.php:71 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:47 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:71 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:55 msgid "Credits" msgstr "" @@ -8357,31 +8390,32 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:237 # c:\Apache2\htdocs\account/reporting/reports_main.php:242 # c:\Apache2\htdocs\account/reporting/reports_main.php:248 -#: c:\Apache2\htdocs\account/reporting/rep101.php:75 -#: c:\Apache2\htdocs\account/reporting/rep102.php:148 -#: c:\Apache2\htdocs\account/reporting/rep201.php:76 -#: c:\Apache2\htdocs\account/reporting/rep202.php:157 -#: c:\Apache2\htdocs\account/reporting/rep203.php:81 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:22 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:27 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:45 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:75 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:80 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:87 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:148 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:157 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:170 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:177 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:185 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:195 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:206 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:212 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:219 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:228 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:237 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:242 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:248 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:254 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:77 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:149 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:76 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:157 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:81 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:22 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:27 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:45 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:52 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:85 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:90 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:97 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:158 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:167 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:180 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:187 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:195 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:205 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:216 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:222 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:229 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:238 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:247 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:252 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:258 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:264 msgid "End Date" msgstr "" @@ -8406,37 +8440,42 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:125 # c:\Apache2\htdocs\account/sales/view/view_credit.php:38 # c:\Apache2\htdocs\account/includes/types.inc:139 -#: c:\Apache2\htdocs\account/reporting/rep101.php:76 -#: c:\Apache2\htdocs\account/reporting/rep102.php:142 -#: c:\Apache2\htdocs\account/reporting/rep102.php:149 -#: c:\Apache2\htdocs\account/reporting/rep105.php:96 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:20 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:21 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:23 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:26 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:28 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:33 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:37 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:43 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:50 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:58 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:59 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:64 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:250 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:315 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:62 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:122 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:164 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:127 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:38 -#: c:\Apache2\htdocs\account/includes/types.inc:139 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:78 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:143 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:150 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:96 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:70 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:20 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:21 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:23 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:26 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:28 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:33 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:37 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:43 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:50 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:55 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:63 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:68 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:69 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:74 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:221 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:292 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:278 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:62 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:132 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:173 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:197 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:174 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:38 +#: c:\Apache2\htdocs\account2/includes/types.inc:145 msgid "Customer" msgstr "" # c:\Apache2\htdocs\account/reporting/rep101.php:81 # c:\Apache2\htdocs\account/reporting/reports_main.php:19 -#: c:\Apache2\htdocs\account/reporting/rep101.php:79 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:21 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:81 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:21 msgid "Customer Balances" msgstr "" @@ -8447,13 +8486,14 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep203.php:149 # c:\Apache2\htdocs\account/reporting/rep204.php:133 # c:\Apache2\htdocs\account/reporting/rep301.php:154 -#: c:\Apache2\htdocs\account/reporting/rep101.php:155 -#: c:\Apache2\htdocs\account/reporting/rep102.php:232 -#: c:\Apache2\htdocs\account/reporting/rep201.php:159 -#: c:\Apache2\htdocs\account/reporting/rep202.php:247 -#: c:\Apache2\htdocs\account/reporting/rep203.php:150 -#: c:\Apache2\htdocs\account/reporting/rep204.php:131 -#: c:\Apache2\htdocs\account/reporting/rep301.php:154 +#: c:\Apache2\htdocs\account2/reporting/rep101.php:158 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:239 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:169 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:159 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:247 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:150 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:131 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:154 msgid "Grand Total" msgstr "" @@ -8463,12 +8503,14 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:30 # c:\Apache2\htdocs\account/reporting/reports_main.php:82 # c:\Apache2\htdocs\account/reporting/reports_main.php:249 -#: c:\Apache2\htdocs\account/reporting/rep102.php:124 -#: c:\Apache2\htdocs\account/reporting/rep202.php:133 -#: c:\Apache2\htdocs\account/reporting/rep709.php:149 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:30 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:83 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:255 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:125 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:80 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:133 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:149 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:30 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:53 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:93 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:265 msgid "Summary Only" msgstr "" @@ -8476,118 +8518,119 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep202.php:130 # c:\Apache2\htdocs\account/reporting/rep709.php:151 # c:\Apache2\htdocs\account/reporting/reports_main.php:106 -#: c:\Apache2\htdocs\account/reporting/rep102.php:126 -#: c:\Apache2\htdocs\account/reporting/rep202.php:135 -#: c:\Apache2\htdocs\account/reporting/rep709.php:151 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:106 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:127 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:135 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:151 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:116 msgid "Detailed Report" msgstr "" # c:\Apache2\htdocs\account/reporting/rep102.php:151 # c:\Apache2\htdocs\account/reporting/reports_main.php:25 -#: c:\Apache2\htdocs\account/reporting/rep102.php:155 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:26 +#: c:\Apache2\htdocs\account2/reporting/rep102.php:156 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:26 msgid "Aged Customer Analysis" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:107 -#: c:\Apache2\htdocs\account/reporting/rep103.php:107 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:107 msgid "All Areas" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:111 -#: c:\Apache2\htdocs\account/reporting/rep103.php:111 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:111 msgid "All Sales Folk" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:115 -#: c:\Apache2\htdocs\account/reporting/rep103.php:115 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:115 msgid "Greater than " msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:119 -#: c:\Apache2\htdocs\account/reporting/rep103.php:119 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:119 msgid "Less than " msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:128 -#: c:\Apache2\htdocs\account/reporting/rep103.php:128 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:128 msgid "Customer Postal Address" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:128 -#: c:\Apache2\htdocs\account/reporting/rep103.php:128 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:128 msgid "Price/Turnover" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:128 -#: c:\Apache2\htdocs\account/reporting/rep103.php:128 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:128 msgid "Branch Contact Information" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:129 -#: c:\Apache2\htdocs\account/reporting/rep103.php:129 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:129 msgid "Branch Delivery Address" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:134 # c:\Apache2\htdocs\account/reporting/reports_main.php:33 -#: c:\Apache2\htdocs\account/reporting/rep103.php:134 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:34 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:134 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:34 msgid "Activity Since" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:136 # c:\Apache2\htdocs\account/reporting/reports_main.php:35 -#: c:\Apache2\htdocs\account/reporting/rep103.php:136 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:36 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:136 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:36 msgid "Sales Folk" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:137 -#: c:\Apache2\htdocs\account/reporting/rep103.php:137 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:137 msgid "Activity" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:139 -#: c:\Apache2\htdocs\account/reporting/rep103.php:139 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:139 msgid "Customer Details Listing" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:167 -#: c:\Apache2\htdocs\account/reporting/rep103.php:167 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:167 msgid "Customers in" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:191 -#: c:\Apache2\htdocs\account/reporting/rep103.php:191 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:191 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:270 msgid "Price List" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:193 -#: c:\Apache2\htdocs\account/reporting/rep103.php:193 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:193 msgid "Turnover" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:196 -#: c:\Apache2\htdocs\account/reporting/rep103.php:196 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:196 msgid "Ph" msgstr "" # c:\Apache2\htdocs\account/reporting/rep103.php:197 # c:\Apache2\htdocs\account/sales/manage/sales_people.php:87 -#: c:\Apache2\htdocs\account/reporting/rep103.php:197 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:87 +#: c:\Apache2\htdocs\account2/reporting/rep103.php:197 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:92 msgid "Fax" msgstr "" # c:\Apache2\htdocs\account/reporting/rep104.php:88 -#: c:\Apache2\htdocs\account/reporting/rep104.php:88 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:88 msgid "Category/Items" msgstr "" # c:\Apache2\htdocs\account/reporting/rep104.php:88 -#: c:\Apache2\htdocs\account/reporting/rep104.php:88 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:88 msgid "GP %" msgstr "" @@ -8599,45 +8642,45 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep302.php:176 # c:\Apache2\htdocs\account/reporting/rep303.php:124 # c:\Apache2\htdocs\account/reporting/rep303.php:129 -#: c:\Apache2\htdocs\account/reporting/rep104.php:93 -#: c:\Apache2\htdocs\account/reporting/rep105.php:106 -#: c:\Apache2\htdocs\account/reporting/rep301.php:85 -#: c:\Apache2\htdocs\account/reporting/rep301.php:90 -#: c:\Apache2\htdocs\account/reporting/rep302.php:169 -#: c:\Apache2\htdocs\account/reporting/rep302.php:176 -#: c:\Apache2\htdocs\account/reporting/rep303.php:124 -#: c:\Apache2\htdocs\account/reporting/rep303.php:129 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:93 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:106 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:85 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:90 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:169 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:176 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:124 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:129 msgid "Category" msgstr "" # c:\Apache2\htdocs\account/reporting/rep104.php:95 # c:\Apache2\htdocs\account/reporting/reports_main.php:40 -#: c:\Apache2\htdocs\account/reporting/rep104.php:95 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:41 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:95 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:41 msgid "Show GP %" msgstr "" # c:\Apache2\htdocs\account/reporting/rep104.php:102 # c:\Apache2\htdocs\account/reporting/reports_main.php:36 -#: c:\Apache2\htdocs\account/reporting/rep104.php:102 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:37 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:102 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:37 msgid "Price Listing" msgstr "" # c:\Apache2\htdocs\account/reporting/rep104.php:119 -#: c:\Apache2\htdocs\account/reporting/rep104.php:119 +#: c:\Apache2\htdocs\account2/reporting/rep104.php:119 msgid "Prices" msgstr "" # c:\Apache2\htdocs\account/reporting/rep105.php:90 -#: c:\Apache2\htdocs\account/reporting/rep105.php:90 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:90 msgid "All Orders" msgstr "" # c:\Apache2\htdocs\account/reporting/rep105.php:92 # c:\Apache2\htdocs\account/reporting/reports_main.php:47 -#: c:\Apache2\htdocs\account/reporting/rep105.php:92 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:48 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:92 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:48 msgid "Back Orders Only" msgstr "" @@ -8648,68 +8691,107 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:165 # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:125 # c:\Apache2\htdocs\account/sales/view/view_credit.php:49 -#: c:\Apache2\htdocs\account/reporting/rep105.php:96 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:251 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:316 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:164 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:167 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:127 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:49 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:96 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:70 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:222 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:293 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:279 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:173 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:197 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:174 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:49 msgid "Branch" msgstr "" # c:\Apache2\htdocs\account/reporting/rep105.php:96 -#: c:\Apache2\htdocs\account/reporting/rep105.php:96 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:96 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:70 msgid "Customer Ref" msgstr "" # c:\Apache2\htdocs\account/reporting/rep105.php:97 -#: c:\Apache2\htdocs\account/reporting/rep105.php:97 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:97 msgid "Ord Date" msgstr "" # c:\Apache2\htdocs\account/reporting/rep105.php:97 -#: c:\Apache2\htdocs\account/reporting/rep105.php:97 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:97 msgid "Del Date" msgstr "" # c:\Apache2\htdocs\account/reporting/rep105.php:97 # c:\Apache2\htdocs\account/reporting/rep401.php:60 -#: c:\Apache2\htdocs\account/reporting/rep105.php:97 -#: c:\Apache2\htdocs\account/reporting/rep401.php:60 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:97 +#: c:\Apache2\htdocs\account2/reporting/rep401.php:60 msgid "Loc" msgstr "" # c:\Apache2\htdocs\account/reporting/rep105.php:101 -#: c:\Apache2\htdocs\account/reporting/rep105.php:101 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:101 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:325 msgid "Invoiced" msgstr "" -# c:\Apache2\htdocs\account/reporting/rep105.php:102 -#: c:\Apache2\htdocs\account/reporting/rep105.php:102 -msgid " " -msgstr "" - # c:\Apache2\htdocs\account/reporting/rep105.php:108 -#: c:\Apache2\htdocs\account/reporting/rep105.php:108 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:108 msgid "Selection" msgstr "" # c:\Apache2\htdocs\account/reporting/rep105.php:113 # c:\Apache2\htdocs\account/reporting/reports_main.php:42 -#: c:\Apache2\htdocs\account/reporting/rep105.php:113 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:43 +#: c:\Apache2\htdocs\account2/reporting/rep105.php:113 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:43 msgid "Order Status Listing" msgstr "" +# c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:166 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:70 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:246 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:230 +msgid "Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/reporting/rep106.php:71 +msgid "Inv Date" +msgstr "" + +#: c:\Apache2\htdocs\account2/reporting/rep106.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:76 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:92 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:150 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:152 +msgid "Provision" +msgstr "" + +#: c:\Apache2\htdocs\account2/reporting/rep106.php:75 +msgid "Salesman" +msgstr "" + +# c:\Apache2\htdocs\account/sales/manage/sales_people.php:87 +#: c:\Apache2\htdocs\account2/reporting/rep106.php:75 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:92 +msgid "Email" +msgstr "" + +#: c:\Apache2\htdocs\account2/reporting/rep106.php:76 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:92 +msgid "Break Pt." +msgstr "" + +#: c:\Apache2\htdocs\account2/reporting/rep106.php:85 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:50 +msgid "Salesman Listing" +msgstr "" + # c:\Apache2\htdocs\account/reporting/rep107.php:59 # c:\Apache2\htdocs\account/reporting/rep107.php:84 # c:\Apache2\htdocs\account/reporting/rep107.php:95 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:32 -#: c:\Apache2\htdocs\account/reporting/rep107.php:60 -#: c:\Apache2\htdocs\account/reporting/rep107.php:86 -#: c:\Apache2\htdocs\account/reporting/rep107.php:97 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:33 +#: c:\Apache2\htdocs\account2/reporting/rep107.php:60 +#: c:\Apache2\htdocs\account2/reporting/rep107.php:89 +#: c:\Apache2\htdocs\account2/reporting/rep107.php:100 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:41 msgid "INVOICE" msgstr "" @@ -8717,203 +8799,213 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/rep107.php:95 # c:\Apache2\htdocs\account/sales/view/view_credit.php:30 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:34 -#: c:\Apache2\htdocs\account/reporting/rep107.php:91 -#: c:\Apache2\htdocs\account/reporting/rep107.php:97 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:30 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:35 +#: c:\Apache2\htdocs\account2/reporting/rep107.php:94 +#: c:\Apache2\htdocs\account2/reporting/rep107.php:100 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:43 msgid "CREDIT NOTE" msgstr "" # c:\Apache2\htdocs\account/reporting/rep108.php:72 # c:\Apache2\htdocs\account/reporting/rep108.php:99 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:44 -#: c:\Apache2\htdocs\account/reporting/rep108.php:72 -#: c:\Apache2\htdocs\account/reporting/rep108.php:99 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:45 +#: c:\Apache2\htdocs\account2/reporting/rep108.php:72 +#: c:\Apache2\htdocs\account2/reporting/rep108.php:99 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:53 msgid "STATEMENT" msgstr "" -#: c:\Apache2\htdocs\account/reporting/rep109.php:72 -#: c:\Apache2\htdocs\account/reporting/rep109.php:91 -#: c:\Apache2\htdocs\account/reporting/rep109.php:102 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:31 -#: c:\Apache2\htdocs\account/reporting/includes/doctext2.inc:31 +#: c:\Apache2\htdocs\account2/reporting/rep109.php:58 +#: c:\Apache2\htdocs\account2/reporting/rep109.php:77 +#: c:\Apache2\htdocs\account2/reporting/rep109.php:88 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:39 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext2.inc:37 msgid "QUOTE" msgstr "" # c:\Apache2\htdocs\account/reporting/rep109.php:68 # c:\Apache2\htdocs\account/reporting/rep109.php:88 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:30 -#: c:\Apache2\htdocs\account/reporting/rep109.php:74 -#: c:\Apache2\htdocs\account/reporting/rep109.php:96 -#: c:\Apache2\htdocs\account/reporting/rep109.php:102 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:31 -#: c:\Apache2\htdocs\account/reporting/includes/doctext2.inc:31 +#: c:\Apache2\htdocs\account2/reporting/rep109.php:60 +#: c:\Apache2\htdocs\account2/reporting/rep109.php:82 +#: c:\Apache2\htdocs\account2/reporting/rep109.php:88 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:39 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext2.inc:37 msgid "SALES ORDER" msgstr "" +#: c:\Apache2\htdocs\account2/reporting/rep110.php:56 +msgid "DELIVERY" +msgstr "" + +#: c:\Apache2\htdocs\account2/reporting/rep110.php:74 +#: c:\Apache2\htdocs\account2/reporting/rep110.php:79 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:37 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext2.inc:41 +msgid "DELIVERY NOTE" +msgstr "" + # c:\Apache2\htdocs\account/reporting/rep201.php:64 -#: c:\Apache2\htdocs\account/reporting/rep201.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:63 msgid "Balances in Home currency" msgstr "" # c:\Apache2\htdocs\account/reporting/rep201.php:82 # c:\Apache2\htdocs\account/reporting/reports_main.php:71 -#: c:\Apache2\htdocs\account/reporting/rep201.php:80 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:74 +#: c:\Apache2\htdocs\account2/reporting/rep201.php:80 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:84 msgid "Supplier Balances" msgstr "" # c:\Apache2\htdocs\account/reporting/rep202.php:159 -#: c:\Apache2\htdocs\account/reporting/rep202.php:163 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:163 msgid "currency" msgstr "" # c:\Apache2\htdocs\account/reporting/rep202.php:160 -#: c:\Apache2\htdocs\account/reporting/rep202.php:164 +#: c:\Apache2\htdocs\account2/reporting/rep202.php:164 msgid "Aged Supplier Analysis" msgstr "" # c:\Apache2\htdocs\account/reporting/rep203.php:87 # c:\Apache2\htdocs\account/reporting/reports_main.php:84 -#: c:\Apache2\htdocs\account/reporting/rep203.php:85 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:86 +#: c:\Apache2\htdocs\account2/reporting/rep203.php:85 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:96 msgid "Payment Report" msgstr "" # c:\Apache2\htdocs\account/reporting/rep204.php:71 -#: c:\Apache2\htdocs\account/reporting/rep204.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:70 msgid "GRN" msgstr "" # c:\Apache2\htdocs\account/reporting/rep204.php:71 -#: c:\Apache2\htdocs\account/reporting/rep204.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:70 msgid "Qty Recd" msgstr "" # c:\Apache2\htdocs\account/reporting/rep204.php:71 -#: c:\Apache2\htdocs\account/reporting/rep204.php:70 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:70 msgid "qty Inv" msgstr "" # c:\Apache2\htdocs\account/reporting/rep204.php:72 -#: c:\Apache2\htdocs\account/reporting/rep204.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:71 msgid "Std Cost" msgstr "" # c:\Apache2\htdocs\account/reporting/rep204.php:72 # c:\Apache2\htdocs\account/reporting/rep301.php:85 -#: c:\Apache2\htdocs\account/reporting/rep204.php:71 -#: c:\Apache2\htdocs\account/reporting/rep301.php:85 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:71 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:85 msgid "Value" msgstr "" # c:\Apache2\htdocs\account/reporting/rep204.php:80 # c:\Apache2\htdocs\account/reporting/reports_main.php:90 -#: c:\Apache2\htdocs\account/reporting/rep204.php:78 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:91 +#: c:\Apache2\htdocs\account2/reporting/rep204.php:78 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:101 msgid "Outstanding GRNs Report" msgstr "" # c:\Apache2\htdocs\account/reporting/rep209.php:78 # c:\Apache2\htdocs\account/reporting/rep209.php:98 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:28 -#: c:\Apache2\htdocs\account/reporting/rep209.php:79 -#: c:\Apache2\htdocs\account/reporting/rep209.php:94 -#: c:\Apache2\htdocs\account/reporting/rep209.php:99 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:29 +#: c:\Apache2\htdocs\account2/reporting/rep209.php:79 +#: c:\Apache2\htdocs\account2/reporting/rep209.php:94 +#: c:\Apache2\htdocs\account2/reporting/rep209.php:99 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:35 msgid "PURCHASE ORDER" msgstr "" # c:\Apache2\htdocs\account/reporting/rep301.php:93 # c:\Apache2\htdocs\account/reporting/reports_main.php:103 -#: c:\Apache2\htdocs\account/reporting/rep301.php:93 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:103 +#: c:\Apache2\htdocs\account2/reporting/rep301.php:93 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:113 msgid "Inventory Valuation Report" msgstr "" # c:\Apache2\htdocs\account/reporting/rep302.php:170 -#: c:\Apache2\htdocs\account/reporting/rep302.php:170 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:170 msgid "QOH" msgstr "" # c:\Apache2\htdocs\account/reporting/rep302.php:170 -#: c:\Apache2\htdocs\account/reporting/rep302.php:170 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:170 msgid "Cust Ord" msgstr "" # c:\Apache2\htdocs\account/reporting/rep302.php:170 -#: c:\Apache2\htdocs\account/reporting/rep302.php:170 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:170 msgid "Supp Ord" msgstr "" # c:\Apache2\htdocs\account/reporting/rep302.php:170 -#: c:\Apache2\htdocs\account/reporting/rep302.php:170 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:170 msgid "Sugg Ord" msgstr "" # c:\Apache2\htdocs\account/reporting/rep302.php:179 # c:\Apache2\htdocs\account/reporting/reports_main.php:108 -#: c:\Apache2\htdocs\account/reporting/rep302.php:179 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:108 +#: c:\Apache2\htdocs\account2/reporting/rep302.php:179 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:118 msgid "Inventory Planning Report" msgstr "" # c:\Apache2\htdocs\account/reporting/rep303.php:124 -#: c:\Apache2\htdocs\account/reporting/rep303.php:124 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:124 msgid "Difference" msgstr "" # c:\Apache2\htdocs\account/reporting/rep303.php:137 # c:\Apache2\htdocs\account/reporting/reports_main.php:112 -#: c:\Apache2\htdocs\account/reporting/rep303.php:137 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:112 +#: c:\Apache2\htdocs\account2/reporting/rep303.php:137 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:122 msgid "Stock Check Sheets" msgstr "" # c:\Apache2\htdocs\account/reporting/rep401.php:60 -#: c:\Apache2\htdocs\account/reporting/rep401.php:60 +#: c:\Apache2\htdocs\account2/reporting/rep401.php:60 msgid "Wrk Ctr" msgstr "" # c:\Apache2\htdocs\account/reporting/rep401.php:67 # c:\Apache2\htdocs\account/reporting/reports_main.php:119 -#: c:\Apache2\htdocs\account/reporting/rep401.php:67 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:119 +#: c:\Apache2\htdocs\account2/reporting/rep401.php:67 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:129 msgid "Bill of Material Listing" msgstr "" # c:\Apache2\htdocs\account/reporting/rep501.php:75 -#: c:\Apache2\htdocs\account/reporting/rep501.php:75 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:75 msgid "YTD" msgstr "" # c:\Apache2\htdocs\account/reporting/rep501.php:82 # c:\Apache2\htdocs\account/reporting/reports_main.php:126 -#: c:\Apache2\htdocs\account/reporting/rep501.php:82 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:126 +#: c:\Apache2\htdocs\account2/reporting/rep501.php:82 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:136 msgid "Dimension Summary" msgstr "" # c:\Apache2\htdocs\account/reporting/rep702.php:39 -#: c:\Apache2\htdocs\account/reporting/rep702.php:39 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:39 msgid "Type/Account" msgstr "" # c:\Apache2\htdocs\account/reporting/rep702.php:39 -#: c:\Apache2\htdocs\account/reporting/rep702.php:39 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:39 msgid "Date/Dim." msgstr "" # c:\Apache2\htdocs\account/reporting/rep702.php:40 -#: c:\Apache2\htdocs\account/reporting/rep702.php:40 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:40 msgid "Person/Item/Memo" msgstr "" # c:\Apache2\htdocs\account/reporting/rep702.php:49 # c:\Apache2\htdocs\account/reporting/reports_main.php:146 -#: c:\Apache2\htdocs\account/reporting/rep702.php:49 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:146 +#: c:\Apache2\htdocs\account2/reporting/rep702.php:49 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:156 msgid "List of Journal Entries" msgstr "" @@ -8921,10 +9013,10 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:155 # c:\Apache2\htdocs\account/reporting/reports_main.php:191 # c:\Apache2\htdocs\account/reporting/reports_main.php:222 -#: c:\Apache2\htdocs\account/reporting/rep704.php:30 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:155 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:193 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:226 +#: c:\Apache2\htdocs\account2/reporting/rep704.php:30 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:165 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:203 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:236 msgid "GL Account Transactions" msgstr "" @@ -8934,30 +9026,30 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:164 # c:\Apache2\htdocs\account/reporting/reports_main.php:199 # c:\Apache2\htdocs\account/reporting/reports_main.php:229 -#: c:\Apache2\htdocs\account/reporting/rep705.php:135 -#: c:\Apache2\htdocs\account/reporting/rep705.php:147 -#: c:\Apache2\htdocs\account/reporting/rep705.php:157 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:164 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:201 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:233 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:135 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:147 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:157 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:174 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:211 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:243 msgid "Year" msgstr "" # c:\Apache2\htdocs\account/reporting/rep705.php:137 # c:\Apache2\htdocs\account/reporting/rep705.php:147 # c:\Apache2\htdocs\account/reporting/rep705.php:155 -#: c:\Apache2\htdocs\account/reporting/rep705.php:141 -#: c:\Apache2\htdocs\account/reporting/rep705.php:151 -#: c:\Apache2\htdocs\account/reporting/rep705.php:159 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:141 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:151 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:159 msgid "Info" msgstr "" # c:\Apache2\htdocs\account/reporting/rep705.php:137 # c:\Apache2\htdocs\account/reporting/rep705.php:147 # c:\Apache2\htdocs\account/reporting/rep705.php:155 -#: c:\Apache2\htdocs\account/reporting/rep705.php:141 -#: c:\Apache2\htdocs\account/reporting/rep705.php:151 -#: c:\Apache2\htdocs\account/reporting/rep705.php:159 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:141 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:151 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:159 msgid "Amounts in thousands" msgstr "" @@ -8965,64 +9057,64 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:163 # c:\Apache2\htdocs\account/reporting/reports_main.php:198 # c:\Apache2\htdocs\account/reporting/reports_main.php:228 -#: c:\Apache2\htdocs\account/reporting/rep705.php:163 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:163 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:200 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:232 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:163 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:173 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:210 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:242 msgid "Annual Expense Breakdown" msgstr "" # c:\Apache2\htdocs\account/reporting/rep705.php:289 # c:\Apache2\htdocs\account/reporting/rep706.php:210 # c:\Apache2\htdocs\account/reporting/rep707.php:247 -#: c:\Apache2\htdocs\account/reporting/rep705.php:293 -#: c:\Apache2\htdocs\account/reporting/rep706.php:228 -#: c:\Apache2\htdocs\account/reporting/rep706.php:234 -#: c:\Apache2\htdocs\account/reporting/rep707.php:267 -#: c:\Apache2\htdocs\account/reporting/rep707.php:273 +#: c:\Apache2\htdocs\account2/reporting/rep705.php:284 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:229 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:235 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:267 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:273 msgid "Calculated Return" msgstr "" # c:\Apache2\htdocs\account/reporting/rep706.php:55 -#: c:\Apache2\htdocs\account/reporting/rep706.php:63 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:63 msgid "Open Balance" msgstr "" # c:\Apache2\htdocs\account/reporting/rep706.php:56 -#: c:\Apache2\htdocs\account/reporting/rep706.php:64 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:64 msgid "Close Balance" msgstr "" # c:\Apache2\htdocs\account/reporting/rep706.php:254 # c:\Apache2\htdocs\account/reporting/rep707.php:289 -#: c:\Apache2\htdocs\account/reporting/rep706.php:254 -#: c:\Apache2\htdocs\account/reporting/rep707.php:289 +#: c:\Apache2\htdocs\account2/reporting/rep706.php:255 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:289 msgid "Group" msgstr "" # c:\Apache2\htdocs\account/reporting/rep707.php:70 # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:163 -#: c:\Apache2\htdocs\account/reporting/rep707.php:78 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:172 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:78 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:172 msgid "Accumulated" msgstr "" # c:\Apache2\htdocs\account/reporting/rep707.php:70 -#: c:\Apache2\htdocs\account/reporting/rep707.php:78 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:78 msgid "Achieved %" msgstr "" # c:\Apache2\htdocs\account/reporting/rep707.php:103 # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:163 -#: c:\Apache2\htdocs\account/reporting/rep707.php:111 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:172 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:111 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:172 msgid "Budget" msgstr "" # c:\Apache2\htdocs\account/reporting/rep707.php:112 # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:163 -#: c:\Apache2\htdocs\account/reporting/rep707.php:120 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:172 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:120 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:172 msgid "Period Y-1" msgstr "" @@ -9030,79 +9122,79 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:174 # c:\Apache2\htdocs\account/reporting/reports_main.php:207 # c:\Apache2\htdocs\account/reporting/reports_main.php:235 -#: c:\Apache2\htdocs\account/reporting/rep707.php:123 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:175 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:210 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:240 +#: c:\Apache2\htdocs\account2/reporting/rep707.php:123 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:185 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:220 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:250 msgid "Profit and Loss Statement" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:140 # c:\Apache2\htdocs\account/reporting/reports_main.php:246 -#: c:\Apache2\htdocs\account/reporting/rep709.php:140 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:252 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:140 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:262 msgid "Tax Report" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:171 -#: c:\Apache2\htdocs\account/reporting/rep709.php:171 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:171 msgid "Branch Name" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:172 -#: c:\Apache2\htdocs\account/reporting/rep709.php:172 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:172 msgid "Net" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:172 # c:\Apache2\htdocs\account/taxes/tax_groups.php:210 -#: c:\Apache2\htdocs\account/reporting/rep709.php:172 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:210 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:172 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:206 msgid "Tax" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:225 -#: c:\Apache2\htdocs\account/reporting/rep709.php:225 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:225 msgid "Total Outputs" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:268 -#: c:\Apache2\htdocs\account/reporting/rep709.php:268 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:268 msgid "Total Inputs" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:275 -#: c:\Apache2\htdocs\account/reporting/rep709.php:275 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:275 msgid "Tax Rate" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:275 -#: c:\Apache2\htdocs\account/reporting/rep709.php:275 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:275 msgid "Outputs" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:275 -#: c:\Apache2\htdocs\account/reporting/rep709.php:275 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:275 msgid "Output Tax" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:275 -#: c:\Apache2\htdocs\account/reporting/rep709.php:275 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:275 msgid "Inputs" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:275 -#: c:\Apache2\htdocs\account/reporting/rep709.php:275 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:275 msgid "Input Tax" msgstr "" # c:\Apache2\htdocs\account/reporting/rep709.php:318 -#: c:\Apache2\htdocs\account/reporting/rep709.php:318 +#: c:\Apache2\htdocs\account2/reporting/rep709.php:318 msgid "No tax specified" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:7 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:14 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:14 msgid "Reports and Analysis" msgstr "" @@ -9115,15 +9207,15 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:81 # c:\Apache2\htdocs\account/reporting/reports_main.php:88 # c:\Apache2\htdocs\account/reporting/reports_main.php:97 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:24 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:29 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:53 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:60 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:67 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:77 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:82 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:89 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:97 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:24 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:29 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:58 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:70 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:77 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:87 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:92 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:99 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:107 msgid "Currency Filter" msgstr "" @@ -9135,29 +9227,29 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:217 # c:\Apache2\htdocs\account/reporting/reports_main.php:240 # c:\Apache2\htdocs\account/reporting/reports_main.php:246 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:31 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:84 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:173 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:181 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:208 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:215 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:238 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:244 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:31 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:94 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:183 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:191 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:218 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:225 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:248 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:254 msgid "Graphics" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:32 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:33 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:33 msgid "Customer Detail Listing" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:35 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:36 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:36 msgid "Activity Greater Than" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:35 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:36 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:36 msgid "Activity Less Than" msgstr "" @@ -9166,37 +9258,38 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:104 # c:\Apache2\htdocs\account/reporting/reports_main.php:109 # c:\Apache2\htdocs\account/reporting/reports_main.php:113 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:38 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:46 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:104 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:109 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:113 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:38 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:46 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:114 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:119 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:123 msgid "Inventory Category" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:39 # c:\Apache2\htdocs\account/reporting/reports_main.php:115 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:40 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:115 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:40 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:125 msgid "Show Pictures" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:46 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:47 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:47 msgid "Stock Location" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:49 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:50 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:55 msgid "Print Invoices/Credit Notes" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:51 # c:\Apache2\htdocs\account/reporting/reports_main.php:64 # c:\Apache2\htdocs\account/reporting/reports_main.php:96 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:52 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:66 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:96 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:57 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:65 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:76 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:106 msgid "To" msgstr "" @@ -9205,53 +9298,59 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:66 # c:\Apache2\htdocs\account/reporting/reports_main.php:98 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:24 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:54 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:61 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:68 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:98 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:24 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:59 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:71 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:78 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:108 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:24 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:30 msgid "Bank Account" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:54 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:55 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:60 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:66 msgid "email Customers" msgstr "" -#: c:\Apache2\htdocs\account/reporting/reports_main.php:56 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:61 msgid "Payment Link" msgstr "" +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:63 +msgid "Print Deliveries" +msgstr "" + # c:\Apache2\htdocs\account/reporting/reports_main.php:56 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:58 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:68 msgid "Print Statements" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:60 # c:\Apache2\htdocs\account/reporting/reports_main.php:67 # c:\Apache2\htdocs\account/reporting/reports_main.php:99 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:62 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:69 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:99 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:72 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:79 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:109 msgid "Email Customers" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:62 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:64 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:74 msgid "Print Sales Orders" msgstr "" -#: c:\Apache2\htdocs\account/reporting/reports_main.php:70 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:80 msgid "Print as Quote" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:77 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:79 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:89 msgid "Aged Supplier Analyses" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:94 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:94 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:104 msgid "Print Purchase Orders" msgstr "" @@ -9259,52 +9358,47 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:103 # c:\Apache2\htdocs\account/reporting/reports_main.php:108 # c:\Apache2\htdocs\account/reporting/reports_main.php:112 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:102 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:103 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:108 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:112 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:112 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:113 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:118 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:122 msgid "Inventory" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:118 # c:\Apache2\htdocs\account/reporting/reports_main.php:119 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:118 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:119 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:128 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:129 msgid "Manufactoring" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:120 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:120 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:130 msgid "From component" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:121 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:121 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:131 msgid "To component" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:127 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:127 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:137 msgid "From Dimension" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:128 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:128 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:138 msgid "To Dimension" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:129 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:129 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:139 msgid "Show Balance" msgstr "" -# c:\Apache2\htdocs\account/reporting/reports_main.php:131 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:131 -msgid "Dimension Details" -msgstr "" - # c:\Apache2\htdocs\account/reporting/reports_main.php:135 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:135 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:145 msgid "Banking" msgstr "" @@ -9327,185 +9421,212 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:235 # c:\Apache2\htdocs\account/reporting/reports_main.php:240 # c:\Apache2\htdocs\account/reporting/reports_main.php:246 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:142 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:143 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:146 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:155 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:163 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:168 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:175 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:183 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:193 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:200 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:204 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:210 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:217 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:226 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:232 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:235 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:240 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:246 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:252 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:152 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:153 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:156 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:165 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:173 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:178 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:185 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:193 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:203 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:210 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:214 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:220 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:227 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:236 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:242 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:245 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:250 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:256 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:262 msgid "General Ledger" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:144 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:144 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:154 msgid "Show Balances" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:158 # c:\Apache2\htdocs\account/reporting/reports_main.php:194 # c:\Apache2\htdocs\account/reporting/reports_main.php:225 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:158 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:196 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:229 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:168 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:206 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:239 msgid "From Account" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:159 # c:\Apache2\htdocs\account/reporting/reports_main.php:195 # c:\Apache2\htdocs\account/reporting/reports_main.php:226 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:159 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:197 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:230 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:169 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:207 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:240 msgid "To Account" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:177 # c:\Apache2\htdocs\account/reporting/reports_main.php:210 # c:\Apache2\htdocs\account/reporting/reports_main.php:238 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:178 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:213 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:243 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:188 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:223 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:253 msgid "Compare to" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:184 # c:\Apache2\htdocs\account/reporting/reports_main.php:216 # c:\Apache2\htdocs\account/reporting/reports_main.php:243 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:186 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:220 -#: c:\Apache2\htdocs\account/reporting/reports_main.php:249 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:196 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:230 +#: c:\Apache2\htdocs\account2/reporting/reports_main.php:259 msgid "Zero values" msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:24 # c:\Apache2\htdocs\account/includes/types.inc:11 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:26 -#: c:\Apache2\htdocs\account/includes/types.inc:11 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:25 +#: c:\Apache2\htdocs\account2/includes/types.inc:11 msgid "Customer Credit Note" msgstr "" +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:28 +#, php-format +msgid "Modifying Customer Credit Note #%d" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:30 +msgid "Modifying Customer Credit Note" +msgstr "" + # c:\Apache2\htdocs\account/sales/credit_note_entry.php:30 # c:\Apache2\htdocs\account/sales/sales_order_entry.php:424 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:32 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:427 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:39 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:422 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:392 msgid "There are no customers, or there are no customers with branches. Please define customers and customer branches." msgstr "" -# c:\Apache2\htdocs\account/sales/credit_note_entry.php:39 -# c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:27 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:41 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:29 -msgid "Credit Note has been processed" +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:47 +#, php-format +msgid "Credit Note # %d has been processed" msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:40 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:28 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:42 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:30 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:49 msgid "View this credit note" msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:118 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:120 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:119 msgid "The entered date for the credit note is invalid." msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:138 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:140 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:135 msgid "For credit notes created to write off the stock, a general ledger account is required to be selected." msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:139 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:141 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:136 msgid "Please select an account to write the cost of the stock off to, then click on Process again." msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:171 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:173 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:153 msgid "The quantity must be greater than zero." msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:176 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:178 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:158 msgid "The entered price is negative or invalid." msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:181 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:183 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:163 msgid "The entered discount percent is negative, greater than 100 or invalid." msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:256 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:258 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:238 msgid "Credit Note Items" msgstr "" # c:\Apache2\htdocs\account/sales/credit_note_entry.php:273 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:387 -#: c:\Apache2\htdocs\account/sales/credit_note_entry.php:275 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:389 +#: c:\Apache2\htdocs\account2/sales/credit_note_entry.php:248 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:366 msgid "Process Credit Note" msgstr "" +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:28 +#, php-format +msgid "Modifying Credit Invoice # %d." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:29 +msgid "Modifying Credit Invoice" +msgstr "" + # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:17 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:19 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:32 msgid "Credit all or part of an Invoice" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:40 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:42 -msgid "This page can only be opened if an invoice has been selected for crediting." +# c:\Apache2\htdocs\account/sales/credit_note_entry.php:39 +# c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:27 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:44 +msgid "Credit Note has been processed" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:46 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:61 +msgid "View This Credit Note" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:48 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:63 +msgid "Print This Credit Note" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:59 +msgid "Credit Note has been updated" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:72 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:74 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:98 msgid "The entered shipping cost is invalid or less than zero." msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:199 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:201 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:113 msgid "This invoice can not be credited using the automatic facility." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:259 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:261 -msgid "Crediting Invoice" +# c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:40 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:142 +msgid "This page can only be opened if an invoice has been selected for crediting." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:263 -# c:\Apache2\htdocs\account/sales/customer_invoice.php:326 -# c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:265 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:328 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 -msgid "Tax Group" +# c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:259 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:236 +msgid "Crediting Invoice" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:274 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:276 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:257 msgid "Credit Note Date" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:283 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:285 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:266 msgid "Invoiced Quantity" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:284 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:286 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:267 msgid "Credit Quantity" msgstr "" @@ -9515,17 +9636,18 @@ msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:40 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:104 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:286 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:82 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:104 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:41 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:104 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:110 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:267 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:82 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:104 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:104 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:49 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:109 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:87 msgid "Discount %" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:314 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:316 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:302 msgid "Credit Shipping Cost" msgstr "" @@ -9534,34 +9656,36 @@ msgstr "" # c:\Apache2\htdocs\account/sales/view/view_invoice.php:140 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:64 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:147 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:323 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:459 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:144 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:66 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:147 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:309 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:416 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:415 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:145 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:145 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:75 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:155 msgid "Sub-total" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:329 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:159 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:331 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:159 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:317 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:169 msgid "Credit Note Total" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:343 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:232 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:345 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:232 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:331 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:252 msgid "Credit Note Type" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:347 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:352 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1911 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:349 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:354 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2131 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:334 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:337 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2153 msgid "Items Written Off" msgstr "" @@ -9569,250 +9693,373 @@ msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:353 # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:367 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1910 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:350 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:355 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:369 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2130 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:335 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:338 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:350 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2152 msgid "Items Returned to Inventory Location" msgstr "" # c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:373 -#: c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:375 +#: c:\Apache2\htdocs\account2/sales/customer_credit_invoice.php:352 msgid "Write Off the Cost of the Items to" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:19 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:21 -msgid "Issue an Invoice and Deliver Items for a Sales Order" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:27 +#, php-format +msgid "Modifying Delivery Note # %d." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:28 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:30 -msgid "Invoice processed" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:28 +msgid "Modifying Delivery Note" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:29 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:31 -msgid "View this invoice" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:31 +msgid "Deliver Items for a Sales Order" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:34 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:36 -msgid "Issue Another Invoice" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:41 +msgid "Dispatch processed:" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:36 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:38 -msgid "Select Another Order For Invoicing" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:43 +msgid "View this dispatch" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:49 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:51 -msgid "This page can only be opened if an order has been selected. Please select an order first." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:45 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:64 +msgid "Print this delivery" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:51 -# c:\Apache2\htdocs\account/sales/customer_invoice.php:85 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:53 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:87 -msgid "Select a sales order to invoice" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:47 +msgid "View the GL Journal Entries for this Dispatch" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:79 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:81 -msgid "Select a different sales order to invoice" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:49 +msgid "Invoice This Delivery" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:80 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:82 -msgid "There are no ordered items with a quantity left to deliver. There is nothing left to invoice." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:51 +msgid "Select Another Order For Dispatch" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:86 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:88 -msgid "This order item could not be retrieved. Please select another order." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:60 +#, php-format +msgid "Delivery Note # %d has been updated." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:116 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:118 -msgid "This order has been changed or invoiced since this delivery was started to be confirmed. Processing halted." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:62 +msgid "View this delivery" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:117 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:119 -msgid "To enter and confirm this dispatch/invoice the order must be re-selected and re-read again to update the changes made by the other user." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:66 +msgid "Confirm Delivery and Invoice" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:119 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:121 -msgid "Select a sales order for confirming deliveries and invoicing" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:68 +msgid "Select A Different Delivery" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:165 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:167 -msgid "Original order for" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:82 +msgid "Select a different sales order to delivery" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:166 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:168 -msgid "has a quantity of" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:83 +msgid "This order has no items. There is nothing to delivery." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:167 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:169 -msgid "and an invoiced quantity of" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:100 +msgid "Select a different delivery" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:168 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:170 -msgid "the session shows quantity of" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:101 +msgid "This delivery has all items invoiced. There is nothing to modify." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:170 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:172 -msgid "and quantity invoice of" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:111 +msgid "This page can only be opened if an order or delivery note has been selected. Please select it first." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:187 -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:112 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:189 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:114 -msgid "The entered invoice date is invalid." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:113 +msgid "Select a Sales Order to Delivery" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:192 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:194 -msgid "The entered invoice date is not in fiscal year." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:119 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:178 +msgid "" +"Selected quantity cannot be less than quantity invoiced nor more than quantity\n" +"\t\tnot dispatched on sales order." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:197 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:199 -msgid "The entered invoice due date is invalid." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:123 +msgid "Freight cost cannot be less than zero" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:132 +msgid "The entered date of delivery is invalid." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:138 +msgid "The entered date of delivery is not in fiscal year." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:144 +msgid "The entered dead-line for invoice is invalid." msgstr "" # c:\Apache2\htdocs\account/sales/customer_invoice.php:216 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:218 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:167 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:220 msgid "The entered shipping value is not numeric." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:222 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:224 -msgid "There are no item quantities on this invoice." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:173 +msgid "There are no item quantities on this delivery note." msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:244 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:246 -msgid "The invoice cannot be processed because there is an insufficient quantity for component:" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:251 +msgid "The delivery cannot be processed because there is an insufficient quantity for item:" msgstr "" # c:\Apache2\htdocs\account/sales/customer_invoice.php:329 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:331 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:307 msgid "For Sales Order" msgstr "" # c:\Apache2\htdocs\account/sales/customer_invoice.php:341 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:343 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:316 msgid "Delivery From" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:375 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:377 -msgid "Invoice Items" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:344 +msgid "Invoice Dead-line" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:350 +msgid "Delivery Items" msgstr "" # c:\Apache2\htdocs\account/sales/customer_invoice.php:379 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:381 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:354 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:326 msgid "Tax Type" msgstr "" # c:\Apache2\htdocs\account/sales/customer_invoice.php:379 # c:\Apache2\htdocs\account/sales/view/view_receipt.php:32 # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:141 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:381 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:32 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:141 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:354 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:326 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:32 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:173 msgid "Discount" msgstr "" # c:\Apache2\htdocs\account/sales/customer_invoice.php:451 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:453 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:410 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:405 msgid "Shipping Cost" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:464 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:466 -msgid "Invoice Total" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:423 +msgid "Amount Total" msgstr "" -# c:\Apache2\htdocs\account/sales/customer_invoice.php:469 -# c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:130 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:471 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:130 -msgid "Marked items have insufficient quantities in stock." +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:428 +msgid "Marked items have insufficient quantities in stock as on day of delivery." msgstr "" # c:\Apache2\htdocs\account/sales/customer_invoice.php:473 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:475 +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:432 msgid "Action For Balance" msgstr "" +#: c:\Apache2\htdocs\account2/sales/customer_delivery.php:439 +msgid "Process Dispatch" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:27 +#, php-format +msgid "Modifying Sales Invoice # %d." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:28 +msgid "Modifying Sales Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:30 +msgid "Issue an Invoice for Delivery Note" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:32 +msgid "Issue Batch Invoice for Delivery Notes" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:45 +msgid "Selected deliveries has been processed" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:47 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:64 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:116 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:116 +msgid "View This Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:49 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:66 +msgid "Print This Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:53 +msgid "Select Another Delivery For Invoicing" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:62 +#, php-format +msgid "Sales Invoice # %d has been updated." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:68 +msgid "Select A Different Invoice to Modify" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:102 +msgid "Select a different delivery to invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:103 +msgid "There are no delivered items with a quantity left to invoice. There is nothing left to invoice." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:118 +msgid "" +"There in no delivery notes for this invoice.
\n" +"\t\tMost likely this invoice was created in Front Accounting version prior to 2.0\n" +"\t\tand therefore can not be modified." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:127 +msgid "All quantities on this invoice has been credited. There is nothing to modify on this invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:133 +msgid "This page can only be opened after delivery selection. Please select delivery to invoicing first." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:135 +msgid "Select Delivery to Invoice" +msgstr "" + +# c:\Apache2\htdocs\account/sales/customer_invoice.php:187 +# c:\Apache2\htdocs\account/sales/sales_order_entry.php:112 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:184 +msgid "The entered invoice date is invalid." +msgstr "" + +# c:\Apache2\htdocs\account/sales/customer_invoice.php:192 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:190 +msgid "The entered invoice date is not in fiscal year." +msgstr "" + +# c:\Apache2\htdocs\account/sales/customer_invoice.php:197 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:196 +msgid "The entered invoice due date is invalid." +msgstr "" + +# c:\Apache2\htdocs\account/sales/customer_invoice.php:222 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:226 +msgid "There are no item quantities on this invoice." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:290 +msgid "Delivery Notes:" +msgstr "" + +# c:\Apache2\htdocs\account/sales/customer_invoice.php:375 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:322 +msgid "Invoice Items" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:326 +msgid "This Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:329 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:250 +msgid "DN" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:334 +msgid "Credited" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:379 +msgid "Remove" +msgstr "" + +# c:\Apache2\htdocs\account/sales/customer_invoice.php:464 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:422 +msgid "Invoice Total" +msgstr "" + # c:\Apache2\htdocs\account/sales/customer_invoice.php:480 -#: c:\Apache2\htdocs\account/sales/customer_invoice.php:482 +#: c:\Apache2\htdocs\account2/sales/customer_invoice.php:433 msgid "Process Invoice" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:18 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:20 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:19 msgid "Customer Payment Entry" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:22 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:24 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:23 msgid "There are no customers defined in the system." msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:34 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:36 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:34 msgid "The customer payment has been successfully entered." msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:36 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:38 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:36 msgid "View the GL Journal Entries for this Customer Payment" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:37 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:39 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:38 msgid "Allocate this Customer Payment" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:38 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:40 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:40 msgid "Enter Another Customer Payment" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:50 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:52 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:51 msgid "The entered date is invalid. Please enter a valid date for the payment." msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:73 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:75 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:73 msgid "The entered amount is invalid or negative and cannot be processed." msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:82 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:84 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:79 msgid "The entered discount is not a valid number." msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:88 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:90 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:85 msgid "The balance of the amount and discout is zero or negative. Please enter valid amounts." msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:153 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:155 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:150 msgid "From Customer:" msgstr "" @@ -9821,235 +10068,377 @@ msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:58 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:33 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:209 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:159 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:58 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:58 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:33 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:209 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:153 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:58 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:58 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:33 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:198 msgid "Branch:" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:171 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:173 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:164 msgid "This customer account is on hold." msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:181 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:183 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:172 msgid "Customer prompt payment discount :" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:183 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:185 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:174 msgid "Date of Deposit:" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:189 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:191 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:180 msgid "Into Bank Account:" msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:211 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:213 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:201 msgid "Amount and discount are in customer's currency." msgstr "" # c:\Apache2\htdocs\account/sales/customer_payments.php:215 -#: c:\Apache2\htdocs\account/sales/customer_payments.php:217 +#: c:\Apache2\htdocs\account2/sales/customer_payments.php:205 msgid "Add Payment" msgstr "" +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:30 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:30 +msgid "Direct Sales Delivery" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:35 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:35 +msgid "Direct Sales Invoice" +msgstr "" + # c:\Apache2\htdocs\account/sales/sales_order_entry.php:21 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:23 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:40 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:40 msgid "Modifying Sales Order" msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:39 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:41 -msgid "Order has been entered." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:41 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:41 +#, php-format +msgid "Modifying Sales Order # %d" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:46 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:46 +msgid "New Sales Order Entry" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:58 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:58 +#, php-format +msgid "Order # %d has been entered." msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:43 -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:60 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:45 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:62 -msgid "Confirm Order Delivery Quantities and Produce Invoice" +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:60 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:77 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:60 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:77 +msgid "View This Order" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:62 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:79 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:62 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:79 +msgid "Print This Order" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:65 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:65 +msgid "Make Delivery Against This Order" msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:45 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:47 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:67 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:67 msgid "Enter a New Order" msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:56 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:58 -msgid "Order has been updated." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:75 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:75 +#, php-format +msgid "Order # %d has been updated." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:82 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:82 +msgid "Confirm Order Quantities and Make Delivery" msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:62 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:64 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:85 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:85 msgid "Select A Different Order" msgstr "" +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:93 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:93 +#, php-format +msgid "Delivery # %d has been entered." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:95 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:95 +msgid "View This Delivery" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:97 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:97 +msgid "Print Delivery Note" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:100 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:100 +msgid "Make Invoice Against This Delivery" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:104 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:104 +msgid "Enter a New Template Delivery" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:106 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:106 +msgid "Enter a New Delivery" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:114 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:114 +#, php-format +msgid "Invoice # %d has been entered." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:118 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:118 +msgid "Print Sales Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:122 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:122 +msgid "Enter a New Template Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:124 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:124 +msgid "Enter a New Direct Invoice" +msgstr "" + # c:\Apache2\htdocs\account/sales/sales_order_entry.php:125 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:127 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:198 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:191 msgid "The entered date is not in fiscal year" msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:134 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:136 -msgid "You must enter at least one line entry." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:203 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:195 +msgid "You must enter at least one non empty item line." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:139 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:141 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:208 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:199 msgid "You must enter the person or company to whom delivery should be made to." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:145 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:147 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:213 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:203 msgid "You should enter the street address in the box provided. Orders cannot be accepted without a valid street address." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:154 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:156 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:222 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:211 msgid "The shipping cost entered is expected to be numeric." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:160 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:162 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:227 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:215 msgid "The delivery date is invalid." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:166 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:168 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:232 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:219 msgid "The requested delivery date is before the date of the order." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:235 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:237 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:276 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:260 msgid "The item could not be updated because you are attempting to set the quantity ordered to less than 0, or the discount percent to more than 100." msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:241 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:243 -msgid "The item you attempting to modify the price for has already had some quantity invoiced at the old price. The item unit price cannot be modified retrospectively." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:280 +msgid "Price for item must be entered and can not be less than 0" msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:247 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:249 -msgid "The item you attempting to modify has had some quantity invoiced at the old discount percent. The items discount cannot be modified retrospectively." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:287 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:269 +msgid "You attempting to make the quantity ordered a quantity less than has already been delivered. The quantity delivered cannot be modified retrospectively." msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:252 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:254 -msgid "You attempting to make the quantity ordered a quantity less than has already been invoiced. The quantity delivered and invoiced cannot be modified retrospectively." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:313 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:294 +msgid "This item cannot be deleted because some of it has already been delivered." msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:280 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:282 -msgid "This item cannot be deleted because some of it has already been invoiced." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:341 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:321 +msgid "Direct delivery entry has been cancelled as requested." msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:310 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:313 -msgid "This order cannot be cancelled because some of it has already been invoiced. However, the line item quantities may be modified." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:343 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:347 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:323 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:327 +msgid "Enter a New Sales Delivery" msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:325 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:328 -msgid "This sales invoice has been cancelled as requested." +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:345 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:325 +msgid "Direct invoice entry has been cancelled as requested." msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:326 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:329 -msgid "Enter a New Sales Invoice" +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:351 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:331 +msgid "This order cannot be cancelled because some of it has already been invoiced or dispatched. However, the line item quantities may be modified." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:330 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:333 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:356 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:336 msgid "This sales order has been cancelled as requested." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:331 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:334 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:358 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:338 msgid "Enter a New Sales Order" msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:422 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:425 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:420 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:390 msgid "There are no inventory items defined in the system." msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:428 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:431 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:425 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:395 msgid "Invoice Date:" msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:429 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:432 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:426 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:396 msgid "Sales Invoice Items" msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:430 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:433 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:427 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:397 msgid "Enter Delivery Details and Confirm Invoice" msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:431 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:434 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:428 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:398 msgid "Cancel Invoice" msgstr "" +# c:\Apache2\htdocs\account/sales/sales_order_entry.php:463 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:429 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:399 +msgid "Place Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:431 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:401 +msgid "Delivery Date:" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:432 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:402 +msgid "Delivery Note Items" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:433 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:403 +msgid "Enter Delivery Details and Confirm Dispatch" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:434 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:404 +msgid "Cancel Delivery" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:435 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:405 +msgid "Place Delivery" +msgstr "" + # c:\Apache2\htdocs\account/sales/sales_order_entry.php:435 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:109 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:438 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:109 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:437 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:407 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:109 msgid "Order Date:" msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:436 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:439 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:438 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:408 msgid "Sales Order Items" msgstr "" # c:\Apache2\htdocs\account/sales/sales_order_entry.php:437 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:440 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:439 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:409 msgid "Enter Delivery Details and Confirm Order" msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:463 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:466 -msgid "Place Invoice" -msgstr "" - -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:464 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:467 -msgid "Commit Invoice Changes" +# c:\Apache2\htdocs\account/sales/sales_order_entry.php:470 +#: c:\Apache2\htdocs\account2/sales/sales_order_entry.php:442 +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:412 +msgid "Commit Order Changes" msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:465 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:468 -msgid "Edit Invoice Items" +# c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:13 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:18 +msgid "Allocate Customer Payment or Credit Note" msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:470 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:473 -msgid "Commit Order Changes" +# c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:45 +# c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:39 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:43 +msgid "The entry for one or more amounts is invalid." msgstr "" -# c:\Apache2\htdocs\account/sales/sales_order_entry.php:471 -#: c:\Apache2\htdocs\account/sales/sales_order_entry.php:474 -msgid "Edit Order Items" +# c:\Apache2\htdocs\account/purchasing/allocations/supplier_allocate.php:51 +# c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:45 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:50 +msgid "The entry for an amount to allocate was negative. A positive allocation amount is expected." msgstr "" -# c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:13 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocate.php:13 -msgid "Allocate Customer Payment or Credit Note" +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocate.php:181 +#, php-format +msgid "Allocation of %s # %d" msgstr "" # c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:12 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:12 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:12 msgid "Customer Allocations" msgstr "" @@ -10058,492 +10447,523 @@ msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:30 # c:\Apache2\htdocs\account/sales/manage/customers.php:217 # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:149 -#: c:\Apache2\htdocs\account/sales/allocations/customer_allocation_main.php:31 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:32 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:32 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:217 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:149 +#: c:\Apache2\htdocs\account2/sales/allocations/customer_allocation_main.php:31 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:32 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:33 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:197 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:148 msgid "Select a customer: " msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:109 # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:151 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:111 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:153 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:121 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:162 msgid "The selected customer has no transactions for the given dates." msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:151 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_allocation_inquiry.php:153 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_allocation_inquiry.php:163 msgid "Allocation" msgstr "" -# c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:13 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:15 -msgid "Customer Inquiry" +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:16 +msgid "Customer Transactions" msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:58 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:60 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:61 msgid "CUSTOMER ACCOUNT IS ON HOLD" msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:194 -#: c:\Apache2\htdocs\account/sales/inquiry/customer_inquiry.php:196 +#: c:\Apache2\htdocs\account2/sales/inquiry/customer_inquiry.php:206 msgid "Credit This" msgstr "" +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:19 +msgid "Search Not Invoiced Deliveries" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:24 +msgid "Search All Deliveries" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:68 +msgid "" +"For batch invoicing you should\n" +"\t\t select at least one delivery. All items must be dispatched to\n" +"\t\t the same customer branch." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:197 +msgid "Delivery #" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:198 +msgid "Due By" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_deliveries_view.php:198 +msgid "Delivery Total" +msgstr "" + # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:16 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:18 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:19 msgid "Search Outstanding Sales Orders" msgstr "" +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:24 +msgid "Search Template for Invoicing" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:29 +msgid "Select Template for Delivery" +msgstr "" + # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:21 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:23 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:34 msgid "Search All Sales Orders" msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:125 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:127 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:174 msgid "Order #" msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:125 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:127 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:174 msgid "Cust Order #" msgstr "" # c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:126 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:128 +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:175 msgid "Delivery To" msgstr "" -# c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:166 -#: c:\Apache2\htdocs\account/sales/inquiry/sales_orders_view.php:168 -msgid "Invoice" +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:181 +msgid "Tmpl" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/inquiry/sales_orders_view.php:225 +msgid "Dispatch" msgstr "" # c:\Apache2\htdocs\account/sales/manage/credit_status.php:7 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:7 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:7 msgid "Credit Status" msgstr "" # c:\Apache2\htdocs\account/sales/manage/credit_status.php:29 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:29 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:29 msgid "The credit status description cannot be empty." msgstr "" # c:\Apache2\htdocs\account/sales/manage/credit_status.php:64 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:64 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:64 msgid "Cannot delete this credit status because customer accounts have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/sales/manage/credit_status.php:89 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:89 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:89 msgid "Dissallow Invoices" msgstr "" # c:\Apache2\htdocs\account/sales/manage/credit_status.php:100 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:100 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:100 msgid "Invoice OK" msgstr "" # c:\Apache2\htdocs\account/sales/manage/credit_status.php:104 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:104 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:104 msgid "NO INVOICING" msgstr "" # c:\Apache2\htdocs\account/sales/manage/credit_status.php:118 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:118 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:118 msgid "New Credit Status" msgstr "" # c:\Apache2\htdocs\account/sales/manage/credit_status.php:138 -#: c:\Apache2\htdocs\account/sales/manage/credit_status.php:138 +#: c:\Apache2\htdocs\account2/sales/manage/credit_status.php:138 msgid "Dissallow invoicing ?" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:57 # c:\Apache2\htdocs\account/sales/manage/customers.php:7 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:7 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:7 msgid "Customers" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:30 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:30 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:29 msgid "The customer name cannot be empty." msgstr "" -# c:\Apache2\htdocs\account/sales/manage/customers.php:36 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:36 -msgid "The credit limit must be numeric." -msgstr "" - -# c:\Apache2\htdocs\account/sales/manage/customers.php:42 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:42 -msgid "The payment discount must be numeric." -msgstr "" - -# c:\Apache2\htdocs\account/sales/manage/customers.php:48 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:48 -msgid "The discount percentage must be numeric." +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:35 +msgid "The credit limit must be numeric and not less than zero." msgstr "" -# c:\Apache2\htdocs\account/sales/manage/customers.php:54 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:54 -msgid "The credit limit must be a positive number." +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:41 +msgid "The payment discount must be numeric and is expected to be less than 100% and greater than or equal to 0." msgstr "" -# c:\Apache2\htdocs\account/sales/manage/customers.php:60 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:60 -msgid "The payment discount is expected to be less than 100% and greater than or equal to 0." -msgstr "" - -# c:\Apache2\htdocs\account/sales/manage/customers.php:66 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:66 -msgid "The discount percent is expected to be less than 100 and greater than or equal to 0." +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:47 +msgid "The discount percentage must be numeric and is expected to be less than 100% and greater than or equal to 0." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:101 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:101 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:81 msgid "Customer has been updated." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:123 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:123 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:103 msgid "A new customer has been added." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:125 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:125 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:105 msgid "Add branches for this customer" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:156 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:156 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:136 msgid "This customer cannot be deleted because there are transactions that refer to it." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:166 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:166 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:146 msgid "Cannot delete the customer record because orders have been created against it." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:176 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:176 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:156 msgid "Cannot delete this customer because there are branch records set up against it." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:209 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:209 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:189 msgid "There are no sales types defined. Please define at least one sales type before adding a customer." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:218 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:218 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:198 msgid "Edit Customer" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:227 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:227 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:207 msgid "Enter a new customer" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:273 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:273 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:253 msgid "Customer Name:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:277 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:277 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:257 msgid "GSTNo:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:283 # c:\Apache2\htdocs\account/sales/manage/customers.php:287 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:283 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:287 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:263 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:267 msgid "Customer's Currency:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:296 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:296 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:276 msgid "Sales Type/Price List:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:307 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:307 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:287 msgid "Discount Percent:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:308 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:308 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:288 msgid "Prompt Payment Discount Percent:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:309 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:309 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:289 msgid "Credit Limit:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:312 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:312 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:292 msgid "Credit Status:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:320 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:320 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:300 msgid "Add New Customer" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:324 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:324 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:304 msgid "Update Customer" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customers.php:325 -#: c:\Apache2\htdocs\account/sales/manage/customers.php:325 +#: c:\Apache2\htdocs\account2/sales/manage/customers.php:305 msgid "Delete Customer" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:14 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:14 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:13 msgid "There are no customers defined in the system. Please define a customer to add customer branches." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:16 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:16 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:15 msgid "There are no sales people defined in the system. At least one sales person is required before proceeding." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:18 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:18 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:17 msgid "There are no sales areas defined in the system. At least one sales area is required before proceeding." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:20 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:20 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:19 msgid "There are no shipping companies defined in the system. At least one shipping company is required before proceeding." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:56 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:56 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:55 msgid "The Branch name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:125 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:125 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:124 msgid "Cannot delete this branch because customer transactions have been created to this branch." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:136 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:136 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:135 msgid "Cannot delete this branch because sales orders exist for it. Purge old sales orders first." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:169 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:169 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:168 msgid "Contact" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:169 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:169 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:168 msgid "Sales Person" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:169 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:169 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:168 msgid "Area" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:169 msgid "Phone No" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:169 msgid "Fax No" msgstr "" +# c:\Apache2\htdocs\account/sales/customer_credit_invoice.php:263 +# c:\Apache2\htdocs\account/sales/customer_invoice.php:326 +# c:\Apache2\htdocs\account/sales/manage/customer_branches.php:170 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:169 +msgid "Tax Group" +msgstr "" + # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:192 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:55 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:192 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:55 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:191 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:202 msgid "The selected customer does not have any branches. Please create at least one branch." msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:200 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:200 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:199 msgid "New Customer Branch" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:248 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:248 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:247 msgid "Main Branch" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:267 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:267 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:266 msgid "Name and Contact" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:269 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:269 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:268 msgid "Branch Name:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:273 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:273 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:272 msgid "Fax Number:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:275 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:275 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:274 msgid "E-mail:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:279 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:279 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:278 msgid "Sales Person:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:281 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:281 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:280 msgid "Sales Area:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:283 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:283 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:282 msgid "Default Inventory Location:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:285 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:285 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:284 msgid "Default Shipping Company:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:289 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:289 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:288 msgid "Disable this Branch:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:307 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:307 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:306 msgid "Addresses" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:309 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:309 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:308 msgid "Mailing Address:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/customer_branches.php:311 -#: c:\Apache2\htdocs\account/sales/manage/customer_branches.php:311 +#: c:\Apache2\htdocs\account2/sales/manage/customer_branches.php:310 msgid "Billing Address:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_areas.php:29 -#: c:\Apache2\htdocs\account/sales/manage/sales_areas.php:29 +#: c:\Apache2\htdocs\account2/sales/manage/sales_areas.php:29 msgid "The area description cannot be empty." msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_areas.php:63 -#: c:\Apache2\htdocs\account/sales/manage/sales_areas.php:63 +#: c:\Apache2\htdocs\account2/sales/manage/sales_areas.php:63 msgid "Cannot delete this area because customer branches have been created using this area." msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_areas.php:80 -#: c:\Apache2\htdocs\account/sales/manage/sales_areas.php:80 +#: c:\Apache2\htdocs\account2/sales/manage/sales_areas.php:80 msgid "Area Name" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_areas.php:97 -#: c:\Apache2\htdocs\account/sales/manage/sales_areas.php:97 +#: c:\Apache2\htdocs\account2/sales/manage/sales_areas.php:97 msgid "New Sales Area" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_areas.php:117 -#: c:\Apache2\htdocs\account/sales/manage/sales_areas.php:117 +#: c:\Apache2\htdocs\account2/sales/manage/sales_areas.php:117 msgid "Area Name:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_people.php:31 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:31 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:31 msgid "The sales person name cannot be empty." msgstr "" -# c:\Apache2\htdocs\account/sales/manage/sales_people.php:87 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:87 -msgid "Email" -msgstr "" - # c:\Apache2\htdocs\account/sales/manage/sales_people.php:111 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:111 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:119 msgid "New Sales Person" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_people.php:135 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:135 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:146 msgid "Sales person name:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_people.php:136 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:136 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:147 msgid "Telephone number:" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_people.php:137 -#: c:\Apache2\htdocs\account/sales/manage/sales_people.php:137 +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:148 msgid "Fax number:" msgstr "" +#: c:\Apache2\htdocs\account2/sales/manage/sales_people.php:151 +msgid "Break Pt.:" +msgstr "" + # c:\Apache2\htdocs\account/sales/manage/sales_types.php:29 -#: c:\Apache2\htdocs\account/sales/manage/sales_types.php:29 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:29 msgid "The sales type description cannot be empty." msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_types.php:65 -#: c:\Apache2\htdocs\account/sales/manage/sales_types.php:65 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:65 msgid "Cannot delete this sale type because customer transactions have been created using this sales type." msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_types.php:78 -#: c:\Apache2\htdocs\account/sales/manage/sales_types.php:78 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:78 msgid "Cannot delete this sale type because customers are currently set up to use this sales type." msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_types.php:94 -#: c:\Apache2\htdocs\account/sales/manage/sales_types.php:94 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:94 msgid "Type Name" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_types.php:111 -#: c:\Apache2\htdocs\account/sales/manage/sales_types.php:111 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:112 msgid "New Sales type" msgstr "" # c:\Apache2\htdocs\account/sales/manage/sales_types.php:127 -#: c:\Apache2\htdocs\account/sales/manage/sales_types.php:127 +#: c:\Apache2\htdocs\account2/sales/manage/sales_types.php:131 msgid "Sales Type Name:" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_credit.php:15 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:15 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:15 msgid "View Credit Note" msgstr "" +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:30 +#, php-format +msgid "CREDIT NOTE #%d" +msgstr "" + # c:\Apache2\htdocs\account/sales/view/view_credit.php:59 # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:70 # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:101 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:59 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:70 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:101 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:59 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:68 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:101 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:133 msgid "Ref" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_credit.php:116 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:116 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:117 msgid "There are no line items on this credit note." msgstr "" @@ -10552,374 +10972,405 @@ msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:168 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:65 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:152 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:129 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:146 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:168 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:67 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:152 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:129 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:147 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:147 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:201 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:76 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:160 msgid "Shipping" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_credit.php:134 -#: c:\Apache2\htdocs\account/sales/view/view_credit.php:134 +#: c:\Apache2\htdocs\account2/sales/view/view_credit.php:134 msgid "TOTAL CREDIT" msgstr "" -# c:\Apache2\htdocs\account/sales/view/view_invoice.php:7 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:14 -msgid "View Sales Invoice" +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:14 +msgid "View Sales Dispatch" msgstr "" -# c:\Apache2\htdocs\account/sales/view/view_invoice.php:30 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:34 -msgid "SALES INVOICE" +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:34 +#, php-format +msgid "DISPATCH NOTE #%d" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_invoice.php:38 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:6 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:42 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:6 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:42 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:42 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:6 msgid "Charge To" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_invoice.php:52 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:56 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:56 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:56 msgid "Charge Branch" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_invoice.php:61 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:7 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:65 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:7 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:65 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:65 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:7 msgid "Delivered To" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_invoice.php:74 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:18 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:78 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:18 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:78 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:78 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:18 msgid "Our Order No" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_invoice.php:78 # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:46 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:82 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:46 +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:82 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:82 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:43 msgid "Customer Order Ref." msgstr "" +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:87 +msgid "Dispatch Date" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:139 +msgid "There are no line items on this dispatch." +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:154 +msgid "TOTAL VALUE" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/view/view_dispatch.php:158 +msgid "This dispatch has been voided." +msgstr "" + +# c:\Apache2\htdocs\account/sales/view/view_invoice.php:7 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:14 +msgid "View Sales Invoice" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:34 +#, php-format +msgid "SALES INVOICE #%d" +msgstr "" + # c:\Apache2\htdocs\account/sales/view/view_invoice.php:134 -#: c:\Apache2\htdocs\account/sales/view/view_invoice.php:138 +#: c:\Apache2\htdocs\account2/sales/view/view_invoice.php:139 msgid "There are no line items on this invoice." msgstr "" # c:\Apache2\htdocs\account/sales/view/view_receipt.php:7 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:7 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:7 msgid "View Customer Payment" msgstr "" -# c:\Apache2\htdocs\account/sales/view/view_receipt.php:20 -# c:\Apache2\htdocs\account/includes/types.inc:12 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:20 -#: c:\Apache2\htdocs\account/includes/types.inc:12 -msgid "Customer Payment" +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:20 +#, php-format +msgid "Customer Payment #%d" msgstr "" # c:\Apache2\htdocs\account/reporting/reports_main.php:21 # c:\Apache2\htdocs\account/reporting/reports_main.php:27 # c:\Apache2\htdocs\account/sales/view/view_receipt.php:25 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:25 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:25 msgid "From Customer" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_receipt.php:26 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:26 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:26 msgid "Into Bank Account" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_receipt.php:27 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:27 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:27 msgid "Date of Deposit" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_receipt.php:42 -#: c:\Apache2\htdocs\account/sales/view/view_receipt.php:42 +#: c:\Apache2\htdocs\account2/sales/view/view_receipt.php:42 msgid "This customer payment has been voided." msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:17 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:17 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:17 msgid "View Sales Order" msgstr "" -# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:19 -# c:\Apache2\htdocs\account/includes/types.inc:23 -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:7 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:19 -#: c:\Apache2\htdocs\account/includes/types.inc:23 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:7 -msgid "Sales Order" +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:19 +#, php-format +msgid "Sales Order #%d" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:33 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:33 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:30 msgid "Order Information" msgstr "" -# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:37 -# c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1854 -# c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1867 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:37 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2074 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2087 -msgid "Credit Notes" -msgstr "" - # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:43 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:43 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:40 msgid "Customer Name" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:47 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:47 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:44 msgid "Deliver To Branch" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:50 # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:19 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:50 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:19 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:47 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:19 msgid "Ordered On" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:51 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:51 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:48 msgid "Requested Delivery" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:54 # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:14 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:228 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:54 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:14 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:228 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:51 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:14 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:230 msgid "Order Currency" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:55 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:55 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:52 msgid "Deliver From Location" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:58 # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:51 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:257 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:58 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:51 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:257 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:55 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:51 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:259 msgid "Delivery Address" msgstr "" # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:60 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:60 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:57 msgid "Telephone" msgstr "" +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:66 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2091 +msgid "Delivery Notes" +msgstr "" + +# c:\Apache2\htdocs\account/applications/customers.php:14 +# c:\Apache2\htdocs\account/sales/sales_order_entry.php:25 +# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:35 +# c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1851 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:99 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2087 +msgid "Sales Invoices" +msgstr "" + +# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:37 +# c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1854 +# c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1867 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:130 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2090 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2107 +msgid "Credit Notes" +msgstr "" + # c:\Apache2\htdocs\account/sales/view/view_sales_order.php:141 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:141 +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:173 msgid "Quantity Delivered" msgstr "" -# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:170 -#: c:\Apache2\htdocs\account/sales/view/view_sales_order.php:170 -msgid "Total Excluding Tax" +#: c:\Apache2\htdocs\account2/sales/view/view_sales_order.php:203 +msgid "Total Order Value" +msgstr "" + +#: c:\Apache2\htdocs\account2/sql/sales_order_entry.php:264 +msgid "Price for item must be entered and can not be less then 0" msgstr "" # c:\Apache2\htdocs\account/taxes/item_tax_types.php:34 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:34 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:34 msgid "The item tax type description cannot be empty." msgstr "" # c:\Apache2\htdocs\account/taxes/item_tax_types.php:78 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:78 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:79 msgid "Cannot delete this item tax type because items have been created referring to it." msgstr "" # c:\Apache2\htdocs\account/taxes/item_tax_types.php:103 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:103 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:104 msgid "Tax exempt" msgstr "" # c:\Apache2\htdocs\account/taxes/item_tax_types.php:132 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:132 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:134 msgid "New Item Tax type" msgstr "" # c:\Apache2\htdocs\account/taxes/item_tax_types.php:165 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:165 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:167 msgid "Is Fully Tax-exempt:" msgstr "" # c:\Apache2\htdocs\account/taxes/item_tax_types.php:172 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:172 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:174 msgid "Select which taxes this item tax type is exempt from." msgstr "" # c:\Apache2\htdocs\account/taxes/item_tax_types.php:175 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:175 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:177 msgid "Tax Name" msgstr "" +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:177 +msgid "Rate" +msgstr "" + # c:\Apache2\htdocs\account/taxes/item_tax_types.php:175 -#: c:\Apache2\htdocs\account/taxes/item_tax_types.php:175 +#: c:\Apache2\htdocs\account2/taxes/item_tax_types.php:177 msgid "Is exempt" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:27 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:27 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:27 msgid "There are no tax types defined. Define tax types before defining tax groups." msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:40 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:40 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:40 msgid "The tax group name cannot be empty." msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:51 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:51 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:52 msgid "An entered tax rate is invalid or less than zero." msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:108 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:108 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:105 msgid "Cannot delete this tax group because customer branches been created referring to it." msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:117 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:117 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:114 msgid "Cannot delete this tax group because suppliers been created referring to it." msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:143 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:143 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:140 msgid "Tax Shipping" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:171 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:171 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:168 msgid "New Tax Group" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:203 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:203 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:199 msgid "Tax Shipping:" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:207 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:207 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:203 msgid "Select the taxes that are included in this group." msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:210 # c:\Apache2\htdocs\account/taxes/tax_types.php:98 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:210 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:98 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:206 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:95 msgid "Default Rate (%)" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_groups.php:210 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:210 +#: c:\Apache2\htdocs\account2/taxes/tax_groups.php:206 msgid "Rate (%)" msgstr "" -# c:\Apache2\htdocs\account/taxes/tax_groups.php:210 -#: c:\Apache2\htdocs\account/taxes/tax_groups.php:210 -msgid "Include in Price" -msgstr "" - # c:\Apache2\htdocs\account/taxes/tax_types.php:7 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:7 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:6 msgid "Tax Types" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:26 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:26 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:25 msgid "The tax type name cannot be empty." msgstr "" -# c:\Apache2\htdocs\account/taxes/tax_types.php:31 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:31 -msgid "The default tax rate must be numeric." -msgstr "" - -# c:\Apache2\htdocs\account/taxes/tax_types.php:36 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:36 -msgid "The default tax rate cannot be less than zero." +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:31 +msgid "The default tax rate must be numeric and not less than zero." msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:72 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:72 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:68 msgid "Cannot delete this tax type because tax groups been created referring to it." msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:99 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:99 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:96 msgid "Sales GL Account" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:99 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:99 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:96 msgid "Purchasing GL Account" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:127 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:127 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:120 msgid "New Tax Type" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:150 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:150 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:142 msgid "Default Rate:" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:152 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:152 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:144 msgid "Sales GL Account:" msgstr "" # c:\Apache2\htdocs\account/taxes/tax_types.php:153 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:153 +#: c:\Apache2\htdocs\account2/taxes/tax_types.php:145 msgid "Purchasing GL Account:" msgstr "" -# c:\Apache2\htdocs\account/taxes/tax_types.php:155 -#: c:\Apache2\htdocs\account/taxes/tax_types.php:155 -msgid "Outstanding:" -msgstr "" - # c:\Apache2\htdocs\account/themes/aqua/renderer.php:6 # c:\Apache2\htdocs\account/themes/cool/renderer.php:7 # c:\Apache2\htdocs\account/themes/default/renderer.php:7 -#: c:\Apache2\htdocs\account/themes/aqua/renderer.php:6 -#: c:\Apache2\htdocs\account/themes/cool/renderer.php:7 -#: c:\Apache2\htdocs\account/themes/default/renderer.php:7 +#: c:\Apache2\htdocs\account2/themes/aqua/renderer.php:6 +#: c:\Apache2\htdocs\account2/themes/cool/renderer.php:7 +#: c:\Apache2\htdocs\account2/themes/default/renderer.php:7 +#: c:\Apache2\htdocs\account2/includes/page/header.inc:18 msgid "Main Menu" msgstr "" # c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:17 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:17 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:17 msgid "There are no transactions for this dimension." msgstr "" # c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:21 -#: c:\Apache2\htdocs\account/dimensions/includes/dimensions_ui.inc:21 +#: c:\Apache2\htdocs\account2/dimensions/includes/dimensions_ui.inc:21 msgid "Transactions for this Dimension" msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:48 # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:48 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:48 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:48 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:48 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:48 msgid "Work Order:" msgstr "" @@ -10927,32 +11378,32 @@ msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:54 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:19 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:186 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:54 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:54 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:19 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:186 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:54 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:54 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:19 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:178 msgid "Customer:" msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:228 # c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:175 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_deposit_ui.inc:228 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:176 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_deposit_ui.inc:228 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:179 msgid "Add item" msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:27 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_journal_ui.inc:27 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_journal_ui.inc:27 msgid "Reverse Transaction:" msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:40 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:40 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:40 msgid "Pay To:" msgstr "" # c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:45 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:45 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:45 msgid "To the Order of:" msgstr "" @@ -10963,23 +11414,23 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:325 # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:217 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:332 -#: c:\Apache2\htdocs\account/gl/includes/ui/gl_payment_ui.inc:226 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:163 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:147 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:130 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:333 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:217 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:341 +#: c:\Apache2\htdocs\account2/gl/includes/ui/gl_payment_ui.inc:229 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:165 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:147 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:130 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:334 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:237 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:372 msgid "Add Item" msgstr "" # c:\Apache2\htdocs\account/includes/errors.inc:8 -#: c:\Apache2\htdocs\account/includes/errors.inc:8 +#: c:\Apache2\htdocs\account2/includes/errors.inc:8 msgid "DATABASE ERROR :" msgstr "" # c:\Apache2\htdocs\account/includes/errors.inc:33 -#: c:\Apache2\htdocs\account/includes/errors.inc:33 +#: c:\Apache2\htdocs\account2/includes/errors.inc:33 msgid "The entered information is a duplicate. Please go back and enter different values." msgstr "" @@ -10987,195 +11438,208 @@ msgstr "" # c:\Apache2\htdocs\account/includes/session.inc:39 # c:\Apache2\htdocs\account/includes/session.inc:66 # c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:64 -#: c:\Apache2\htdocs\account/includes/errors.inc:34 -#: c:\Apache2\htdocs\account/includes/session.inc:39 -#: c:\Apache2\htdocs\account/includes/session.inc:66 -#: c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:64 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:633 +#: c:\Apache2\htdocs\account2/includes/errors.inc:34 +#: c:\Apache2\htdocs\account2/includes/session.inc:58 +#: c:\Apache2\htdocs\account2/includes/session.inc:85 +#: c:\Apache2\htdocs\account2/includes/ui/ui_controls.inc:66 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:660 msgid "Back" msgstr "" # c:\Apache2\htdocs\account/includes/session.inc:35 -#: c:\Apache2\htdocs\account/includes/session.inc:35 +#: c:\Apache2\htdocs\account2/includes/session.inc:54 msgid "Incorrect Password" msgstr "" # c:\Apache2\htdocs\account/includes/session.inc:36 -#: c:\Apache2\htdocs\account/includes/session.inc:36 +#: c:\Apache2\htdocs\account2/includes/session.inc:55 msgid "The user and password combination is not valid for the system." msgstr "" # c:\Apache2\htdocs\account/includes/session.inc:38 -#: c:\Apache2\htdocs\account/includes/session.inc:38 +#: c:\Apache2\htdocs\account2/includes/session.inc:57 msgid "If you are not an authorized user, please contact your system administrator to obtain an account to enable you to use the system." msgstr "" # c:\Apache2\htdocs\account/includes/session.inc:53 -#: c:\Apache2\htdocs\account/includes/session.inc:53 +#: c:\Apache2\htdocs\account2/includes/session.inc:72 msgid "Security settings have not been defined for your user account." msgstr "" # c:\Apache2\htdocs\account/includes/session.inc:54 -#: c:\Apache2\htdocs\account/includes/session.inc:54 +#: c:\Apache2\htdocs\account2/includes/session.inc:73 msgid "Please contact your system administrator." msgstr "" # c:\Apache2\htdocs\account/includes/session.inc:62 -#: c:\Apache2\htdocs\account/includes/session.inc:62 +#: c:\Apache2\htdocs\account2/includes/session.inc:81 msgid "Access denied" msgstr "" # c:\Apache2\htdocs\account/includes/session.inc:64 -#: c:\Apache2\htdocs\account/includes/session.inc:64 +#: c:\Apache2\htdocs\account2/includes/session.inc:83 msgid "The security settings on your account do not permit you to access this function" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:7 -#: c:\Apache2\htdocs\account/includes/types.inc:7 +#: c:\Apache2\htdocs\account2/includes/types.inc:7 msgid "Bank Payment" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:8 -#: c:\Apache2\htdocs\account/includes/types.inc:8 +#: c:\Apache2\htdocs\account2/includes/types.inc:8 msgid "Bank Deposit" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:9 -#: c:\Apache2\htdocs\account/includes/types.inc:9 +#: c:\Apache2\htdocs\account2/includes/types.inc:9 msgid "Funds Transfer" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:10 # c:\Apache2\htdocs\account/reporting/includes/form_types.inc:5 -#: c:\Apache2\htdocs\account/includes/types.inc:10 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:5 +#: c:\Apache2\htdocs\account2/includes/types.inc:10 msgid "Sales Invoice" msgstr "" +# c:\Apache2\htdocs\account/sales/view/view_receipt.php:20 +# c:\Apache2\htdocs\account/includes/types.inc:12 +#: c:\Apache2\htdocs\account2/includes/types.inc:12 +msgid "Customer Payment" +msgstr "" + +#: c:\Apache2\htdocs\account2/includes/types.inc:13 +msgid "Delivery Note" +msgstr "" + # c:\Apache2\htdocs\account/includes/types.inc:13 -#: c:\Apache2\htdocs\account/includes/types.inc:13 +#: c:\Apache2\htdocs\account2/includes/types.inc:14 msgid "Location Transfer" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:14 -#: c:\Apache2\htdocs\account/includes/types.inc:14 +#: c:\Apache2\htdocs\account2/includes/types.inc:15 msgid "Inventory Adjustment" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:16 -#: c:\Apache2\htdocs\account/includes/types.inc:16 +#: c:\Apache2\htdocs\account2/includes/types.inc:17 msgid "Supplier Invoice" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:18 -#: c:\Apache2\htdocs\account/includes/types.inc:18 +#: c:\Apache2\htdocs\account2/includes/types.inc:19 msgid "Supplier Payment" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:20 # c:\Apache2\htdocs\account/includes/types.inc:138 # c:\Apache2\htdocs\account/reporting/includes/form_types.inc:11 -#: c:\Apache2\htdocs\account/includes/types.inc:20 -#: c:\Apache2\htdocs\account/includes/types.inc:138 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:11 +#: c:\Apache2\htdocs\account2/includes/types.inc:21 +#: c:\Apache2\htdocs\account2/includes/types.inc:144 msgid "Work Order" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:21 # c:\Apache2\htdocs\account/reporting/includes/form_types.inc:12 -#: c:\Apache2\htdocs\account/includes/types.inc:21 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:12 +#: c:\Apache2\htdocs\account2/includes/types.inc:22 msgid "Work Order Issue" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:22 # c:\Apache2\htdocs\account/reporting/includes/form_types.inc:13 -#: c:\Apache2\htdocs\account/includes/types.inc:22 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:13 +#: c:\Apache2\htdocs\account2/includes/types.inc:23 msgid "Work Order Production" msgstr "" +# c:\Apache2\htdocs\account/sales/view/view_sales_order.php:19 +# c:\Apache2\htdocs\account/includes/types.inc:23 +# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:7 +#: c:\Apache2\htdocs\account2/includes/types.inc:24 +msgid "Sales Order" +msgstr "" + # c:\Apache2\htdocs\account/includes/types.inc:24 -#: c:\Apache2\htdocs\account/includes/types.inc:24 +#: c:\Apache2\htdocs\account2/includes/types.inc:25 msgid "Cost Update" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:107 -#: c:\Apache2\htdocs\account/includes/types.inc:107 +#: c:\Apache2\htdocs\account2/includes/types.inc:113 msgid "Savings Account" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:108 -#: c:\Apache2\htdocs\account/includes/types.inc:108 +#: c:\Apache2\htdocs\account2/includes/types.inc:114 msgid "Chequing Account" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:109 -#: c:\Apache2\htdocs\account/includes/types.inc:109 +#: c:\Apache2\htdocs\account2/includes/types.inc:115 msgid "Credit Account" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:110 -#: c:\Apache2\htdocs\account/includes/types.inc:110 +#: c:\Apache2\htdocs\account2/includes/types.inc:116 msgid "Cash Account" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:251 -#: c:\Apache2\htdocs\account/includes/types.inc:251 +#: c:\Apache2\htdocs\account2/includes/types.inc:257 msgid "Assemble" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:252 -#: c:\Apache2\htdocs\account/includes/types.inc:252 +#: c:\Apache2\htdocs\account2/includes/types.inc:258 msgid "Unassemble" msgstr "" # c:\Apache2\htdocs\account/includes/types.inc:253 -#: c:\Apache2\htdocs\account/includes/types.inc:253 +#: c:\Apache2\htdocs\account2/includes/types.inc:259 msgid "Advanced Manufacture" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:51 -#: c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:51 +#: c:\Apache2\htdocs\account2/includes/ui/ui_controls.inc:53 msgid "You should automatically be forwarded." msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:52 -#: c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:52 +#: c:\Apache2\htdocs\account2/includes/ui/ui_controls.inc:54 msgid "If this does not happen" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:52 -#: c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:52 +#: c:\Apache2\htdocs\account2/includes/ui/ui_controls.inc:54 msgid "click here" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:52 -#: c:\Apache2\htdocs\account/includes/ui/ui_controls.inc:52 +#: c:\Apache2\htdocs\account2/includes/ui/ui_controls.inc:54 msgid "to continue" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:28 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:32 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:71 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:75 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:65 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:69 msgid "All Suppliers" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:103 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:107 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:185 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:189 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:172 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:176 msgid "All Customers" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:186 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:267 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:254 msgid "All Branches" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:256 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:337 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:327 msgid "All Locations" msgstr "" @@ -11187,79 +11651,76 @@ msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:757 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:770 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:799 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:668 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:672 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:742 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:746 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:857 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:888 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1018 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:655 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:659 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:730 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:734 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:848 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:879 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:937 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:941 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:998 msgid "All Items" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:819 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1038 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:1019 msgid "Purchased" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:820 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1039 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:1020 msgid "Service" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1160 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1164 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1379 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1383 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:1367 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:1371 msgid "All Work Centres" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1850 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1863 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2070 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2083 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2086 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2103 msgid "All Types" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1852 # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1865 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2072 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2085 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2088 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2105 msgid "Overdue Invoices" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1864 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2084 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2104 msgid "Invoices" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1868 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2088 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2108 msgid "Overdue Credit Notes" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1883 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2103 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2124 msgid "Automatically put balance on back order" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:1884 -#: c:\Apache2\htdocs\account/includes/ui/ui_lists.inc:2104 +#: c:\Apache2\htdocs\account2/includes/ui/ui_lists.inc:2125 msgid "Cancel any quantites not delivered" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_msgs.inc:59 -#: c:\Apache2\htdocs\account/includes/ui/ui_msgs.inc:59 +#: c:\Apache2\htdocs\account2/includes/ui/ui_msgs.inc:59 msgid "in units of : " msgstr "" -# c:\Apache2\htdocs\account/includes/ui/ui_view.inc:51 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:51 -msgid "GL" -msgstr "" - # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:301 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:303 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:313 msgid "Date Voided:" msgstr "" @@ -11267,120 +11728,120 @@ msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:408 # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:426 # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:66 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:394 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:410 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:428 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:68 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:404 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:420 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:438 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:77 msgid "Included" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:463 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:465 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:475 msgid "Total Amount" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:485 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:487 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:497 msgid "Total Allocated:" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:489 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:491 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:501 msgid "Left to Allocate:" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:650 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "January" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:650 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "February" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:650 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "March" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:650 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "April" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:650 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "May" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:650 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "June" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:651 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "July" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:651 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "August" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:651 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "September" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:651 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "October" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:651 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "November" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:651 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:631 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:658 msgid "December" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:652 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:632 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:659 msgid "Su" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:652 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:632 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:659 msgid "Mo" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:652 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:632 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:659 msgid "Tu" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:652 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:632 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:659 msgid "We" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:652 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:632 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:659 msgid "Th" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:652 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:632 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:659 msgid "Fr" msgstr "" # c:\Apache2\htdocs\account/includes/ui/ui_view.inc:652 -#: c:\Apache2\htdocs\account/includes/ui/ui_view.inc:632 +#: c:\Apache2\htdocs\account2/includes/ui/ui_view.inc:659 msgid "Sa" msgstr "" @@ -11388,132 +11849,138 @@ msgstr "" # c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:17 # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:17 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:17 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:17 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:17 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:17 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:17 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:17 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:17 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:17 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:15 msgid "For Part :" msgstr "" # c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:53 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:53 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:53 msgid "Detail:" msgstr "" # c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:58 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:58 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:58 msgid "Positive Adjustment" msgstr "" # c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:58 -#: c:\Apache2\htdocs\account/inventory/includes/item_adjustments_ui.inc:58 +#: c:\Apache2\htdocs\account2/inventory/includes/item_adjustments_ui.inc:58 msgid "Negative Adjustment" msgstr "" # c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:38 -#: c:\Apache2\htdocs\account/inventory/includes/stock_transfers_ui.inc:38 +#: c:\Apache2\htdocs\account2/inventory/includes/stock_transfers_ui.inc:38 msgid "To Location:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:15 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:15 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:15 msgid "The bill of material for this item is empty." msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:22 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:54 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:22 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:54 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:22 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:54 msgid "Total Cost" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:70 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:70 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:70 msgid "There are no Requirements for this Order." msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:77 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:77 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:77 msgid "Unit Quantity" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:77 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:77 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:77 msgid "Total Quantity" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:77 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:77 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:77 msgid "Units Issued" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:77 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:77 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:77 msgid "On Hand" msgstr "" +# c:\Apache2\htdocs\account/sales/customer_invoice.php:469 +# c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:130 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:130 +msgid "Marked items have insufficient quantities in stock." +msgstr "" + # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:144 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:144 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:144 msgid "There are no Productions for this Order." msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:187 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:187 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:187 msgid "There are no Issues for this Order." msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:223 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:223 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:223 msgid "There are no Payments for this Order." msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:268 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:272 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:323 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:268 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:272 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:323 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:268 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:272 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:323 msgid "Manufactured Item" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:269 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:273 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:324 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:269 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:273 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:324 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:269 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:273 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:324 msgid "Into Location" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:303 # c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:348 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:303 -#: c:\Apache2\htdocs\account/manufacturing/includes/manufacturing_ui.inc:348 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:303 +#: c:\Apache2\htdocs\account2/manufacturing/includes/manufacturing_ui.inc:348 msgid "This work order is closed." msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:150 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:150 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:150 msgid "Return Items to Location" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:150 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:150 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:150 msgid "Issue Items to Work order" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:153 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:153 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:153 msgid "To Work Centre:" msgstr "" # c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:155 -#: c:\Apache2\htdocs\account/manufacturing/includes/work_order_issue_ui.inc:155 +#: c:\Apache2\htdocs\account2/manufacturing/includes/work_order_issue_ui.inc:155 msgid "Issue Date:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:16 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:16 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:16 msgid "For Purchase Order" msgstr "" @@ -11521,511 +11988,494 @@ msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:44 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:243 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:248 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:32 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:44 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:243 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:248 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:32 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:44 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:245 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:250 msgid "Deliver Into Location" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:38 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:38 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:38 msgid "Date Items Received" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:54 # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:261 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/grn_ui.inc:54 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:261 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/grn_ui.inc:54 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:263 msgid "Order Comments" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:79 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:79 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:77 msgid "Supplier's Ref.:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:91 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:91 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:89 msgid "Terms:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:130 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:130 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:124 msgid "Sub-total:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:138 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:138 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:132 msgid "Invoice Total:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:140 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:140 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:134 msgid "Credit Note Total:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:179 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:179 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:173 msgid "GL Items for this Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:181 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:181 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:175 msgid "GL Items for this Credit Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:287 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:287 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:281 msgid "Received Items Charged on this Invoice" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:289 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:289 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:283 msgid "Received Items Credited on this Note" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:302 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/invoice_ui.inc:302 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/invoice_ui.inc:296 msgid "Delivery Sequence #" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:80 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:80 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:80 msgid "Supplier Currency:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:111 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:111 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:111 msgid "Supplier's Reference:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:119 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:119 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:119 msgid "Receive Into:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:123 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:123 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:123 msgid "Get Address" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:146 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:146 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:146 msgid "The default stock location set up for this user is not a currently defined stock location. Your system administrator needs to amend your user record." msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:150 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:150 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:150 msgid "Deliver to:" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:163 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:163 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:163 msgid "Order Items" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:168 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:168 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:168 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:396 msgid "Required Delivery Date" msgstr "" # c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:209 -#: c:\Apache2\htdocs\account/purchasing/includes/ui/po_ui.inc:209 +#: c:\Apache2\htdocs\account2/purchasing/includes/ui/po_ui.inc:211 msgid "Total Excluding Shipping/Tax" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:4 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:4 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:4 msgid "Cust no" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:13 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:13 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:13 msgid "Your Ref" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:14 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:14 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:14 msgid "Our Ref." msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:15 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:15 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:15 msgid "Your VAT no." msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:16 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:16 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:16 msgid "Our VAT No." msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:19 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:19 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:19 msgid "Domicile" msgstr "" +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:22 +msgid "All amounts stated in" +msgstr "" + # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:20 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:20 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:25 msgid "Please quote Invoice no. when paying. All amounts stated in" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:22 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:22 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:28 msgid "Phone/Fax/Email" msgstr "" -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:25 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:55 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:31 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:63 msgid "You can pay through" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:45 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:46 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:54 msgid "DueDate" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:51 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:52 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:60 msgid "Dear Sirs" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:52 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:53 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:61 msgid "Attached you will find " msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:53 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:54 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:62 msgid "Kindest regards" msgstr "" -# c:\Apache2\htdocs\account/reporting/includes/doctext.inc:57 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:59 -msgid "Invoice no." +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:67 +msgid "Delivery Note No." +msgstr "" + +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:67 +msgid "Invoice No." msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:58 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:60 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:69 msgid "Order no." msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:69 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:71 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:80 msgid "TOTAL ORDER EX VAT" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:70 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:72 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:81 msgid "TOTAL PO EX VAT" msgstr "" +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:82 +msgid "TOTAL DELIVERY INCL. VAT" +msgstr "" + # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:74 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:76 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:86 msgid "Outstanding Transactions" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:77 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:79 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:89 msgid "Statement" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/doctext.inc:78 -#: c:\Apache2\htdocs\account/reporting/includes/doctext.inc:80 +#: c:\Apache2\htdocs\account2/reporting/includes/doctext.inc:90 msgid "as of" msgstr "" -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:6 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:6 -msgid "Sales Credit Note" -msgstr "" - -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:15 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:15 -msgid "Cheque Withdrawal" -msgstr "" - -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:16 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:16 -msgid "Cheque Deposit" -msgstr "" - -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:18 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:18 -msgid "Cash Withdrawal" -msgstr "" - -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:19 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:19 -msgid "Cash Deposit" -msgstr "" - -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:21 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:21 -msgid "Inventory Release" -msgstr "" - -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:22 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:22 -msgid "Inventory Add" -msgstr "" - -# c:\Apache2\htdocs\account/reporting/includes/form_types.inc:23 -#: c:\Apache2\htdocs\account/reporting/includes/form_types.inc:23 -msgid "Inventory Return" -msgstr "" - # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:166 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:166 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:166 msgid "Active" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:210 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:210 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:210 msgid "Print Out Date" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:217 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:217 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:217 msgid "Fiscal Year" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:244 # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:316 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:244 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:316 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:244 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:316 msgid "Page" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:656 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:694 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:702 msgid "sent to" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:658 -#: c:\Apache2\htdocs\account/reporting/includes/pdf_report.inc:696 +#: c:\Apache2\htdocs\account2/reporting/includes/pdf_report.inc:704 msgid "NOT sent to" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:30 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:30 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:30 msgid "Report Classes:" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:35 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:35 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:35 msgid "Reports For Class: " msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:112 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:112 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:112 msgid "Display: " msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:123 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:123 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:123 msgid "No Currency Filter" msgstr "" -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:168 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:168 msgid "No Payment Link" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:176 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:176 msgid "No Graphics" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:176 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:176 msgid "Vertical bars" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:176 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:176 msgid "Horizontal bars" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:176 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:176 msgid "Dots" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:176 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:176 msgid "Lines" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:176 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:176 msgid "Pie" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:176 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:176 msgid "Donut" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:167 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:180 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:180 msgid "No Type Filter" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:177 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:190 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:190 msgid "No Account Group Filter" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:194 # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:202 # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:210 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:207 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:215 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:223 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:207 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:215 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:223 msgid "No Dimension Filter" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:216 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:229 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:229 msgid "No Customer Filter" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:233 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:237 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:237 msgid "No Supplier Filter" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:225 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:242 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:242 msgid "IV" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:226 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:243 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:243 msgid "CN" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:250 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:267 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:277 msgid "No Location Filter" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:254 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:271 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:281 msgid "No Category Filter" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:262 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:279 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:289 msgid "No Area Filter" msgstr "" # c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:266 -#: c:\Apache2\htdocs\account/reporting/includes/reports_classes.inc:283 +#: c:\Apache2\htdocs\account2/reporting/includes/reports_classes.inc:293 msgid "No Sales Folk Filter" msgstr "" -# c:\Apache2\htdocs\account/sales/includes/db/cust_trans_details_db.inc:69 -#: c:\Apache2\htdocs\account/sales/includes/db/cust_trans_details_db.inc:69 -msgid "Write off" -msgstr "" - -#: c:\Apache2\htdocs\account/sales/includes/db/sales_order_db.inc:127 -#: c:\Apache2\htdocs\account/sales/includes/db/sales_order_db.inc:237 +#: c:\Apache2\htdocs\account2/sales/includes/db/sales_order_db.inc:125 +#: c:\Apache2\htdocs\account2/sales/includes/db/sales_order_db.inc:265 msgid "Stocks below Re-Order Level at " msgstr "" -#: c:\Apache2\htdocs\account/sales/includes/db/sales_order_db.inc:130 -#: c:\Apache2\htdocs\account/sales/includes/db/sales_order_db.inc:240 +#: c:\Apache2\htdocs\account2/sales/includes/db/sales_order_db.inc:128 +#: c:\Apache2\htdocs\account2/sales/includes/db/sales_order_db.inc:270 msgid "Below" msgstr "" -#: c:\Apache2\htdocs\account/sales/includes/db/sales_order_db.inc:131 -#: c:\Apache2\htdocs\account/sales/includes/db/sales_order_db.inc:241 +#: c:\Apache2\htdocs\account2/sales/includes/db/sales_order_db.inc:129 +#: c:\Apache2\htdocs\account2/sales/includes/db/sales_order_db.inc:271 msgid "Please reorder" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:57 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:227 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:57 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:227 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:61 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:244 msgid "Customer Currency:" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:70 # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:236 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:70 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:236 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:74 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:274 msgid "Customer Discount:" msgstr "" +# c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:378 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:89 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:428 +msgid "Shipping Company:" +msgstr "" + # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:240 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:240 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:260 msgid "Items Returned to Location" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:246 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_credit_ui.inc:246 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_credit_ui.inc:266 msgid "Write off the cost of the items to" msgstr "" +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:15 +msgid "This item is already on this order. You have been warned." +msgstr "" + # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:51 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:51 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:34 msgid "The selected customer account is currently on hold. Please contact the credit control personnel to discuss." msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:82 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:82 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:56 msgid "The selected customer and branch are not valid, or the customer does not have any branches." msgstr "" +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:146 +msgid "Total Excluding Shipping" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:272 +msgid "Price List:" +msgstr "" + +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:385 +msgid "Delivery Details" +msgstr "" + # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:346 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:355 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:390 msgid "Invoice Delivery Details" msgstr "" -# c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:350 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:360 -msgid "Order Delivery Details" +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:391 +msgid "Invoice before" msgstr "" -# c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:360 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:361 -msgid "Required Delivery Date:" +# c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:350 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:395 +msgid "Order Delivery Details" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:358 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:369 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:407 msgid "Deliver from Location:" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:362 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:373 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:411 msgid "Deliver To:" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:365 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:376 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:414 msgid "Contact Phone Number:" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:373 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:384 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:422 msgid "Customer Reference:" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:374 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:385 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:423 msgid "Comments:" msgstr "" # c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:376 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:387 +#: c:\Apache2\htdocs\account2/sales/includes/ui/sales_order_ui.inc:425 msgid "Shipping Charge:" msgstr "" -# c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:378 -#: c:\Apache2\htdocs\account/sales/includes/ui/sales_order_ui.inc:389 -msgid "Shipping Company:" -msgstr "" - diff --git a/manufacturing/includes/db/work_centres_db.inc b/manufacturing/includes/db/work_centres_db.inc index a1cffa01..1338d5d0 100644 --- a/manufacturing/includes/db/work_centres_db.inc +++ b/manufacturing/includes/db/work_centres_db.inc @@ -2,41 +2,41 @@ function add_work_centre($name, $description) { - $sql = "INSERT INTO ".TB_PREF."workcentres (name, description) - VALUES ('$name','$description')"; - - db_query($sql, "could not add work centre"); + $sql = "INSERT INTO ".TB_PREF."workcentres (name, description) + VALUES (".db_escape($name).",".db_escape($description).")"; + + db_query($sql, "could not add work centre"); } function update_work_centre($type_id, $name, $description) { - $sql = "UPDATE ".TB_PREF."workcentres SET name='$name', description='$description' + $sql = "UPDATE ".TB_PREF."workcentres SET name=".db_escape($name).", description=".db_escape($description)." WHERE id=$type_id"; - - db_query($sql, "could not update work centre"); + + db_query($sql, "could not update work centre"); } function get_all_work_centres() { $sql = "SELECT * FROM ".TB_PREF."workcentres"; - + return db_query($sql, "could not get all work centres"); -} +} function get_work_centre($type_id) { $sql = "SELECT * FROM ".TB_PREF."workcentres WHERE id=$type_id"; - + $result = db_query($sql, "could not get work centre"); - + return db_fetch($result); } function delete_work_centre($type_id) { $sql="DELETE FROM ".TB_PREF."workcentres WHERE id=$type_id"; - - db_query($sql, "could not delete work centre"); + + db_query($sql, "could not delete work centre"); } ?> \ No newline at end of file diff --git a/manufacturing/includes/db/work_order_issues_db.inc b/manufacturing/includes/db/work_order_issues_db.inc index fcc6d6f5..9474da08 100644 --- a/manufacturing/includes/db/work_order_issues_db.inc +++ b/manufacturing/includes/db/work_order_issues_db.inc @@ -2,57 +2,55 @@ //-------------------------------------------------------------------------------------- -function add_work_order_issue($woid, $ref, $to_work_order, $items, $location, $workcentre, +function add_work_order_issue($woid, $ref, $to_work_order, $items, $location, $workcentre, $date_, $memo_) { begin_transaction(); $details = get_work_order($woid); - - if (strlen($details[0]) == 0) + + if (strlen($details[0]) == 0) { echo _("The order number sent is not valid."); cancel_transaction(); exit; } - - if (work_order_is_closed($woid)) + + if (work_order_is_closed($woid)) { display_error("UNEXPECTED : Issuing items for a closed Work Order"); cancel_transaction(); exit; - } - + } + // insert the actual issue - $sql = "INSERT INTO ".TB_PREF."wo_issues (workorder_id, reference, issue_date, loc_code, workcentre_id) - VALUES ($woid, '$ref', '" . - date2sql($date_) . "', '$location', $workcentre)"; + $sql = "INSERT INTO ".TB_PREF."wo_issues (workorder_id, reference, issue_date, loc_code, workcentre_id) + VALUES ($woid, ".db_escape($ref).", '" . + date2sql($date_) . "', ".db_escape($location).", $workcentre)"; db_query($sql,"The work order issue could not be added"); - + $number = db_insert_id(); - - foreach ($items as $item) + + foreach ($items as $item) { - + if ($to_work_order) $item->quantity = -$item->quantity; // insert a -ve stock move for each item - add_stock_move(28, $item->stock_id, $number, + add_stock_move(28, $item->stock_id, $number, $location, $date_, $memo_, -$item->quantity, 0); - - $sql = "INSERT INTO ".TB_PREF."wo_issue_items (issue_id, stock_id, qty_issued) + + $sql = "INSERT INTO ".TB_PREF."wo_issue_items (issue_id, stock_id, qty_issued) VALUES ('$number', '$item->stock_id', $item->quantity)"; db_query($sql,"A work order issue item could not be added"); } - + if ($memo_) - add_comments(28, $number, $date_, $memo_); - - add_forms_for_sys_type(28, $number, $to_work_order, $location); - + add_comments(28, $number, $date_, $memo_); + references::save_last($ref, 28); - + commit_transaction(); } @@ -68,8 +66,8 @@ function get_work_order_issues($woid) function get_work_order_issue($issue_no) { - $sql = "SELECT DISTINCT ".TB_PREF."wo_issues.*, ".TB_PREF."workorders.stock_id, - ".TB_PREF."stock_master.description, ".TB_PREF."locations.location_name, ".TB_PREF."workcentres.name AS WorkCentreName + $sql = "SELECT DISTINCT ".TB_PREF."wo_issues.*, ".TB_PREF."workorders.stock_id, + ".TB_PREF."stock_master.description, ".TB_PREF."locations.location_name, ".TB_PREF."workcentres.name AS WorkCentreName FROM ".TB_PREF."wo_issues, ".TB_PREF."workorders, ".TB_PREF."stock_master, ".TB_PREF."locations, ".TB_PREF."workcentres WHERE issue_no='$issue_no' AND ".TB_PREF."workorders.id = ".TB_PREF."wo_issues.workorder_id @@ -77,7 +75,7 @@ function get_work_order_issue($issue_no) AND ".TB_PREF."workcentres.id = ".TB_PREF."wo_issues.workcentre_id AND ".TB_PREF."stock_master.stock_id = ".TB_PREF."workorders.stock_id"; $result = db_query($sql, "A work order issue could not be retrieved"); - + return db_fetch($result); } @@ -85,7 +83,7 @@ function get_work_order_issue($issue_no) function get_work_order_issue_details($issue_no) { - $sql = "SELECT ".TB_PREF."wo_issue_items.*,".TB_PREF."stock_master.description, ".TB_PREF."stock_master.units + $sql = "SELECT ".TB_PREF."wo_issue_items.*,".TB_PREF."stock_master.description, ".TB_PREF."stock_master.units FROM ".TB_PREF."wo_issue_items, ".TB_PREF."stock_master WHERE issue_id=$issue_no AND ".TB_PREF."stock_master.stock_id=".TB_PREF."wo_issue_items.stock_id @@ -98,27 +96,27 @@ function get_work_order_issue_details($issue_no) function exists_work_order_issue($issue_no) { $sql = "SELECT issue_no FROM ".TB_PREF."wo_issues WHERE issue_no=$issue_no"; - $result = db_query($sql, "Cannot retreive a wo issue"); - - return (db_num_rows($result) > 0); -} + $result = db_query($sql, "Cannot retreive a wo issue"); + + return (db_num_rows($result) > 0); +} //-------------------------------------------------------------------------------------- function void_work_order_issue($type_no) { begin_transaction(); - + // void the actual issue items and their quantities $sql = "UPDATE ".TB_PREF."wo_issue_items Set qty_issued = 0 WHERE issue_id=$type_no"; db_query($sql,"A work order issue item could not be voided"); - + // void all related stock moves void_stock_move(28, $type_no); - + // void any related gl trans - void_gl_trans(28, $type_no, true); - + void_gl_trans(28, $type_no, true); + commit_transaction(); } diff --git a/manufacturing/includes/db/work_order_produce_items_db.inc b/manufacturing/includes/db/work_order_produce_items_db.inc index c3da19dc..fd7d9655 100644 --- a/manufacturing/includes/db/work_order_produce_items_db.inc +++ b/manufacturing/includes/db/work_order_produce_items_db.inc @@ -5,59 +5,62 @@ function work_order_produce($woid, $ref, $quantity, $date_, $memo_, $close_wo) begin_transaction(); $details = get_work_order($woid); - - if (strlen($details[0]) == 0) + + if (strlen($details[0]) == 0) { echo _("The order number sent is not valid."); exit; } - - if (work_order_is_closed($woid)) + + if (work_order_is_closed($woid)) { display_error("UNEXPECTED : Producing Items for a closed Work Order"); cancel_transaction(); exit; - } - + } + $date = date2sql($date_); - + $sql = "INSERT INTO ".TB_PREF."wo_manufacture (workorder_id, reference, quantity, date_) - VALUES ($woid, '$ref', $quantity, '$date')"; + VALUES ($woid, ".db_escape($ref).", $quantity, '$date')"; db_query($sql,"A work order manufacture could not be added"); - - $id = db_insert_id(); - + + $id = db_insert_id(); + // insert a +ve stock move for the item being manufactured // negative means "unproduce" or unassemble add_stock_move(29, $details["stock_id"], $id, - $details["loc_code"], $date_, $memo_, $quantity, 0); - + $details["loc_code"], $date_, $memo_, $quantity, 0); + // update wo quantity and close wo if requested work_order_update_finished_quantity($woid, $quantity, $close_wo); - + + // ------------------------------------------------------------------------- + + work_order_quick_costs($woid, $details["stock_id"], $quantity, $date_, 0); + + // ------------------------------------------------------------------------- if ($memo_) - add_comments(29, $id, $date_, $memo_); - - add_forms_for_sys_type(29, $id, $quantity, $details["loc_code"]); - - references::save_last($ref, 29); - - commit_transaction(); + add_comments(29, $id, $date_, $memo_); + + references::save_last($ref, 29); + + commit_transaction(); } //-------------------------------------------------------------------------------------------- function get_work_order_produce($id) { - $sql = "SELECT ".TB_PREF."wo_manufacture.*,".TB_PREF."workorders.stock_id, ".TB_PREF."stock_master.description AS StockDescription - FROM ".TB_PREF."wo_manufacture, ".TB_PREF."workorders, ".TB_PREF."stock_master + $sql = "SELECT ".TB_PREF."wo_manufacture.*,".TB_PREF."workorders.stock_id, ".TB_PREF."stock_master.description AS StockDescription + FROM ".TB_PREF."wo_manufacture, ".TB_PREF."workorders, ".TB_PREF."stock_master WHERE ".TB_PREF."wo_manufacture.workorder_id=".TB_PREF."workorders.id AND ".TB_PREF."stock_master.stock_id=".TB_PREF."workorders.stock_id AND ".TB_PREF."wo_manufacture.id=$id"; $result = db_query($sql, "The work order production could not be retrieved"); - - return db_fetch($result); + + return db_fetch($result); } //-------------------------------------------------------------------------------------- @@ -73,33 +76,33 @@ function get_work_order_productions($woid) function exists_work_order_produce($id) { $sql = "SELECT id FROM ".TB_PREF."wo_manufacture WHERE id=$id"; - $result = db_query($sql, "Cannot retreive a wo production"); - - return (db_num_rows($result) > 0); -} + $result = db_query($sql, "Cannot retreive a wo production"); + + return (db_num_rows($result) > 0); +} //-------------------------------------------------------------------------------------------- function void_work_order_produce($type_no) { - begin_transaction(); - + begin_transaction(); + $row = get_work_order_produce($type_no); - + // deduct the quantity of this production from the parent work order work_order_update_finished_quantity($row["workorder_id"], -$row["quantity"]); - + // clear the production record - $sql = "UPDATE ".TB_PREF."wo_manufacture SET quantity=0 WHERE id=$type_no"; + $sql = "UPDATE ".TB_PREF."wo_manufacture SET quantity=0 WHERE id=$type_no"; db_query($sql, "Cannot void a wo production"); - + // void all related stock moves - void_stock_move(29, $type_no); - + void_stock_move(29, $type_no); + // void any related gl trans - void_gl_trans(29, $type_no, true); - - commit_transaction(); + void_gl_trans(29, $type_no, true); + + commit_transaction(); } diff --git a/manufacturing/includes/db/work_order_requirements_db.inc b/manufacturing/includes/db/work_order_requirements_db.inc index 8bee3cfe..78d8e7c4 100644 --- a/manufacturing/includes/db/work_order_requirements_db.inc +++ b/manufacturing/includes/db/work_order_requirements_db.inc @@ -10,7 +10,7 @@ function get_wo_requirements($woid) ".TB_PREF."wo_requirements.stock_id = ".TB_PREF."stock_master.stock_id WHERE workorder_id=$woid AND ".TB_PREF."locations.loc_code = ".TB_PREF."wo_requirements.loc_code - AND ".TB_PREF."workcentres.id=CAST(workcentre AS UNSIGNED)"; + AND ".TB_PREF."workcentres.id=workcentre"; return db_query($sql, "The work order requirements could not be retrieved"); } diff --git a/manufacturing/includes/db/work_orders_db.inc b/manufacturing/includes/db/work_orders_db.inc index 81aca2bd..bc371a8a 100644 --- a/manufacturing/includes/db/work_orders_db.inc +++ b/manufacturing/includes/db/work_orders_db.inc @@ -2,75 +2,103 @@ //-------------------------------------------------------------------------------------- -function add_work_order($wo_ref, $loc_code, $units_reqd, $stock_id, +function add_material_cost($stock_id, $qty, $date_) +{ + $m_cost = 0; + $result = get_bom($stock_id); + while ($bom_item = db_fetch($result)) + { + $sql = "SELECT material_cost FROM ".TB_PREF."stock_master WHERE stock_id = '".$bom_item['component']."'"; + $res = db_query($sql); + $myrow = db_fetch($res); + $m_cost += ($bom_item['quantity'] * $myrow['material_cost']); + } + $sql = "SELECT material_cost FROM ".TB_PREF."stock_master WHERE stock_id = '$stock_id'"; + $result = db_query($sql); + $myrow = db_fetch($result); + $material_cost = $myrow['material_cost']; + $qoh = get_qoh_on_date($stock_id, null, $date_); + if ($qoh + $qty <= 0) + $material_cost = 0; + else + $material_cost = ($qoh * $material_cost + $qty * $m_cost) / ($qoh + $qty); + $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=$material_cost + WHERE stock_id='$stock_id'"; + db_query($sql,"The cost details for the inventory item could not be updated"); +} + +function add_work_order($wo_ref, $loc_code, $units_reqd, $stock_id, $type, $date_, $required_by, $costs, $memo_) { if (!($type == wo_types::advanced())) return add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, $date_, $costs, $memo_); - + begin_transaction(); - + + add_material_cost($stock_id, $units_reqd, $date_); + $date = date2sql($date_); $required = date2sql($required_by); - - $sql = "INSERT INTO ".TB_PREF."workorders (wo_ref, loc_code, units_reqd, stock_id, - type, date_, required_by) - VALUES ('$wo_ref', '$loc_code', $units_reqd, '$stock_id', + + $sql = "INSERT INTO ".TB_PREF."workorders (wo_ref, loc_code, units_reqd, stock_id, + type, date_, required_by) + VALUES (".db_escape($wo_ref).", ".db_escape($loc_code).", $units_reqd, '$stock_id', $type, '$date', '$required')"; db_query($sql, "could not add work order"); - + $woid = db_insert_id(); - - add_comments(systypes::work_order(), $woid, $required_by, $memo_); - - add_forms_for_sys_type(systypes::work_order(), $woid); - - references::save_last($wo_ref, systypes::work_order()); - - commit_transaction(); - - return $woid; + + add_comments(systypes::work_order(), $woid, $required_by, $memo_); + + references::save_last($wo_ref, systypes::work_order()); + + commit_transaction(); + + return $woid; } //-------------------------------------------------------------------------------------- -function update_work_order($woid, $loc_code, $units_reqd, $stock_id, +function update_work_order($woid, $loc_code, $units_reqd, $stock_id, $date_, $required_by, $memo_) { begin_transaction(); - + + add_material_cost($_POST['old_stk_id'], -$_POST['old_qty'], $date_); + add_material_cost($stock_id, $units_reqd, $date_); + $date = date2sql($date_); $required = date2sql($required_by); - - $sql = "UPDATE ".TB_PREF."workorders SET loc_code='$loc_code', + + $sql = "UPDATE ".TB_PREF."workorders SET loc_code=".db_escape($loc_code).", units_reqd=$units_reqd, stock_id='$stock_id', required_by='$required', date_='$date' - WHERE id = $woid"; + WHERE id = $woid"; db_query($sql, "could not update work order"); - - update_comments(systypes::work_order(), $woid, null, $memo_); - commit_transaction(); + update_comments(systypes::work_order(), $woid, null, $memo_); + + commit_transaction(); } function delete_work_order($woid) { begin_transaction(); - + + add_material_cost($_POST['stock_id'], -$_POST['quantity'], $_POST['date_']); + // delete the work order requirements delete_wo_requirements($woid); - + // delete the actual work order $sql = "DELETE FROM ".TB_PREF."workorders WHERE id=$woid"; db_query($sql,"The work order could not be deleted"); - + delete_comments(systypes::work_order(), $woid); - - delete_forms_for_systype(systypes::work_order(), $woid); - - commit_transaction(); + + commit_transaction(); } //-------------------------------------------------------------------------------------- @@ -79,18 +107,18 @@ function get_work_order($woid, $allow_null=false) { $sql = "SELECT ".TB_PREF."workorders.*, ".TB_PREF."stock_master.description As StockItemName, ".TB_PREF."locations.location_name - FROM ".TB_PREF."workorders, ".TB_PREF."stock_master, ".TB_PREF."locations - WHERE ".TB_PREF."stock_master.stock_id=".TB_PREF."workorders.stock_id - AND ".TB_PREF."locations.loc_code=".TB_PREF."workorders.loc_code + FROM ".TB_PREF."workorders, ".TB_PREF."stock_master, ".TB_PREF."locations + WHERE ".TB_PREF."stock_master.stock_id=".TB_PREF."workorders.stock_id + AND ".TB_PREF."locations.loc_code=".TB_PREF."workorders.loc_code AND ".TB_PREF."workorders.id=$woid GROUP BY ".TB_PREF."workorders.id"; - + $result = db_query($sql, "The work order issues could not be retrieved"); - + if (!$allow_null && db_num_rows($result) == 0) - display_db_error("Could not find work order $workOrder", $sql); - - return db_fetch($result); + display_db_error("Could not find work order $woid", $sql); + + return db_fetch($result); } //-------------------------------------------------------------------------------------- @@ -99,7 +127,7 @@ function work_order_has_productions($woid) { $sql = "SELECT COUNT(*) FROM ".TB_PREF."wo_manufacture WHERE workorder_id=$woid"; $result = db_query($sql, "query work order for productions"); - + $myrow = db_fetch_row($result); return ($myrow[0] > 0); } @@ -111,7 +139,7 @@ function work_order_has_issues($woid) { $sql = "SELECT COUNT(*) FROM ".TB_PREF."wo_issues WHERE workorder_id=$woid"; $result = db_query($sql, "query work order for issues"); - + $myrow = db_fetch_row($result); return ($myrow[0] > 0); } @@ -129,30 +157,30 @@ function work_order_has_payments($woid) function release_work_order($woid, $releaseDate, $memo_) { - begin_transaction(); - - $myrow = get_work_order($woid); + begin_transaction(); + + $myrow = get_work_order($woid); $stock_id = $myrow["stock_id"]; - + $date = date2sql($releaseDate); - - $sql = "UPDATE ".TB_PREF."workorders SET released_date='$date', - released=1 WHERE id = $woid"; + + $sql = "UPDATE ".TB_PREF."workorders SET released_date='$date', + released=1 WHERE id = $woid"; db_query($sql, "could not release work order"); - + // create Work Order Requirements based on the bom create_wo_requirements($woid, $stock_id); - - add_comments(systypes::work_order(), $woid, $releaseDate, $memo_); - commit_transaction(); + add_comments(systypes::work_order(), $woid, $releaseDate, $memo_); + + commit_transaction(); } //-------------------------------------------------------------------------------------- function close_work_order($woid) { - $sql = "UPDATE ".TB_PREF."workorders SET closed=1 WHERE id = $woid"; + $sql = "UPDATE ".TB_PREF."workorders SET closed=1 WHERE id = $woid"; db_query($sql, "could not close work order"); } @@ -160,10 +188,10 @@ function close_work_order($woid) function work_order_is_closed($woid) { - $sql = "SELECT closed FROM ".TB_PREF."workorders WHERE id = $woid"; + $sql = "SELECT closed FROM ".TB_PREF."workorders WHERE id = $woid"; $result = db_query($sql, "could not query work order"); $row = db_fetch_row($result); - return ($row[0] > 0); + return ($row[0] > 0); } //-------------------------------------------------------------------------------------- @@ -173,7 +201,7 @@ function work_order_update_finished_quantity($woid, $quantity, $force_close=0) $sql = "UPDATE ".TB_PREF."workorders SET units_issued = units_issued + $quantity, closed = ((units_issued >= units_reqd) OR $force_close) WHERE id = $woid"; - + db_query($sql, "The work order issued quantity couldn't be updated"); } @@ -181,27 +209,27 @@ function work_order_update_finished_quantity($woid, $quantity, $force_close=0) function void_work_order($woid) { - $work_order = get_work_order($woid); - - if (!($work_order["type"] == wo_types::advanced())) + $work_order = get_work_order($woid); + + if (!($work_order["type"] == wo_types::advanced())) { - begin_transaction(); - + begin_transaction(); + $sql = "UPDATE ".TB_PREF."workorders SET closed=1,units_issued=0 WHERE id = $woid"; db_query($sql, "The work order couldn't be voided"); - + // void all related stock moves - void_stock_move(systypes::work_order(), $woid); - + void_stock_move(systypes::work_order(), $woid); + // void any related gl trans void_gl_trans(systypes::work_order(), $woid, true); - + // clear the requirements units received void_wo_requirements($woid); - - commit_transaction(); - } - else + + commit_transaction(); + } + else { // void everything inside the work order : issues, productions, payments } diff --git a/manufacturing/includes/db/work_orders_quick_db.inc b/manufacturing/includes/db/work_orders_quick_db.inc index 054eee23..cb16e374 100644 --- a/manufacturing/includes/db/work_orders_quick_db.inc +++ b/manufacturing/includes/db/work_orders_quick_db.inc @@ -2,70 +2,70 @@ //-------------------------------------------------------------------------------------- -function add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, $date_, $additional_costs, $memo_) +function add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, $date_, $additional_costs, $memo_) { begin_transaction(); - + // if unassembling, reverse the stock movements if ($type == wo_types::unassemble()) $units_reqd = -$units_reqd; - + + add_material_cost($stock_id, $units_reqd, $date_); + $date = date2sql($date_); if (!isset($additional_costs) || ($additional_costs == "")) $additional_costs = 0; - - $sql = "INSERT INTO ".TB_PREF."workorders (wo_ref, loc_code, units_reqd, units_issued, stock_id, - type, additional_costs, date_, released_date, required_by, released, closed) - VALUES ('$wo_ref', '$loc_code', $units_reqd, $units_reqd, '$stock_id', + + $sql = "INSERT INTO ".TB_PREF."workorders (wo_ref, loc_code, units_reqd, units_issued, stock_id, + type, additional_costs, date_, released_date, required_by, released, closed) + VALUES (".db_escape($wo_ref).", ".db_escape($loc_code).", $units_reqd, $units_reqd, '$stock_id', $type, $additional_costs, '$date', '$date', '$date', 1, 1)"; db_query($sql, "could not add work order"); - + $woid = db_insert_id(); - + //-------------------------------------------------------------------------- // create Work Order Requirements based on the bom - $result = get_bom($stock_id); - - while ($bom_item = db_fetch($result)) + $result = get_bom($stock_id); + + while ($bom_item = db_fetch($result)) { - + $unit_quantity = $bom_item["quantity"]; $item_quantity = $bom_item["quantity"] * $units_reqd; - - + + $sql = "INSERT INTO ".TB_PREF."wo_requirements (workorder_id, stock_id, workcentre, units_req, units_issued, loc_code) - VALUES ($woid, " . "'" . $bom_item["component"] . "'" . ", - '". $bom_item["workcentre_added"] . "', + VALUES ($woid, " . "'" . $bom_item["component"] . "'" . ", + '". $bom_item["workcentre_added"] . "', $unit_quantity, $item_quantity, '" . $bom_item["loc_code"] . "')"; - + db_query($sql, "The work order requirements could not be added"); - + // insert a -ve stock move for each item - add_stock_move(systypes::work_order(), $bom_item["component"], $woid, - $bom_item["loc_code"], $date_, $wo_ref, -$item_quantity, 0); + add_stock_move(systypes::work_order(), $bom_item["component"], $woid, + $bom_item["loc_code"], $date_, $wo_ref, -$item_quantity, 0); } // ------------------------------------------------------------------------- // insert a +ve stock move for the item being manufactured - add_stock_move(systypes::work_order(), $stock_id, $woid, $loc_code, $date_, - $wo_ref, $units_reqd, 0); + add_stock_move(systypes::work_order(), $stock_id, $woid, $loc_code, $date_, + $wo_ref, $units_reqd, 0); // ------------------------------------------------------------------------- work_order_quick_costs($woid, $stock_id, $units_reqd, $date_, $additional_costs); - + // ------------------------------------------------------------------------- - add_comments(systypes::work_order(), $woid, $date_, $memo_); - - add_forms_for_sys_type(systypes::work_order(), $woid, $type); - + add_comments(systypes::work_order(), $woid, $date_, $memo_); + references::save_last($wo_ref, systypes::work_order()); - - commit_transaction(); + + commit_transaction(); return $woid; } @@ -74,31 +74,31 @@ function add_work_order_quick($wo_ref, $loc_code, $units_reqd, $stock_id, $type, function work_order_quick_costs($woid, $stock_id, $units_reqd, $date_, $additional_costs) { $result = get_bom($stock_id); - + // credit all the components $total_cost = 0; - while ($bom_item = db_fetch($result)) + while ($bom_item = db_fetch($result)) { - + $bom_accounts = get_stock_gl_code($bom_item["component"]); - - $bom_cost = $bom_item["standard_cost"] * $bom_item["quantity"] * $units_reqd; - + + $bom_cost = $bom_item["standard_cost"] * $bom_item["quantity"] * $units_reqd; + add_gl_trans_std_cost(systypes::work_order(), $woid, $date_, $bom_accounts["inventory_account"], 0, 0, null, -$bom_cost); - + $total_cost += $bom_cost; - } + } // credit additional costs $item_accounts = get_stock_gl_code($stock_id); - add_gl_trans_std_cost(systypes::work_order(), $woid, $date_, $item_accounts["assembly_account"], + add_gl_trans_std_cost(systypes::work_order(), $woid, $date_, $item_accounts["assembly_account"], $item_accounts["dimension_id"], $item_accounts["dimension2_id"], null, -$additional_costs); - + // debit total components + additional - $total_cost += $additional_costs; - add_gl_trans_std_cost(systypes::work_order(), $woid, $date_, $item_accounts["inventory_account"], + $total_cost += $additional_costs; + add_gl_trans_std_cost(systypes::work_order(), $woid, $date_, $item_accounts["inventory_account"], 0, 0, null, $total_cost); -} +} //-------------------------------------------------------------------------------------- diff --git a/manufacturing/includes/manufacturing_ui.inc b/manufacturing/includes/manufacturing_ui.inc index b903d2c8..5753b716 100644 --- a/manufacturing/includes/manufacturing_ui.inc +++ b/manufacturing/includes/manufacturing_ui.inc @@ -13,8 +13,8 @@ function display_bom($item_check) if (db_num_rows($result) == 0) { display_note(_("The bill of material for this item is empty."), 0, 1); - } - else + } + else { start_table($table_style); @@ -28,7 +28,7 @@ function display_bom($item_check) $total_cost = 0; - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { alt_table_row_color($k); @@ -37,7 +37,7 @@ function display_bom($item_check) label_cell($myrow["description"]); label_cell($myrow["WorkCentreDescription"]); label_cell($myrow["location_name"]); - qty_cell($myrow["quantity"]); + qty_cell($myrow["quantity"], false, get_qty_dec($myrow["component"])); amount_cell($myrow["standard_cost"]); amount_cell($myrow["ComponentCost"]); end_row(); @@ -68,8 +68,8 @@ function display_wo_requirements($woid, $quantity, $show_qoh=false, $date=null) if (db_num_rows($result) == 0) { display_note(_("There are no Requirements for this Order."), 1, 0); - } - else + } + else { start_table("$table_style width=80%"); @@ -84,11 +84,11 @@ function display_wo_requirements($woid, $quantity, $show_qoh=false, $date=null) if ($date == null) $date = Today(); - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { $qoh = 0; - + $show_qoh = true; // if it's a non-stock item (eg. service) don't show qoh if (!has_stock_holding($myrow["mb_flag"])) $show_qoh = false; @@ -96,13 +96,13 @@ function display_wo_requirements($woid, $quantity, $show_qoh=false, $date=null) if ($show_qoh) $qoh = get_qoh_on_date($myrow["stock_id"], $myrow["loc_code"], $date); - if ($show_qoh && ($myrow["units_req"] * $quantity > $qoh) && - !sys_prefs::allow_negative_stock()) + if ($show_qoh && ($myrow["units_req"] * $quantity > $qoh) && + !sys_prefs::allow_negative_stock()) { // oops, we don't have enough of one of the component items start_row("class='stockmankobg'"); $has_marked = true; - } + } else alt_table_row_color($k); @@ -113,11 +113,12 @@ function display_wo_requirements($woid, $quantity, $show_qoh=false, $date=null) label_cell($myrow["location_name"]); label_cell($myrow["WorkCentreDescription"]); - qty_cell($myrow["units_req"]); - qty_cell($myrow["units_req"] * $quantity); - qty_cell($myrow["units_issued"]); + $dec = get_qty_dec($myrow["stock_id"]); + qty_cell($myrow["units_req"], false, $dec); + qty_cell($myrow["units_req"] * $quantity, false, $dec); + qty_cell($myrow["units_issued"], false, $dec); if ($show_qoh) - qty_cell($qoh); + qty_cell($qoh, false, $dec); else label_cell(""); end_row(); @@ -142,8 +143,8 @@ function display_wo_productions($woid) if (db_num_rows($result) == 0) { display_note(_("There are no Productions for this Order."), 1, 1); - } - else + } + else { start_table($table_style); $th = array(_("#"), _("Reference"), _("Date"), _("Quantity")); @@ -153,7 +154,7 @@ function display_wo_productions($woid) $k = 0; //row colour counter $total_qty = 0; - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { alt_table_row_color($k); @@ -163,11 +164,11 @@ function display_wo_productions($woid) label_cell(get_trans_view_str(29, $myrow["id"])); label_cell($myrow['reference']); label_cell(sql2date($myrow["date_"])); - qty_cell($myrow['quantity']); + qty_cell($myrow['quantity'], false, get_qty_dec($myrow['reference'])); end_row(); }//end of while - label_row(_("Total"), number_format2($total_qty,user_qty_dec()), + label_row(_("Total"), number_format2($total_qty,user_qty_dec()), "colspan=3", "nowrap align=right"); end_table(); @@ -185,8 +186,8 @@ function display_wo_issues($woid) if (db_num_rows($result) == 0) { display_note(_("There are no Issues for this Order."), 0, 1); - } - else + } + else { start_table($table_style); $th = array(_("#"), _("Reference"), _("Date")); @@ -195,7 +196,7 @@ function display_wo_issues($woid) $k = 0; //row colour counter - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { alt_table_row_color($k); @@ -220,9 +221,9 @@ function display_wo_payments($woid) if (db_num_rows($result) == 0) { - echo _("There are no Payments for this Order.") . "
"; - } - else + display_note(_("There are no Payments for this Order."), 0, 1); + } + else { start_table($table_style); $th = array(_("#"), _("Reference"), _("Date"), _("Amount")); @@ -231,7 +232,7 @@ function display_wo_payments($woid) $k = 0; //row colour counter - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { alt_table_row_color($k); @@ -256,7 +257,7 @@ function display_wo_details($woid, $suppress_view_link=false) $myrow = get_work_order($woid); - if (strlen($myrow[0]) == 0) + if (strlen($myrow[0]) == 0) { display_note(_("The work order number sent is not valid.")); exit; @@ -264,11 +265,11 @@ function display_wo_details($woid, $suppress_view_link=false) start_table("$table_style width=80%"); - if ($myrow["released"] == true) + if ($myrow["released"] == true) $th = array(_("#"), _("Reference"), _("Type"), _("Manufactured Item"), _("Into Location"), _("Date"), _("Required By"), _("Quantity Required"), _("Released Date"), _("Manufactured")); - else + else $th = array(_("#"), _("Reference"), _("Type"), _("Manufactured Item"), _("Into Location"), _("Date"), _("Required By"), _("Quantity Required")); @@ -284,13 +285,13 @@ function display_wo_details($woid, $suppress_view_link=false) label_cell($myrow["location_name"]); label_cell(sql2date($myrow["date_"])); label_cell(sql2date($myrow["required_by"])); + $dec = get_qty_dec($myrow["stock_id"]); + qty_cell($myrow["units_reqd"], false, $dec); - qty_cell($myrow["units_reqd"]); - - if ($myrow["released"] == true) + if ($myrow["released"] == true) { label_cell(sql2date($myrow["released_date"])); - qty_cell($myrow["units_issued"]); + qty_cell($myrow["units_issued"], false, $dec); } end_row(); @@ -298,7 +299,7 @@ function display_wo_details($woid, $suppress_view_link=false) end_table(); - if ($myrow["closed"] == true) + if ($myrow["closed"] == true) { display_note(_("This work order is closed.")); } @@ -312,7 +313,7 @@ function display_wo_details_quick($woid, $suppress_view_link=false) $myrow = get_work_order($woid); - if (strlen($myrow[0]) == 0) + if (strlen($myrow[0]) == 0) { display_note(_("The work order number sent is not valid.")); exit; @@ -322,7 +323,7 @@ function display_wo_details_quick($woid, $suppress_view_link=false) $th = array(_("#"), _("Reference"), _("Type"), _("Manufactured Item"), _("Into Location"), _("Date"), _("Quantity")); - table_header($th); + table_header($th); start_row(); if ($suppress_view_link) @@ -335,7 +336,7 @@ function display_wo_details_quick($woid, $suppress_view_link=false) label_cell($myrow["location_name"]); label_cell(sql2date($myrow["date_"])); - qty_cell($myrow["units_issued"]); + qty_cell($myrow["units_issued"], false, get_qty_dec($myrow["stock_id"])); end_row(); @@ -343,7 +344,7 @@ function display_wo_details_quick($woid, $suppress_view_link=false) end_table(); - if ($myrow["closed"] == true) + if ($myrow["closed"] == true) { display_note(_("This work order is closed.")); } diff --git a/manufacturing/includes/work_order_issue_ui.inc b/manufacturing/includes/work_order_issue_ui.inc index 531e9983..9d6b9dd2 100644 --- a/manufacturing/includes/work_order_issue_ui.inc +++ b/manufacturing/includes/work_order_issue_ui.inc @@ -5,129 +5,126 @@ include_once($path_to_root . "/includes/ui/items_cart.inc"); //-------------------------------------------------------------------------------- -function add_to_order(&$order, $new_item, $new_item_qty, $standard_cost) +function add_to_issue(&$order, $new_item, $new_item_qty, $standard_cost) { - $already_on_order = 0; - - foreach ($order->line_items as $order_item) - { - if (strcasecmp($order_item->stock_id, $new_item) == 0) - { - $already_on_order = 1; - display_error(_("For Part :") . $new_item . " " . "This item is already on this order. You can change the quantity ordered of the existing line if necessary."); - } - } - - if ($already_on_order != 1) - { - $order->add_to_cart($new_item, $new_item_qty, $standard_cost); - } /* end of if not already on the order */ -} - -//-------------------------------------------------------------------------------- - -function display_order_header(&$order) -{ - display_wo_details($_SESSION['issue_items']->order_id); - echo "
"; + if ($order->find_cart_item($new_item)) + display_error(_("For Part :") . $new_item . " " . "This item is already on this issue. You can change the quantity issued of the existing line if necessary."); + else + $order->add_to_cart (count($order->line_items), $new_item, $new_item_qty, $standard_cost); } - //--------------------------------------------------------------------------------- -function display_adjustment_items($Title, &$order) +function display_issue_items($title, &$order) { global $table_style, $path_to_root; - display_heading($Title); - start_table("$table_style colspan=7"); + display_heading($title); + div_start('items_table'); + start_table("$table_style width=80% colspan=7"); $th = array(_("Item Code"), _("Item Description"), _("Quantity"), - _("Unit"), _("Unit Cost")); - table_header($th); + _("Unit"), _("Unit Cost"), ''); + if ( count($order->line_items)) $th[] = ''; - $subtotal = 0; + table_header($th); +// $total = 0; $k = 0; //row colour counter - foreach ($order->line_items as $stock_item) + $id = find_submit('Edit'); + foreach ($order->line_items as $line_no=>$stock_item) { - if ($_GET['Edit'] != $stock_item->stock_id) +// $total += ($stock_item->standard_cost * $stock_item->quantity); + + if ($id != $line_no) { alt_table_row_color($k); - label_cell("$stock_item->stock_id"); - label_cell($stock_item->item_description); - qty_cell($stock_item_quantity); - if (strlen($stock_item->units)) - label_cell($stock_item->units); - else - label_cell(""); + view_stock_status_cell($stock_item->stock_id); + label_cell($stock_item->item_description); + qty_cell($stock_item->quantity, false, get_qty_dec($stock_item->stock_id)); + label_cell($stock_item->units); amount_cell($stock_item->standard_cost); +// amount_cell($stock_item->standard_cost * $stock_item->quantity); - edit_link_cell(SID . "Edit=$stock_item->stock_id"); - delete_link_cell(SID . "Delete=$stock_item->stock_id"); - end_row(); - } - else + edit_button_cell("Edit$line_no", _("Edit"), + _('Edit document line')); + edit_button_cell("Delete$line_no", _("Delete"), + _('Remove line from document')); + end_row(); + } + else { - adjustment_edit_item_controls($order, $stock_item->stock_id); + issue_edit_item_controls($order, $line_no); } } - if (!isset($_GET['Edit'])) - adjustment_edit_item_controls($order); + if ($id == -1) + issue_edit_item_controls($order); + +// label_row(_("Total"), number_format2($total,user_price_dec()), "colspan=5", "align=right"); end_table(); + div_end(); } //--------------------------------------------------------------------------------- -function adjustment_edit_item_controls(&$order, $stock_id=null) +function issue_edit_item_controls(&$order, $line_no=-1) { + global $Ajax; start_row(); - if (isset($_GET['Edit']) && $stock_id != null) + $id = find_submit('Edit'); + if ($line_no != -1 && $line_no == $id) { - if (!isset($_POST['stock_id'])) - $_POST['stock_id'] = $order->line_items[$stock_id]->stock_id; - if (!isset($_POST['qty']) || ($_POST['qty'] == "")) - $_POST['qty'] = $order->line_items[$stock_id]->quantity; - if (!isset($_POST['std_cost']) || ($_POST['std_cost'] == "")) - $_POST['std_cost'] = $order->line_items[$stock_id]->standard_cost; - - $_POST['units'] = $order->line_items[$stock_id]->units; + $_POST['stock_id'] = $order->line_items[$id]->stock_id; + $_POST['qty'] = qty_format($order->line_items[$id]->quantity, + $order->line_items[$id]->stock_id, $dec); + $_POST['std_cost'] = price_format($order->line_items[$id]->standard_cost); + $_POST['units'] = $order->line_items[$id]->units; hidden('stock_id', $_POST['stock_id']); label_cell($_POST['stock_id']); - label_cell($order->line_items[$stock_id]->item_description); + label_cell($order->line_items[$id]->item_description); + $Ajax->activate('items_table'); } else { - $wo_details = get_work_order($_SESSION['issue_items']->order_id); - - echo ""; - stock_component_items_list('stock_id', $wo_details["stock_id"], $_POST['stock_id'], false, true); - echo ""; + $wo_details = get_work_order($_SESSION['issue_items']->order_id); + + stock_component_items_list_cells(null, 'stock_id', + $wo_details["stock_id"], null, false, true); + if(isset($_POST['_stock_id_update'])) { + $Ajax->activate('units'); + $Ajax->activate('qty'); + $Ajax->activate('std_cost'); + } $item_info = get_item_edit_info($_POST['stock_id']); - $_POST['qty'] = 0; - $_POST['std_cost'] = $item_info["standard_cost"]; + $_POST['qty'] = qty_format(0, $_POST['stock_id'], $dec); + $_POST['std_cost'] = price_format($item_info["standard_cost"]); $_POST['units'] = $item_info["units"]; } + qty_cells(null, 'qty', $_POST['qty'], null, null, $dec); + label_cell($_POST['units'], '', 'units'); - text_cells(null, 'qty', $_POST['qty'], 13, 15); - label_cell($_POST['units']); - text_cells(null, 'std_cost', $_POST['std_cost'], 15, 14); + amount_cells(null, 'std_cost', $_POST['std_cost']); - if (isset($_GET['Edit'])) + if ($id != -1) { - submit_cells('UpdateItem', _("Update")); - submit_cells('CancelItemChanges', _("Cancel")); - } - else + edit_button_cell('UpdateItem', _("Update"), + _('Confirm changes')); + edit_button_cell('CancelItemChanges', _("Cancel"), + _('Cancel changes')); + hidden('LineNo', $line_no); + set_focus('qty'); + } + else { - submit_cells('AddItem', _("Add Item"), "colspan=2"); + submit_cells('AddItem', _("Add Item"), "colspan=2", + _('Add new item to document'), true); } end_row(); @@ -136,30 +133,27 @@ function adjustment_edit_item_controls(&$order, $stock_id=null) //--------------------------------------------------------------------------------- -function adjustment_options_controls() +function issue_options_controls() { echo "
"; start_table(); - - ref_row(_("Reference:"), 'ref', references::get_next(28)); - - if (!isset($_POST['IssueType'])) - $_POST['IssueType'] = 0; - - yesno_list_row(_("Type:"), 'IssueType', $_POST['IssueType'], - _("Return Items to Location"), _("Issue Items to Work order")); - - locations_list_row(_("From Location:"), 'Location', $_POST['Location']); - workcenter_list_row(_("To Work Centre:"), 'WorkCentre', $_POST['WorkCentre']); - - date_row(_("Issue Date:"), 'date_'); - - textarea_row(_("Memo:"), 'memo_', $_POST['memo_'], 50, 3); - - end_table(); + ref_row(_("Reference:"), 'ref', '', references::get_next(28)); + + if (!isset($_POST['IssueType'])) + $_POST['IssueType'] = 0; + + yesno_list_row(_("Type:"), 'IssueType', $_POST['IssueType'], + _("Return Items to Location"), _("Issue Items to Work order")); + + locations_list_row(_("From Location:"), 'Location'); + workcenter_list_row(_("To Work Centre:"), 'WorkCentre'); + + date_row(_("Issue Date:"), 'date_'); + + textarea_row(_("Memo"), 'memo_', null, 50, 3); + + end_table(1); } - - //--------------------------------------------------------------------------------- ?> \ No newline at end of file diff --git a/manufacturing/inquiry/where_used_inquiry.php b/manufacturing/inquiry/where_used_inquiry.php index d7f8877d..e7958dca 100644 --- a/manufacturing/inquiry/where_used_inquiry.php +++ b/manufacturing/inquiry/where_used_inquiry.php @@ -8,7 +8,6 @@ page(_("Inventory Item Where Used Inquiry")); //include($path_to_root . "/includes/date_functions.inc"); include($path_to_root . "/includes/ui.inc"); -include($path_to_root . "/includes/data_checks.inc"); check_db_has_stock_items(_("There are no items defined in the system.")); @@ -19,25 +18,29 @@ if (!isset($_POST['stock_id'])) echo "
" . _("Select an item to display its parent item(s).") . " "; stock_items_list('stock_id', $_POST['stock_id'], false, true); -echo "
"; +echo "
"; set_global_stock_item($_POST['stock_id']); -if (isset($_POST['stock_id'])) +if (isset($_POST['_stock_id_update'])) + $Ajax->activate('usage_table'); + +if (isset($_POST['stock_id'])) { $sql = "SELECT ".TB_PREF."bom.*,".TB_PREF."stock_master.description,".TB_PREF."workcentres.name As WorkCentreName, ".TB_PREF."locations.location_name FROM ".TB_PREF."bom, ".TB_PREF."stock_master, ".TB_PREF."workcentres, ".TB_PREF."locations - WHERE ".TB_PREF."bom.parent = ".TB_PREF."stock_master.stock_id AND CAST(".TB_PREF."bom.workcentre_added AS UNSIGNED) = ".TB_PREF."workcentres.id + WHERE ".TB_PREF."bom.parent = ".TB_PREF."stock_master.stock_id AND ".TB_PREF."bom.workcentre_added = ".TB_PREF."workcentres.id AND ".TB_PREF."bom.loc_code = ".TB_PREF."locations.loc_code AND ".TB_PREF."bom.component='" . $_POST['stock_id'] . "'"; $result = db_query($sql,"No parent items were returned"); - if (db_num_rows($result) == 0) + div_start('usage_table'); + if (db_num_rows($result) == 0) { display_note(_("The selected item is not used in any BOMs.")); - } - else + } + else { start_table("$table_style width=80%"); @@ -46,7 +49,7 @@ if (isset($_POST['stock_id'])) table_header($th); $k = $j = 0; - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { alt_table_row_color($k); @@ -56,9 +59,9 @@ if (isset($_POST['stock_id'])) label_cell("" . $myrow["parent"]. " - " . $myrow["description"]. ""); label_cell($myrow["WorkCentreName"]); label_cell($myrow["location_name"]); - label_cell($myrow["quantity"]); + qty_cell($myrow["quantity"], false, get_qty_dec($_POST['stock_id'])); end_row(); - + $j++; If ($j == 12) { @@ -70,6 +73,7 @@ if (isset($_POST['stock_id'])) end_table(); } + div_end(); } end_form(); diff --git a/manufacturing/manage/bom_edit.php b/manufacturing/manage/bom_edit.php index 2069f86b..09dfd5e9 100644 --- a/manufacturing/manage/bom_edit.php +++ b/manufacturing/manage/bom_edit.php @@ -4,7 +4,7 @@ $page_security = 9; $path_to_root="../.."; include_once($path_to_root . "/includes/session.inc"); -page(_("Bill Of Materials")); +page(_("Bill Of Materials")); include_once($path_to_root . "/includes/date_functions.inc"); include_once($path_to_root . "/includes/ui.inc"); @@ -16,20 +16,22 @@ check_db_has_bom_stock_items(_("There are no manufactured or kit items defined i check_db_has_workcentres(_("There are no work centres defined in the system. BOMs require at least one work centre be defined.")); +simple_page_mode(true); +$selected_component = $selected_id; //-------------------------------------------------------------------------------------------------- -if (isset($_GET["NewItem"])) -{ - $_POST['stock_id'] = $_GET["NewItem"]; -} -if (isset($_GET['stock_id'])) -{ - $_POST['stock_id'] = $_GET['stock_id']; - $selected_parent = $_GET['stock_id']; -} +//if (isset($_GET["NewItem"])) +//{ +// $_POST['stock_id'] = $_GET["NewItem"]; +//} +//if (isset($_GET['stock_id'])) +//{ +// $_POST['stock_id'] = $_GET['stock_id']; +// $selected_parent = $_GET['stock_id']; +//} /* selected_parent could come from a post or a get */ -if (isset($_GET["selected_parent"])) +/*if (isset($_GET["selected_parent"])) { $selected_parent = $_GET["selected_parent"]; } @@ -37,20 +39,21 @@ else if (isset($_POST["selected_parent"])) { $selected_parent = $_POST["selected_parent"]; } +*/ /* selected_component could also come from a post or a get */ -if (isset($_GET["selected_component"])) +/*if (isset($_GET["selected_component"])) { $selected_component = $_GET["selected_component"]; -} -elseif (isset($_POST["selected_component"])) +} +else { - $selected_component = $_POST["selected_component"]; + $selected_component = get_post("selected_component", -1); } - +*/ //-------------------------------------------------------------------------------------------------- -function check_for_recursive_bom($ultimate_parent, $component_to_check) +function check_for_recursive_bom($ultimate_parent, $component_to_check) { /* returns true ie 1 if the bom contains the parent part as a component @@ -59,7 +62,7 @@ function check_for_recursive_bom($ultimate_parent, $component_to_check) $sql = "SELECT component FROM ".TB_PREF."bom WHERE parent='$component_to_check'"; $result = db_query($sql,"could not check recursive bom"); - if ($result != 0) + if ($result != 0) { while ($myrow = db_fetch_row($result)) { @@ -81,203 +84,198 @@ function check_for_recursive_bom($ultimate_parent, $component_to_check) //-------------------------------------------------------------------------------------------------- -function display_bom_items($selected_parent) +function display_bom_items($selected_parent) { global $table_style; - + $result = get_bom($selected_parent); - +div_start('bom'); start_table("$table_style width=60%"); $th = array(_("Code"), _("Description"), _("Location"), - _("Work Centre"), _("Quantity"), _("Units")); + _("Work Centre"), _("Quantity"), _("Units"),'',''); table_header($th); - + $k = 0; - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { - + alt_table_row_color($k); label_cell($myrow["component"]); label_cell($myrow["description"]); label_cell($myrow["location_name"]); label_cell($myrow["WorkCentreDescription"]); - label_cell($myrow["quantity"]); + qty_cell($myrow["quantity"], false, get_qty_dec($myrow["component"])); label_cell($myrow["units"]); - edit_link_cell(SID . "NewItem=$selected_parent&selected_component=" . $myrow["id"]); - delete_link_cell(SID . "delete=" . $myrow["id"]. "&stock_id=" . $_POST['stock_id']); + edit_button_cell("Edit".$myrow['id'], _("Edit")); + edit_button_cell("Delete".$myrow['id'], _("Delete")); end_row(); - } //END WHILE LIST LOOP + } //END WHILE LIST LOOP end_table(); +div_end(); } //-------------------------------------------------------------------------------------------------- -function on_submit($selected_parent, $selected_component) +function on_submit($selected_parent, $selected_component=-1) { - if (!is_numeric($_POST['quantity'])) + if (!check_num('quantity', 0)) { - display_error(_("The quantity entered must be numeric.")); + display_error(_("The quantity entered must be numeric and greater than zero.")); + set_focus('quantity'); return; } - if ($_POST['quantity'] <= 0) - { - display_error(_("The quantity entered must be greater than zero.")); - return; - } - - - if (isset($selected_parent) && isset($selected_component)) + if ($selected_component != -1) { - $sql = "UPDATE ".TB_PREF."bom SET workcentre_added='" . $_POST['workcentre_added'] . "', - loc_code='" . $_POST['loc_code'] . "', - quantity= " . $_POST['quantity'] . " - WHERE parent='" . $selected_parent . "' + $sql = "UPDATE ".TB_PREF."bom SET workcentre_added='" . $_POST['workcentre_added'] . "', + loc_code='" . $_POST['loc_code'] . "', + quantity= " . input_num('quantity') . " + WHERE parent='" . $selected_parent . "' AND id='" . $selected_component . "'"; - check_db_error("Could not update this bom component", $sql); + check_db_error("Could not update this bom component", $sql); db_query($sql,"could not update bom"); - - } - elseif (!isset($selected_component) && isset($selected_parent)) + display_notification(_('Selected component has been updated')); + $Mode = 'RESET'; + } + else { - /*Selected component is null cos no item selected on first time round so must be adding a record must be Submitting new entries in the new component form */ + /*Selected component is null cos no item selected on first time round + so must be adding a record must be Submitting new entries in the new + component form */ //need to check not recursive bom component of itself! - If (!check_for_recursive_bom($selected_parent, $_POST['component'])) + if (!check_for_recursive_bom($selected_parent, $_POST['component'])) { /*Now check to see that the component is not already on the bom */ - $sql = "SELECT component FROM ".TB_PREF."bom - WHERE parent='$selected_parent' - AND component='" . $_POST['component'] . "' - AND workcentre_added='" . $_POST['workcentre_added'] . "' + $sql = "SELECT component FROM ".TB_PREF."bom + WHERE parent='$selected_parent' + AND component='" . $_POST['component'] . "' + AND workcentre_added='" . $_POST['workcentre_added'] . "' AND loc_code='" . $_POST['loc_code'] . "'" ; $result = db_query($sql,"check failed"); - - if (db_num_rows($result) == 0) - { - $sql = "INSERT INTO ".TB_PREF."bom (parent, component, workcentre_added, loc_code, quantity) - VALUES ('$selected_parent', '" . $_POST['component'] . "', '" . $_POST['workcentre_added'] . "', '" . $_POST['loc_code'] . "', " . $_POST['quantity'] . ")"; - db_query($sql,"check failed"); - - //$msg = _("A new component part has been added to the bill of material for this item."); - - } - else + if (db_num_rows($result) == 0) + { + $sql = "INSERT INTO ".TB_PREF."bom (parent, component, workcentre_added, loc_code, quantity) + VALUES ('$selected_parent', '" . $_POST['component'] . "', '" + . $_POST['workcentre_added'] . "', '" . $_POST['loc_code'] . "', " + . input_num('quantity') . ")"; + + db_query($sql,"check failed"); + display_notification(_("A new component part has been added to the bill of material for this item.")); + $Mode = 'RESET'; + } + else { /*The component must already be on the bom */ - display_error(_("The selected component is already on this bom. You can modify it's quantity but it cannot appear more than once on the same bom.")); + display_error(_("The selected component is already on this bom. You can modify it's quantity but it cannot appear more than once on the same bom.")); } } //end of if its not a recursive bom - else + else { display_error(_("The selected component is a parent of the current item. Recursive BOMs are not allowed.")); } - } + } } //-------------------------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { - - $sql = "DELETE FROM ".TB_PREF."bom WHERE id='" . $_GET['delete']. "'"; + $sql = "DELETE FROM ".TB_PREF."bom WHERE id='" . $selected_component. "'"; db_query($sql,"Could not delete this bom components"); - display_note(_("The component item has been deleted from this bom.")); - + display_notification(_("The component item has been deleted from this bom")); + $Mode = 'RESET'; +} + +if ($Mode == 'RESET') +{ + $selected_component = -1; + unset($_POST['quantity']); } //-------------------------------------------------------------------------------------------------- start_form(false, true); -//echo $msg; echo "
" . _("Select a manufacturable item:") . " "; -stock_bom_items_list('stock_id', null, false, true); +stock_bom_items_list('selected_parent', null, false, true); +echo "

"; end_form(); - +if (isset($_POST['_selected_parent_update'])) + $Ajax->activate('_page_body'); //-------------------------------------------------------------------------------------------------- -if (isset($_POST['stock_id'])) +if (get_post('selected_parent') != '') { //Parent Item selected so display bom or edit component - $selected_parent = $_POST['stock_id']; - - if (isset($selected_parent) && isset($_POST['Submit'])) - on_submit($selected_parent, $selected_component); - + $selected_parent = $_POST['selected_parent']; + if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') + on_submit($selected_parent, $selected_component); //-------------------------------------------------------------------------------------- - display_bom_items($selected_parent); - - if (isset($selected_parent) && isset($selected_component)) - { - hyperlink_params($_SERVER['PHP_SELF'], _("Add a new Component"), "NewItem=$selected_parent"); - } - +start_form(); + display_bom_items($selected_parent); +//end_form(); //-------------------------------------------------------------------------------------- - - start_form(false, true, $_SERVER['PHP_SELF'] . "?" . SID . "NewItem=" . $selected_parent); + echo '
'; +// start_form(false, true); start_table($table_style2); - if (isset($selected_component)) + if ($selected_component != -1) { - //editing a selected component from the link to the line item - $sql = "SELECT ".TB_PREF."bom.*,".TB_PREF."stock_master.description FROM ".TB_PREF."bom,".TB_PREF."stock_master - WHERE id='$selected_component' - AND ".TB_PREF."stock_master.stock_id=".TB_PREF."bom.component"; - - $result = db_query($sql, "could not get bom"); - $myrow = db_fetch($result); - - $_POST['loc_code'] = $myrow["loc_code"]; - $_POST['workcentre_added'] = $myrow["workcentre_added"]; - $_POST['quantity'] = $myrow["quantity"]; - - hidden('selected_parent', $selected_parent); - hidden('selected_component', $selected_component); + if ($Mode == 'Edit') { + //editing a selected component from the link to the line item + $sql = "SELECT ".TB_PREF."bom.*,".TB_PREF."stock_master.description FROM ".TB_PREF."bom,".TB_PREF."stock_master + WHERE id='$selected_component' + AND ".TB_PREF."stock_master.stock_id=".TB_PREF."bom.component"; + + $result = db_query($sql, "could not get bom"); + $myrow = db_fetch($result); + + $_POST['loc_code'] = $myrow["loc_code"]; + $_POST['workcentre_added'] = $myrow["workcentre_added"]; + $_POST['quantity'] = number_format2($myrow["quantity"], get_qty_dec($myrow["component"])); + } + hidden('component', $selected_component); label_row(_("Component:"), $myrow["component"] . " - " . $myrow["description"]); - - } - else - { //end of if $selected_component - - hidden('selected_parent', $selected_parent); - + } + else + { start_row(); label_cell(_("Component:")); - + echo ""; - stock_component_items_list('component', $selected_parent, $_POST['component'], false, true); + stock_component_items_list('component', $selected_parent, null, false, true); + if (get_post('_component_update')) + { + $Ajax->activate('quantity'); + } echo ""; end_row(); } + hidden('selected_parent', $selected_parent); locations_list_row(_("Location to Draw From:"), 'loc_code', null); workcenter_list_row(_("Work Centre Added:"), 'workcentre_added', null); - - if (!isset($_POST['quantity'])) - { - $_POST['quantity'] = 1; - } - text_row(_("Quantity:"), 'quantity', $_POST['quantity'], 10, 18); + $dec = get_qty_dec(get_post('component')); + $_POST['quantity'] = number_format2(input_num('quantity',1), $dec); + qty_row(_("Quantity:"), 'quantity', null, null, null, $dec); end_table(1); - submit_center('Submit', _("Add/Update")); - + submit_add_or_update_center($selected_component == -1, '', true); end_form(); } - -// ---------------------------------------------------------------------------------- +// ---------------------------------------------------------------------------------- end_page(); diff --git a/manufacturing/manage/work_centres.php b/manufacturing/manage/work_centres.php index 865fecd8..4155fae8 100644 --- a/manufacturing/manage/work_centres.php +++ b/manufacturing/manage/work_centres.php @@ -10,18 +10,10 @@ include($path_to_root . "/manufacturing/includes/manufacturing_db.inc"); include($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} - +simple_page_mode(true); //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -31,23 +23,23 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error(_("The work centre name cannot be empty.")); + set_focus('name'); } if ($input_error != 1) { - if (isset($selected_id)) + if ($selected_id != -1) { - update_work_centre($selected_id, $_POST['name'], $_POST['description']); - + display_notification(_('Selected work center has been updated')); } else { - add_work_centre($_POST['name'], $_POST['description']); + display_notification(_('New work center has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -79,20 +71,27 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_work_centre($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected work center has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //----------------------------------------------------------------------------------- $result = get_all_work_centres(); +start_form(); start_table("$table_style width=50%"); $th = array(_("Name"), _("description"), "", ""); table_header($th); @@ -105,30 +104,29 @@ while ($myrow = db_fetch($result)) label_cell($myrow["name"]); label_cell($myrow["description"]); - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + edit_button_cell("Edit".$myrow['id'], _("Edit")); + edit_button_cell("Delete".$myrow['id'], _("Delete")); end_row(); } end_table(); - +end_form(); +echo '
'; //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Work Centre")); - start_form(); start_table($table_style2); -if (isset($selected_id)) +if ($selected_id != -1) { - //editing an existing status code - - $myrow = get_work_centre($selected_id); - - $_POST['name'] = $myrow["name"]; - $_POST['description'] = $myrow["description"]; - + if ($Mode == 'Edit') { + //editing an existing status code + $myrow = get_work_centre($selected_id); + + $_POST['name'] = $myrow["name"]; + $_POST['description'] = $myrow["description"]; + } hidden('selected_id', $selected_id); } @@ -137,7 +135,7 @@ text_row_ex(_("Description:"), 'description', 50); end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/manufacturing/search_work_orders.php b/manufacturing/search_work_orders.php index 3091a75c..11ebd0c7 100644 --- a/manufacturing/search_work_orders.php +++ b/manufacturing/search_work_orders.php @@ -9,17 +9,41 @@ include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc"); $js = ""; if ($use_popup_windows) $js .= get_js_open_window(800, 500); -if (isset($_GET['outstanding_only'])) +if (isset($_GET['outstanding_only']) && ($_GET['outstanding_only'] == true)) { +// curently outstanding simply means not closed $outstanding_only = 1; page(_("Search Outstanding Work Orders"), false, false, "", $js); -} -else +} +else { $outstanding_only = 0; page(_("Search Work Orders"), false, false, "", $js); } +//----------------------------------------------------------------------------------- +// Ajax updates +// +if (get_post('SearchOrders')) +{ + $Ajax->activate('orders_tbl'); +} elseif (get_post('_OrderNumber_changed')) +{ + $disable = get_post('OrderNumber') !== ''; + + $Ajax->addDisable(true, 'StockLocation', $disable); + $Ajax->addDisable(true, 'OverdueOnly', $disable); + $Ajax->addDisable(true, 'OpenOnly', $disable); + $Ajax->addDisable(true, 'SelectedStockItem', $disable); + if ($disable) { +// $Ajax->addFocus(true, 'OrderNumber'); + set_focus('OrderNumber'); + } else +// $Ajax->addFocus(true, 'StockLocation'); + set_focus('StockLocation'); + + $Ajax->activate('orders_tbl'); +} //-------------------------------------------------------------------------------------- @@ -32,17 +56,18 @@ start_form(false, false, $_SERVER['PHP_SELF'] ."?outstanding_only=" . $outstandi start_table("class='tablestyle_noborder'"); start_row(); -ref_cells(_("Reference:"), 'OrderNumber', null); +ref_cells(_("Reference:"), 'OrderNumber', '',null, '', true); locations_list_cells(_("at Location:"), 'StockLocation', null, true); check_cells( _("Only Overdue:"), 'OverdueOnly', null); -check_cells( _("Only Open:"), 'OpenOnly', null); +if ($outstanding_only==0) + check_cells( _("Only Open:"), 'OpenOnly', null); stock_manufactured_items_list_cells(_("for item:"), 'SelectedStockItem', null, true); -submit_cells('SearchOrders', _("Search")); +submit_cells('SearchOrders', _("Search"),'',_('Select documents'), true); end_row(); end_table(); @@ -53,27 +78,27 @@ $sql = "SELECT ".TB_PREF."workorders.*, ".TB_PREF."stock_master.description,".TB WHERE ".TB_PREF."stock_master.stock_id=".TB_PREF."workorders.stock_id AND ".TB_PREF."locations.loc_code=".TB_PREF."workorders.loc_code "; -if (check_value('OpenOnly')) +if (check_value('OpenOnly') || $outstanding_only != 0) { $sql .= " AND ".TB_PREF."workorders.closed=0 "; } -if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != $all_items) +if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != $all_items) { $sql .= "AND ".TB_PREF."workorders.loc_code='" . $_POST['StockLocation'] . "' "; } -if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "") +if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "") { $sql .= "AND ".TB_PREF."workorders.wo_ref LIKE '%". $_POST['OrderNumber'] . "%'"; } -if (isset($_POST['SelectedStockItem']) && $_POST['SelectedStockItem'] != $all_items) +if (isset($_POST['SelectedStockItem']) && $_POST['SelectedStockItem'] != $all_items) { $sql .= "AND ".TB_PREF."workorders.stock_id='". $_POST['SelectedStockItem'] . "'"; } -if (check_value('OverdueOnly')) +if (check_value('OverdueOnly')) { $Today = date2sql(Today()); @@ -83,65 +108,68 @@ $sql .= " ORDER BY ".TB_PREF."workorders.required_by"; $result = db_query($sql,"No orders were returned"); +div_start('orders_tbl'); start_table("$table_style width=80%"); $th = array(_("#"), _("Reference"), _("Type"), _("Location"), _("Item"), - _("Required"), _("Manufactured"), _("Date"), _("Required By"), _("Closed"), ""); + _("Required"), _("Manufactured"), _("Date"), _("Required By"), + '', '', '', '', ''); table_header($th); $j = 1; $k = 0; -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { // check if it's an overdue work order - if (!$myrow["closed"] && date_diff(Today(), sql2date($myrow["required_by"]), "d") > 0) + if (!$myrow["closed"] && date_diff(Today(), sql2date($myrow["required_by"]), "d") > 0) { start_row("class='overduebg'"); } else alt_table_row_color($k); - $modify_page = $path_to_root . "/manufacturing/work_order_entry.php?" . SID . "trans_no=" . $myrow["id"]; - $release_page = $path_to_root . "/manufacturing/work_order_release.php?" . SID . "trans_no=" . $myrow["id"]; - if ($myrow["closed"] == 0) - { - $issue = $path_to_root . "/manufacturing/work_order_issue.php?" . SID . "trans_no=" .$myrow["id"]; - $add_finished = $path_to_root . "/manufacturing/work_order_add_finished.php?" . SID . "trans_no=" .$myrow["id"]; - $costs = $path_to_root . "/gl/gl_payment.php?NewPayment=1&PayType=" . payment_person_types::WorkOrder(). "&PayPerson=" .$myrow["id"]; - $can_issue = $myrow["released"]; - $issue_link = $can_issue?("" . _("Issue") . " - " . _("Produce") . " - " . _("Costs") . ""): _("Not Released"); - } - else - { - $issue_link = ""; - } - + $dec = get_qty_dec($myrow["stock_id"]); label_cell(get_trans_view_str(systypes::work_order(), $myrow["id"])); label_cell(get_trans_view_str(systypes::work_order(), $myrow["id"], $myrow["wo_ref"])); label_cell(wo_types::name($myrow["type"])); label_cell($myrow["location_name"]); view_stock_status_cell($myrow["stock_id"], $myrow["description"]); - qty_cell($myrow["units_reqd"]); - qty_cell($myrow["units_issued"]); + qty_cell($myrow["units_reqd"], false, $dec); + qty_cell($myrow["units_issued"], false, $dec); label_cell(sql2date($myrow["date_"])); label_cell(sql2date($myrow["required_by"])); - label_cell(($myrow["closed"]? _("Yes"):_("No"))); - if ($issue_link != "") - label_cell($issue_link); - if ($myrow["released"] == 0) + + $l1 = $l2 = $l3 = $l4 = ''; + if ($myrow["closed"] == 0) { - label_cell("" . _("Release") . ""); + $modify_page = $path_to_root . "/manufacturing/work_order_entry.php?" . SID . "trans_no=" . $myrow["id"]; + $l1 = ""._('Edit').''; + if ($myrow["released"] == 0) + { + $release_page = $path_to_root . "/manufacturing/work_order_release.php?" . SID . "trans_no=" . $myrow["id"]; + $l2 = ""._('Release').''; + } + else + { + $issue = $path_to_root . "/manufacturing/work_order_issue.php?" . SID . "trans_no=" .$myrow["id"]; + $add_finished = $path_to_root . "/manufacturing/work_order_add_finished.php?" . SID . "trans_no=" .$myrow["id"]; + $costs = $path_to_root . "/gl/gl_bank.php?NewPayment=1&PayType=" . payment_person_types::WorkOrder(). "&PayPerson=" .$myrow["id"]; + $l2 = "" . _("Issue") . ""; + $l3 = "" . _("Produce") . ""; + $l4 = "" . _("Costs") . ""; + } } - if ($myrow["closed"] == 0) + else { - label_cell("" . _("Edit") . ""); + $l1 = ""._('Closed').""; } - + label_cell($l1); + label_cell($l2); + label_cell($l3); + label_cell($l4); label_cell(get_gl_view_str(systypes::work_order(), $myrow["id"])); end_row(); @@ -157,7 +185,7 @@ while ($myrow = db_fetch($result)) //end of while loop end_table(1); - +div_end(); //--------------------------------------------------------------------------------- end_page(); diff --git a/manufacturing/view/wo_issue_view.php b/manufacturing/view/wo_issue_view.php index 19b62bc0..e3ba38bc 100644 --- a/manufacturing/view/wo_issue_view.php +++ b/manufacturing/view/wo_issue_view.php @@ -4,7 +4,10 @@ $page_security = 10; $path_to_root="../.."; include_once($path_to_root . "/includes/session.inc"); -page(_("View Work Order Issue"), true); +$js = ""; +if ($use_popup_windows) + $js .= get_js_open_window(900, 500); +page(_("View Work Order Issue"), true, false, "", $js); include_once($path_to_root . "/includes/date_functions.inc"); include_once($path_to_root . "/includes/manufacturing.inc"); @@ -15,7 +18,7 @@ include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc"); //------------------------------------------------------------------------------------------------- -if ($_GET['trans_no'] != "") +if ($_GET['trans_no'] != "") { $wo_issue_no = $_GET['trans_no']; } @@ -31,7 +34,7 @@ function display_wo_issue($issue_no) start_table($table_style); $th = array(_("Issue #"), _("Reference"), _("For Work Order #"), _("Item"), _("From Location"), _("To Work Centre"), _("Date of Issue")); - table_header($th); + table_header($th); start_row(); label_cell($myrow["issue_no"]); @@ -60,9 +63,9 @@ function display_wo_issue_details($issue_no) if (db_num_rows($result) == 0) { - echo "
" . _("There are no items for this issue."); - } - else + display_note(_("There are no items for this issue.")); + } + else { start_table($table_style); $th = array(_("Component"), _("Quantity"), _("Units")); @@ -74,13 +77,13 @@ function display_wo_issue_details($issue_no) $total_cost = 0; - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { alt_table_row_color($k); label_cell($myrow["stock_id"] . " - " . $myrow["description"]); - qty_cell($myrow["qty_issued"]); + qty_cell($myrow["qty_issued"], false, get_qty_dec($myrow["stock_id"])); label_cell($myrow["units"]); end_row();; diff --git a/manufacturing/view/wo_production_view.php b/manufacturing/view/wo_production_view.php index 002c9ef7..02450db5 100644 --- a/manufacturing/view/wo_production_view.php +++ b/manufacturing/view/wo_production_view.php @@ -16,7 +16,7 @@ include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc"); //------------------------------------------------------------------------------------------------- -if ($_GET['trans_no'] != "") +if ($_GET['trans_no'] != "") { $wo_production = $_GET['trans_no']; } @@ -32,14 +32,14 @@ function display_wo_production($prod_id) start_table($table_style); $th = array(_("Production #"), _("Reference"), _("For Work Order #"), _("Item"), _("Quantity Manufactured"), _("Date")); - table_header($th); + table_header($th); start_row(); label_cell($myrow["id"]); label_cell($myrow["reference"]); label_cell(get_trans_view_str(systypes::work_order(),$myrow["workorder_id"])); label_cell($myrow["stock_id"] . " - " . $myrow["StockDescription"]); - qty_cell($myrow["quantity"]); + qty_cell($myrow["quantity"], false, get_qty_dec($myrow["stock_id"])); label_cell(sql2date($myrow["date_"])); end_row(); diff --git a/manufacturing/view/work_order_view.php b/manufacturing/view/work_order_view.php index fb28310c..d63f2de3 100644 --- a/manufacturing/view/work_order_view.php +++ b/manufacturing/view/work_order_view.php @@ -18,8 +18,8 @@ page(_("View Work Order"), true, false, "", $js); //------------------------------------------------------------------------------------------------- $woid = 0; -if ($_GET['trans_no'] != "") -{ +if ($_GET['trans_no'] != "") +{ $woid = $_GET['trans_no']; } @@ -34,33 +34,33 @@ else echo "
"; -// display the WO requirements +// display the WO requirements echo "
"; -if ($myrow["released"] == false) -{ +if ($myrow["released"] == false) +{ display_heading2(_("BOM for item:") . " " . $myrow["StockItemName"]); display_bom($myrow["stock_id"]); -} -else +} +else { - display_heading2(_("Work Order Requirements")); + display_heading2(_("Work Order Requirements")); display_wo_requirements($woid, $myrow["units_reqd"]); - if ($myrow["type"] == wo_types::advanced()) - { + if ($myrow["type"] == wo_types::advanced()) + { echo "
"; - display_heading2(_("Issues")); + display_heading2(_("Issues")); display_wo_issues($woid); echo ""; display_heading2(_("Productions")); display_wo_productions($woid); echo ""; display_heading2(_("Payments")); - display_wo_payments($woid); + display_wo_payments($woid); echo "
"; - } + } } -echo "
"; +echo "
"; is_voided_display(systypes::work_order(), $woid, _("This work order has been voided.")); diff --git a/manufacturing/work_order_add_finished.php b/manufacturing/work_order_add_finished.php index ecc1d0a6..56a80d1d 100644 --- a/manufacturing/work_order_add_finished.php +++ b/manufacturing/work_order_add_finished.php @@ -12,6 +12,8 @@ include_once($path_to_root . "/manufacturing/includes/manufacturing_db.inc"); include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc"); $js = ""; +if ($use_popup_windows) + $js .= get_js_open_window(900, 500); if ($use_date_picker) $js .= get_js_date_picker(); page(_("Produce or Unassemble Finished Items From Work Order"), false, false, "", $js); @@ -23,7 +25,7 @@ if (isset($_GET['trans_no']) && $_GET['trans_no'] != "") //-------------------------------------------------------------------------------------------------- -if (isset($_GET['AddedID'])) +if (isset($_GET['AddedID'])) { display_note(_("The manufacturing process has been entered.")); @@ -38,7 +40,7 @@ if (isset($_GET['AddedID'])) $wo_details = get_work_order($_POST['selected_id']); -if (strlen($wo_details[0]) == 0) +if (strlen($wo_details[0]) == 0) { display_error(_("The order number sent is not valid.")); exit; @@ -50,43 +52,43 @@ function can_process() { global $wo_details; - if (!references::is_valid($_POST['ref'])) + if (!references::is_valid($_POST['ref'])) { display_error(_("You must enter a reference.")); + set_focus('ref'); return false; } - if (!is_new_reference($_POST['ref'], 29)) + if (!is_new_reference($_POST['ref'], 29)) { display_error(_("The entered reference is already in use.")); + set_focus('ref'); return false; } - if (!is_numeric($_POST['quantity'])) + if (!check_num('quantity', 0)) { - display_error(_("The quantity entered is not a valid number.")); - return false; - } - - if ($_POST['quantity'] <= 0) - { - display_error(_("The quantity entered must be greater than zero.")); + display_error(_("The quantity entered is not a valid number or less then zero.")); + set_focus('quantity'); return false; } if (!is_date($_POST['date_'])) { display_error(_("The entered date is invalid.")); + set_focus('date_'); return false; - } - elseif (!is_date_in_fiscalyear($_POST['date_'])) + } + elseif (!is_date_in_fiscalyear($_POST['date_'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('date_'); return false; } - if (date_diff(sql2date($wo_details["released_date"]), $_POST['date_'], "d") > 0) + if (date_diff(sql2date($wo_details["released_date"]), $_POST['date_'], "d") > 0) { display_error(_("The production date cannot be before the release date of the work order.")); + set_focus('date_'); return false; } @@ -96,9 +98,10 @@ function can_process() $wo_details = get_work_order($_POST['selected_id']); $qoh = get_qoh_on_date($wo_details["stock_id"], $wo_details["loc_code"], $date_); - if (-$_POST['quantity'] + $qoh < 0) + if (-$_POST['quantity'] + $qoh < 0) { display_error(_("The unassembling cannot be processed because there is insufficient stock.")); + set_focus('quantity'); return false; } } @@ -108,7 +111,7 @@ function can_process() //-------------------------------------------------------------------------------------------------- -if (isset($_POST['Process']) || (isset($_POST['ProcessAndClose']) && can_process() == true)) +if (isset($_POST['Process']) || (isset($_POST['ProcessAndClose']) && can_process() == true)) { $close_wo = 0; @@ -136,14 +139,14 @@ start_form(); hidden('selected_id', $_POST['selected_id']); //hidden('WOReqQuantity', $_POST['WOReqQuantity']); -if (!isset($_POST['quantity']) || $_POST['quantity'] == '') +if (!isset($_POST['quantity']) || $_POST['quantity'] == '') { $_POST['quantity'] = max($wo_details["units_reqd"] - $wo_details["units_issued"], 0); } start_table(); -ref_row(_("Reference:"), 'ref', references::get_next(29)); +ref_row(_("Reference:"), 'ref', '', references::get_next(29)); if (!isset($_POST['ProductionType'])) $_POST['ProductionType'] = 1; @@ -151,7 +154,7 @@ if (!isset($_POST['ProductionType'])) yesno_list_row(_("Type:"), 'ProductionType', $_POST['ProductionType'], _("Produce Finished Items"), _("Return Items to Work Order")); -text_row(_("Quantity:"), 'quantity', $_POST['quantity'], 13, 15); +small_qty_row(_("Quantity:"), 'quantity', null, null, null, get_qty_dec($wo_details["stock_id"])); date_row(_("Date:"), 'date_'); @@ -159,8 +162,8 @@ textarea_row(_("Memo:"), 'memo_', null, 40, 3); end_table(1); -submit_center_first('Process', _("Process")); -submit_center_last('ProcessAndClose', _("Process And Close Order")); +submit_center_first('Process', _("Process"), '', true); +submit_center_last('ProcessAndClose', _("Process And Close Order"), '', true); end_form(); diff --git a/manufacturing/work_order_entry.php b/manufacturing/work_order_entry.php index a8253edc..e6a18026 100644 --- a/manufacturing/work_order_entry.php +++ b/manufacturing/work_order_entry.php @@ -27,7 +27,7 @@ check_db_has_locations(("There are no inventory locations defined in the system. if (isset($_GET['trans_no'])) { $selected_id = $_GET['trans_no']; -} +} elseif(isset($_POST['selected_id'])) { $selected_id = $_POST['selected_id']; @@ -35,7 +35,7 @@ elseif(isset($_POST['selected_id'])) //--------------------------------------------------------------------------------------- -if (isset($_GET['AddedID'])) +if (isset($_GET['AddedID'])) { $id = $_GET['AddedID']; @@ -46,7 +46,7 @@ if (isset($_GET['AddedID'])) //--------------------------------------------------------------------------------------- -if (isset($_GET['UpdatedID'])) +if (isset($_GET['UpdatedID'])) { $id = $_GET['UpdatedID']; @@ -56,7 +56,7 @@ if (isset($_GET['UpdatedID'])) //--------------------------------------------------------------------------------------- -if (isset($_GET['DeletedID'])) +if (isset($_GET['DeletedID'])) { $id = $_GET['DeletedID']; @@ -66,7 +66,7 @@ if (isset($_GET['DeletedID'])) //--------------------------------------------------------------------------------------- -if (isset($_GET['ClosedID'])) +if (isset($_GET['ClosedID'])) { $id = $_GET['ClosedID']; @@ -94,127 +94,125 @@ if (!isset($_POST['date_'])) $_POST['date_'] = Today(); if (!is_date_in_fiscalyear($_POST['date_'])) $_POST['date_'] = end_fiscalyear(); -} +} function can_process() { global $selected_id; - if (!isset($selected_id)) + if (!isset($selected_id)) { - if (!references::is_valid($_POST['wo_ref'])) + if (!references::is_valid($_POST['wo_ref'])) { display_error(_("You must enter a reference.")); + set_focus('wo_ref'); return false; } - if (!is_new_reference($_POST['wo_ref'], systypes::work_order())) + if (!is_new_reference($_POST['wo_ref'], systypes::work_order())) { display_error(_("The entered reference is already in use.")); + set_focus('wo_ref'); return false; } } - if (!is_numeric($_POST['quantity'])) - { - display_error( _("The quantity entered must be numeric.")); - return false; - } - - if ($_POST['quantity'] <= 0) + if (!check_num('quantity', 0)) { - display_error( _("The quantity entered must be a positive number greater than zero.")); + display_error( _("The quantity entered is invalid or less than zero.")); + set_focus('quantity'); return false; } if (!is_date($_POST['date_'])) { display_error( _("The date entered is in an invalid format.")); + set_focus('date_'); return false; - } - elseif (!is_date_in_fiscalyear($_POST['date_'])) + } + elseif (!is_date_in_fiscalyear($_POST['date_'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('date_'); return false; } // only check bom and quantites if quick assembly - if (!($_POST['type'] == wo_types::advanced())) + if (!($_POST['type'] == wo_types::advanced())) { - if (!has_bom($_POST['stock_id'])) + if (!has_bom($_POST['stock_id'])) { display_error(_("The selected item to manufacture does not have a bom.")); + set_focus('stock_id'); return false; } if ($_POST['Costs'] == "") - $_POST['Costs'] = 0; - if (!is_numeric($_POST['Costs'])) - { - display_error( _("The cost entered must be numeric.")); - return false; - } - - if ($_POST['Costs'] < 0) + $_POST['Costs'] = price_format(0); + if (!check_num('Costs', 0)) { - display_error( _("The cost entered cannot be negative.")); + display_error( _("The cost entered is invalid or less than zero.")); + set_focus('Costs'); return false; } - if (!sys_prefs::allow_negative_stock()) + if (!sys_prefs::allow_negative_stock()) { - if ($_POST['type'] == wo_types::assemble()) + if ($_POST['type'] == wo_types::assemble()) { // check bom if assembling $result = get_bom($_POST['stock_id']); - while ($bom_item = db_fetch($result)) + while ($bom_item = db_fetch($result)) { - if (has_stock_holding($bom_item["ResourceType"])) + if (has_stock_holding($bom_item["ResourceType"])) { - $quantity = $bom_item["quantity"] * $_POST['quantity']; + $quantity = $bom_item["quantity"] * input_num('quantity'); $qoh = get_qoh_on_date($bom_item["component"], $bom_item["loc_code"], $_POST['date_']); - if (-$quantity + $qoh < 0) + if (-$quantity + $qoh < 0) { display_error(_("The work order cannot be processed because there is an insufficient quantity for component:") . " " . $bom_item["component"] . " - " . $bom_item["description"] . ". " . _("Location:") . " " . $bom_item["location_name"]); + set_focus('quantity'); return false; } } } - } - elseif ($_POST['type'] == wo_types::unassemble()) + } + elseif ($_POST['type'] == wo_types::unassemble()) { // if unassembling, check item to unassemble $qoh = get_qoh_on_date($_POST['stock_id'], $_POST['StockLocation'], $_POST['date_']); - if (-$_POST['quantity'] + $qoh < 0) + if (-input_num('quantity') + $qoh < 0) { display_error(_("The selected item cannot be unassembled because there is insufficient stock.")); return false; } } } - } - else + } + else { if (!is_date($_POST['RequDate'])) { + set_focus('RequDate'); display_error( _("The date entered is in an invalid format.")); return false; - } - //elseif (!is_date_in_fiscalyear($_POST['RequDate'])) + } + //elseif (!is_date_in_fiscalyear($_POST['RequDate'])) //{ // display_error(_("The entered date is not in fiscal year.")); // return false; //} - if (isset($selected_id)) + if (isset($selected_id)) { $myrow = get_work_order($selected_id, true); - if ($_POST['units_issued'] > $_POST['quantity']) + if ($_POST['units_issued'] > input_num('quantity')) { + set_focus('quantity'); display_error(_("The quantity cannot be changed to be less than the quantity already manufactured for this order.")); return false; } @@ -226,22 +224,22 @@ function can_process() //------------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) && can_process()) +if (isset($_POST['ADD_ITEM']) && can_process()) { - $id = add_work_order($_POST['wo_ref'], $_POST['StockLocation'], $_POST['quantity'], + $id = add_work_order($_POST['wo_ref'], $_POST['StockLocation'], input_num('quantity'), $_POST['stock_id'], $_POST['type'], $_POST['date_'], - $_POST['RequDate'], $_POST['Costs'], $_POST['memo_']); + $_POST['RequDate'], input_num('Costs'), $_POST['memo_']); meta_forward($_SERVER['PHP_SELF'], "AddedID=$id"); } //------------------------------------------------------------------------------------- -if (isset($_POST['UPDATE_ITEM']) && can_process()) +if (isset($_POST['UPDATE_ITEM']) && can_process()) { - update_work_order($selected_id, $_POST['StockLocation'], $_POST['quantity'], + update_work_order($selected_id, $_POST['StockLocation'], input_num('quantity'), $_POST['stock_id'], $_POST['date_'], $_POST['RequDate'], $_POST['memo_']); meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$selected_id"); @@ -249,22 +247,22 @@ if (isset($_POST['UPDATE_ITEM']) && can_process()) //-------------------------------------------------------------------------------------- -if (isset($_POST['delete'])) +if (isset($_POST['delete'])) { //the link to delete a selected record was clicked instead of the submit button $cancel_delete = false; // can't delete it there are productions or issues - if (work_order_has_productions($selected_id) || - work_order_has_issues($selected_id) || + if (work_order_has_productions($selected_id) || + work_order_has_issues($selected_id) || work_order_has_payments($selected_id)) { display_error(_("This work order cannot be deleted because it has already been processed.")); $cancel_delete = true; } - if ($cancel_delete == false) + if ($cancel_delete == false) { //ie not cancelled the delete as a result of above tests // delete the actual work order @@ -275,7 +273,7 @@ if (isset($_POST['delete'])) //------------------------------------------------------------------------------------- -if (isset($_POST['close'])) +if (isset($_POST['close'])) { // update the closed flag in the work order @@ -283,6 +281,11 @@ if (isset($_POST['close'])) meta_forward($_SERVER['PHP_SELF'], "ClosedID=$selected_id"); } +//------------------------------------------------------------------------------------- +if (get_post('_type_update')) +{ + $Ajax->activate('_page_body'); +} //------------------------------------------------------------------------------------- start_form(); @@ -291,18 +294,19 @@ start_table($table_style2); $existing_comments = ""; +$dec = 0; if (isset($selected_id)) { $myrow = get_work_order($selected_id); - if (strlen($myrow[0]) == 0) + if (strlen($myrow[0]) == 0) { echo _("The order number sent is not valid."); safe_exit(); } // if it's a closed work order can't edit it - if ($myrow["closed"] == 1) + if ($myrow["closed"] == 1) { echo "
"; display_error(_("This work order is closed and cannot be edited.")); @@ -310,18 +314,18 @@ if (isset($selected_id)) } $_POST['wo_ref'] = $myrow["wo_ref"]; - $_POST['quantity'] = $myrow["units_reqd"]; + $_POST['stock_id'] = $myrow["stock_id"]; + $_POST['quantity'] = qty_format($myrow["units_reqd"], $_POST['stock_id'], $dec); $_POST['StockLocation'] = $myrow["loc_code"]; $_POST['released'] = $myrow["released"]; $_POST['closed'] = $myrow["closed"]; - $_POST['stock_id'] = $myrow["stock_id"]; $_POST['type'] = $myrow["type"]; $_POST['date_'] = sql2date($myrow["date_"]); $_POST['RequDate'] = sql2date($myrow["required_by"]); $_POST['released_date'] = sql2date($myrow["released_date"]); $_POST['memo_'] = ""; $_POST['units_issued'] = $myrow["units_issued"]; - $_POST['Costs'] = $myrow["Costs"]; + $_POST['Costs'] = price_format($myrow["additional_costs"]); $_POST['memo_'] = get_comments_string(systypes::work_order(), $selected_id); @@ -330,19 +334,22 @@ if (isset($selected_id)) hidden('released', $_POST['released']); hidden('released_date', $_POST['released_date']); hidden('selected_id', $selected_id); + hidden('old_qty', $myrow["units_reqd"]); + hidden('old_stk_id', $myrow["stock_id"]); label_row(_("Reference:"), $_POST['wo_ref']); label_row(_("Type:"), wo_types::name($_POST['type'])); -} -else + hidden('type', $myrow["type"]); +} +else { $_POST['units_issued'] = $_POST['released'] = 0; - ref_row(_("Reference:"), 'wo_ref', references::get_next(systypes::work_order())); + ref_row(_("Reference:"), 'wo_ref', '', references::get_next(systypes::work_order())); - wo_types_list_row(_("Type:"), 'type', $_POST['type']); + wo_types_list_row(_("Type:"), 'type', null); } -if ($_POST['released'] == true) +if ($_POST['released'] == true) { hidden('stock_id', $_POST['stock_id']); hidden('StockLocation', $_POST['StockLocation']); @@ -350,8 +357,8 @@ if ($_POST['released'] == true) label_row(_("Item:"), $myrow["StockItemName"]); label_row(_("Destination Location:"), $myrow["location_name"]); -} -else +} +else { stock_manufactured_items_list_row(_("Item:"), 'stock_id', null); @@ -359,24 +366,24 @@ else } if (!isset($_POST['quantity'])) - $_POST['quantity'] = 1; + $_POST['quantity'] = qty_format(1, $_POST['stock_id'], $dec); -if ($_POST['type'] == wo_types::advanced()) +if (get_post('type') == wo_types::advanced()) { - text_row_ex(_("Quantity Required:"), 'quantity', 12); + qty_row(_("Quantity Required:"), 'quantity', null, null, null, $dec); if ($_POST['released']) - label_row(_("Quantity Manufactured:"), $_POST['units_issued']); + label_row(_("Quantity Manufactured:"), number_format($_POST['units_issued'], get_qty_dec($_POST['stock_id']))); date_row(_("Date") . ":", 'date_'); - date_row(_("Date Required By") . ":", 'RequDate', null, sys_prefs::default_wo_required_by()); + date_row(_("Date Required By") . ":", 'RequDate', '', null, sys_prefs::default_wo_required_by()); } -else +else { - text_row_ex(_("Quantity:"), 'quantity', 12); + qty_row(_("Quantity:"), 'quantity', null, null, null, $dec); date_row(_("Date") . ":", 'date_'); hidden('RequDate', ''); if (!isset($_POST['Costs'])) - $_POST['Costs'] = 0; + $_POST['Costs'] = price_format(0); amount_row(_("Total Additional Costs:"), 'Costs'); } @@ -388,20 +395,23 @@ textarea_row(_("Memo:"), 'memo_', null, 40, 5); end_table(1); -submit_add_or_update_center(!isset($selected_id)); - -if (isset($selected_id)) +if (isset($selected_id)) { - echo "

"; + echo "
"; - if (isset($_POST['released'])) + submit_cells('UPDATE_ITEM', _("Update"), '', _('Save changes to work order'), true); + if (isset($_POST['released'])) { - submit_cells('close', _("Close This Work Order")); + submit_cells('close', _("Close This Work Order"),'','',true); } - submit_cells('delete', _("Delete This Work Order")); - + submit_cells('delete', _("Delete This Work Order"),'','',true); + echo "
"; } +else +{ + submit_center('ADD_ITEM', _("Add Workorder"), true, '', true); +} end_form(); end_page(); diff --git a/manufacturing/work_order_issue.php b/manufacturing/work_order_issue.php index ec394566..5d518e56 100644 --- a/manufacturing/work_order_issue.php +++ b/manufacturing/work_order_issue.php @@ -13,6 +13,8 @@ include_once($path_to_root . "/manufacturing/includes/manufacturing_db.inc"); include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc"); include_once($path_to_root . "/manufacturing/includes/work_order_issue_ui.inc"); $js = ""; +if ($use_popup_windows) + $js .= get_js_open_window(800, 500); if ($use_date_picker) $js .= get_js_date_picker(); page(_("Issue Items to Work Order"), false, false, "", $js); @@ -25,8 +27,15 @@ if (isset($_GET['AddedID'])) echo "
"; hyperlink_no_params("search_work_orders.php", _("Select another Work Order to Process")); echo "

"; - end_page(); - exit; + display_footer_exit(); +} +//-------------------------------------------------------------------------------------------------- + +function line_start_focus() { + global $Ajax; + + $Ajax->activate('items_table'); + set_focus('_stock_id_edit'); } //-------------------------------------------------------------------------------------------------- @@ -41,7 +50,7 @@ function handle_new_order() Session_register("issue_items"); - $_SESSION['issue_items'] = new items_cart; + $_SESSION['issue_items'] = new items_cart(28); $_SESSION['issue_items']->order_id = $_GET['trans_no']; } @@ -52,27 +61,31 @@ function can_process() if (!is_date($_POST['date_'])) { display_error(_("The entered date for the issue is invalid.")); + set_focus('date_'); return false; } elseif (!is_date_in_fiscalyear($_POST['date_'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('date_'); return false; } if (!references::is_valid($_POST['ref'])) { display_error(_("You must enter a reference.")); + set_focus('ref'); return false; } if (!is_new_reference($_POST['ref'], 28)) { display_error(_("The entered reference is already in use.")); + set_focus('ref'); return false; } $failed_item = $_SESSION['issue_items']->check_qoh($_POST['Location'], $_POST['date_'], !$_POST['IssueType']); - if ($failed_item != null) + if ($failed_item >= 0) { display_error( _("The issue cannot be processed because an entered item would cause a negative inventory balance :") . " " . $failed_item->stock_id . " - " . $failed_item->item_description); @@ -82,7 +95,7 @@ function can_process() return true; } -if (isset($_POST['Process'])) +if (isset($_POST['Process']) && can_process()) { // if failed, returns a stockID @@ -107,21 +120,17 @@ if (isset($_POST['Process'])) function check_item_data() { - if (!is_numeric($_POST['qty'])) - { - display_error(_("The quantity entered is not a valid number.")); - return false; - } - - if ($_POST['qty'] <= 0) + if (!check_num('qty', 0)) { - display_error(_("The quantity entered must be greater than zero.")); + display_error(_("The quantity entered is negative or invalid.")); + set_focus('qty'); return false; } - if (!is_numeric($_POST['std_cost']) || $_POST['std_cost'] < 0) + if (!check_num('std_cost', 0)) { display_error(_("The entered standard cost is negative or invalid.")); + set_focus('std_cost'); return false; } @@ -134,15 +143,18 @@ function handle_update_item() { if($_POST['UpdateItem'] != "" && check_item_data()) { - $_SESSION['issue_items']->update_cart_item($_POST['stock_id'], $_POST['qty'], $_POST['std_cost']); + $id = $_POST['LineNo']; + $_SESSION['issue_items']->update_cart_item($id, input_num('qty'), input_num('std_cost')); } + line_start_focus(); } //----------------------------------------------------------------------------------------------- -function handle_delete_item() +function handle_delete_item($id) { - $_SESSION['issue_items']->remove_from_cart($_GET['Delete']); + $_SESSION['issue_items']->remove_from_cart($id); + line_start_focus(); } //----------------------------------------------------------------------------------------------- @@ -152,20 +164,26 @@ function handle_new_item() if (!check_item_data()) return; - add_to_order($_SESSION['issue_items'], $_POST['stock_id'], $_POST['qty'], $_POST['std_cost']); + add_to_issue($_SESSION['issue_items'], $_POST['stock_id'], input_num('qty'), + input_num('std_cost')); + line_start_focus(); } //----------------------------------------------------------------------------------------------- +$id = find_submit('Delete'); +if ($id != -1) + handle_delete_item($id); -if ($_GET['Delete']!="") - handle_delete_item(); - -if ($_POST['AddItem']!="") +if (isset($_POST['AddItem'])) handle_new_item(); -if ($_POST['UpdateItem']!="") +if (isset($_POST['UpdateItem'])) handle_update_item(); +if (isset($_POST['CancelItemChanges'])) { + line_start_focus(); +} + //----------------------------------------------------------------------------------------------- if (isset($_GET['trans_no'])) @@ -175,30 +193,20 @@ if (isset($_GET['trans_no'])) //----------------------------------------------------------------------------------------------- -display_order_header($_SESSION['issue_items']); +display_wo_details($_SESSION['issue_items']->order_id); +echo "
"; start_form(false, true); -start_table("$table_style width=90%", '10'); +start_table("$table_style width=90%", 10); echo ""; -display_adjustment_items(_("Items to Issue"), $_SESSION['issue_items']); -adjustment_options_controls(); +display_issue_items(_("Items to Issue"), $_SESSION['issue_items']); +issue_options_controls(); echo ""; end_table(); -if (!isset($_POST['Process'])) -{ - start_table(); - start_row(); - submit_cells('Update', _("Update")); - if ($_SESSION['issue_items']->count_items() >= 1) - { - submit_cells('Process', _("Process Issue")); - } - end_row(); - end_table(); -} +submit_center('Process', _("Process Issue"), true, '', true); end_form(); diff --git a/manufacturing/work_order_release.php b/manufacturing/work_order_release.php index 6b4effc2..80e4f3ac 100644 --- a/manufacturing/work_order_release.php +++ b/manufacturing/work_order_release.php @@ -18,12 +18,12 @@ page(_("Work Order Release to Manufacturing"), false, false, "", $js); if (isset($_GET["trans_no"])) { $selected_id = $_GET["trans_no"]; -} +} elseif (isset($_POST["selected_id"])) { $selected_id = $_POST["selected_id"]; -} -else +} +else { display_note("This page must be called with a work order reference"); exit; @@ -33,35 +33,36 @@ else function can_process($myrow) { - if ($myrow['released']) + if ($myrow['released']) { display_error(_("This work order has already been released.")); + set_focus('released'); return false; } - + // make sure item has components - if (!has_bom($myrow['stock_id'])) + if (!has_bom($myrow['stock_id'])) { display_error(_("This Work Order cannot be released. The selected item to manufacture does not have a bom.")); + set_focus('stock_id'); return false; - } - + } + return true; } //------------------------------------------------------------------------------------ - -if (isset($_POST['release'])) +if (isset($_POST['release'])) { release_work_order($selected_id, $_POST['released_date'], $_POST['memo_']); - + display_note(_("The work order has been released to manufacturing.")); - + hyperlink_no_params("search_work_orders.php", _("Select another work order")); - end_page(); - - exit; + $Ajax->activate('_page_body'); + end_page(); + exit; } //------------------------------------------------------------------------------------ @@ -73,21 +74,21 @@ $myrow = get_work_order($selected_id); $_POST['released'] = $myrow["released"]; $_POST['memo_'] = ""; -if (can_process($myrow)) +if (can_process($myrow)) { start_table($table_style2); - + label_row(_("Work Order #:"), $selected_id); label_row(_("Work Order Reference:"), $myrow["wo_ref"]); - + date_row(_("Released Date") . ":", 'released_date'); - + textarea_row(_("Memo:"), 'memo_', $_POST['memo_'], 40, 5); - + end_table(1); - - submit_center('release', _("Release Work Order")); - + + submit_center('release', _("Release Work Order"), true, '', true); + hidden('selected_id', $selected_id); hidden('stock_id', $myrow['stock_id']); diff --git a/purchasing/allocations/supplier_allocate.php b/purchasing/allocations/supplier_allocate.php index 7ef2b2aa..995b2735 100644 --- a/purchasing/allocations/supplier_allocate.php +++ b/purchasing/allocations/supplier_allocate.php @@ -1,22 +1,22 @@ allocs); unset($_SESSION['alloc']); } - session_register("alloc"); } - //-------------------------------------------------------------------------------- function check_data() { $total_allocated = 0; - for ($counter=0; $counter < $_POST["TotalNumberOfAllocs"]; $counter++) + for ($counter = 0; $counter < $_POST["TotalNumberOfAllocs"]; $counter++) { - - if (!is_numeric($_POST['amount' . $counter])) + if (!check_num('amount' . $counter, 0)) { - display_error(_("The entry for one or more amounts is invalid.")); - return false; - } - - if ($_POST['amount' . $counter] < 0) - { - display_error(_("The entry for an amount to allocate was negative. A positive allocation amount is expected.")); + display_error(_("The entry for one or more amounts is invalid or negative.")); + set_focus('amount'.$counter); return false; } /*Now check to see that the AllocAmt is no greater than the amount left to be allocated against the transaction under review */ - if ($_POST['amount' . $counter] > $_POST['un_allocated' . $counter]) + if (input_num('amount' . $counter) > $_POST['un_allocated' . $counter]) { //$_POST['amount' . $counter] = $_POST['un_allocated' . $counter]; } - $_SESSION['alloc']->allocs[$counter]->current_allocated = $_POST['amount' . $counter]; + $_SESSION['alloc']->allocs[$counter]->current_allocated = input_num('amount' . $counter); - $total_allocated += $_POST['amount' . $counter]; + $total_allocated += input_num('amount' . $counter); } if ($total_allocated + $_SESSION['alloc']->amount > sys_prefs::allocation_settled_allowance()) @@ -112,7 +104,7 @@ function handle_process() if (isset($_POST['Process'])) { - if (check_data()) + if (check_data()) { handle_process(); $_POST['Cancel'] = 1; @@ -125,9 +117,7 @@ if (isset($_POST['Cancel'])) { clear_allocations(); meta_forward($path_to_root . "/purchasing/allocations/supplier_allocation_main.php"); - exit; } - //-------------------------------------------------------------------------------- function get_allocations_for_transaction($type, $trans_no) @@ -185,16 +175,17 @@ function edit_allocations_for_transaction($type, $trans_no) display_heading($_SESSION['alloc']->person_name); display_heading2(_("Date:") . " " . $_SESSION['alloc']->date_ . ""); - display_heading2(_("Total:") . " " . number_format2(-$_SESSION['alloc']->amount,user_price_dec()) . ""); + display_heading2(_("Total:") . " " . price_format(-$_SESSION['alloc']->amount) . ""); echo "
"; + div_start('alloc_tbl'); if (count($_SESSION['alloc']->allocs) > 0) { start_table($table_style); - $th = array(_("Transaction Type"), _("#"), _("Date"), _("Due Date"), _("Amount"), - _("Other Allocations"), _("This Allocation"), _("Left to Allocate")); - table_header($th); + $th = array(_("Transaction Type"), _("#"), _("Date"), _("Due Date"), _("Amount"), + _("Other Allocations"), _("This Allocation"), _("Left to Allocate"),''); + table_header($th); $k = $counter = $total_allocated = 0; @@ -207,54 +198,52 @@ function edit_allocations_for_transaction($type, $trans_no) label_cell($alloc_item->date_, "align=right"); label_cell($alloc_item->due_date, "align=right"); amount_cell($alloc_item->amount); - amount_cell($alloc_item->amount_allocated); + amount_cell($alloc_item->amount_allocated); - if (!isset($_POST['amount' . $counter]) || $_POST['amount' . $counter] == "") - $_POST['amount' . $counter] = $alloc_item->current_allocated; - text_cells(null, "amount" . $counter, $_POST['amount' . $counter], 13, 12); + $_POST['amount' . $counter] = price_format($alloc_item->current_allocated); + amount_cells(null, "amount" . $counter, price_format('amount' . $counter)); $un_allocated = round($alloc_item->amount - $alloc_item->amount_allocated, 6); - hidden("un_allocated" . $counter, $un_allocated); amount_cell($un_allocated); - - label_cell("" . _("All") . ""); - label_cell("" . _("None") . ""); + label_cell("" + . _("All") . ""); + label_cell("" + . _("None") . "".hidden("un_allocated" . $counter, $un_allocated, false)); end_row(); - $total_allocated += $_POST['amount' . $counter]; + $total_allocated += input_num('amount' . $counter); $counter++; } - + label_row(_("Total Allocated"), number_format2($total_allocated,user_price_dec()), - "colspan=6 align=right", "align=right"); + "colspan=6 align=right", "align=right id='total_allocated'"); if (-$_SESSION['alloc']->amount - $total_allocated < 0) { $font1 = ""; $font2 = ""; - } + } else $font1 = $font2 = ""; - label_row(_("Left to Allocate"), $font1 . number_format2(-$_SESSION['alloc']->amount - - $total_allocated,user_price_dec()) . $font2, "colspan=6 align=right", - "nowrap align=right"); - end_table(); + $left_to_allocate = price_format(-$_SESSION['alloc']->amount - $total_allocated); + label_row(_("Left to Allocate"), $font1 . $left_to_allocate . $font2, "colspan=6 align=right", + "nowrap align=right id='left_to_allocate'"); + end_table(); hidden('TotalNumberOfAllocs', $counter); - echo "
"; - submit('UpdateDisplay', _("Update")); - echo " "; - submit('Process', _("Process")); - echo " "; - } - else + + submit_center_first('UpdateDisplay', _("Refresh"), _('Start again allocation of selected amount'), true); + submit('Process', _("Process"), true, _('Process allocations'), true); + submit_center_last('Cancel', _("Back to Allocations"), + _('Abandon allocations and return to selection of allocatable amounts'), true); + } + else { display_note(_("There are no unsettled transactions to allocate."), 0, 1); - echo "
"; + submit_center('Cancel', _("Back to Allocations"), true, + _('Abandon allocations and return to selection of allocatable amounts'), true); } - submit('Cancel', _("Back to Allocations")); - echo "


"; - + div_end(); end_form(); } @@ -264,6 +253,14 @@ if (isset($_GET['trans_no']) && isset($_GET['trans_type'])) { get_allocations_for_transaction($_GET['trans_type'], $_GET['trans_no']); } +if(get_post('UpdateDisplay')) +{ + $trans_no = $_SESSION['alloc']->trans_no; + $type = $_SESSION['alloc']->type; + clear_allocations(); + get_allocations_for_transaction($type, $trans_no); + $Ajax->activate('alloc_tbl'); +} if (isset($_SESSION['alloc'])) { diff --git a/purchasing/allocations/supplier_allocation_main.php b/purchasing/allocations/supplier_allocation_main.php index 4e9ca586..55e32abb 100644 --- a/purchasing/allocations/supplier_allocation_main.php +++ b/purchasing/allocations/supplier_allocation_main.php @@ -54,7 +54,7 @@ function display_allocatable_transactions() $supplier_id = $_POST['supplier_id']; $trans_items = get_allocatable_from_supp_transactions($supplier_id, $settled); - + div_start('alloc_tbl'); start_table($table_style); if (!isset($_POST['supplier_id'])) $th = array(_("Transaction Type"), _("#"), _("Reference"), _("Date"), _("Supplier"), @@ -102,12 +102,15 @@ function display_allocatable_transactions() if (db_num_rows($trans_items) == 0) display_note(_("There are no allocations to be done."), 1, 2); - + div_end(); end_form(); } //-------------------------------------------------------------------------------- +if (get_post('_ShowSettled_update')) { + $Ajax->activate('alloc_tbl'); +} display_allocatable_transactions(); //-------------------------------------------------------------------------------- diff --git a/purchasing/includes/db/grn_db.inc b/purchasing/includes/db/grn_db.inc index b6738fe0..756c972f 100644 --- a/purchasing/includes/db/grn_db.inc +++ b/purchasing/includes/db/grn_db.inc @@ -1,49 +1,90 @@ order_no, $po->supplier_id, $reference, $location, $date_); - - foreach ($po->line_items as $order_line) + + $grn = add_grn_batch($po->order_no, $po->supplier_id, $reference, $location, $date_); + + foreach ($po->line_items as $order_line) { - if ($order_line->receive_qty != 0 && $order_line->receive_qty != "" && isset($order_line->receive_qty)) + if ($order_line->receive_qty != 0 && $order_line->receive_qty != "" && isset($order_line->receive_qty)) { - + /*Update sales_order_details for the new quantity received and the standard cost used for postings to GL and recorded in the stock movements for FIFO/LIFO stocks valuations*/ - if ($order_line->qty_received == 0) - { + //------------------- update average material cost ------------------------------------------ Joe Hunt Mar-03-2008 + update_average_material_cost($po->supplier_id, $order_line->stock_id, $order_line->price, + $order_line->receive_qty, $date_); + //---------------------------------------------------------------------------------------------------------------- + if ($order_line->qty_received == 0) + { /*This must be the first receipt of goods against this line */ - /*Need to get the standard cost as it is now so we can process GL jorunals later*/ - $order_line->standard_cost = get_standard_cost($order_line->stock_id); + /*Need to get the standard cost as it is now so we can process GL jorunals later*/ + $order_line->standard_cost = get_standard_cost($order_line->stock_id); } + /*Need to insert a grn item */ - - $grn_item = add_grn_detail_item($grn, $order_line->po_detail_rec, - $order_line->stock_id, $order_line->item_description, - $order_line->standard_cost, $order_line->receive_qty); + + $grn_item = add_grn_detail_item($grn, $order_line->po_detail_rec, + $order_line->stock_id, $order_line->item_description, + $order_line->standard_cost, $order_line->receive_qty, $order_line->price); /* Update location stock records - NB a po cannot be entered for a service/kit parts */ - - add_stock_move(25, $order_line->stock_id, $grn, $location, $date_, "", + add_stock_move(25, $order_line->stock_id, $grn, $location, $date_, "", $order_line->receive_qty, $order_line->standard_cost, - $po->supplier_id, 1, $order_line->price); - + $po->supplier_id, 1, $order_line->price); + } /*quantity received is != 0 */ } /*end of order_line loop */ - - add_forms_for_sys_type(25, $grn, $location); - - references::save_last($reference, 25); - + + references::save_last($reference, 25); + commit_transaction(); - + return $grn; } @@ -52,61 +93,63 @@ function add_grn(&$po, $date_, $reference, $location) function add_grn_batch($po_number, $supplier_id, $reference, $location, $date_) { $date = date2sql($date_); - - $sql = "INSERT INTO ".TB_PREF."grn_batch (purch_order_no, delivery_date, supplier_id, reference, loc_code) - VALUES ($po_number, '$date', '$supplier_id', '$reference', '$location')"; + + $sql = "INSERT INTO ".TB_PREF."grn_batch (purch_order_no, delivery_date, supplier_id, reference, loc_code) + VALUES (".db_escape($po_number).", ".db_escape($date).", " + .db_escape($supplier_id).", ".db_escape($reference).", ".db_escape($location).")"; db_query($sql, "A grn batch record could not be inserted."); - - return db_insert_id(); + + return db_insert_id(); } //------------------------------------------------------------------------------------------------------------- -function add_grn_detail_item($grn_batch_id, $po_detail_item, $item_code, $description, $standard_unit_cost, - $quantity_received) +function add_grn_detail_item($grn_batch_id, $po_detail_item, $item_code, $description, $standard_unit_cost, + $quantity_received, $price) { - $sql = "UPDATE ".TB_PREF."purch_order_details - SET quantity_received = quantity_received + $quantity_received, - std_cost_unit=$standard_unit_cost + $sql = "UPDATE ".TB_PREF."purch_order_details + SET quantity_received = quantity_received + $quantity_received, + std_cost_unit=$standard_unit_cost, + act_price=$price WHERE po_detail_item = $po_detail_item"; - + db_query($sql, "a purchase order details record could not be updated. This receipt of goods has not been processed "); - - $sql = "INSERT INTO ".TB_PREF."grn_items (grn_batch_id, po_detail_item, item_code, description, qty_recd) - VALUES ($grn_batch_id, $po_detail_item, '$item_code', '$description', $quantity_received)"; + + $sql = "INSERT INTO ".TB_PREF."grn_items (grn_batch_id, po_detail_item, item_code, description, qty_recd) + VALUES ($grn_batch_id, $po_detail_item, ".db_escape($item_code).", ".db_escape($description).", $quantity_received)"; db_query($sql, "A GRN detail item could not be inserted."); - + return db_insert_id(); } //---------------------------------------------------------------------------------------- -function get_grn_items($grn_batch_id=0, $supplier_id="", $outstanding_only=false, +function get_grn_items($grn_batch_id=0, $supplier_id="", $outstanding_only=false, $is_invoiced_only=false) { $sql = "SELECT ".TB_PREF."grn_batch.*, ".TB_PREF."grn_items.*, ".TB_PREF."purch_order_details.unit_price, - ".TB_PREF."purch_order_details.std_cost_unit, units + ".TB_PREF."purch_order_details.std_cost_unit, units FROM ".TB_PREF."grn_batch, ".TB_PREF."grn_items, ".TB_PREF."purch_order_details, ".TB_PREF."stock_master - WHERE ".TB_PREF."grn_items.grn_batch_id=".TB_PREF."grn_batch.id + WHERE ".TB_PREF."grn_items.grn_batch_id=".TB_PREF."grn_batch.id AND ".TB_PREF."grn_items.po_detail_item=".TB_PREF."purch_order_details.po_detail_item AND ".TB_PREF."stock_master.stock_id=".TB_PREF."grn_items.item_code "; - + if ($grn_batch_id != 0) $sql .= " AND ".TB_PREF."grn_batch.id=$grn_batch_id AND ".TB_PREF."grn_items.grn_batch_id=$grn_batch_id "; - + if ($is_invoiced_only) $sql .= " AND ".TB_PREF."grn_items.quantity_inv > 0"; - + if ($outstanding_only) - $sql .= " AND ".TB_PREF."grn_items.qty_recd - ".TB_PREF."grn_items.quantity_inv > 0"; - + $sql .= " AND ".TB_PREF."grn_items.qty_recd - ".TB_PREF."grn_items.quantity_inv > 0"; + if ($supplier_id != "") $sql .= " AND ".TB_PREF."grn_batch.supplier_id ='$supplier_id' "; - + $sql .= " ORDER BY ".TB_PREF."grn_batch.delivery_date, ".TB_PREF."grn_batch.id, ".TB_PREF."grn_items.id"; - + return db_query($sql, "Could not retreive GRNS"); } @@ -116,42 +159,42 @@ function get_grn_items($grn_batch_id=0, $supplier_id="", $outstanding_only=false function get_grn_item_detail($grn_item_no) { - $sql = "SELECT ".TB_PREF."grn_items.*, ".TB_PREF."purch_order_details.unit_price, - ".TB_PREF."grn_items.qty_recd - ".TB_PREF."grn_items.quantity_inv AS QtyOstdg, + $sql = "SELECT ".TB_PREF."grn_items.*, ".TB_PREF."purch_order_details.unit_price, + ".TB_PREF."grn_items.qty_recd - ".TB_PREF."grn_items.quantity_inv AS QtyOstdg, ".TB_PREF."purch_order_details.std_cost_unit - FROM ".TB_PREF."grn_items, ".TB_PREF."purch_order_details, ".TB_PREF."stock_master + FROM ".TB_PREF."grn_items, ".TB_PREF."purch_order_details, ".TB_PREF."stock_master WHERE ".TB_PREF."grn_items.po_detail_item=".TB_PREF."purch_order_details.po_detail_item AND ".TB_PREF."stock_master.stock_id=".TB_PREF."grn_items.item_code AND ".TB_PREF."grn_items.id=$grn_item_no"; - + $result = db_query($sql, "could not retreive grn item details"); return db_fetch($result); -} - -//---------------------------------------------------------------------------------------- +} + +//---------------------------------------------------------------------------------------- function read_grn_items_to_order($grn_batch, &$order) { - $result = get_grn_items($grn_batch); + $result = get_grn_items($grn_batch); - if (db_num_rows($result) > 0) + if (db_num_rows($result) > 0) { - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { if (is_null($myrow["units"])) { $units = ""; - } - else + } + else { $units = $myrow["units"]; } - $order->add_to_order($order->lines_on_order+1, $myrow["item_code"], + $order->add_to_order($order->lines_on_order+1, $myrow["item_code"], 1,$myrow["description"], $myrow["unit_price"],$units, - sql2date($myrow["delivery_date"]), $myrow["quantity_inv"], + sql2date($myrow["delivery_date"]), $myrow["quantity_inv"], $myrow["qty_recd"]); $order->line_items[$order->lines_on_order]->po_detail_rec = $myrow["po_detail_item"]; @@ -166,23 +209,23 @@ function read_grn_items_to_order($grn_batch, &$order) function read_grn($grn_batch, &$order) { $sql= "SELECT * FROM ".TB_PREF."grn_batch WHERE id=$grn_batch"; - - $result = db_query($sql, "The grn sent is not valid"); - $row = db_fetch($result); - $po_number = $row["purch_order_no"]; - + $result = db_query($sql, "The grn sent is not valid"); + + $row = db_fetch($result); + $po_number = $row["purch_order_no"]; + $result = read_po_header($po_number, $order); - - if ($result) + + if ($result) { - + $order->orig_order_date = sql2date($row["delivery_date"]); $order->location = $row["loc_code"]; - $order->reference = $row["reference"]; - + $order->reference = $row["reference"]; + read_grn_items_to_order($grn_batch, $order); - } + } } //---------------------------------------------------------------------------------------------------------- @@ -192,7 +235,7 @@ function read_grn($grn_batch, &$order) function get_po_grns($po_number) { $sql = "SELECT * FROM ".TB_PREF."grn_batch WHERE purch_order_no=$po_number"; - + return db_query($sql, "The grns for the po $po_number could not be retreived"); } @@ -201,9 +244,9 @@ function get_po_grns($po_number) function exists_grn($grn_batch) { $sql = "SELECT id FROM ".TB_PREF."grn_batch WHERE id=$grn_batch"; - $result = db_query($sql, "Cannot retreive a grn"); - - return (db_num_rows($result) > 0); + $result = db_query($sql, "Cannot retreive a grn"); + + return (db_num_rows($result) > 0); } //---------------------------------------------------------------------------------------------------------- @@ -215,8 +258,8 @@ function exists_grn_on_invoices($grn_batch) AND quantity != 0 AND grn_batch_id=$grn_batch"; $result = db_query($sql, "Cannot query GRNs"); - - return (db_num_rows($result) > 0); + + return (db_num_rows($result) > 0); } //---------------------------------------------------------------------------------------------------------- @@ -227,40 +270,40 @@ function void_grn($grn_batch) // can't be voided if (exists_grn_on_invoices($grn_batch)) return false; - + begin_transaction(); - + void_bank_trans(25, $grn_batch, true); - void_gl_trans(25, $grn_batch, true); - + void_gl_trans(25, $grn_batch, true); + // clear the quantities of the grn items in the POs and invoices $result = get_grn_items($grn_batch); - - if (db_num_rows($result) > 0) + + if (db_num_rows($result) > 0) { - - while ($myrow = db_fetch($result)) + + while ($myrow = db_fetch($result)) { - - $sql = "UPDATE ".TB_PREF."purch_order_details - SET quantity_received = quantity_received - " . $myrow["qty_recd"] . " + + $sql = "UPDATE ".TB_PREF."purch_order_details + SET quantity_received = quantity_received - " . $myrow["qty_recd"] . " WHERE po_detail_item = " . $myrow["po_detail_item"]; - + db_query($sql, "a purchase order details record could not be voided."); } - } - - // clear the quantities in the grn items - $sql = "UPDATE ".TB_PREF."grn_items SET qty_recd=0, quantity_inv=0 + } + + // clear the quantities in the grn items + $sql = "UPDATE ".TB_PREF."grn_items SET qty_recd=0, quantity_inv=0 WHERE grn_batch_id=$grn_batch"; - - db_query($sql, "A grn detail item could not be voided."); - + + db_query($sql, "A grn detail item could not be voided."); + // clear the stock move items - void_stock_move(25, $grn_batch); - + void_stock_move(25, $grn_batch); + commit_transaction(); - + return true; } diff --git a/purchasing/includes/db/invoice_db.inc b/purchasing/includes/db/invoice_db.inc index 29640d4b..014e5ce8 100644 --- a/purchasing/includes/db/invoice_db.inc +++ b/purchasing/includes/db/invoice_db.inc @@ -6,12 +6,12 @@ include_once($path_to_root . "/purchasing/includes/db/invoice_items_db.inc"); function read_supplier_details_to_trans(&$supp_trans, $supplier_id) { - $sql = "SELECT ".TB_PREF."suppliers.supp_name, ".TB_PREF."payment_terms.terms, ".TB_PREF."payment_terms.days_before_due, - ".TB_PREF."payment_terms.day_in_following_month, - ".TB_PREF."suppliers.tax_group_id, ".TB_PREF."tax_groups.name As tax_group_name - From ".TB_PREF."suppliers, ".TB_PREF."payment_terms, ".TB_PREF."tax_groups - WHERE ".TB_PREF."suppliers.tax_group_id = ".TB_PREF."tax_groups.id - AND ".TB_PREF."suppliers.payment_terms=".TB_PREF."payment_terms.terms_indicator + $sql = "SELECT ".TB_PREF."suppliers.supp_name, ".TB_PREF."payment_terms.terms, ".TB_PREF."payment_terms.days_before_due, + ".TB_PREF."payment_terms.day_in_following_month, + ".TB_PREF."suppliers.tax_group_id, ".TB_PREF."tax_groups.name As tax_group_name + From ".TB_PREF."suppliers, ".TB_PREF."payment_terms, ".TB_PREF."tax_groups + WHERE ".TB_PREF."suppliers.tax_group_id = ".TB_PREF."tax_groups.id + AND ".TB_PREF."suppliers.payment_terms=".TB_PREF."payment_terms.terms_indicator AND ".TB_PREF."suppliers.supplier_id = '" . $supplier_id . "'"; $result = db_query($sql, "The supplier record selected: " . $supplier_id . " cannot be retrieved"); @@ -25,23 +25,23 @@ function read_supplier_details_to_trans(&$supp_trans, $supplier_id) if ($myrow['days_before_due'] == 0) { $supp_trans->terms = "1" . $myrow['day_in_following_month']; - } - else + } + else { $supp_trans->terms = "0" . $myrow['days_before_due']; } $supp_trans->tax_description = $myrow['tax_group_name']; $supp_trans->tax_group_id = $myrow['tax_group_id']; - + if ($supp_trans->tran_date == "") { $supp_trans->tran_date = Today(); if (!is_date_in_fiscalyear($supp_trans->tran_date)) $supp_trans->tran_date = end_fiscalyear(); - } + } //if ($supp_trans->due_date=="") { // get_duedate_from_terms($supp_trans); - //} + //} get_duedate_from_terms($supp_trans); } @@ -49,42 +49,71 @@ function read_supplier_details_to_trans(&$supp_trans, $supplier_id) function update_supp_received_items_for_invoice($id, $po_detail_item, $qty_invoiced, $chg_price=null) { - $sql = "UPDATE ".TB_PREF."purch_order_details + if ($chg_price != null) + { + $sql = "SELECT act_price FROM ".TB_PREF."purch_order_details WHERE + po_detail_item = $po_detail_item"; + $result = db_query($sql, "The old actual price of the purchase order line could not be retrieved"); + $row = db_fetch_row($result); + $ret = $row[0]; + $sql = "SELECT delivery_date FROM ".TB_PREF."grn_batch,".TB_PREF."grn_items WHERE + ".TB_PREF."grn_batch.id = ".TB_PREF."grn_items.grn_batch_id AND ".TB_PREF."grn_items.id=$id"; + $result = db_query($sql, "The old delivery date from the received record cout not be retrieved"); + $row = db_fetch_row($result); + $date = $row[0]; + } + else + { + $ret = 0; + $date = ""; + } + $sql = "UPDATE ".TB_PREF."purch_order_details SET qty_invoiced = qty_invoiced + $qty_invoiced "; - + if ($chg_price != null) $sql .= " , act_price = $chg_price "; - + $sql .= " WHERE po_detail_item = $po_detail_item"; db_query($sql, "The quantity invoiced of the purchase order line could not be updated"); - + $sql = "UPDATE ".TB_PREF."grn_items - SET quantity_inv = quantity_inv + $qty_invoiced + SET quantity_inv = quantity_inv + $qty_invoiced WHERE id = $id"; db_query($sql, "The quantity invoiced off the items received record could not be updated"); + return array($ret, $date); } +function get_deliveries_between($stock_id, $from, $to) +{ + $from = date2sql($from); + $to = date2sql($to); + $sql = "SELECT SUM(-qty), AVG(standard_cost) FROM ".TB_PREF."stock_moves + WHERE type=13 AND stock_id='$stock_id' AND + tran_date>='$from' AND tran_date<='$to' GROUP BY stock_id"; + $result = db_query($sql, "The deliveries could not be updated"); + return db_fetch_row($result); +} //---------------------------------------------------------------------------------------- function add_supp_invoice($supp_trans) // do not receive as ref because we change locally { - $company_currency = get_company_currency(); - + //$company_currency = get_company_currency(); /*Start an sql transaction */ begin_transaction(); - + $tax_total = 0; $taxes = $supp_trans->get_taxes($supp_trans->tax_group_id); - foreach ($taxes as $taxitem) + + foreach ($taxes as $taxitem) { $tax_total += $taxitem['Value']; - } - + } + $invoice_items_total = $supp_trans->get_total_charged($supp_trans->tax_group_id); - + if ($supp_trans->is_invoice) $trans_type = 20; - else + else { $trans_type = 21; // let's negate everything because it's a credit note @@ -92,122 +121,125 @@ function add_supp_invoice($supp_trans) // do not receive as ref because we chang $tax_total = -$tax_total; $supp_trans->ov_discount = -$supp_trans->ov_discount; // this isn't used at all... } - - $date_ = $supp_trans->tran_date; - + + $date_ = $supp_trans->tran_date; + /*First insert the invoice into the supp_trans table*/ - $invoice_id = add_supp_trans($trans_type, $supp_trans->supplier_id, $date_, $supp_trans->due_date, - $supp_trans->reference, $supp_trans->supp_reference, - $invoice_items_total, $tax_total, $supp_trans->ov_discount); - + $invoice_id = add_supp_trans($trans_type, $supp_trans->supplier_id, $date_, $supp_trans->due_date, + $supp_trans->reference, $supp_trans->supp_reference, + $invoice_items_total, $tax_total, $supp_trans->ov_discount); + /* Now the control account */ $supplier_accounts = get_supplier_accounts($supp_trans->supplier_id); - add_gl_trans_supplier($trans_type, $invoice_id, $date_, $supplier_accounts["payable_account"], 0, 0, - -($invoice_items_total + $tax_total + $supp_trans->ov_discount), - $supp_trans->supplier_id, - "The general ledger transaction for the control total could not be added"); - + add_gl_trans_supplier($trans_type, $invoice_id, $date_, $supplier_accounts["payable_account"], 0, 0, + -($invoice_items_total + $tax_total + $supp_trans->ov_discount), + $supp_trans->supplier_id, + "The general ledger transaction for the control total could not be added"); + /*Loop through the GL Entries and create a debit posting for each of the accounts entered */ /*the postings here are a little tricky, the logic goes like this: if its a general ledger amount it goes straight to the account specified - + if its a GRN amount invoiced then : - + The cost as originally credited to GRN suspense on arrival of items is debited to GRN suspense. Any difference between the std cost and the currency cost charged as converted at the ex rate of of the invoice is written off - to the purchase price variance account applicable to the item being invoiced. - */ - + to the purchase price variance account applicable to the item being invoiced. + */ + foreach ($supp_trans->gl_codes as $entered_gl_code) { - + /*GL Items are straight forward - just do the debit postings to the GL accounts specified - the credit is to creditors control act done later for the total invoice value + tax*/ - + if (!$supp_trans->is_invoice) $entered_gl_code->amount = -$entered_gl_code->amount; - + $memo_ = $entered_gl_code->memo_; - add_gl_trans_supplier($trans_type, $invoice_id, $date_, $entered_gl_code->gl_code, + add_gl_trans_supplier($trans_type, $invoice_id, $date_, $entered_gl_code->gl_code, $entered_gl_code->gl_dim, $entered_gl_code->gl_dim2, $entered_gl_code->amount, $supp_trans->supplier_id); - - add_supp_invoice_gl_item($trans_type, $invoice_id, $entered_gl_code->gl_code, + + add_supp_invoice_gl_item($trans_type, $invoice_id, $entered_gl_code->gl_code, $entered_gl_code->amount, $memo_); } - foreach ($supp_trans->grn_items as $entered_grn) { - - if (!$supp_trans->is_invoice) + + if (!$supp_trans->is_invoice) { - $entered_grn->this_quantity_inv = -$entered_grn->this_quantity_inv; + $entered_grn->this_quantity_inv = -$entered_grn->this_quantity_inv; } - + $line_taxfree = $entered_grn->taxfree_charge_price($supp_trans->tax_group_id); - $line_tax = $entered_grn->full_charge_price() - $line_taxfree; - - update_supp_received_items_for_invoice($entered_grn->id, $entered_grn->po_detail_item, + $line_tax = $entered_grn->full_charge_price($supp_trans->tax_group_id) - $line_taxfree; + + $old = update_supp_received_items_for_invoice($entered_grn->id, $entered_grn->po_detail_item, $entered_grn->this_quantity_inv, $entered_grn->chg_price); - - $stock_gl_code = get_stock_gl_code($entered_grn->item_code); - $stock_entry_account = $stock_gl_code["inventory_account"]; - - add_gl_trans_supplier($trans_type, $invoice_id, $date_, $stock_entry_account, + $stock_gl_code = get_stock_gl_code($entered_grn->item_code); + + add_gl_trans_supplier($trans_type, $invoice_id, $date_, $stock_gl_code["inventory_account"], $stock_gl_code['dimension_id'], $stock_gl_code['dimension2_id'], $entered_grn->this_quantity_inv * $line_taxfree, $supp_trans->supplier_id); - -/* - $supplierCurrency = get_supplier_currency($supp_trans->supplier_id); - $localChgPrice = to_home_currency($entered_grn->chg_price, $supplierCurrency, $date_); - $PurchPriceVar = $entered_grn->this_quantity_inv * ($localChgPrice - $entered_grn->std_cost_unit); - - echo "purchase price variance is $PurchPriceVar"; - - // Yes but where to post this difference to - if its an inventory item the variance account - // must be retreived from the stock category record - - if ($PurchPriceVar !=0){ // don't bother with this lot if there is no difference ! - // need to get the stock category record for this inventory item - - $stock_gl_code = get_stock_gl_code($entered_grn->item_code); - - - add_gl_trans_supplier($trans_type, $invoice_id, $date_, $stock_gl_code["purch_price_var_act"], - $PurchPriceVar, $supp_trans->supplier_id, - "The general ledger transaction could not be added for the price variance of the inventory item"); - }*/ - - add_supp_invoice_item($trans_type, $invoice_id, $entered_grn->item_code, - $entered_grn->item_description, 0, $line_taxfree, $line_tax, - $entered_grn->this_quantity_inv, $entered_grn->id, $entered_grn->po_detail_item, ""); + // -------------- if price changed since po received. 16 Aug 2008 Joe Hunt + $old_price = $old[0]; + if ($old_price != $entered_grn->chg_price) // price-change, so update + { + $diff = $entered_grn->chg_price - $old_price; + $old_date = sql2date($old[1]); + // only update the diff (last parameter, adj_only is set to true). + $mat_cost = update_average_material_cost($supp_trans->supplier_id, $entered_grn->item_code, + $diff, $entered_grn->this_quantity_inv, $old_date, true); + // function just above this + $deliveries = get_deliveries_between($entered_grn->item_code, $old_date, $date_); + if ($deliveries[0] != 0) // have deliveries been done during the period? + { + + $amt = ($mat_cost - $deliveries[1]) * $deliveries[0]; // $amt in home currency + + add_gl_trans($trans_type, $invoice_id, $date_, $stock_gl_code["cogs_account"], + $stock_gl_code['dimension_id'], $stock_gl_code['dimension2_id'], _("Cost diff."), + $amt, null, null, null, + "The general ledger transaction could not be added for the price variance of the inventory item"); + add_gl_trans($trans_type, $invoice_id, $date_, $stock_gl_code["inventory_account"], + 0, 0, _("Cost diff."), -$amt, null, null, null, + "The general ledger transaction could not be added for the price variance of the inventory item"); + update_stock_move_pid(13, $entered_grn->item_code, $old_date, $date_, 0, $mat_cost); + } + update_stock_move_pid(25, $entered_grn->item_code, $old_date, $old_date, $supp_trans->supplier_id, $mat_cost); + } + // ---------------------------------------------------------------------- + + add_supp_invoice_item($trans_type, $invoice_id, $entered_grn->item_code, + $entered_grn->item_description, 0, $line_taxfree, $line_tax, + $entered_grn->this_quantity_inv, $entered_grn->id, $entered_grn->po_detail_item, ""); } /* end of GRN postings */ - /* Now the TAX account */ - foreach ($taxes as $taxitem) + foreach ($taxes as $taxitem) { - if ($taxitem['Value'] != 0) + if ($taxitem['Value'] != 0) { - + if (!$supp_trans->is_invoice) $taxitem['Value'] = -$taxitem['Value']; - + // here we suppose that tax is never included in price (we are company customer). add_supp_invoice_tax_item($trans_type, $invoice_id, $taxitem['tax_type_id'], - $taxitem['rate'], $taxitem['included_in_price'], $taxitem['Value']); - - add_gl_trans_supplier($trans_type, $invoice_id, $date_, - $taxitem['purchasing_gl_code'], 0, 0, $taxitem['Value'], - $supp_trans->supplier_id, - "A general ledger transaction for the tax amount could not be added"); + $taxitem['rate'], 0, $taxitem['Value']); + + add_gl_trans_supplier($trans_type, $invoice_id, $date_, + $taxitem['purchasing_gl_code'], 0, 0, $taxitem['Value'], + $supp_trans->supplier_id, + "A general ledger transaction for the tax amount could not be added"); } - } - + } add_comments($trans_type, $invoice_id, $date_, $supp_trans->Comments); - - references::save_last($supp_trans->reference, $trans_type); - + + references::save_last($supp_trans->reference, $trans_type); + commit_transaction(); - - return $invoice_id; + + return $invoice_id; } //---------------------------------------------------------------------------------------- @@ -216,14 +248,14 @@ function add_supp_invoice($supp_trans) // do not receive as ref because we chang function get_po_invoices_credits($po_number) { - $sql = "SELECT DISTINCT ".TB_PREF."supp_trans.trans_no, ".TB_PREF."supp_trans.type, + $sql = "SELECT DISTINCT ".TB_PREF."supp_trans.trans_no, ".TB_PREF."supp_trans.type, ov_amount+ov_discount+ov_gst AS Total, ".TB_PREF."supp_trans.tran_date FROM ".TB_PREF."supp_trans, ".TB_PREF."supp_invoice_items, ".TB_PREF."purch_order_details - WHERE ".TB_PREF."supp_invoice_items.supp_trans_no = ".TB_PREF."supp_trans.trans_no + WHERE ".TB_PREF."supp_invoice_items.supp_trans_no = ".TB_PREF."supp_trans.trans_no AND ".TB_PREF."supp_invoice_items.po_detail_item_id = ".TB_PREF."purch_order_details.po_detail_item AND ".TB_PREF."purch_order_details.order_no = $po_number"; - + return db_query($sql, "The invoices/credits for the po $po_number could not be retreived"); } @@ -231,16 +263,16 @@ function get_po_invoices_credits($po_number) function read_supp_invoice($trans_no, $trans_type, &$supp_trans) { - $sql = "SELECT ".TB_PREF."supp_trans.*, supp_name FROM ".TB_PREF."supp_trans,".TB_PREF."suppliers + $sql = "SELECT ".TB_PREF."supp_trans.*, supp_name FROM ".TB_PREF."supp_trans,".TB_PREF."suppliers WHERE trans_no = $trans_no AND type = $trans_type AND ".TB_PREF."suppliers.supplier_id=".TB_PREF."supp_trans.supplier_id"; $result = db_query($sql, "Cannot retreive a supplier transaction"); - + if (db_num_rows($result) == 1) { $trans_row = db_fetch($result); - - $supp_trans->supplier_id = $trans_row["supplier_id"]; + + $supp_trans->supplier_id = $trans_row["supplier_id"]; $supp_trans->supplier_name = $trans_row["supp_name"]; $supp_trans->tran_date = sql2date($trans_row["tran_date"]); $supp_trans->due_date = sql2date($trans_row["due_date"]); @@ -251,40 +283,40 @@ function read_supp_invoice($trans_no, $trans_type, &$supp_trans) $supp_trans->ov_amount = $trans_row["ov_amount"]; $supp_trans->ov_discount = $trans_row["ov_discount"]; $supp_trans->ov_gst = $trans_row["ov_gst"]; - + $id = $trans_row["trans_no"]; - + $result = get_supp_invoice_items($trans_type, $id); - - if (db_num_rows($result) > 0) + + if (db_num_rows($result) > 0) { - - while ($details_row = db_fetch($result)) + + while ($details_row = db_fetch($result)) { - - if ($details_row["gl_code"] == 0) + + if ($details_row["gl_code"] == 0) { $supp_trans->add_grn_to_trans($details_row["grn_item_id"], $details_row["po_detail_item_id"], $details_row["stock_id"], $details_row["description"], 0, 0, $details_row["quantity"], 0, $details_row["FullUnitPrice"], - false, 0, 0); - } - else + false, 0, 0); + } + else { $supp_trans->add_gl_codes_to_trans($details_row["gl_code"], get_gl_account_name($details_row["gl_code"]), 0, 0, $details_row["FullUnitPrice"], $details_row["memo_"]); } } - } - else - { - return display_db_error("Invalid supptrans details for supptrans number : $trans_no and type : $trans_type", $sql, true); - } - - } - else + } + else + { + return display_db_error("Invalid supptrans details for supptrans number : $trans_no and type : $trans_type", $sql, true); + } + + } + else { return display_db_error("Invalid supptrans number : $trans_no and type : $trans_type", $sql, true); - } + } } //---------------------------------------------------------------------------------------- @@ -292,33 +324,33 @@ function read_supp_invoice($trans_no, $trans_type, &$supp_trans) function void_supp_invoice($type, $type_no) { begin_transaction(); - + void_bank_trans($type, $type_no, true); - + void_gl_trans($type, $type_no, true); - - void_supp_allocations($type, $type_no); - + + void_supp_allocations($type, $type_no); + void_supp_trans($type, $type_no); - + $result = get_supp_invoice_items($type, $type_no); // now remove this invoice/credit from any GRNs/POs that it's related to - if (db_num_rows($result) > 0) + if (db_num_rows($result) > 0) { - while ($details_row = db_fetch($result)) + while ($details_row = db_fetch($result)) { if (strlen($details_row["grn_item_id"]) > 0) // it can be empty for GL items { - update_supp_received_items_for_invoice($details_row["grn_item_id"], - $details_row["po_detail_item_id"], -$details_row["quantity"]); - } + update_supp_received_items_for_invoice($details_row["grn_item_id"], + $details_row["po_detail_item_id"], -$details_row["quantity"]); + } } - } + } void_supp_invoice_items($type, $type_no); void_supp_invoice_tax_items($type, $type_no); - + commit_transaction(); } diff --git a/purchasing/includes/db/invoice_items_db.inc b/purchasing/includes/db/invoice_items_db.inc index e072e6f6..621309bb 100644 --- a/purchasing/includes/db/invoice_items_db.inc +++ b/purchasing/includes/db/invoice_items_db.inc @@ -2,40 +2,41 @@ //------------------------------------------------------------------------------------------------------------- -function add_supp_invoice_item($supp_trans_type, $supp_trans_no, $stock_id, $description, - $gl_code, $unit_price, $unit_tax, $quantity, $grn_item_id, $po_detail_item_id, $memo_, - $err_msg="") +function add_supp_invoice_item($supp_trans_type, $supp_trans_no, $stock_id, $description, + $gl_code, $unit_price, $unit_tax, $quantity, $grn_item_id, $po_detail_item_id, $memo_, + $err_msg="") { $sql = "INSERT INTO ".TB_PREF."supp_invoice_items (supp_trans_type, supp_trans_no, stock_id, description, gl_code, unit_price, unit_tax, quantity, grn_item_id, po_detail_item_id, memo_) "; - $sql .= "VALUES ($supp_trans_type, $supp_trans_no, '$stock_id', '$description', $gl_code, $unit_price, $unit_tax, $quantity, - $grn_item_id, $po_detail_item_id, '$memo_')"; - + $sql .= "VALUES ($supp_trans_type, $supp_trans_no, ".db_escape($stock_id). + ", ".db_escape($description).", ".db_escape($gl_code).", $unit_price, $unit_tax, $quantity, + $grn_item_id, $po_detail_item_id, ".db_escape($memo_).")"; + if ($err_msg == "") $err_msg = "Cannot insert a supplier transaction detail record"; - - db_query($sql, $err_msg); - return db_insert_id(); + db_query($sql, $err_msg); + + return db_insert_id(); } //------------------------------------------------------------------------------------------------------------- -function add_supp_invoice_gl_item($supp_trans_type, $supp_trans_no, $gl_code, $amount, $memo_, $err_msg="") +function add_supp_invoice_gl_item($supp_trans_type, $supp_trans_no, $gl_code, $amount, $memo_, $err_msg="") { - return add_supp_invoice_item($supp_trans_type, $supp_trans_no, "", "", $gl_code, $amount, - 0, 0, /*$grn_item_id*/0, /*$po_detail_item_id*/0, $memo_, $err_msg); -} + return add_supp_invoice_item($supp_trans_type, $supp_trans_no, "", "", $gl_code, $amount, + 0, 0, /*$grn_item_id*/0, /*$po_detail_item_id*/0, $memo_, $err_msg); +} //---------------------------------------------------------------------------------------- function get_supp_invoice_items($supp_trans_type, $supp_trans_no) { - $sql = "SELECT *,unit_price+unit_tax AS FullUnitPrice FROM ".TB_PREF."supp_invoice_items - WHERE supp_trans_type = $supp_trans_type + $sql = "SELECT *, unit_price AS FullUnitPrice FROM ".TB_PREF."supp_invoice_items + WHERE supp_trans_type = $supp_trans_type AND supp_trans_no = $supp_trans_no ORDER BY id"; - return db_query($sql, "Cannot retreive supplier transaction detail records"); + return db_query($sql, "Cannot retreive supplier transaction detail records"); } //---------------------------------------------------------------------------------------- @@ -44,7 +45,7 @@ function void_supp_invoice_items($type, $type_no) { $sql = "UPDATE ".TB_PREF."supp_invoice_items SET quantity=0, unit_price=0 WHERE supp_trans_type = $type AND supp_trans_no=$type_no"; - db_query($sql, "could not void supptrans details"); + db_query($sql, "could not void supptrans details"); } //---------------------------------------------------------------------------------------- @@ -54,8 +55,8 @@ function add_supp_invoice_tax_item($supp_trans_type, $supp_trans_no, $tax_type_i { $sql = "INSERT INTO ".TB_PREF."supp_invoice_tax_items (supp_trans_type, supp_trans_no, tax_type_id, rate, included_in_price, amount) VALUES ($supp_trans_type, $supp_trans_no, $tax_type_id, $rate, $included_in_price, $amount)"; - - db_query($sql, "The supplier transaction tax detail could not be added"); + + db_query($sql, "The supplier transaction tax detail could not be added"); } //---------------------------------------------------------------------------------------- @@ -63,9 +64,9 @@ function add_supp_invoice_tax_item($supp_trans_type, $supp_trans_no, $tax_type_i function get_supp_invoice_tax_items($supp_trans_type, $supp_trans_no) { $sql = "SELECT ".TB_PREF."supp_invoice_tax_items.*, ".TB_PREF."tax_types.name AS tax_type_name - FROM ".TB_PREF."supp_invoice_tax_items,".TB_PREF."tax_types - WHERE supp_trans_type = $supp_trans_type - AND supp_trans_no = $supp_trans_no + FROM ".TB_PREF."supp_invoice_tax_items,".TB_PREF."tax_types + WHERE supp_trans_type = $supp_trans_type + AND supp_trans_no = $supp_trans_no AND ".TB_PREF."tax_types.id = ".TB_PREF."supp_invoice_tax_items.tax_type_id"; return db_query($sql, "The supplier transaction tax details could not be queried"); @@ -76,9 +77,9 @@ function get_supp_invoice_tax_items($supp_trans_type, $supp_trans_no) function void_supp_invoice_tax_items($type, $type_no) { $sql = "UPDATE ".TB_PREF."supp_invoice_tax_items SET amount=0 - WHERE supp_trans_type = $type + WHERE supp_trans_type = $type AND supp_trans_no=$type_no"; - + db_query($sql, "The supplier transaction tax details could not be voided"); } diff --git a/purchasing/includes/db/po_db.inc b/purchasing/includes/db/po_db.inc index 439ca58f..cb2a1e49 100644 --- a/purchasing/includes/db/po_db.inc +++ b/purchasing/includes/db/po_db.inc @@ -15,46 +15,44 @@ function delete_po($po) function add_po(&$po_obj) { - begin_transaction(); - + begin_transaction(); + /*Insert to purchase order header record */ $sql = "INSERT INTO ".TB_PREF."purch_orders (supplier_id, Comments, ord_date, reference, requisition_no, into_stock_location, delivery_address) VALUES("; - $sql .= "'" . $po_obj->supplier_id . "', '" . - db_escape($po_obj->Comments) . "','" . - date2sql($po_obj->orig_order_date) . "', '" . - $po_obj->reference . "', '" . - $po_obj->requisition_no . "', '" . - $po_obj->Location . "', '" . - $po_obj->delivery_address . "')"; - + $sql .= db_escape($po_obj->supplier_id) . "," . + db_escape($po_obj->Comments) . ",'" . + date2sql($po_obj->orig_order_date) . "', '" . + $po_obj->reference . "', " . + db_escape($po_obj->requisition_no) . ", " . + db_escape($po_obj->Location) . ", " . + db_escape($po_obj->delivery_address) . ")"; + db_query($sql, "The purchase order header record could not be inserted"); - + /*Get the auto increment value of the order number created from the sql above */ $po_obj->order_no = db_insert_id(); - + /*Insert the purchase order detail records */ - foreach ($po_obj->line_items as $po_line) + foreach ($po_obj->line_items as $po_line) { - if ($po_line->Deleted == false) + if ($po_line->Deleted == false) { $sql = "INSERT INTO ".TB_PREF."purch_order_details (order_no, item_code, description, delivery_date, unit_price, quantity_ordered) VALUES ("; - $sql .= $po_obj->order_no . ", '" . $po_line->stock_id . "','" . - $po_line->item_description . "','" . - date2sql($po_line->req_del_date) . "'," . - $po_line->price . ", " . + $sql .= $po_obj->order_no . ", " . db_escape($po_line->stock_id). "," . + db_escape($po_line->item_description). ",'" . + date2sql($po_line->req_del_date) . "'," . + $po_line->price . ", " . $po_line->quantity . ")"; db_query($sql, "One of the purchase order detail records could not be inserted"); } - } - - add_forms_for_sys_type(systypes::po(), $po_obj->order_no); - - references::save_last($po_obj->reference, systypes::po()); - - //add_comments(systypes::po(), $po_obj->order_no, $po_obj->orig_order_date, $po_obj->Comments); - - commit_transaction(); - + } + + references::save_last($po_obj->reference, systypes::po()); + + //add_comments(systypes::po(), $po_obj->order_no, $po_obj->orig_order_date, $po_obj->Comments); + + commit_transaction(); + return $po_obj->order_no; } @@ -62,92 +60,92 @@ function add_po(&$po_obj) function update_po(&$po_obj) { - begin_transaction(); + begin_transaction(); /*Update the purchase order header with any changes */ - $sql = "UPDATE ".TB_PREF."purch_orders SET Comments='" . db_escape($po_obj->Comments) . "', - requisition_no= '" . $po_obj->requisition_no . "', - into_stock_location='" . $po_obj->Location . "', + $sql = "UPDATE ".TB_PREF."purch_orders SET Comments=" . db_escape($po_obj->Comments) . ", + requisition_no= ". db_escape( $po_obj->requisition_no). ", + into_stock_location=" . db_escape($po_obj->Location). ", ord_date='" . date2sql($po_obj->orig_order_date) . "', - delivery_address='" . $po_obj->delivery_address . "'"; + delivery_address=" . db_escape($po_obj->delivery_address); $sql .= " WHERE order_no = " . $po_obj->order_no; db_query($sql, "The purchase order could not be updated"); /*Now Update the purchase order detail records */ - foreach ($po_obj->line_items as $po_line) + foreach ($po_obj->line_items as $po_line) { - if ($po_line->Deleted==True) + if ($po_line->Deleted==True) { // Sherifoz 21.06.03 Handle deleting existing lines - if ($po_line->po_detail_rec!='') + if ($po_line->po_detail_rec!='') { $sql = "DELETE FROM ".TB_PREF."purch_order_details WHERE po_detail_item='" . $po_line->po_detail_rec . "'"; db_query($sql, "could not query purch order details"); } - } - else if ($po_line->po_detail_rec == '') + } + else if ($po_line->po_detail_rec == '') { // Sherifoz 21.06.03 Handle adding new lines vs. updating. if no key(po_detail_rec) then it's a new line $sql = "INSERT INTO ".TB_PREF."purch_order_details (order_no, item_code, description, delivery_date, unit_price, quantity_ordered) VALUES ("; - $sql .= $po_obj->order_no . ", '" . - $po_line->stock_id . "','" . - $po_line->item_description . "','" . - date2sql($po_line->req_del_date) . "'," . + $sql .= $po_obj->order_no . "," . + db_escape($po_line->stock_id). "," . + db_escape($po_line->item_description). ",'" . + date2sql($po_line->req_del_date) . "'," . $po_line->price . ", " . $po_line->quantity . ")"; - } - else + } + else { - $sql = "UPDATE ".TB_PREF."purch_order_details SET item_code='" . $po_line->stock_id . "', - description ='" . $po_line->item_description . "', - delivery_date ='" . date2sql($po_line->req_del_date) . "', - unit_price=" . $po_line->price . ", - quantity_ordered=" . $po_line->quantity . " + $sql = "UPDATE ".TB_PREF."purch_order_details SET item_code='" . $po_line->stock_id . "', + description =" . db_escape($po_line->item_description). ", + delivery_date ='" . date2sql($po_line->req_del_date) . "', + unit_price=" . $po_line->price . ", + quantity_ordered=" . $po_line->quantity . " WHERE po_detail_item=" . $po_line->po_detail_rec; } db_query($sql, "One of the purchase order detail records could not be updated"); } - - //add_comments(systypes::po(), $po_obj->order_no, $po_obj->orig_order_date, $po_obj->Comments); - - commit_transaction(); - - return $po_obj->order_no; + + //add_comments(systypes::po(), $po_obj->order_no, $po_obj->orig_order_date, $po_obj->Comments); + + commit_transaction(); + + return $po_obj->order_no; } //---------------------------------------------------------------------------------------- function read_po_header($order_no, &$order) { - $sql = "SELECT ".TB_PREF."purch_orders.*, ".TB_PREF."suppliers.supp_name, - ".TB_PREF."suppliers.curr_code, ".TB_PREF."locations.location_name - FROM ".TB_PREF."purch_orders, ".TB_PREF."suppliers, ".TB_PREF."locations + $sql = "SELECT ".TB_PREF."purch_orders.*, ".TB_PREF."suppliers.supp_name, + ".TB_PREF."suppliers.curr_code, ".TB_PREF."locations.location_name + FROM ".TB_PREF."purch_orders, ".TB_PREF."suppliers, ".TB_PREF."locations WHERE ".TB_PREF."purch_orders.supplier_id = ".TB_PREF."suppliers.supplier_id - AND ".TB_PREF."locations.loc_code = into_stock_location + AND ".TB_PREF."locations.loc_code = into_stock_location AND ".TB_PREF."purch_orders.order_no = " . $order_no; $result = db_query($sql, "The order cannot be retrieved"); - - if (db_num_rows($result) == 1) + + if (db_num_rows($result) == 1) { $myrow = db_fetch($result); - + $order->order_no = $order_no; $order->supplier_id = $myrow["supplier_id"]; $order->supplier_name = $myrow["supp_name"]; $order->curr_code = $myrow["curr_code"]; - + $order->orig_order_date = sql2date($myrow["ord_date"]); $order->Comments = $myrow["comments"]; $order->Location = $myrow["into_stock_location"]; $order->requisition_no = $myrow["requisition_no"]; $order->reference = $myrow["reference"]; $order->delivery_address = $myrow["delivery_address"]; - + return true; - } - + } + display_db_error("FATAL : duplicate purchase order found", "", true); return false; } @@ -158,38 +156,38 @@ function read_po_items($order_no, &$order, $open_items_only=false) { /*now populate the line po array with the purchase order details records */ - $sql = "SELECT ".TB_PREF."purch_order_details.*, units - FROM ".TB_PREF."purch_order_details - LEFT JOIN ".TB_PREF."stock_master - ON ".TB_PREF."purch_order_details.item_code=".TB_PREF."stock_master.stock_id + $sql = "SELECT ".TB_PREF."purch_order_details.*, units + FROM ".TB_PREF."purch_order_details + LEFT JOIN ".TB_PREF."stock_master + ON ".TB_PREF."purch_order_details.item_code=".TB_PREF."stock_master.stock_id WHERE order_no =$order_no "; - + if ($open_items_only) - $sql .= " AND (".TB_PREF."purch_order_details.quantity_ordered > ".TB_PREF."purch_order_details.quantity_received) "; - + $sql .= " AND (".TB_PREF."purch_order_details.quantity_ordered > ".TB_PREF."purch_order_details.quantity_received) "; + $sql .= " ORDER BY po_detail_item"; - $result = db_query($sql, "The lines on the purchase order cannot be retrieved"); + $result = db_query($sql, "The lines on the purchase order cannot be retrieved"); - if (db_num_rows($result) > 0) + if (db_num_rows($result) > 0) { - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { if (is_null($myrow["units"])) { $units = ""; - } - else + } + else { $units = $myrow["units"]; } - $order->add_to_order($order->lines_on_order+1, $myrow["item_code"], - $myrow["quantity_ordered"],$myrow["description"], + $order->add_to_order($order->lines_on_order+1, $myrow["item_code"], + $myrow["quantity_ordered"],$myrow["description"], $myrow["unit_price"],$units, sql2date($myrow["delivery_date"]), $myrow["qty_invoiced"], $myrow["quantity_received"]); - + $order->line_items[$order->lines_on_order]->po_detail_rec = $myrow["po_detail_item"]; $order->line_items[$order->lines_on_order]->standard_cost = $myrow["std_cost_unit"]; /*Needed for receiving goods and GL interface */ } /* line po from purchase order details */ @@ -200,10 +198,10 @@ function read_po_items($order_no, &$order, $open_items_only=false) function read_po($order_no, &$order, $open_items_only=false) { - $result = read_po_header($order_no, $order); - + $result = read_po_header($order_no, $order); + if ($result) - read_po_items($order_no, $order, $open_items_only); + read_po_items($order_no, $order, $open_items_only); } //---------------------------------------------------------------------------------------- diff --git a/purchasing/includes/db/supp_payment_db.inc b/purchasing/includes/db/supp_payment_db.inc index 7014cec4..38b1d440 100644 --- a/purchasing/includes/db/supp_payment_db.inc +++ b/purchasing/includes/db/supp_payment_db.inc @@ -4,54 +4,52 @@ function add_supp_payment($supplier_id, $date_, $payment_type, $bank_account, $amount, $discount, $ref, $memo_) { begin_transaction(); - + $supplier_currency = get_supplier_currency($supplier_id); $bank_account_currency = get_bank_account_currency($bank_account); - + $supp_amount = exchange_from_to($amount, $bank_account_currency, $supplier_currency, $date_); $supp_discount = exchange_from_to($discount, $bank_account_currency, $supplier_currency, $date_); - + // it's a supplier payment $trans_type = 22; /* Create a supp_trans entry for the supplier payment */ - $payment_id = add_supp_trans($trans_type, $supplier_id, $date_, $date_, - $ref, "", -$supp_amount, 0, -$supp_discount); + $payment_id = add_supp_trans($trans_type, $supplier_id, $date_, $date_, + $ref, "", -$supp_amount, 0, -$supp_discount); - // Now debit creditors account with payment + discount + // Now debit creditors account with payment + discount $supplier_accounts = get_supplier_accounts($supplier_id); - + add_gl_trans_supplier($trans_type, $payment_id, $date_, $supplier_accounts["payable_account"], 0, 0, - $supp_amount + $supp_discount, $supplier_id); - + $supp_amount + $supp_discount, $supplier_id); + // Now credit discount received account with discounts if ($supp_discount != 0) { add_gl_trans_supplier($trans_type, $payment_id, $date_, $supplier_accounts["payment_discount_account"], 0, 0, - -$supp_discount, $supplier_id); + -$supp_discount, $supplier_id); } - - if ($supp_amount != 0) + + if ($supp_amount != 0) { add_gl_trans_supplier($trans_type, $payment_id, $date_, $bank_account, 0, 0, -$supp_amount, $supplier_id); - } + } /*now enter the bank_trans entry */ - add_bank_trans($trans_type, $payment_id, $bank_account, $ref, - $date_, $payment_type, -($amount), payment_person_types::supplier(), - $supplier_id, $bank_account_currency, + add_bank_trans($trans_type, $payment_id, $bank_account, $ref, + $date_, $payment_type, -($amount), payment_person_types::supplier(), + $supplier_id, $bank_account_currency, "Could not add the supplier payment bank transaction"); - - add_comments($trans_type, $payment_id, $date_, $memo_); - - add_forms_for_sys_type($trans_type, $payment_id, payment_person_types::supplier(), $supplier_id); - - references::save_last($ref, $trans_type); - - commit_transaction(); - + + add_comments($trans_type, $payment_id, $date_, $memo_); + + references::save_last($ref, $trans_type); + + commit_transaction(); + return $payment_id; } @@ -60,12 +58,12 @@ function add_supp_payment($supplier_id, $date_, $payment_type, $bank_account, function void_supp_payment($type, $type_no) { begin_transaction(); - + void_bank_trans($type, $type_no, true); void_gl_trans($type, $type_no, true); - void_supp_allocations($type, $type_no); + void_supp_allocations($type, $type_no); void_supp_trans($type, $type_no); - + commit_transaction(); } diff --git a/purchasing/includes/db/supp_trans_db.inc b/purchasing/includes/db/supp_trans_db.inc index 6526093b..b38e787a 100644 --- a/purchasing/includes/db/supp_trans_db.inc +++ b/purchasing/includes/db/supp_trans_db.inc @@ -17,7 +17,7 @@ function add_supp_trans($type, $supplier_id, $date_, $due_date, $reference, $sup $sql = "INSERT INTO ".TB_PREF."supp_trans (trans_no, type, supplier_id, tran_date, due_date, reference, supp_reference, ov_amount, ov_gst, rate, ov_discount) "; $sql .= "VALUES ($trans_no, $type, $supplier_id, '$date', '$due_date', - '$reference', '$supp_reference', $amount, $amount_tax, $rate, $discount)"; + ".db_escape($reference).", ".db_escape($supp_reference).", $amount, $amount_tax, $rate, $discount)"; if ($err_msg == "") $err_msg = "Cannot insert a supplier transaction record"; diff --git a/purchasing/includes/db/suppliers_db.inc b/purchasing/includes/db/suppliers_db.inc index 792a5ec9..69acd8dc 100644 --- a/purchasing/includes/db/suppliers_db.inc +++ b/purchasing/includes/db/suppliers_db.inc @@ -2,77 +2,24 @@ function get_supplier_details($supplier_id, $to=null) { - + if ($to == null) $todate = date("Y-m-d"); - else + else $todate = date2sql($to); $past1 = get_company_pref('past_due_days'); $past2 = 2 * $past1; // removed - supp_trans.alloc from all summations - + + $value = "(".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount)"; + $due = "IF (".TB_PREF."supp_trans.type=20 OR ".TB_PREF."supp_trans.type=21,".TB_PREF."supp_trans.due_date,".TB_PREF."supp_trans.tran_date)"; $sql = "SELECT ".TB_PREF."suppliers.supp_name, ".TB_PREF."suppliers.curr_code, ".TB_PREF."payment_terms.terms, - - Sum(".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount) AS Balance, - - Sum(IF (".TB_PREF."payment_terms.days_before_due > 0, - CASE WHEN (TO_DAYS('$todate') - TO_DAYS(".TB_PREF."supp_trans.tran_date)) >= ".TB_PREF."payment_terms.days_before_due - THEN - ".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount - ELSE - 0 - END, - - CASE WHEN TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."supp_trans.tran_date, - INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - - DAYOFMONTH(".TB_PREF."supp_trans.tran_date)) DAY)) >= 0 - THEN - ".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount - ELSE - 0 - END - - )) AS Due, - - Sum(IF (".TB_PREF."payment_terms.days_before_due > 0, - CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."supp_trans.tran_date) > ".TB_PREF."payment_terms.days_before_due - AND TO_DAYS('$todate') - TO_DAYS(".TB_PREF."supp_trans.tran_date) >= (".TB_PREF."payment_terms.days_before_due + $past1) - THEN - ".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount - ELSE - 0 - END, - - CASE WHEN (TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."supp_trans.tran_date, - INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - - DAYOFMONTH(".TB_PREF."supp_trans.tran_date)) DAY)) >= $past1) - THEN - ".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount - ELSE - 0 - END - - )) AS Overdue1, - - Sum(IF (".TB_PREF."payment_terms.days_before_due > 0, - CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."supp_trans.tran_date) > ".TB_PREF."payment_terms.days_before_due - AND TO_DAYS('$todate') - TO_DAYS(".TB_PREF."supp_trans.tran_date) >= (".TB_PREF."payment_terms.days_before_due + $past2) - THEN - ".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount - ELSE - 0 - END, - - CASE WHEN (TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."supp_trans.tran_date, - INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - - DAYOFMONTH(".TB_PREF."supp_trans.tran_date)) DAY)) >= $past2) - THEN - ".TB_PREF."supp_trans.ov_amount + ".TB_PREF."supp_trans.ov_gst + ".TB_PREF."supp_trans.ov_discount - ELSE - 0 - END - - )) AS Overdue2 + + Sum($value) AS Balance, + + Sum(IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= 0,$value,0)) AS Due, + Sum(IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= $past1,$value,0)) AS Overdue1, + Sum(IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= $past2,$value,0)) AS Overdue2 FROM ".TB_PREF."suppliers, ".TB_PREF."payment_terms, @@ -89,71 +36,71 @@ function get_supplier_details($supplier_id, $to=null) ".TB_PREF."payment_terms.terms, ".TB_PREF."payment_terms.days_before_due, ".TB_PREF."payment_terms.day_in_following_month"; - + $result = db_query($sql,"The customer details could not be retrieved"); - + if (db_num_rows($result) == 0) { - + /*Because there is no balance - so just retrieve the header information about the customer - the choice is do one query to get the balance and transactions for those customers who have a balance and two queries for those who don't have a balance OR always do two queries - I opted for the former */ - + $nil_balance = true; - + $sql = "SELECT ".TB_PREF."suppliers.supp_name, ".TB_PREF."suppliers.curr_code, ".TB_PREF."suppliers.supplier_id, ".TB_PREF."payment_terms.terms FROM ".TB_PREF."suppliers, ".TB_PREF."payment_terms WHERE ".TB_PREF."suppliers.payment_terms = ".TB_PREF."payment_terms.terms_indicator AND ".TB_PREF."suppliers.supplier_id = '$supplier_id'"; - + $result = db_query($sql,"The customer details could not be retrieved"); - - } - else + + } + else { $nil_balance = false; } - + $supp = db_fetch($result); - + if ($nil_balance == true) { $supp["Balance"] = 0; $supp["Due"] = 0; $supp["Overdue1"] = 0; $supp["Overdue2"] = 0; - } - + } + return $supp; - + } function get_supplier($supplier_id) { $sql = "SELECT * FROM ".TB_PREF."suppliers WHERE supplier_id=$supplier_id"; - + $result = db_query($sql, "could not get supplier"); - + return db_fetch($result); } function get_supplier_name($supplier_id) { $sql = "SELECT supp_name AS name FROM ".TB_PREF."suppliers WHERE supplier_id=$supplier_id"; - + $result = db_query($sql, "could not get supplier"); - + $row = db_fetch_row($result); - + return $row[0]; } function get_supplier_accounts($supplier_id) { $sql = "SELECT payable_account,purchase_account,payment_discount_account FROM ".TB_PREF."suppliers WHERE supplier_id=$supplier_id"; - + $result = db_query($sql, "could not get supplier"); - + return db_fetch($result); } diff --git a/purchasing/includes/supp_trans_class.inc b/purchasing/includes/supp_trans_class.inc index 596114c9..6bffc185 100644 --- a/purchasing/includes/supp_trans_class.inc +++ b/purchasing/includes/supp_trans_class.inc @@ -95,7 +95,8 @@ class supp_trans foreach ($this->grn_items as $ln_itm) { $items[] = $ln_itm->item_code; - $prices[] = ($ln_itm->this_quantity_inv * $ln_itm->taxfree_charge_price($tax_group_id, $tax_group)); + $prices[] =round( ($ln_itm->this_quantity_inv * $ln_itm->taxfree_charge_price($tax_group_id, $tax_group)), + user_price_dec()); } if ($tax_group_id == null) @@ -117,7 +118,8 @@ class supp_trans $tax_group = null; foreach ($this->grn_items as $ln_itm) - $total += ($ln_itm->this_quantity_inv * $ln_itm->taxfree_charge_price($tax_group_id, $tax_group)); + $total += round(($ln_itm->this_quantity_inv * $ln_itm->taxfree_charge_price($tax_group_id, $tax_group)), + user_price_dec()); foreach ($this->gl_codes as $gl_line) $total += $gl_line->amount; @@ -165,16 +167,18 @@ all the info to do the necessary entries without looking up ie additional querie $this->gl_code = $gl_code; } - function full_charge_price() + function full_charge_price($tax_group_id, $tax_group=null) { - return $this->chg_price; + return get_full_price_for_item($this->item_code, + $this->chg_price, $tax_group_id, 0, $tax_group); } function taxfree_charge_price($tax_group_id, $tax_group=null) { - if ($tax_group_id==null) - return $this->chg_price; - return get_tax_free_price_for_item($this->item_code, $this->chg_price, $tax_group_id, $tax_group); +// if ($tax_group_id==null) +// return $this->chg_price; + return get_tax_free_price_for_item($this->item_code, $this->chg_price, + $tax_group_id, 0, $tax_group); } } diff --git a/purchasing/includes/ui/grn_ui.inc b/purchasing/includes/ui/grn_ui.inc index 4a5835ee..f1b271c0 100644 --- a/purchasing/includes/ui/grn_ui.inc +++ b/purchasing/includes/ui/grn_ui.inc @@ -25,7 +25,7 @@ function display_grn_summary(&$po, $editable=false) { if (!isset($_POST['ref'])) $_POST['ref'] = references::get_next(25); - ref_cells(_("Reference"), 'ref', null, "class='tableheader2'"); + ref_cells(_("Reference"), 'ref', '', null, "class='tableheader2'"); if (!isset($_POST['Location'])) $_POST['Location'] = $po->Location; @@ -35,7 +35,7 @@ function display_grn_summary(&$po, $editable=false) if (!isset($_POST['DefaultReceivedDate'])) $_POST['DefaultReceivedDate'] = Today(); - date_cells(_("Date Items Received"), 'DefaultReceivedDate', null, 0, 0, 0, "class='tableheader2'"); + date_cells(_("Date Items Received"), 'DefaultReceivedDate', '', null, 0, 0, 0, "class='tableheader2'"); } else diff --git a/purchasing/includes/ui/invoice_ui.inc b/purchasing/includes/ui/invoice_ui.inc index 9625e2a2..196db747 100644 --- a/purchasing/includes/ui/invoice_ui.inc +++ b/purchasing/includes/ui/invoice_ui.inc @@ -10,7 +10,6 @@ function copy_from_trans(&$supp_trans) $_POST['supp_reference'] = $supp_trans->supp_reference; $_POST['reference'] = $supp_trans->reference; $_POST['supplier_id'] = $supp_trans->supplier_id; - $_POST['tax_group_id'] = $supp_trans->tax_group_id; } //-------------------------------------------------------------------------------------------------- @@ -22,15 +21,14 @@ function copy_to_trans(&$supp_trans) $supp_trans->due_date = $_POST['due_date']; $supp_trans->supp_reference = $_POST['supp_reference']; $supp_trans->reference = $_POST['reference']; - $supp_trans->tax_group_id = $_POST['tax_group_id']; - $supp_trans->ov_amount = 0; /* for starters */ if (count($supp_trans->grn_items) > 0) { foreach ( $supp_trans->grn_items as $grn) { - $supp_trans->ov_amount += ($grn->this_quantity_inv * $grn->chg_price); + $supp_trans->ov_amount += round(($grn->this_quantity_inv * $grn->chg_price), + user_price_dec()); } } if (count($supp_trans->gl_codes) > 0) @@ -61,7 +59,7 @@ function invoice_header(&$supp_trans) supplier_list_row(_("Supplier:"), 'supplier_id', $_POST['supplier_id'], false, true); - if ($supp_trans->supplier_id != $_POST['supplier_id']) + if ($supp_trans->supplier_id != $_POST['supplier_id']) { // supplier has changed // delete all the order items - drastic but necessary because of @@ -72,9 +70,9 @@ function invoice_header(&$supp_trans) } if ($supp_trans->is_invoice) - ref_row(_("Reference:"), 'reference', references::get_next(20)); + ref_row(_("Reference:"), 'reference', '', references::get_next(20)); else - ref_row(_("Reference:"), 'reference', references::get_next(21)); + ref_row(_("Reference:"), 'reference', '', references::get_next(21)); text_row(_("Supplier's Ref.:"), 'supp_reference', $_POST['supp_reference'], 20, 20); @@ -84,9 +82,9 @@ function invoice_header(&$supp_trans) echo ""; - date_row(_("Date") . ":", 'tran_date', null, 0, 0, 0, "", true); + date_row(_("Date") . ":", 'tran_date', '', null, 0, 0, 0, "", true); - date_row(_("Due Date") . ":", 'due_date', null); + date_row(_("Due Date") . ":", 'due_date'); label_row(_("Terms:"), $supp_trans->terms_description); @@ -106,11 +104,7 @@ function invoice_header(&$supp_trans) exchange_rate_display($supplier_currency, $company_currency, $_POST['tran_date']); } - - if (!isset($_POST['tax_group_id'])) - $_POST['tax_group_id'] = $supp_trans->tax_group_id; - tax_groups_list_row(_("Tax Group:"), 'tax_group_id', $_POST['tax_group_id'], true); - + label_row(_("Tax Group:"), $supp_trans->tax_description); echo "
"; echo ""; @@ -127,17 +121,17 @@ function invoice_totals(&$supp_trans) copy_to_trans($supp_trans); start_table("$table_style width=95%"); - label_row(_("Sub-total:"), number_format2( $supp_trans->ov_amount,user_price_dec()), "align=right", "align=right"); + label_row(_("Sub-total:"), price_format( $supp_trans->ov_amount), "align=right", "align=right"); - $taxes = $supp_trans->get_taxes($_POST['tax_group_id']); - $tax_total = display_edit_tax_items($taxes, 1); + $taxes = $supp_trans->get_taxes($supp_trans->tax_group_id); + $tax_total = display_edit_tax_items($taxes, 1, 0); // tax_included==0 (we are the company) - $display_total = number_format2(( $supp_trans->ov_amount + $tax_total), user_price_dec()); + $display_total = price_format($supp_trans->ov_amount + $tax_total); if ($supp_trans->is_invoice) label_row(_("Invoice Total:"), $display_total, "align=right", "align=right"); else - label_row("" . _("Credit Note Total:") . "", + label_row("" . _("Credit Note Total:") . "", "$display_total", "align=right", "nowrap align=right"); end_table(); @@ -182,16 +176,18 @@ function display_gl_items(&$supp_trans, $mode=0) echo ""; echo ""; - if ($mode == 0) + if ($mode == 0) { - submit_cells('InvGL', _("Edit"), "align=right"); + submit_cells('InvGL', _("Edit"), "align=right", + _('Moves to additional costs posting page'), true); } echo "
$heading
"; echo ""; // ouer table + div_start('gl_items'); echo ""; - + $dim = get_company_pref('use_dimension'); if ($dim == 2) $th = array(_("Account"), _("Name"), _("Dimension")." 1", _("Dimension")." 2", _("Amount"), _("Memo")); @@ -217,7 +213,7 @@ function display_gl_items(&$supp_trans, $mode=0) label_cell($entered_gl_code->gl_code); label_cell($entered_gl_code->gl_act_name); - + if ($dim >= 1) label_cell(get_dimension_string($entered_gl_code->gl_dim, true)); if ($dim > 1) @@ -227,7 +223,8 @@ function display_gl_items(&$supp_trans, $mode=0) label_cell($entered_gl_code->memo_); if ($mode == 1) - delete_link_cell(SID . "Delete=" . $entered_gl_code->Counter); + edit_button_cell("Delete" . $entered_gl_code->Counter, _("Delete"), + _('Remove line from document')); end_row(); @@ -236,22 +233,22 @@ function display_gl_items(&$supp_trans, $mode=0) $i++; if ($i > 15) { - $i = 0; - table_header($th); + $i = 0; + table_header($th); } } } $colspan = ($dim == 2 ? 4 : ($dim == 1 ? 3 : 2)); - label_row(_("Total"), number_format2($total_gl_value,user_price_dec()), + label_row(_("Total"), price_format($total_gl_value), "colspan=".$colspan." align=right", "nowrap align=right"); echo "
"; + div_end(); echo ""; - - end_table(); // outertable + end_table(); // outertable return $total_gl_value; } @@ -287,17 +284,18 @@ function display_grn_items(&$supp_trans, $mode=0) $heading = _("Received Items Charged on this Invoice"); else $heading = _("Received Items Credited on this Note"); - echo ""; echo ""; - if ($mode == 0) + if ($mode == 0) { - submit_cells('InvGRN', _("Edit"), "align=right"); + submit_cells('InvGRN', _("Edit"), "align=right", + _('Moves to GRN selection page'), true); } echo "
$heading
"; echo ""; // outer table + div_start('grn_items'); echo ""; $th = array(_("Delivery Sequence #"), _("Item"), _("Description"), _("Quantity"), _("Price"), _("Line Value")); @@ -317,16 +315,18 @@ function display_grn_items(&$supp_trans, $mode=0) label_cell(get_trans_view_str(25,$entered_grn->id)); label_cell($entered_grn->item_code); label_cell($entered_grn->item_description); - qty_cell(abs($entered_grn->this_quantity_inv)); + qty_cell(abs($entered_grn->this_quantity_inv), false, get_qty_dec($entered_grn->item_code)); amount_cell($entered_grn->chg_price); - amount_cell($entered_grn->chg_price * abs($entered_grn->this_quantity_inv)); + amount_cell( round($entered_grn->chg_price * abs($entered_grn->this_quantity_inv)), user_price_dec()); if ($mode == 1) - delete_link_cell(SID . "Delete=" . $entered_grn->id); + edit_button_cell("Delete" . $entered_grn->id, _("Delete"), + _('Remove item from document')); end_row(); - $total_grn_value += ($entered_grn->chg_price * abs($entered_grn->this_quantity_inv)); + $total_grn_value += round($entered_grn->chg_price * abs($entered_grn->this_quantity_inv), + user_price_dec()); $i++; if ($i > 15) @@ -337,29 +337,28 @@ function display_grn_items(&$supp_trans, $mode=0) } } - label_row(_("Total"), number_format2($total_grn_value,user_price_dec()), + label_row(_("Total"), price_format($total_grn_value), "colspan=5 align=right", "nowrap align=right"); echo "
"; - + div_end(); echo ""; - - end_table(); // outertable + end_table(); // outertable return $total_grn_value; } //-------------------------------------------------------------------------------------------------- function get_duedate_from_terms(&$supp_trans) { - if (!is_date($supp_trans->tran_date)) + if (!is_date($supp_trans->tran_date)) { $supp_trans->tran_date = Today(); } - if (substr( $supp_trans->terms, 0, 1) == "1") + if (substr( $supp_trans->terms, 0, 1) == "1") { /*Its a day in the following month when due */ $supp_trans->due_date = add_days(end_month($supp_trans->tran_date), (int) substr( $supp_trans->terms,1)); - } - else + } + else { /*Use the Days Before Due to add to the invoice date */ $supp_trans->due_date = add_days($supp_trans->tran_date, (int) substr( $supp_trans->terms,1)); } diff --git a/purchasing/includes/ui/po_ui.inc b/purchasing/includes/ui/po_ui.inc index a78263a8..8edf3dfe 100644 --- a/purchasing/includes/ui/po_ui.inc +++ b/purchasing/includes/ui/po_ui.inc @@ -41,7 +41,7 @@ function create_new_po() function display_po_header(&$order) { - global $table_style2; + global $table_style2, $Ajax; $editable = ($order->order_no == 0); @@ -54,15 +54,7 @@ function display_po_header(&$order) if (!isset($_POST['supplier_id']) && (get_global_supplier() != reserved_words::get_all())) $_POST['supplier_id'] = get_global_supplier(); - supplier_list_row(_("Supplier:"), 'supplier_id', $_POST['supplier_id'], false, true); - - if ($order->supplier_id != $_POST['supplier_id']) - { - // supplier has changed - // delete all the order items - drastic but necessary because of - // change of currency, etc - $order->clear_items(); - } + supplier_list_row(_("Supplier:"), 'supplier_id', null, false, true); } else { @@ -70,9 +62,15 @@ function display_po_header(&$order) label_row(_("Supplier:"), $order->supplier_name); } - //if ($editable || ($order->supplier_id != $_POST['supplier_id'])) - get_supplier_details_to_order($order, $_POST['supplier_id']); - + if ($order->supplier_id != get_post('supplier_id',-1)) { + get_supplier_details_to_order($order, $_POST['supplier_id']); + // supplier default price update + foreach ($order->line_items as $line_no=>$item) { + $line = &$order->line_items[$line_no]; + $line->price = get_purchase_price ($order->supplier_id, $_POST['stock_id']); + } + $Ajax->activate('items_table'); + } set_global_supplier($_POST['supplier_id']); if (!is_company_currency($order->curr_code)) @@ -84,7 +82,7 @@ function display_po_header(&$order) if ($editable) { - ref_row(_("Reference:"), 'ref', references::get_next(systypes::po())); + ref_row(_("Reference:"), 'ref', '', references::get_next(systypes::po())); } else { @@ -106,7 +104,7 @@ function display_po_header(&$order) // if (!is_date_in_fiscalyear($_POST['OrderDate'])) // $_POST['OrderDate'] = end_fiscalyear(); //} - date_row(_("Order Date:"), 'OrderDate', $_POST['OrderDate'], 0, 0, 0); + date_row(_("Order Date:"), 'OrderDate', '', $_POST['OrderDate'], 0, 0, 0); text_row(_("Supplier's Reference:"), 'Requisition', null, 16, 15); @@ -118,13 +116,11 @@ function display_po_header(&$order) echo "" . _("Receive Into:") . ""; echo ""; - locations_list('StkLocation', null); - echo " "; - submit('GetAddress', _("Get Address")); + locations_list('StkLocation', null, false, true); echo ""; if (!isset($_POST['StkLocation']) || $_POST['StkLocation'] == "" || - isset($_POST['GetAddress']) || !isset($_POST['delivery_address']) || + isset($_POST['_StkLocation_update']) || !isset($_POST['delivery_address']) || $_POST['delivery_address'] == "") { /*If this is the first time the form loaded set up defaults */ @@ -137,13 +133,14 @@ function display_po_header(&$order) { $loc_row = db_fetch($result); $_POST['delivery_address'] = $loc_row["delivery_address"]; + $Ajax->activate('delivery_address'); $_SESSION['PO']->Location = $_POST['StkLocation']; $_SESSION['PO']->delivery_address = $_POST['delivery_address']; } else { /*The default location of the user is crook */ - echo "
" . _("The default stock location set up for this user is not a currently defined stock location. Your system administrator needs to amend your user record."); + display_error(_("The default stock location set up for this user is not a currently defined stock location. Your system administrator needs to amend your user record.")); } } @@ -162,26 +159,30 @@ function display_po_items(&$order, $editable=true) display_heading(_("Order Items")); + div_start('items_table'); start_table("$table_style width=80%"); $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"), _("Required Delivery Date"), _("Price"), _("Line Total")); + + if (count($order->line_items)) $th[] = ''; table_header($th); + $id = find_submit('Edit'); $total = 0; $k = 0; - foreach ($order->line_items as $po_line) + foreach ($order->line_items as $line_no => $po_line) { if ($po_line->Deleted == false) { - $line_total = $po_line->quantity * $po_line->price; - if (!$editable || !isset($_GET['Edit']) || $_GET['Edit'] != $po_line->line_no) + $line_total = round($po_line->quantity * $po_line->price, user_price_dec()); + if (!$editable || ($id != $line_no)) { alt_table_row_color($k); label_cell($po_line->stock_id); label_cell($po_line->item_description); - qty_cell($po_line->quantity); + qty_cell($po_line->quantity, false, get_qty_dec($po_line->stock_id)); label_cell($po_line->units); label_cell($po_line->req_del_date); amount_cell($po_line->price); @@ -189,8 +190,10 @@ function display_po_items(&$order, $editable=true) if ($editable) { - edit_link_cell(SID."Edit=" . $po_line->line_no); - delete_link_cell(SID."Delete=" . $po_line->line_no); + edit_button_cell("Edit$line_no", _("Edit"), + _('Edit document line')); + edit_button_cell("Delete$line_no", _("Delete"), + _('Remove line from document')); } end_row(); } @@ -202,14 +205,15 @@ function display_po_items(&$order, $editable=true) } } - if (!isset($_GET['Edit']) && $editable) + if ($id==-1 && $editable) po_item_controls($order); - $display_total = number_format2($total,user_price_dec()); + $display_total = price_format($total); label_row(_("Total Excluding Shipping/Tax"), $display_total, "colspan=6 align=right", "nowrap align=right"); end_table(1); + div_end(); } //--------------------------------------------------------------------------------------------------- @@ -267,70 +271,70 @@ function display_po_summary(&$po, $is_self=false, $editable=false) function po_item_controls(&$order, $stock_id=null) { + global $Ajax; start_row(); - if (isset($_GET['Edit']) && $stock_id != null) + $id = find_submit('Edit'); + if (($id != -1) && $stock_id != null) { - hidden('line_no', $_GET['Edit']); + hidden('line_no', $id); - if (!isset($_POST['stock_id'])) - $_POST['stock_id'] = $order->line_items[$_GET['Edit']]->stock_id; - if (!isset($_POST['qty']) || ($_POST['qty'] == "")) - $_POST['qty'] = $order->line_items[$_GET['Edit']]->quantity; - if (!isset($_POST['price']) || ($_POST['price'] == "")) - $_POST['price'] = $order->line_items[$_GET['Edit']]->price; - if (!isset($_POST['req_del_date']) || ($_POST['req_del_date'] == "")) - $_POST['req_del_date'] = $order->line_items[$_GET['Edit']]->req_del_date; + $_POST['stock_id'] = $order->line_items[$id]->stock_id; + $dec = get_qty_dec($_POST['stock_id']); + $_POST['qty'] = qty_format($order->line_items[$id]->quantity, $_POST['stock_id'], $dec); + $_POST['price'] = price_format($order->line_items[$id]->price); + $_POST['req_del_date'] = $order->line_items[$id]->req_del_date; - $_POST['units'] = $order->line_items[$_GET['Edit']]->units; + $_POST['units'] = $order->line_items[$id]->units; hidden('stock_id', $_POST['stock_id']); label_cell($_POST['stock_id']); - label_cell($order->line_items[$_GET['Edit']]->item_description); + label_cell($order->line_items[$id]->item_description); + $Ajax->activate('items_table'); } else { - global $no_item_list; - hidden('line_no', ($_SESSION['PO']->lines_on_order + 1)); - if ($no_item_list) - { - echo "\n"; - stock_purchasable_items_list('stock_id', $_POST['stock_id'], false, true); - echo "\n"; - } - else - { - text_cells(null, "StockID2", "", 12, 10, "", "", "onkeyup='recalcAccounts();' onKeyDown='if(event.keyCode==13) event.keyCode=9;' onblur='return setAccount(0, true);'"); - stock_purchasable_items_list_cells(null, 'stock_id', $_POST['stock_id'], false, false, "onchange='return setAccount(1, true)'"); + stock_purchasable_items_list_cells(null, 'stock_id', null, false, true); + if(isset($_POST['_stock_id_update'])) { + $Ajax->activate('price'); + $Ajax->activate('units'); + $Ajax->activate('qty'); + $Ajax->activate('req_del_date'); + $Ajax->activate('line_total'); } $item_info = get_item_edit_info($_POST['stock_id']); $_POST['units'] = $item_info["units"]; - $_POST['qty'] = 1; - $_POST['price'] = get_purchase_price ($order->supplier_id, $_POST['stock_id']); + $dec = get_qty_dec($_POST['stock_id']); + $_POST['qty'] = qty_format(1, $_POST['stock_id'], $dec); + $_POST['price'] = price_format(get_purchase_price ($order->supplier_id, $_POST['stock_id'])); $_POST['req_del_date'] = add_days(Today(), 10); } - text_cells(null, 'qty', null, 13, 15); + qty_cells(null, 'qty', null, null, null, $dec); - label_cell($_POST['units']); - date_cells(null, 'req_del_date', null, 0, 0, 0); - text_cells(null, 'price', null, 15, 14); + label_cell($_POST['units'], '', 'units'); + date_cells(null, 'req_del_date', '', null, 0, 0, 0); + amount_cells(null, 'price', null); //$line_total = $_POST['qty'] * $_POST['price'] * (1 - $_POST['Disc'] / 100); - $line_total = $_POST['qty'] * $_POST['price']; - amount_cell($line_total); + $line_total = round(input_num('qty') * input_num('price'), user_price_dec()); + amount_cell($line_total, false, '','line_total'); - if (isset($_GET['Edit'])) + if ($id!=-1) { - submit_cells('UpdateLine', _("Update")); - submit_cells('CancelUpdate', _("Cancel")); + edit_button_cell('UpdateLine', _("Update"), + _('Confirm changes')); + edit_button_cell('CancelUpdate', _("Cancel"), + _('Cancel changes')); + set_focus('qty'); } else { - submit_cells('EnterLine', _("Add Item"), "colspan=2"); + submit_cells('EnterLine', _("Add Item"), "colspan=2", + _('Add new item to document'), true); } end_row(); diff --git a/purchasing/inquiry/po_search.php b/purchasing/inquiry/po_search.php index e460d53e..b4bac802 100644 --- a/purchasing/inquiry/po_search.php +++ b/purchasing/inquiry/po_search.php @@ -5,6 +5,7 @@ $path_to_root="../.."; include($path_to_root . "/includes/session.inc"); include($path_to_root . "/purchasing/includes/purchasing_ui.inc"); +include_once($path_to_root . "/reporting/includes/reporting.inc"); $js = ""; if ($use_popup_windows) @@ -17,6 +18,30 @@ if (isset($_GET['order_number'])) { $_POST['order_number'] = $_GET['order_number']; } +//----------------------------------------------------------------------------------- +// Ajax updates +// +if (get_post('SearchOrders')) +{ + $Ajax->activate('orders_tbl'); +} elseif (get_post('_order_number_changed')) +{ + $disable = get_post('order_number') !== ''; + + $Ajax->addDisable(true, 'OrdersAfterDate', $disable); + $Ajax->addDisable(true, 'OrdersToDate', $disable); + $Ajax->addDisable(true, 'StockLocation', $disable); + $Ajax->addDisable(true, '_SelectStockFromList_edit', $disable); + $Ajax->addDisable(true, 'SelectStockFromList', $disable); + + if ($disable) { + $Ajax->addFocus(true, 'order_number'); + } else + $Ajax->addFocus(true, 'OrdersAfterDate'); + + $Ajax->activate('orders_tbl'); +} + //--------------------------------------------------------------------------------------------- @@ -24,16 +49,16 @@ start_form(false, true); start_table("class='tablestyle_noborder'"); start_row(); -ref_cells(_("#:"), 'order_number'); +ref_cells(_("#:"), 'order_number', '',null, '', true); -date_cells(_("from:"), 'OrdersAfterDate', null, -30); +date_cells(_("from:"), 'OrdersAfterDate', '', null, -30); date_cells(_("to:"), 'OrdersToDate'); locations_list_cells(_("Location:"), 'StockLocation', null, true); stock_items_list_cells(_("Item:"), 'SelectStockFromList', null, true); -submit_cells('SearchOrders', _("Search")); +submit_cells('SearchOrders', _("Search"),'',_('Select documents'), true); end_row(); end_table(); @@ -50,8 +75,8 @@ if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "" ($_POST['SelectStockFromList'] != $all_items)) { $selected_stock_item = $_POST['SelectStockFromList']; -} -else +} +else { unset($selected_stock_item); } @@ -71,11 +96,11 @@ $sql = "SELECT ".TB_PREF."purch_orders.order_no, ".TB_PREF."suppliers.supp_name, AND ".TB_PREF."locations.loc_code = ".TB_PREF."purch_orders.into_stock_location AND (".TB_PREF."purch_order_details.quantity_ordered > ".TB_PREF."purch_order_details.quantity_received) "; -if (isset($order_number) && $order_number != "") +if (isset($order_number) && $order_number != "") { $sql .= "AND ".TB_PREF."purch_orders.reference LIKE '%". $order_number . "%'"; -} -else +} +else { $data_after = date2sql($_POST['OrdersAfterDate']); @@ -84,12 +109,12 @@ else $sql .= " AND ".TB_PREF."purch_orders.ord_date >= '$data_after'"; $sql .= " AND ".TB_PREF."purch_orders.ord_date <= '$data_before'"; - if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != $all_items) + if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != $all_items) { $sql .= " AND ".TB_PREF."purch_orders.into_stock_location = '". $_POST['StockLocation'] . "' "; } - if (isset($selected_stock_item)) + if (isset($selected_stock_item)) { $sql .= " AND ".TB_PREF."purch_order_details.item_code='". $selected_stock_item ."' "; } @@ -99,31 +124,34 @@ $sql .= " GROUP BY ".TB_PREF."purch_orders.order_no"; $result = db_query($sql,"No orders were returned"); +print_hidden_script(18); + /*show a table of the orders returned by the sql */ +div_start('orders_tbl'); start_table("$table_style colspan=7 width=80%"); if (isset($_POST['StockLocation']) && $_POST['StockLocation'] == $all_items) $th = array(_("#"), _("Reference"), _("Supplier"), _("Location"), - _("Supplier's Reference"), _("Order Date"), _("Currency"), _("Order Total")); -else + _("Supplier's Reference"), _("Order Date"), _("Currency"), _("Order Total"),"","",""); +else $th = array(_("#"), _("Reference"), _("Supplier"), - _("Supplier's Reference"), _("Order Date"), _("Currency"), _("Order Total")); + _("Supplier's Reference"), _("Order Date"), _("Currency"), _("Order Total"),"","",""); table_header($th); $j = 1; $k = 0; //row colour counter $overdue_items = false; -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { if ($myrow["OverDue"] == 1) { start_row("class='overduebg'"); $overdue_items = true; - } - else + } + else { alt_table_row_color($k); } @@ -143,6 +171,7 @@ while ($myrow = db_fetch($result)) label_cell($myrow["curr_code"]); amount_cell($myrow["OrderValue"]); label_cell("" . _("Edit") . ""); + label_cell(print_document_link($myrow['order_no'], _("Print"))); label_cell("" . _("Receive") . ""); end_row(); @@ -160,6 +189,6 @@ end_table(); if ($overdue_items) display_note(_("Marked orders have overdue items."), 0, 1, "class='overduefg'"); - +div_end(); end_page(); ?> diff --git a/purchasing/inquiry/po_search_completed.php b/purchasing/inquiry/po_search_completed.php index 0df563a2..7e2f7f61 100644 --- a/purchasing/inquiry/po_search_completed.php +++ b/purchasing/inquiry/po_search_completed.php @@ -5,6 +5,7 @@ $path_to_root="../.."; include($path_to_root . "/includes/session.inc"); include($path_to_root . "/purchasing/includes/purchasing_ui.inc"); +include_once($path_to_root . "/reporting/includes/reporting.inc"); $js = ""; if ($use_popup_windows) $js .= get_js_open_window(900, 500); @@ -17,22 +18,45 @@ if (isset($_GET['order_number'])) $order_number = $_GET['order_number']; } +//----------------------------------------------------------------------------------- +// Ajax updates +// +if (get_post('SearchOrders')) +{ + $Ajax->activate('orders_tbl'); +} elseif (get_post('_order_number_changed')) +{ + $disable = get_post('order_number') !== ''; + + $Ajax->addDisable(true, 'OrdersAfterDate', $disable); + $Ajax->addDisable(true, 'OrdersToDate', $disable); + $Ajax->addDisable(true, 'StockLocation', $disable); + $Ajax->addDisable(true, '_SelectStockFromList_edit', $disable); + $Ajax->addDisable(true, 'SelectStockFromList', $disable); + + if ($disable) { + $Ajax->addFocus(true, 'order_number'); + } else + $Ajax->addFocus(true, 'OrdersAfterDate'); + + $Ajax->activate('orders_tbl'); +} //--------------------------------------------------------------------------------------------- start_form(false, true); start_table("class='tablestyle_noborder'"); start_row(); -ref_cells(_("#:"), 'order_number'); +ref_cells(_("#:"), 'order_number', '',null, '', true); -date_cells(_("from:"), 'OrdersAfterDate', null, -30); +date_cells(_("from:"), 'OrdersAfterDate', '', null, -30); date_cells(_("to:"), 'OrdersToDate'); locations_list_cells(_("into location:"), 'StockLocation', null, true); stock_items_list_cells(_("for item:"), 'SelectStockFromList', null, true); -submit_cells('SearchOrders', _("Search")); +submit_cells('SearchOrders', _("Search"),'',_('Select documents'), true); end_row(); end_table(); @@ -49,8 +73,8 @@ if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "" ($_POST['SelectStockFromList'] != reserved_words::get_all())) { $selected_stock_item = $_POST['SelectStockFromList']; -} -else +} +else { unset($selected_stock_item); } @@ -66,11 +90,11 @@ $sql = "SELECT ".TB_PREF."purch_orders.order_no, ".TB_PREF."suppliers.supp_name, AND ".TB_PREF."purch_orders.supplier_id = ".TB_PREF."suppliers.supplier_id AND ".TB_PREF."locations.loc_code = ".TB_PREF."purch_orders.into_stock_location "; -if (isset($order_number) && $order_number != "") +if (isset($order_number) && $order_number != "") { $sql .= "AND ".TB_PREF."purch_orders.reference LIKE '%". $order_number . "%'"; -} -else +} +else { $data_after = date2sql($_POST['OrdersAfterDate']); @@ -79,11 +103,11 @@ else $sql .= " AND ".TB_PREF."purch_orders.ord_date >= '$data_after'"; $sql .= " AND ".TB_PREF."purch_orders.ord_date <= '$date_before'"; - if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all()) + if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all()) { $sql .= " AND ".TB_PREF."purch_orders.into_stock_location = '". $_POST['StockLocation'] . "' "; } - if (isset($selected_stock_item)) + if (isset($selected_stock_item)) { $sql .= " AND ".TB_PREF."purch_order_details.item_code='". $selected_stock_item ."' "; } @@ -94,20 +118,23 @@ $sql .= " GROUP BY ".TB_PREF."purch_orders.order_no"; $result = db_query($sql,"No orders were returned"); +print_hidden_script(18); + +div_start('orders_tbl'); start_table("$table_style colspan=7 width=80%"); if (isset($_POST['StockLocation']) && $_POST['StockLocation'] == reserved_words::get_all()) $th = array(_("#"), _("Reference"), _("Supplier"), _("Location"), - _("Supplier's Reference"), _("Order Date"), _("Currency"), _("Order Total")); -else - $th = array(_("#"), _("Reference"), _("Supplier"), - _("Supplier's Reference"), _("Order Date"), _("Currency"), _("Order Total")); + _("Supplier's Reference"), _("Order Date"), _("Currency"), _("Order Total"),""); +else + $th = array(_("#"), _("Reference"), _("Supplier"), + _("Supplier's Reference"), _("Order Date"), _("Currency"), _("Order Total"),""); table_header($th); $j = 1; $k = 0; //row colour counter -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { alt_table_row_color($k); @@ -123,6 +150,7 @@ while ($myrow = db_fetch($result)) label_cell($date); label_cell($myrow["curr_code"]); amount_cell($myrow["OrderValue"]); + label_cell(print_document_link($myrow['order_no'], _("Print"))); end_row(); $j++; @@ -134,7 +162,7 @@ while ($myrow = db_fetch($result)) } end_table(2); - +div_end(); //--------------------------------------------------------------------------------------------------- end_page(); diff --git a/purchasing/inquiry/supplier_allocation_inquiry.php b/purchasing/inquiry/supplier_allocation_inquiry.php index e8020139..2c3a6fae 100644 --- a/purchasing/inquiry/supplier_allocation_inquiry.php +++ b/purchasing/inquiry/supplier_allocation_inquiry.php @@ -37,14 +37,14 @@ start_row(); supplier_list_cells(_("Select a supplier: "), 'supplier_id', $_POST['supplier_id'], true); -date_cells(_("From:"), 'TransAfterDate', null, -30); -date_cells(_("To:"), 'TransToDate', null, 1); +date_cells(_("From:"), 'TransAfterDate', '', null, -30); +date_cells(_("To:"), 'TransToDate', '', null, 1); -supp_allocations_list_cells("filterType", null); +supp_allocations_list_cell("filterType", null); check_cells(_("show settled:"), 'showSettled', null); -submit_cells('Refresh Inquiry', _("Search")); +submit_cells('RefreshInquiry', _("Search"),'',_('Refresh Inquiry'), true); set_global_supplier($_POST['supplier_id']); @@ -76,27 +76,27 @@ function get_transactions() $sql .= " AND ".TB_PREF."supp_trans.supplier_id = '" . $_POST['supplier_id'] . "'"; if (isset($_POST['filterType']) && $_POST['filterType'] != reserved_words::get_all()) { - if (($_POST['filterType'] == '1') || ($_POST['filterType'] == '2')) + if (($_POST['filterType'] == '1') || ($_POST['filterType'] == '2')) { $sql .= " AND ".TB_PREF."supp_trans.type = 20 "; - } - elseif ($_POST['filterType'] == '3') + } + elseif ($_POST['filterType'] == '3') { $sql .= " AND ".TB_PREF."supp_trans.type = 22 "; - } - elseif (($_POST['filterType'] == '4') || ($_POST['filterType'] == '5')) + } + elseif (($_POST['filterType'] == '4') || ($_POST['filterType'] == '5')) { $sql .= " AND ".TB_PREF."supp_trans.type = 21 "; } - if (($_POST['filterType'] == '2') || ($_POST['filterType'] == '5')) + if (($_POST['filterType'] == '2') || ($_POST['filterType'] == '5')) { $today = date2sql(Today()); $sql .= " AND ".TB_PREF."supp_trans.due_date < '$today' "; } } - if (!check_value('showSettled')) + if (!check_value('showSettled')) { $sql .= " AND (round(abs(ov_amount + ov_gst + ov_discount) - alloc,6) != 0) "; } @@ -109,40 +109,44 @@ function get_transactions() //------------------------------------------------------------------------------------------------ $result = get_transactions(); - -if (db_num_rows($result) == 0) +//------------------------------------------------------------------------------------------------ +if(get_post('RefreshInquiry')) { - display_note(_("There are no transactions to display for the given dates."), 1, 1); - end_page(); - exit; + $Ajax->activate('doc_tbl'); } //------------------------------------------------------------------------------------------------ /*show a table of the transactions returned by the sql */ -start_table("$table_style width=80%"); -if ($_POST['supplier_id'] == reserved_words::get_all()) +div_start('doc_tbl'); +if (db_num_rows($result) == 0) +{ + display_note(_("There are no transactions to display for the given dates."), 1, 1); +} else +{ + start_table("$table_style width=90%"); + if ($_POST['supplier_id'] == reserved_words::get_all()) $th = array(_("Type"), _("Number"), _("Reference"), _("Supplier"), _("Supp Reference"), _("Date"), _("Due Date"), _("Currency"), - _("Debit"), _("Credit"), _("Allocated"), _("Balance")); -else + _("Debit"), _("Credit"), _("Allocated"), _("Balance"), ""); + else $th = array(_("Type"), _("Number"), _("Reference"), _("Supp Reference"), _("Date"), _("Due Date"), - _("Debit"), _("Credit"), _("Allocated"), _("Balance")); -table_header($th); + _("Debit"), _("Credit"), _("Allocated"), _("Balance"), ""); + table_header($th); -$j = 1; -$k = 0; //row colour counter -$over_due = false; -while ($myrow = db_fetch($result)) -{ + $j = 1; + $k = 0; //row colour counter + $over_due = false; + while ($myrow = db_fetch($result)) + { if ($myrow['OverDue'] == 1) { start_row("class='overduebg'"); $over_due = true; - } - else + } + else { alt_table_row_color($k); } @@ -170,7 +174,7 @@ while ($myrow = db_fetch($result)) amount_cell($myrow["Allocated"]); if ($myrow["type"] == 1 || $myrow["type"] == 21 || $myrow["type"] == 22) $balance = -$myrow["TotalAmount"] - $myrow["Allocated"]; - else + else $balance = $myrow["TotalAmount"] - $myrow["Allocated"]; amount_cell($balance); @@ -179,9 +183,11 @@ while ($myrow = db_fetch($result)) if (($myrow["type"] == 1 || $myrow["type"] == 21 || $myrow["type"] == 22) && $balance > 0) { - label_cell("" . _("Allocations") . ""); } + else + label_cell(""); end_row(); @@ -191,13 +197,14 @@ while ($myrow = db_fetch($result)) $j = 1; table_header($th); } -//end of page full new headings if -} -//end of while loop + //end of page full new headings if + } + //end of while loop -end_table(1); -if ($over_due) + end_table(1); + if ($over_due) display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'"); - +} +div_end(); end_page(); ?> diff --git a/purchasing/inquiry/supplier_inquiry.php b/purchasing/inquiry/supplier_inquiry.php index 3ad2fd26..7fd80c33 100644 --- a/purchasing/inquiry/supplier_inquiry.php +++ b/purchasing/inquiry/supplier_inquiry.php @@ -35,12 +35,12 @@ start_row(); supplier_list_cells(_("Select a supplier:"), 'supplier_id', null, true); -date_cells(_("From:"), 'TransAfterDate', null, -30); +date_cells(_("From:"), 'TransAfterDate', '', null, -30); date_cells(_("To:"), 'TransToDate'); -supp_allocations_list_cells("filterType", null); +supp_allocations_list_cell("filterType", null); -submit_cells('Refresh Inquiry', _("Search")); +submit_cells('Refresh Inquiry', _("Search"),'',_('Refresh Inquiry'), true); end_row(); end_table(); @@ -134,43 +134,50 @@ function get_transactions() //------------------------------------------------------------------------------------------------ +div_start('totals_tbl'); if (($_POST['supplier_id'] != "") && ($_POST['supplier_id'] != reserved_words::get_all())) { $supplier_record = get_supplier_details($_POST['supplier_id']); display_supplier_summary($supplier_record); } +div_end(); //------------------------------------------------------------------------------------------------ $result = get_transactions(); -if (db_num_rows($result) == 0) +if(get_post('Refresh Inquiry')) { - display_note(_("There are no transactions to display for the given dates."), 1, 1); - end_page(); - exit; + $Ajax->activate('trans_tbl'); + $Ajax->activate('totals_tbl'); } //------------------------------------------------------------------------------------------------ /*show a table of the transactions returned by the sql */ -start_table("$table_style width=80%"); -if ($_POST['supplier_id'] == reserved_words::get_all()) +div_start('trans_tbl'); +if (db_num_rows($result) == 0) +{ + display_note(_("There are no transactions to display for the given dates."), 1, 1); +} else +{ + start_table("$table_style width=80%"); + if ($_POST['supplier_id'] == reserved_words::get_all()) $th = array(_("Type"), _("#"), _("Reference"), _("Supplier"), _("Supplier's Reference"), _("Date"), _("Due Date"), _("Currency"), _("Debit"), _("Credit"), ""); -else + else $th = array(_("Type"), _("#"), _("Reference"), _("Supplier's Reference"), _("Date"), _("Due Date"), _("Debit"), _("Credit"), ""); -table_header($th); + table_header($th); -$j = 1; -$k = 0; //row colour counter -$over_due = false; -while ($myrow = db_fetch($result)) -{ + $j = 1; + $k = 0; //row colour counter + $over_due = false; + while ($myrow = db_fetch($result)) + { if ($myrow['OverDue'] == 1) { @@ -213,14 +220,14 @@ while ($myrow = db_fetch($result)) $j=1; table_header($th); } -//end of page full new headings if -} -//end of while loop + //end of page full new headings if + } + //end of while loop -end_table(1); -if ($over_due) + end_table(1); + if ($over_due) display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'"); - - +} +div_end(); end_page(); ?> diff --git a/purchasing/manage/suppliers.php b/purchasing/manage/suppliers.php index 82a651c8..5ab0ea8f 100644 --- a/purchasing/manage/suppliers.php +++ b/purchasing/manage/suppliers.php @@ -9,19 +9,10 @@ page(_("Suppliers")); //include($path_to_root . "/includes/date_functions.inc"); include($path_to_root . "/includes/ui.inc"); -include($path_to_root . "/includes/data_checks.inc"); check_db_has_tax_groups(_("There are no tax groups defined in the system. At least one tax group is required before proceeding.")); -if (isset($_GET['New']) || !isset($_POST['supplier_id'])) -{ - $_POST['New'] = "1"; -} - -if (isset($_POST['SelectSupplier'])) -{ - unset($_POST['New']); -} +$new_supplier = get_post('supplier_id') == ''; if (isset($_POST['submit'])) { @@ -38,52 +29,55 @@ if (isset($_POST['submit'])) { $input_error = 1; display_error(_("The supplier name must be entered.")); + set_focus('supp_name'); } if ($input_error !=1 ) { - if (!isset($_POST['New'])) + if (!$new_supplier) { - $sql = "UPDATE ".TB_PREF."suppliers SET supp_name='" . $_POST['supp_name'] . "', - address='" . $_POST['address'] . "', - email='" . $_POST['email'] . "', - bank_account='" . $_POST['bank_account'] . "', - dimension_id=" . $_POST['dimension_id'] . ", - dimension2_id=" . $_POST['dimension2_id'] . ", - curr_code='" . $_POST['curr_code'] . "', - payment_terms='" . $_POST['payment_terms'] . "', - payable_account='" . $_POST['payable_account'] . "', - purchase_account='" . $_POST['purchase_account'] . "', - payment_discount_account='" . $_POST['payment_discount_account'] . "', - tax_group_id=" . $_POST['tax_group_id'] . " WHERE supplier_id = '" . $_POST['supplier_id'] . "'"; + $sql = "UPDATE ".TB_PREF."suppliers SET supp_name=".db_escape($_POST['supp_name']) . ", + address=".db_escape($_POST['address']) . ", + email=".db_escape($_POST['email']) . ", + bank_account=".db_escape($_POST['bank_account']) . ", + dimension_id=".db_escape($_POST['dimension_id']) . ", + dimension2_id=".db_escape($_POST['dimension2_id']) . ", + curr_code=".db_escape($_POST['curr_code']).", + payment_terms=".db_escape($_POST['payment_terms']) . ", + payable_account=".db_escape($_POST['payable_account']) . ", + purchase_account=".db_escape($_POST['purchase_account']) . ", + payment_discount_account=".db_escape($_POST['payment_discount_account']) . ", + tax_group_id=".db_escape($_POST['tax_group_id']) . " WHERE supplier_id = '" . $_POST['supplier_id'] . "'"; db_query($sql,"The supplier could not be updated"); - + display_notification(_("Supplier has been updated.")); } else - { //not a new supplier + { $sql = "INSERT INTO ".TB_PREF."suppliers (supp_name, address, email, bank_account, dimension_id, dimension2_id, curr_code, payment_terms, payable_account, purchase_account, payment_discount_account, tax_group_id) - VALUES ('" . $_POST['supp_name'] . "', '" . - $_POST['address'] . "', '" . - $_POST['email'] . "', '" . - $_POST['bank_account'] . "', " . - $_POST['dimension_id'] . ", " . - $_POST['dimension2_id'] . ", '" . - $_POST['curr_code'] . "', '" . - $_POST['payment_terms'] . "', '" . - $_POST['payable_account'] . "', '" . - $_POST['purchase_account'] . "', '" . - $_POST['payment_discount_account'] . "', " . - $_POST['tax_group_id'] . ")"; + VALUES (".db_escape($_POST['supp_name']). ", " + .db_escape($_POST['address']) . ", " + .db_escape($_POST['email']). ", " + .db_escape($_POST['bank_account']). ", " + .db_escape($_POST['dimension_id']). ", " + .db_escape($_POST['dimension2_id']). ", " + .db_escape($_POST['curr_code']). ", " + .db_escape($_POST['payment_terms']). ", " + .db_escape($_POST['payable_account']). ", " + .db_escape($_POST['purchase_account']). ", " + .db_escape($_POST['payment_discount_account']). ", " + .db_escape($_POST['tax_group_id']). ")"; db_query($sql,"The supplier could not be added"); + $_POST['supplier_id'] = db_insert_id(); + $new_supplier = false; + display_notification(_("A new supplier has been added.")); + $Ajax->activate('_page_body'); } - - meta_forward($_SERVER['PHP_SELF']); } } @@ -122,7 +116,8 @@ elseif (isset($_POST['delete']) && $_POST['delete'] != "") db_query($sql,"check failed"); unset($_SESSION['supplier_id']); - meta_forward($_SERVER['PHP_SELF']); + $new_supplier = true; + $Ajax->activate('_page_body'); } //end if Delete supplier } @@ -131,26 +126,22 @@ start_form(); if (db_has_suppliers()) { start_table("", 3); - start_row(); - supplier_list_cells(_("Select a supplier: "), 'supplier_id', null); - submit_cells('SelectSupplier', _("Edit Supplier")); - end_row(); +// start_table("class = 'tablestyle_noborder'"); + supplier_list_row(_("Select a supplier: "), 'supplier_id', null, + _('New supplier'), true); end_table(); } else { - hidden('supplier_id', $_POST['supplier_id']); + hidden('supplier_id', get_post('supplier_id')); } -hyperlink_params($_SERVER['PHP_SELF'], _("Enter a new supplier"), "New=1"); -echo "
"; - //start_table("class='tablestyle2'", 0, 3); start_table("class='tablestyle'", 3); table_section_title(_("Supplier")); -if (isset($_POST['supplier_id']) && !isset($_POST['New'])) +if (!$new_supplier) { //SupplierID exists - either passed when calling the form or from the form itself $myrow = get_supplier($_POST['supplier_id']); @@ -171,11 +162,16 @@ if (isset($_POST['supplier_id']) && !isset($_POST['New'])) } else { - // its a new supplier being added - hidden('New', 'Yes'); + $_POST['supp_name'] = $_POST['address'] = $_POST['tax_group_id'] = ''; + $_POST['dimension_id'] = 0; + $_POST['dimension2_id'] = 0; + $_POST['sales_type'] = -1; + $_POST['email'] = $_POST['bank_account'] = ''; + $_POST['payment_terms'] = ''; + $_POST['credit_limit'] = price_format(sys_prefs::default_credit_limit()); $company_record = get_company_prefs(); - + $_POST['curr_code'] = $company_record["curr_default"]; $_POST['payable_account'] = $company_record["creditors_act"]; $_POST['purchase_account'] = $company_record["default_cogs_act"]; $_POST['payment_discount_account'] = $company_record['pyt_discount_act']; @@ -187,7 +183,7 @@ text_row(_("Email:"), 'email', null, 42, 40); text_row(_("Bank Account:"), 'bank_account', null, 42, 40); // Sherifoz 23.09.03 currency can't be changed if editing -if (isset($_POST['supplier_id']) && !isset($_POST['New'])) +if (!$new_supplier) { label_row(_("Supplier's Currency:"), $_POST['curr_code']); hidden('curr_code', $_POST['curr_code']); @@ -224,17 +220,19 @@ if ($dim < 2) hidden('dimension2_id', 0); end_table(1); - -if (!isset($_POST['New'])) +div_start('controls'); +if (!$new_supplier) { - submit_center_first('submit', _("Update Supplier")); - submit_center_last('delete', _("Delete Supplier")); + submit_center_first('submit', _("Update Supplier"), + _('Update supplier data'), true); + submit_center_last('delete', _("Delete Supplier"), + _('Delete supplier data if have been never used'), true); } else { - submit_center('submit', _("Add New Supplier Details")); + submit_center('submit', _("Add New Supplier Details"), true, '', true); } - +div_end(); end_form(); end_page(); diff --git a/purchasing/po_entry_items.php b/purchasing/po_entry_items.php index be2393ae..be9dc188 100644 --- a/purchasing/po_entry_items.php +++ b/purchasing/po_entry_items.php @@ -3,16 +3,13 @@ $page_security = 4; $path_to_root=".."; -include($path_to_root . "/purchasing/includes/po_class.inc"); +include_once($path_to_root . "/purchasing/includes/po_class.inc"); -include($path_to_root . "/includes/session.inc"); - -include($path_to_root . "/includes/data_checks.inc"); -include($path_to_root . "/includes/manufacturing.inc"); +include_once($path_to_root . "/includes/session.inc"); include_once($path_to_root . "/purchasing/includes/purchasing_ui.inc"); -$js = get_js_form_entry("StockID2", "stock_id", "qty"); +$js = ''; if ($use_popup_windows) $js .= get_js_open_window(900, 500); if ($use_date_picker) @@ -56,31 +53,12 @@ if (isset($_GET['AddedID'])) } //-------------------------------------------------------------------------------------------------- +function line_start_focus() { + global $Ajax; -function copy_to_po() -{ - $_SESSION['PO']->supplier_id = $_POST['supplier_id']; - $_SESSION['PO']->orig_order_date = $_POST['OrderDate']; - $_SESSION['PO']->reference = $_POST['ref']; - $_SESSION['PO']->requisition_no = $_POST['Requisition']; - $_SESSION['PO']->Comments = $_POST['Comments']; - $_SESSION['PO']->Location = $_POST['StkLocation']; - $_SESSION['PO']->delivery_address = $_POST['delivery_address']; -} - -//-------------------------------------------------------------------------------------------------- - -function copy_from_po() -{ - $_POST['supplier_id'] = $_SESSION['PO']->supplier_id; - $_POST['OrderDate'] = $_SESSION['PO']->orig_order_date; - $_POST['Requisition'] = $_SESSION['PO']->requisition_no; - $_POST['ref'] = $_SESSION['PO']->reference; - $_POST['Comments'] = $_SESSION['PO']->Comments; - $_POST['StkLocation'] = $_SESSION['PO']->Location; - $_POST['delivery_address'] = $_SESSION['PO']->delivery_address; + $Ajax->activate('items_table'); + set_focus('_stock_id_edit'); } - //-------------------------------------------------------------------------------------------------- function unset_form_variables() { @@ -92,9 +70,8 @@ function unset_form_variables() { //--------------------------------------------------------------------------------------------------- -function handle_delete_item() +function handle_delete_item($line_no) { - $line_no = $_GET['Delete']; if($_SESSION['PO']->some_already_received($line_no) == 0) { $_SESSION['PO']->remove_from_order($line_no); @@ -104,6 +81,7 @@ function handle_delete_item() { display_error(_("This item cannot be deleted because some of it has already been received.")); } + line_start_focus(); } //--------------------------------------------------------------------------------------------------- @@ -138,39 +116,27 @@ function handle_cancel_po() exit; } -//--------------------------------------------------------------------------------------------------- -if (isset($_GET['Delete']) || isset($_GET['Edit'])) -{ - copy_from_po(); -} - -if (isset($_GET['Delete'])) -{ - handle_delete_item(); -} - //--------------------------------------------------------------------------------------------------- function check_data() { - if (!is_numeric($_POST['qty'])) + if (!check_num('qty',0)) { - display_error(_("The quantity of the order item must be numeric.")); + display_error(_("The quantity of the order item must be numeric and not less than zero.")); + set_focus('qty'); return false; } - if ($_POST['qty'] <= 0) - { - display_error(_("The quantity of the ordered item entered must be a positive amount.")); - return false; - } - if (!is_numeric($_POST['price'])) + + if (!check_num('price', 0)) { - display_error(_("The price entered must be numeric.")); + display_error(_("The price entered must be numeric and not less than zero.")); + set_focus('price'); return false; } if (!is_date($_POST['req_del_date'])){ - display_error(_("The date entered is in an invalid format.")); - return false; + display_error(_("The date entered is in an invalid format.")); + set_focus('req_del_date'); + return false; } return true; @@ -183,17 +149,19 @@ function handle_update_item() $allow_update = check_data(); if ($allow_update && - ($_SESSION['PO']->line_items[$_POST['line_no']]->qty_inv > $_POST['qty'] || - $_SESSION['PO']->line_items[$_POST['line_no']]->qty_received > $_POST['qty'])) + ($_SESSION['PO']->line_items[$_POST['line_no']]->qty_inv > input_num('qty') || + $_SESSION['PO']->line_items[$_POST['line_no']]->qty_received > input_num('qty'))) { display_error(_("You are attempting to make the quantity ordered a quantity less than has already been invoiced or received. This is prohibited.") . "
" . _("The quantity received can only be modified by entering a negative receipt and the quantity invoiced can only be reduced by entering a credit note against this item.")); + set_focus('qty'); return; } - $_SESSION['PO']->update_order_item($_POST['line_no'], $_POST['qty'], $_POST['price'], + $_SESSION['PO']->update_order_item($_POST['line_no'], input_num('qty'), input_num('price'), $_POST['req_del_date']); unset_form_variables(); + line_start_focus(); } //--------------------------------------------------------------------------------------------------- @@ -206,15 +174,15 @@ function handle_add_new_item() { if (count($_SESSION['PO']->line_items) > 0) { - foreach ($_SESSION['PO']->line_items AS $order_item) + foreach ($_SESSION['PO']->line_items as $order_item) { /* do a loop round the items on the order to see that the item is not already on this order */ if (($order_item->stock_id == $_POST['stock_id']) && - ($order_item->Deleted==False)) + ($order_item->Deleted == false)) { - $allow_update = False; + $allow_update = false; display_error(_("The selected item is already on this order.")); } } /* end of the foreach loop to look for pre-existing items of the same code */ @@ -229,18 +197,18 @@ function handle_add_new_item() if (db_num_rows($result) == 0) { - $allow_update = False; + $allow_update = false; } if ($allow_update) { $myrow = db_fetch($result); - $_SESSION['PO']->add_to_order ($_POST['line_no'], $_POST['stock_id'], $_POST['qty'], - $myrow["description"], $_POST['price'], $myrow["units"], + $_SESSION['PO']->add_to_order ($_POST['line_no'], $_POST['stock_id'], input_num('qty'), + $myrow["description"], input_num('price'), $myrow["units"], $_POST['req_del_date'], 0, 0); unset_form_variables(); - $_POST['StockID2'] = $_POST['stock_id'] = ""; + $_POST['stock_id'] = ""; } else { @@ -249,6 +217,7 @@ function handle_add_new_item() } /* end of if not already on the order and allow input was true*/ } + line_start_focus(); } //--------------------------------------------------------------------------------------------------- @@ -258,33 +227,38 @@ function can_commit() if (!is_date($_POST['OrderDate'])) { display_error(_("The entered order date is invalid.")); + set_focus('OrderDate'); return false; } if (!$_SESSION['PO']->order_no) { - if (!references::is_valid($_SESSION['PO']->reference)) + if (!references::is_valid(get_post('ref'))) { display_error(_("There is no reference entered for this purchase order.")); + set_focus('ref'); return false; } - if (!is_new_reference($_SESSION['PO']->reference, systypes::po())) + if (!is_new_reference(get_post('ref'), systypes::po())) { display_error(_("The entered reference is already in use.")); + set_focus('ref'); return false; } } - if ($_SESSION['PO']->delivery_address == "") + if (get_post('delivery_address') == '') { display_error(_("There is no delivery address specified.")); + set_focus('delivery_address'); return false; } - if (!isset($_SESSION['PO']->Location) || $_SESSION['PO']->Location == "") + if (get_post('StkLocation') == '') { display_error(_("There is no location specified to move any items into.")); + set_focus('StkLocation'); return false; } @@ -301,10 +275,16 @@ function can_commit() function handle_commit_order() { - copy_to_po(); if (can_commit()) { + $_SESSION['PO']->supplier_id = $_POST['supplier_id']; + $_SESSION['PO']->orig_order_date = $_POST['OrderDate']; + $_SESSION['PO']->reference = $_POST['ref']; + $_SESSION['PO']->requisition_no = $_POST['Requisition']; + $_SESSION['PO']->Comments = $_POST['Comments']; + $_SESSION['PO']->Location = $_POST['StkLocation']; + $_SESSION['PO']->delivery_address = $_POST['delivery_address']; if ($_SESSION['PO']->order_no == 0) { @@ -329,46 +309,26 @@ function handle_commit_order() } } } - //--------------------------------------------------------------------------------------------------- +$id = find_submit('Delete'); +if ($id != -1) + handle_delete_item($id); if (isset($_POST['Commit'])) { handle_commit_order(); } - -//--------------------------------------------------------------------------------------------------- - if (isset($_POST['UpdateLine'])) -{ - copy_to_po(); handle_update_item(); -} -//--------------------------------------------------------------------------------------------------- - -If (isset($_POST['EnterLine'])) -{ - copy_to_po(); +if (isset($_POST['EnterLine'])) handle_add_new_item(); -} - -//--------------------------------------------------------------------------------------------------- if (isset($_POST['CancelOrder'])) -{ handle_cancel_po(); -} - -//--------------------------------------------------------------------------------------------------- if (isset($_POST['CancelUpdate'])) -{ - copy_to_po(); unset_form_variables(); -} - -//--------------------------------------------------------------------------------------------------- if (isset($_GET['ModifyOrderNumber']) && $_GET['ModifyOrderNumber'] != "") { @@ -378,26 +338,22 @@ if (isset($_GET['ModifyOrderNumber']) && $_GET['ModifyOrderNumber'] != "") /*read in all the selected order into the Items cart */ read_po($_SESSION['PO']->order_no, $_SESSION['PO']); - copy_from_po(); + + $_POST['supplier_id'] = $_SESSION['PO']->supplier_id; + $_POST['OrderDate'] = $_SESSION['PO']->orig_order_date; + $_POST['Requisition'] = $_SESSION['PO']->requisition_no; + $_POST['ref'] = $_SESSION['PO']->reference; + $_POST['Comments'] = $_SESSION['PO']->Comments; + $_POST['StkLocation'] = $_SESSION['PO']->Location; + $_POST['delivery_address'] = $_SESSION['PO']->delivery_address; } -//-------------------------------------------------------------------------------- +if (isset($_POST['CancelUpdate']) || isset($_POST['UpdateLine'])) { + line_start_focus(); +} if (isset($_GET['NewOrder'])) -{ create_new_po(); -} -else -{ - if (!isset($_POST['supplier_id'])) - $_POST['supplier_id'] = $_SESSION['PO']->supplier_id; - if (!isset($_POST['OrderDate'])) - $_POST['OrderDate'] = $_SESSION['PO']->orig_order_date; - if (!isset($_POST['Requisition'])) - $_POST['Requisition'] = $_SESSION['PO']->requisition_no; - if (!isset($_POST['Comments'])) - $_POST['Comments'] = $_SESSION['PO']->Comments; -} //--------------------------------------------------------------------------------------------------- @@ -412,17 +368,19 @@ start_table($table_style2); textarea_row(_("Memo:"), 'Comments', null, 70, 4); end_table(1); + +div_start('controls', 'items_table'); if ($_SESSION['PO']->order_has_items()) { if ($_SESSION['PO']->order_no) - submit_center_first('Commit', _("Update Order")); + submit_center_first('Commit', _("Update Order"), '', true); else - submit_center_first('Commit', _("Place Order")); + submit_center_first('Commit', _("Place Order"), '', true); submit_center_last('CancelOrder', _("Cancel Order")); } else submit_center('CancelOrder', _("Cancel Order")); - +div_end(); //--------------------------------------------------------------------------------------------------- end_form(); diff --git a/purchasing/po_receive_items.php b/purchasing/po_receive_items.php index e12b6a42..d79a5af7 100644 --- a/purchasing/po_receive_items.php +++ b/purchasing/po_receive_items.php @@ -16,7 +16,7 @@ page(_("Receive Purchase Order Items"), false, false, "", $js); //--------------------------------------------------------------------------------------------------------------- -if (isset($_GET['AddedID'])) +if (isset($_GET['AddedID'])) { $grn = $_GET['AddedID']; $trans_type = 25; @@ -28,7 +28,7 @@ if (isset($_GET['AddedID'])) //echo "
"; //echo get_gl_view_str(25, $grn, _("View the GL Journal Entries for this Delivery")); - echo "
"; +// echo "
"; hyperlink_no_params("$path_to_root/purchasing/inquiry/po_search.php", _("Select a different purchase order for receiving items against")); display_footer_exit(); @@ -36,8 +36,8 @@ if (isset($_GET['AddedID'])) //-------------------------------------------------------------------------------------------------- -if ((!isset($_GET['PONumber']) || $_GET['PONumber'] == 0) && !isset($_SESSION['PO'])) -//if (isset($_GET['PONumber']) && !$_GET['PONumber'] > 0 && !isset($_SESSION['PO'])) +if ((!isset($_GET['PONumber']) || $_GET['PONumber'] == 0) && !isset($_SESSION['PO'])) +//if (isset($_GET['PONumber']) && !$_GET['PONumber'] > 0 && !isset($_SESSION['PO'])) { die (_("This page can only be opened if a purchase order has been selected. Please select a purchase order first.")); } @@ -47,10 +47,12 @@ if ((!isset($_GET['PONumber']) || $_GET['PONumber'] == 0) && !isset($_SESSION['P function display_po_receive_items() { global $table_style; + + div_start('grn_items'); start_table("colspan=7 $table_style width=90%"); $th = array(_("Item Code"), _("Description"), _("Ordered"), _("Units"), _("Received"), _("Outstanding"), _("This Delivery"), _("Price"), _("Total")); - table_header($th); + table_header($th); /*show the line items on the order with the quantity being received for modification */ @@ -59,7 +61,7 @@ function display_po_receive_items() if (count($_SESSION['PO']->line_items)> 0 ) { - foreach ($_SESSION['PO']->line_items as $ln_itm) + foreach ($_SESSION['PO']->line_items as $ln_itm) { alt_table_row_color($k); @@ -79,16 +81,17 @@ function display_po_receive_items() text_cells(null, $ln_itm->stock_id . "Desc", $ln_itm->item_description, 30, 50); else label_cell($ln_itm->item_description); - qty_cell($ln_itm->quantity); + $dec = get_qty_dec($ln_itm->stock_id); + qty_cell($ln_itm->quantity, false, $dec); label_cell($ln_itm->units); - qty_cell($ln_itm->qty_received); - qty_cell($qty_outstanding); + qty_cell($ln_itm->qty_received, false, $dec); + qty_cell($qty_outstanding, false, $dec); if ($qty_outstanding > 0) - text_cells(null, $ln_itm->line_no, $ln_itm->receive_qty, 10, 10, "align=right"); + qty_cells(null, $ln_itm->line_no, number_format2($ln_itm->receive_qty, $dec), "align=right", null, $dec); else - text_cells(null, $ln_itm->line_no, $ln_itm->receive_qty, 10, 10, "align=right", - "", "disabled"); + qty_cells(null, $ln_itm->line_no, number_format2($ln_itm->receive_qty, $dec), "align=right", + "disabled", $dec); amount_cell($ln_itm->price); amount_cell($line_total); @@ -100,6 +103,7 @@ function display_po_receive_items() label_row(_("Total value of items received"), $display_total, "colspan=8 align=right", "nowrap align=right"); end_table(); + div_end(); } //-------------------------------------------------------------------------------------------------- @@ -119,18 +123,18 @@ function check_po_changed() check_db_error("Could not check that the details of the purchase order had not been changed by another user ", $sql); $line_no = 1; - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { $ln_item = $_SESSION['PO']->line_items[$line_no]; // only compare against items that are outstanding $qty_outstanding = $ln_item->quantity - $ln_item->qty_received; - if ($qty_outstanding > 0) + if ($qty_outstanding > 0) { - if ($ln_item->qty_inv != $myrow["qty_invoiced"] || - $ln_item->stock_id != $myrow["item_code"] || - $ln_item->quantity != $myrow["quantity_ordered"] || - $ln_item->qty_received != $myrow["quantity_received"]) + if ($ln_item->qty_inv != $myrow["qty_invoiced"] || + $ln_item->stock_id != $myrow["item_code"] || + $ln_item->quantity != $myrow["quantity_ordered"] || + $ln_item->qty_received != $myrow["quantity_received"]) { return true; } @@ -151,28 +155,31 @@ function can_process() return false; } - if (!is_date($_POST['DefaultReceivedDate'])) + if (!is_date($_POST['DefaultReceivedDate'])) { display_error(_("The entered date is invalid.")); + set_focus('DefaultReceivedDate'); return false; } - if (!references::is_valid($_POST['ref'])) + if (!references::is_valid($_POST['ref'])) { display_error(_("You must enter a reference.")); + set_focus('ref'); return false; } - if (!is_new_reference($_POST['ref'], 25)) + if (!is_new_reference($_POST['ref'], 25)) { display_error(_("The entered reference is already in use.")); + set_focus('ref'); return false; } $something_received = 0; - foreach ($_SESSION['PO']->line_items as $order_line) + foreach ($_SESSION['PO']->line_items as $order_line) { - if ($order_line->receive_qty > 0) + if ($order_line->receive_qty > 0) { $something_received = 1; break; @@ -181,10 +188,10 @@ function can_process() // Check whether trying to deliver more items than are recorded on the actual purchase order (+ overreceive allowance) $delivery_qty_too_large = 0; - foreach ($_SESSION['PO']->line_items as $order_line) + foreach ($_SESSION['PO']->line_items as $order_line) { - if ($order_line->receive_qty+$order_line->qty_received > - $order_line->quantity * (1+ (sys_prefs::over_receive_allowance() / 100))) + if ($order_line->receive_qty+$order_line->qty_received > + $order_line->quantity * (1+ (sys_prefs::over_receive_allowance() / 100))) { $delivery_qty_too_large = 1; break; @@ -195,7 +202,7 @@ function can_process() { /*Then dont bother proceeding cos nothing to do ! */ display_error(_("There is nothing to process. Please enter valid quantities greater than zero.")); return false; - } + } elseif ($delivery_qty_too_large == 1) { display_error(_("Entered quantities cannot be greater than the quantity entered on the purchase order including the allowed over-receive percentage") . " (" . sys_prefs::over_receive_allowance() ."%)." @@ -211,12 +218,12 @@ function can_process() function process_receive_po() { - global $path_to_root; + global $path_to_root, $Ajax; if (!can_process()) return; - if (check_po_changed()) + if (check_po_changed()) { echo "
" . _("This order has been changed or invoiced since this delivery was started to be actioned. Processing halted. To enter a delivery against this purchase order, it must be re-selected and re-read again to update the changes made by the other user.") . "
"; @@ -225,6 +232,7 @@ function process_receive_po() unset($_SESSION['PO']->line_items); unset($_SESSION['PO']); unset($_POST['ProcessGoodsReceived']); + $Ajax->activate('_page_body'); exit; } @@ -239,7 +247,7 @@ function process_receive_po() //-------------------------------------------------------------------------------------------------- -if (isset($_GET['PONumber']) && $_GET['PONumber'] > 0 && !isset($_POST['Update'])) +if (isset($_GET['PONumber']) && $_GET['PONumber'] > 0 && !isset($_POST['Update'])) { create_new_po(); @@ -250,28 +258,29 @@ if (isset($_GET['PONumber']) && $_GET['PONumber'] > 0 && !isset($_POST['Update'] //-------------------------------------------------------------------------------------------------- -if (isset($_POST['Update']) || isset($_POST['ProcessGoodsReceived'])) +if (isset($_POST['Update']) || isset($_POST['ProcessGoodsReceived'])) { /* if update quantities button is hit page has been called and ${$line->line_no} would have be set from the post to the quantity to be received in this receival*/ - foreach ($_SESSION['PO']->line_items as $line) + foreach ($_SESSION['PO']->line_items as $line) { $_POST[$line->line_no] = max($_POST[$line->line_no], 0); - if (!is_numeric($_POST[$line->line_no])) - $_POST[$line->line_no] = 0; + if (!check_num($line->line_no)) + $_POST[$line->line_no] = number_format2(0, get_qty_dec($line->stock_id)); if (!isset($_POST['DefaultReceivedDate']) || $_POST['DefaultReceivedDate'] == "") $_POST['DefaultReceivedDate'] = Today(); - $_SESSION['PO']->line_items[$line->line_no]->receive_qty = $_POST[$line->line_no]; + $_SESSION['PO']->line_items[$line->line_no]->receive_qty = input_num($line->line_no); - if (isset($_POST[$line->stock_id . "Desc"]) && strlen($_POST[$line->stock_id . "Desc"]) > 0) + if (isset($_POST[$line->stock_id . "Desc"]) && strlen($_POST[$line->stock_id . "Desc"]) > 0) { $_SESSION['PO']->line_items[$line->line_no]->item_description = $_POST[$line->stock_id . "Desc"]; } } + $Ajax->activate('grn_items'); } //-------------------------------------------------------------------------------------------------- @@ -289,11 +298,9 @@ display_grn_summary($_SESSION['PO'], true); display_heading(_("Items to Receive")); display_po_receive_items(); -echo "
"; -submit('Update', _("Update")); -echo " "; -submit('ProcessGoodsReceived', _("Process Receive Items")); -echo "
"; +echo '
'; +submit_center_first('Update', _("Update"), '', true); +submit_center_last('ProcessGoodsReceived', _("Process Receive Items"), _("Clear all GL entry fields"), true); end_form(); diff --git a/purchasing/supplier_credit.php b/purchasing/supplier_credit.php index ff4c0724..5729fcf5 100644 --- a/purchasing/supplier_credit.php +++ b/purchasing/supplier_credit.php @@ -2,11 +2,11 @@ $path_to_root=".."; -include($path_to_root . "/purchasing/includes/supp_trans_class.inc"); +include_once($path_to_root . "/purchasing/includes/supp_trans_class.inc"); $page_security=5; -include($path_to_root . "/includes/session.inc"); +include_once($path_to_root . "/includes/session.inc"); include_once($path_to_root . "/includes/data_checks.inc"); @@ -66,40 +66,47 @@ function check_data() if (!$_SESSION['supp_trans']->is_valid_trans_to_post()) { display_error(_("The credit note cannot be processed because the there are no items or values on the invoice. Credit notes are expected to have a charge.")); + set_focus(''); return false; } if (!references::is_valid($_SESSION['supp_trans']->reference)) { display_error(_("You must enter an credit note reference.")); + set_focus('reference'); return false; } if (!is_new_reference($_SESSION['supp_trans']->reference, 21)) { display_error(_("The entered reference is already in use.")); + set_focus('reference'); return false; } if (!references::is_valid($_SESSION['supp_trans']->supp_reference)) { display_error(_("You must enter a supplier's credit note reference.")); + set_focus('supp_reference'); return false; } if (!is_date($_SESSION['supp_trans']->tran_date)) { display_error(_("The credit note as entered cannot be processed because the date entered is not valid.")); + set_focus('tran_date'); return false; } elseif (!is_date_in_fiscalyear($_SESSION['supp_trans']->tran_date)) { display_error(_("The entered date is not in fiscal year.")); + set_focus('tran_date'); return false; } if (!is_date( $_SESSION['supp_trans']->due_date)) { display_error(_("The invoice as entered cannot be processed because the due date is in an incorrect format.")); + set_focus('due_date'); return false; } @@ -146,22 +153,24 @@ echo ""; // outer table echo "
"; invoice_header($_SESSION['supp_trans']); +if ($_POST['supplier_id']=='') + display_error('No supplier found for entered search text'); +else { + echo ""; // outer table -echo ""; // outer table + $total_grn_value = display_grn_items($_SESSION['supp_trans']); -$total_grn_value = display_grn_items($_SESSION['supp_trans']); + $total_gl_value = display_gl_items($_SESSION['supp_trans']); -$total_gl_value = display_gl_items($_SESSION['supp_trans']); - -echo ""; // outer table - -invoice_totals($_SESSION['supp_trans']); + echo ""; // outer table + invoice_totals($_SESSION['supp_trans']); +} echo ""; end_table(1); // outer table -submit_center('PostCreditNote', _("Enter Credit Note")); +submit_center('PostCreditNote', _("Enter Credit Note"), true, '', true); echo "

"; end_form(); diff --git a/purchasing/supplier_credit_grns.php b/purchasing/supplier_credit_grns.php index f195d788..b9bfbe33 100644 --- a/purchasing/supplier_credit_grns.php +++ b/purchasing/supplier_credit_grns.php @@ -1,13 +1,13 @@ "; function check_data() { - if (!is_numeric($_POST['This_QuantityCredited'])) + if (!check_num('This_QuantityCredited', 0)) { - display_error(_("The quantity to credit must be numeric.")); + display_error(_("The quantity to credit must be numeric and greater than zero.")); + set_focus('This_QuantityCredited'); return false; } - if ($_POST['This_QuantityCredited'] <= 0) - { - display_error(_("The quantity to credit must be greater than zero.")); - return false; - } - - if (!is_numeric($_POST['ChgPrice']) || $_POST['ChgPrice'] < 0) + if (!check_num('ChgPrice', 0)) { display_error(_("The price is either not numeric or negative.")); + set_focus('ChgPrice'); return false; } @@ -68,23 +64,25 @@ if (isset($_POST['AddGRNToTrans'])) $_SESSION['supp_trans']->add_grn_to_trans($_POST['GRNNumber'], $_POST['po_detail_item'], $_POST['item_code'], $_POST['item_description'], $_POST['qty_recd'], - $_POST['prev_quantity_inv'], $_POST['This_QuantityCredited'], - $_POST['order_price'], $_POST['ChgPrice'], $complete, + $_POST['prev_quantity_inv'], input_num('This_QuantityCredited'), + $_POST['order_price'], input_num('ChgPrice'), $complete, $_POST['std_cost_unit'], ""); } } //----------------------------------------------------------------------------------------- - -if (isset($_GET['Delete'])) +$id = find_submit('Delete'); +if ($id != -1) { - $_SESSION['supp_trans']->remove_grn_from_trans($_GET['Delete']); + $_SESSION['supp_trans']->remove_grn_from_trans($id); + $Ajax->activate('grn_items'); + $Ajax->activate('grn_table'); } //----------------------------------------------------------------------------------------- - +start_form(false,true); display_grn_items($_SESSION['supp_trans'], 1); - +end_form(); echo "
"; hyperlink_no_params("$path_to_root/purchasing/supplier_credit.php", _("Return to Credit Note Entry")); @@ -108,6 +106,7 @@ if (db_num_rows($result) == 0) /*Set up a table to show the GRN items outstanding for selection */ start_form(false, true); +div_start('grn_table'); start_table("$table_style width=95%"); $th = array(_("Delivery"), _("Sequence #"), _("Order"), _("Item Code"), _("Description"), _("Delivered"), _("Total Qty Received"), _("Qty Already Invoiced"), @@ -121,7 +120,7 @@ while ($myrow = db_fetch($result)) foreach ($_SESSION['supp_trans']->grn_items as $entered_grn) { - if ($entered_grn->id == $myrow["id"]) + if ($entered_grn->id == $myrow["id"]) { $grn_already_on_credit = True; } @@ -132,16 +131,17 @@ while ($myrow = db_fetch($result)) alt_table_row_color($k); label_cell(get_trans_view_str(25, $myrow["grn_batch_id"])); - submit_cells('grn_item_id', $myrow["id"]); + submit_cells('grn_item_id'.$myrow["id"], $myrow["id"], '', '', true); label_cell(get_trans_view_str(systypes::po(), $myrow["purch_order_no"])); label_cell($myrow["item_code"]); label_cell($myrow["description"]); label_cell(sql2date($myrow["delivery_date"])); - qty_cell($myrow["qty_recd"]); - qty_cell($myrow["quantity_inv"]); - qty_cell($myrow["qty_recd"] - $myrow["quantity_inv"]); + $dec = get_qty_dec($myrow["item_code"]); + qty_cell($myrow["qty_recd"], false, $dec); + qty_cell($myrow["quantity_inv"], false, $dec); + qty_cell($myrow["qty_recd"] - $myrow["quantity_inv"], false, $dec); amount_cell($myrow["unit_price"]); - amount_cell($myrow["unit_price"] * $myrow["quantity_inv"]); + amount_cell(round($myrow["unit_price"] * $myrow["quantity_inv"], user_price_dec())); end_row(); $i++; if ($i > 15) @@ -153,34 +153,49 @@ while ($myrow = db_fetch($result)) } end_table(); +div_end(); //----------------------------------------------------------------------------------------- +$id = find_submit('grn_item_id'); +if ($id || get_post('AddGRNToTrans')) +{ + $Ajax->activate('grn_selector'); +} +if (get_post('AddGRNToTrans')) +{ + $Ajax->activate('grn_table'); + $Ajax->activate('grn_items'); +} + -if (isset($_POST['grn_item_id']) && $_POST['grn_item_id'] != "") +div_start('grn_selector'); +$id = find_submit('grn_item_id'); +if ($id != -1) { - $myrow = get_grn_item_detail($_POST['grn_item_id']); + $myrow = get_grn_item_detail($id); echo "
"; display_heading2(_("Delivery Item Selected For Adding To A Supplier Credit Note")); start_table("$table_style width=80%"); $th = array(_("Sequence #"), _("Item"), _("Qty Already Invoiced"), _("Quantity to Credit"), _("Order Price"), _("Credit Price")); - table_header($th); + table_header($th); start_row(); - label_cell($_POST['grn_item_id']); + label_cell($id); label_cell($myrow['item_code'] . " " . $myrow['description']); - qty_cell($myrow["quantity_inv"]); - text_cells(null, 'This_QuantityCredited', max($myrow['quantity_inv'], 0), 13, 15); + $dec = get_qty_dec($myrow['item_code']); + qty_cell($myrow["quantity_inv"], false, $dec); + qty_cells(null, 'This_QuantityCredited', number_format2(max($myrow['quantity_inv'],0), $dec), null, null, $dec); amount_cell($myrow['unit_price']); - text_cells(null, 'ChgPrice', $myrow['unit_price'], 13, 15); + amount_cells(null, 'ChgPrice', price_format($myrow['unit_price'])); end_row(); end_table(1); - submit_center('AddGRNToTrans', _("Add to Credit Note")); + submit_center('AddGRNToTrans', _("Add to Credit Note"), true, '', true); - hidden('GRNNumber', $_POST['grn_item_id']); + hidden('GRNNumber', $id); hidden('item_code', $myrow['item_code']);; hidden('item_description', $myrow['description']); hidden('qty_recd', $myrow['qty_recd']); @@ -190,7 +205,9 @@ if (isset($_POST['grn_item_id']) && $_POST['grn_item_id'] != "") hidden('po_detail_item', $myrow['po_detail_item']); } +div_end(); end_form(); -end_page(); +echo '
'; +end_page(false, true); ?> diff --git a/purchasing/supplier_invoice.php b/purchasing/supplier_invoice.php index b4a83c48..07b41b28 100644 --- a/purchasing/supplier_invoice.php +++ b/purchasing/supplier_invoice.php @@ -72,34 +72,40 @@ function check_data() if (!references::is_valid($_SESSION['supp_trans']->reference)) { display_error(_("You must enter an invoice reference.")); + set_focus('reference'); return false; } if (!is_new_reference($_SESSION['supp_trans']->reference, 20)) { display_error(_("The entered reference is already in use.")); + set_focus('reference'); return false; } if (!references::is_valid($_SESSION['supp_trans']->supp_reference)) { display_error(_("You must enter a supplier's invoice reference.")); + set_focus('supp_reference'); return false; } if (!is_date( $_SESSION['supp_trans']->tran_date)) { display_error(_("The invoice as entered cannot be processed because the invoice date is in an incorrect format.")); + set_focus('trans_date'); return false; } elseif (!is_date_in_fiscalyear($_SESSION['supp_trans']->tran_date)) { display_error(_("The entered date is not in fiscal year.")); + set_focus('trans_date'); return false; } if (!is_date( $_SESSION['supp_trans']->due_date)) { display_error(_("The invoice as entered cannot be processed because the due date is in an incorrect format.")); + set_focus('due_date'); return false; } @@ -150,25 +156,27 @@ echo ""; // outer table echo "
"; invoice_header($_SESSION['supp_trans']); +if ($_POST['supplier_id']=='') + display_error('No supplier found for entered search text'); +else { + echo ""; // outer table -echo ""; // outer table + echo "
"; -echo "
"; - -display_grn_items($_SESSION['supp_trans']); + display_grn_items($_SESSION['supp_trans']); -display_gl_items($_SESSION['supp_trans']); - -//echo ""; // outer table -echo "
"; -invoice_totals($_SESSION['supp_trans']); + display_gl_items($_SESSION['supp_trans']); + //echo ""; // outer table + echo "
"; + invoice_totals($_SESSION['supp_trans']); +} echo ""; end_table(); // outer table echo "
"; -submit_center('PostInvoice', _("Enter Invoice")); +submit_center('PostInvoice', _("Enter Invoice"), true, '', true); echo "
"; end_form(); diff --git a/purchasing/supplier_invoice_grns.php b/purchasing/supplier_invoice_grns.php index 04aaaea7..541a4c4d 100644 --- a/purchasing/supplier_invoice_grns.php +++ b/purchasing/supplier_invoice_grns.php @@ -2,10 +2,9 @@ $page_security = 5; $path_to_root=".."; -include_once($path_to_root . "/purchasing/includes/supp_trans_class.inc"); +include_once($path_to_root . "/purchasing/includes/supp_trans_class.inc"); include_once($path_to_root . "/includes/session.inc"); - include_once($path_to_root . "/purchasing/includes/purchasing_ui.inc"); include_once($path_to_root . "/purchasing/includes/purchasing_db.inc"); @@ -14,7 +13,6 @@ if ($use_date_picker) $js .= get_js_date_picker(); page(_("Select Received Items to Add"), false, false, "", $js); - if (!isset($_SESSION['supp_trans'])) { display_note("To enter supplier transactions the supplier must first be selected from the supplier selection screen, then the link to enter a supplier credit note must be clicked on.", 1, 0);; @@ -33,42 +31,43 @@ function check_data() { global $check_price_charged_vs_order_price, $check_qty_charged_vs_del_qty; - if (!is_numeric($_POST['this_quantity_inv'])) - { - display_error( _("The quantity to invoice must be numeric.")); - return false; - } - - if ($_POST['this_quantity_inv'] <= 0) + if (!check_num('this_quantity_inv', 0) || input_num('this_quantity_inv')==0) { - display_error( _("The quantity to invoice must be greater than zero.")); + display_error( _("The quantity to invoice must be numeric and greater than zero.")); + set_focus('this_quantity_inv'); return false; } - if (!is_numeric($_POST['ChgPrice'])) + if (!check_num('ChgPrice')) { display_error( _("The price is not numeric.")); + set_focus('ChgPrice'); return false; } - if ($check_price_charged_vs_order_price == True) + if ($check_price_charged_vs_order_price == True) { - if ($_POST['ChgPrice']/$_POST['order_price'] > - (1 + (sys_prefs::over_charge_allowance() / 100))) - { + if ($_POST['order_price']!=input_num('ChgPrice')) { + if ($_POST['order_price']==0 || + input_num('ChgPrice')/$_POST['order_price'] > + (1 + (sys_prefs::over_charge_allowance() / 100))) + { display_error(_("The price being invoiced is more than the purchase order price by more than the allowed over-charge percentage. The system is set up to prohibit this. See the system administrator to modify the set up parameters if necessary.") . _("The over-charge percentage allowance is :") . sys_prefs::over_charge_allowance() . "%"); + set_focus('ChgPrice'); return false; + } } } - if ($check_qty_charged_vs_del_qty == True) + if ($check_qty_charged_vs_del_qty == True) { - if ($_POST['this_quantity_inv'] / ($_POST['qty_recd'] - $_POST['prev_quantity_inv']) > + if (input_num('this_quantity_inv') / ($_POST['qty_recd'] - $_POST['prev_quantity_inv']) > (1+ (sys_prefs::over_charge_allowance() / 100))) { display_error( _("The quantity being invoiced is more than the outstanding quantity by more than the allowed over-charge percentage. The system is set up to prohibit this. See the system administrator to modify the set up parameters if necessary.") . _("The over-charge percentage allowance is :") . sys_prefs::over_charge_allowance() . "%"); + set_focus('this_quantity_inv'); return false; } } @@ -83,40 +82,38 @@ if (isset($_POST['AddGRNToTrans'])) if (check_data()) { - if ($_POST['this_quantity_inv'] >= ($_POST['qty_recd'] - $_POST['prev_quantity_inv'])) + if (input_num('this_quantity_inv') >= ($_POST['qty_recd'] - $_POST['prev_quantity_inv'])) { - $complete = True; - } - else + $complete = true; + } + else { - $complete = False; + $complete = false; } - //$_SESSION['supp_trans']->add_grn_to_trans($_POST['GRNNumber'], $_POST['po_detail_item'], - // $_POST['item_code'], $_POST['item_description'], $_POST['qty_recd'], - // $_POST['prev_quantity_inv'], $_POST['this_quantity_inv'], - // $_POST['order_price'], $_POST['ChgPrice'], $complete, - // $_POST['std_cost_unit'], $_POST['gl_code']); $_SESSION['supp_trans']->add_grn_to_trans($_POST['GRNNumber'], $_POST['po_detail_item'], $_POST['item_code'], $_POST['item_description'], $_POST['qty_recd'], - $_POST['prev_quantity_inv'], $_POST['this_quantity_inv'], - $_POST['order_price'], $_POST['ChgPrice'], $complete, + $_POST['prev_quantity_inv'], input_num('this_quantity_inv'), + $_POST['order_price'], input_num('ChgPrice'), $complete, $_POST['std_cost_unit'], ""); } } //----------------------------------------------------------------------------------------- - -if (isset($_GET['Delete'])) +$id = find_submit('Delete'); +if ($id != -1) { - $_SESSION['supp_trans']->remove_grn_from_trans($_GET['Delete']); + $_SESSION['supp_trans']->remove_grn_from_trans($id); + $Ajax->activate('grn_items'); + $Ajax->activate('grn_table'); } //----------------------------------------------------------------------------------------- - +start_form(false,true); display_grn_items($_SESSION['supp_trans'], 1); - +end_form(); echo "
"; + hyperlink_no_params("$path_to_root/purchasing/supplier_invoice.php", _("Back to Supplier Invoice Entry")); echo "
"; @@ -139,7 +136,7 @@ function display_grn_items_for_selection() start_form(false, true); display_heading2(_("Items Received Yet to be Invoiced")); - + div_start('grn_table'); start_table("$table_style colspan=7 width=95%"); $th = array(_("Delivery"), _("Sequence #"), _("P.O."), _("Item"), _("Description"), _("Received On"), _("Quantity Received"), _("Quantity Invoiced"), @@ -149,35 +146,36 @@ function display_grn_items_for_selection() while ($myrow = db_fetch($result)) { - - $grn_already_on_invoice = False; + $grn_already_on_invoice = false; foreach ($_SESSION['supp_trans']->grn_items as $entered_grn) { - if ($entered_grn->id == $myrow["id"]) + if ($entered_grn->id == $myrow["id"]) { - $grn_already_on_invoice = True; + $grn_already_on_invoice = true; } } - if ($grn_already_on_invoice == False) + if ($grn_already_on_invoice == false) { alt_table_row_color($k); label_cell(get_trans_view_str(25, $myrow["grn_batch_id"])); //text_cells(null, 'grn_item_id', $myrow["id"]); - submit_cells('grn_item_id', $myrow["id"]); + submit_cells('grn_item_id'.$myrow["id"], $myrow["id"], '', '', true); label_cell(get_trans_view_str(systypes::po(), $myrow["purch_order_no"])); label_cell($myrow["item_code"]); label_cell($myrow["description"]); label_cell(sql2date($myrow["delivery_date"])); - qty_cell($myrow["qty_recd"]); - qty_cell($myrow["quantity_inv"]); - qty_cell($myrow["qty_recd"] - $myrow["quantity_inv"]); + $dec = get_qty_dec($myrow["item_code"]); + qty_cell($myrow["qty_recd"], false, $dec); + qty_cell($myrow["quantity_inv"], false, $dec); + qty_cell($myrow["qty_recd"] - $myrow["quantity_inv"], false, $dec); amount_cell($myrow["unit_price"]); - amount_cell($myrow["unit_price"] * ($myrow["qty_recd"] - $myrow["quantity_inv"])); + amount_cell(round($myrow["unit_price"] * ($myrow["qty_recd"] - $myrow["quantity_inv"]), + user_price_dec())); end_row(); - + $i++; if ($i > 15) { @@ -188,40 +186,54 @@ function display_grn_items_for_selection() } end_table(); + div_end(); } //----------------------------------------------------------------------------------------- +if (find_submit('grn_item_id') || get_post('AddGRNToTrans')) +{ + $Ajax->activate('grn_selector'); +} +if (get_post('AddGRNToTrans')) +{ + $Ajax->activate('grn_table'); + $Ajax->activate('grn_items'); +} display_grn_items_for_selection(); //----------------------------------------------------------------------------------------- -if (isset($_POST['grn_item_id']) && $_POST['grn_item_id'] != "") +div_start('grn_selector'); + +$id = find_submit('grn_item_id'); +if ($id != -1) { - $myrow = get_grn_item_detail($_POST['grn_item_id']); + $myrow = get_grn_item_detail($id); echo "
"; display_heading2(_("Delivery Item Selected For Adding To A Supplier Invoice")); start_table("$table_style width=80%"); $th = array(_("Sequence #"), _("Item"), _("Description"), _("Quantity Outstanding"), _("Quantity to Invoice"), _("Order Price"), _("Actual Price")); - table_header($th); + table_header($th); start_row(); - label_cell($_POST['grn_item_id']); + label_cell($id); label_cell($myrow['item_code']); label_cell($myrow['description']); - qty_cell($myrow['QtyOstdg']); - text_cells(null, 'this_quantity_inv', $myrow['QtyOstdg'], 13, 15); + $dec = get_qty_dec($myrow['item_code']); + qty_cell($myrow['QtyOstdg'], false, $dec); + qty_cells(null, 'this_quantity_inv', number_format2($myrow['QtyOstdg'], $dec), null, null, $dec); amount_cell($myrow['unit_price']); - text_cells(null, 'ChgPrice', $myrow['unit_price'], 13, 15); + small_amount_cells(null, 'ChgPrice', price_format($myrow['unit_price'])); end_row(); end_table(1);; - submit_center('AddGRNToTrans', _("Add to Invoice")); + submit_center('AddGRNToTrans', _("Add to Invoice"), true, '', true); - hidden('GRNNumber', $_POST['grn_item_id']); + hidden('GRNNumber', $id); hidden('item_code', $myrow['item_code']); hidden('item_description', $myrow['description']);; hidden('qty_recd', $myrow['qty_recd']); @@ -231,9 +243,12 @@ if (isset($_POST['grn_item_id']) && $_POST['grn_item_id'] != "") hidden('po_detail_item', $myrow['po_detail_item']); } +div_end(); //---------------------------------------------------------------------------------------- end_form(); -end_page(); +echo '
'; +end_page(false, true); + ?> diff --git a/purchasing/supplier_payment.php b/purchasing/supplier_payment.php index d9297357..a6021942 100644 --- a/purchasing/supplier_payment.php +++ b/purchasing/supplier_payment.php @@ -41,16 +41,11 @@ if (isset($_GET['AddedID'])) display_note(get_gl_view_str(22, $payment_id, _("View the GL Journal Entries for this Payment"))); - echo "

"; hyperlink_params($path_to_root . "/purchasing/allocations/supplier_allocate.php", _("Allocate this Payment"), "trans_no=$payment_id&trans_type=22"); - echo "

"; hyperlink_params($_SERVER['PHP_SELF'], _("Enter another supplier payment"), "supplier_id=" . $_POST['supplier_id']); - echo "


"; - - end_page(); - exit; + display_footer_exit(); } //---------------------------------------------------------------------------------------- @@ -97,7 +92,7 @@ function display_controls() bank_trans_types_list_row(_("Payment Type:"), 'PaymentType', null); - ref_row(_("Reference:"), 'ref', references::get_next(22)); + ref_row(_("Reference:"), 'ref', '', references::get_next(22)); text_row(_("Memo:"), 'memo_', null, 52,50); @@ -106,7 +101,7 @@ function display_controls() echo ""; end_table(1); // outer table - submit_center('ProcessSuppPayment',_("Enter Payment")); + submit_center('ProcessSuppPayment',_("Enter Payment"), true, '', true); if ($bank_currency != $supplier_currency) { @@ -122,12 +117,13 @@ function check_inputs() { if ($_POST['amount'] == "") { - $_POST['amount'] = 0; + $_POST['amount'] = price_format(0); } - if (!is_numeric($_POST['amount']) || $_POST['amount'] < 0) + if (!check_num('amount', 0)) { display_error(_("The entered amount is invalid or less than zero.")); + set_focus('amount'); return false; } @@ -136,37 +132,43 @@ function check_inputs() $_POST['discount'] = 0; } - if (!is_numeric($_POST['discount']) OR $_POST['discount'] < 0) + if (!check_num('discount', 0)) { display_error(_("The entered discount is invalid or less than zero.")); + set_focus('amount'); return false; } - if ($_POST['amount'] - $_POST['discount'] <= 0) + if (input_num('amount') - input_num('discount') <= 0) { display_error(_("The total of the amount and the discount negative. Please enter positive values.")); + set_focus('amount'); return false; } if (!is_date($_POST['DatePaid'])) { display_error(_("The entered date is invalid.")); + set_focus('DatePaid'); return false; } elseif (!is_date_in_fiscalyear($_POST['DatePaid'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('DatePaid'); return false; } if (!references::is_valid($_POST['ref'])) { display_error(_("You must enter a reference.")); + set_focus('ref'); return false; } if (!is_new_reference($_POST['ref'], 22)) { display_error(_("The entered reference is already in use.")); + set_focus('ref'); return false; } @@ -179,7 +181,7 @@ function handle_add_payment() { $payment_id = add_supp_payment($_POST['supplier_id'], $_POST['DatePaid'], $_POST['PaymentType'], $_POST['bank_account'], - $_POST['amount'], $_POST['discount'], $_POST['ref'], $_POST['memo_']); + input_num('amount'), input_num('discount'), $_POST['ref'], $_POST['memo_']); //unset($_POST['supplier_id']); unset($_POST['bank_account']); diff --git a/purchasing/supplier_trans_gl.php b/purchasing/supplier_trans_gl.php index 903dc569..64dc49aa 100644 --- a/purchasing/supplier_trans_gl.php +++ b/purchasing/supplier_trans_gl.php @@ -3,10 +3,10 @@ $page_security=5; $path_to_root=".."; -include($path_to_root . "/purchasing/includes/supp_trans_class.inc"); -include($path_to_root . "/includes/session.inc"); +include_once($path_to_root . "/purchasing/includes/supp_trans_class.inc"); +include_once($path_to_root . "/includes/session.inc"); -include($path_to_root . "/purchasing/includes/purchasing_ui.inc"); +include_once($path_to_root . "/purchasing/includes/purchasing_ui.inc"); $js = ""; if ($use_date_picker) $js .= get_js_date_picker(); @@ -21,77 +21,88 @@ if (!isset($_SESSION['supp_trans'])) } //------------------------------------------------------------------------------------------------ - -function clear_fields() +function clear_fields() { + global $Ajax; + unset($_POST['gl_code']); unset($_POST['dimension_id']); unset($_POST['dimension2_id']); unset($_POST['amount']); unset($_POST['memo_']); - unset($_POST['AcctSelection']); - unset($_POST['AddGLCodeToTrans']); + unset($_POST['AddGLCodeToTrans']); + $Ajax->activate('gl_ctrls'); + set_focus('gl_code'); } - //------------------------------------------------------------------------------------------------ +// GL postings are often entered in the same form to two accounts +// so fileds are cleared only on user demand. +// +if (isset($_POST['ClearFields'])) +{ + clear_fields(); +} if (isset($_POST['AddGLCodeToTrans'])){ + $Ajax->activate('gl_items'); $input_error = false; - if (!isset($_POST['gl_code'])) - { - $_POST['gl_code'] = $_POST['AcctSelection']; - } - $sql = "SELECT account_code, account_name FROM ".TB_PREF."chart_master WHERE account_code=" . $_POST['gl_code']; + $sql = "SELECT account_code, account_name FROM ".TB_PREF."chart_master WHERE account_code='" . $_POST['gl_code'] . "'"; $result = db_query($sql,"get account information"); if (db_num_rows($result) == 0) { display_error(_("The account code entered is not a valid code, this line cannot be added to the transaction.")); + set_focus('gl_code'); $input_error = true; - } - else + } + else { $myrow = db_fetch_row($result); $gl_act_name = $myrow[1]; - if (!is_numeric($_POST['amount'])) + if (!check_num('amount')) { display_error(_("The amount entered is not numeric. This line cannot be added to the transaction.")); + set_focus('amount'); $input_error = true; } } if ($input_error == false) { - $_SESSION['supp_trans']->add_gl_codes_to_trans($_POST['gl_code'], $gl_act_name, - $_POST['dimension_id'], $_POST['dimension2_id'], $_POST['amount'], $_POST['memo_']); - clear_fields(); + $_SESSION['supp_trans']->add_gl_codes_to_trans($_POST['gl_code'], $gl_act_name, + $_POST['dimension_id'], $_POST['dimension2_id'], + input_num('amount'), $_POST['memo_']); + set_focus('gl_code'); } } //------------------------------------------------------------------------------------------------ -if (isset($_GET['Delete'])) +$id = find_submit('Delete'); +if ($id != -1) { - $_SESSION['supp_trans']->remove_gl_codes_from_trans($_GET['Delete']); - clear_fields(); + $_SESSION['supp_trans']->remove_gl_codes_from_trans($id); + clear_fields(); + $Ajax->activate('gl_items'); } //------------------------------------------------------------------------------------------------ -display_heading($_SESSION['supp_trans']->supplier_name); +display_heading($_SESSION['supp_trans']->supplier_name); +start_form(false,true); display_gl_items($_SESSION['supp_trans'], 1); - +end_form(); echo "
"; if ($_SESSION['supp_trans']->is_invoice == true) { hyperlink_no_params("$path_to_root/purchasing/supplier_invoice.php", _("Back to Invoice Entry")); -} -else +} +else { - hyperlink_no_params("$path_to_root/purchasing/supplier_credit.php", _("Back to Credit Note Entry")); + hyperlink_no_params("$path_to_root/purchasing/supplier_credit.php", _("Back to Credit Note Entry")); } echo "
"; @@ -103,11 +114,12 @@ start_form(false, true); display_heading2(_("Enter a GL Line")); +div_start('gl_ctrls'); start_table($table_style2); $accs = get_supplier_accounts($_SESSION['supp_trans']->supplier_id); -$_POST['AcctSelection'] = $accs['purchase_account']; -gl_all_accounts_list_row(_("GL Account Selection:"), 'AcctSelection', $_POST['AcctSelection']); +$_POST['gl_code'] = $accs['purchase_account']; +gl_all_accounts_list_row(_("GL Account Selection:"), 'gl_code', null); $dim = get_company_pref('use_dimension'); if ($dim >= 1) dimensions_list_row(_("Dimension")." 1", 'dimension_id', null, true, " ", false, 1); @@ -121,13 +133,15 @@ amount_row( _("Amount:"), 'amount'); textarea_row(_("Memo:"), "memo_", null, 40, 2); -end_table();; - -submit_center('AddGLCodeToTrans', _("Add GL Line")); - +end_table(); +div_end(); +echo '
'; +submit_center_first('AddGLCodeToTrans', _("Add GL Line"), '', true); +submit_center_last('ClearFields', _('Reset'), _("Clear all GL entry fields"), true); end_form(); //------------------------------------------------------------------------------------------------ +echo '
'; +end_page(false, true); -end_page(); ?> diff --git a/purchasing/view/view_grn.php b/purchasing/view/view_grn.php index 0df3c994..4988358c 100644 --- a/purchasing/view/view_grn.php +++ b/purchasing/view/view_grn.php @@ -9,7 +9,7 @@ page(_("View Purchase Order Delivery"), true); include($path_to_root . "/purchasing/includes/purchasing_ui.inc"); -if (!isset($_GET['trans_no'])) +if (!isset($_GET['trans_no'])) { die ("
" . _("This page must be called with a Purchase Order Delivery number to review.")); } @@ -26,13 +26,13 @@ display_heading2(_("Line Details")); start_table("colspan=9 $table_style width=90%"); $th = array(_("Item Code"), _("Item Description"), _("Delivery Date"), _("Quantity"), _("Unit"), _("Price"), _("Line Total"), _("Quantity Invoiced")); - -table_header($th); + +table_header($th); $total = 0; $k = 0; //row colour counter -foreach ($purchase_order->line_items as $stock_item) +foreach ($purchase_order->line_items as $stock_item) { $line_total = $stock_item->qty_received * $stock_item->price; @@ -42,18 +42,19 @@ foreach ($purchase_order->line_items as $stock_item) label_cell($stock_item->stock_id); label_cell($stock_item->item_description); label_cell($stock_item->req_del_date, "nowrap align=right"); - qty_cell($stock_item->qty_received); + $dec = get_qty_dec($stock_item->stock_id); + qty_cell($stock_item->qty_received, false, $dec); label_cell($stock_item->units); amount_cell($stock_item->price); amount_cell($line_total); - qty_cell($stock_item->qty_inv); + qty_cell($stock_item->qty_inv, false, $dec); end_row(); $total += $line_total; } $display_total = number_format2($total,user_price_dec()); -label_row(_("Total Excluding Tax/Shipping"), $display_total, +label_row(_("Total Excluding Tax/Shipping"), $display_total, "colspan=6", "nowrap align=right"); end_table(1); diff --git a/purchasing/view/view_po.php b/purchasing/view/view_po.php index 878c59af..fe164822 100644 --- a/purchasing/view/view_po.php +++ b/purchasing/view/view_po.php @@ -10,7 +10,7 @@ page(_("View Purchase Order"), true); include($path_to_root . "/purchasing/includes/purchasing_ui.inc"); -if (!isset($_GET['trans_no'])) +if (!isset($_GET['trans_no'])) { die ("
" . _("This page must be called with a purchase order number to review.")); } @@ -41,7 +41,7 @@ table_header($th); $total = $k = 0; $overdue_items = false; -foreach ($purchase_order->line_items as $stock_item) +foreach ($purchase_order->line_items as $stock_item) { $line_total = $stock_item->quantity * $stock_item->price; @@ -52,21 +52,22 @@ foreach ($purchase_order->line_items as $stock_item) { start_row("class='overduebg'"); $overdue_items = true; - } - else + } + else { alt_table_row_color($k); } label_cell($stock_item->stock_id); label_cell($stock_item->item_description); - qty_cell($stock_item->quantity); + $dec = get_qty_dec($stock_item->stock_id); + qty_cell($stock_item->quantity, false, $dec); label_cell($stock_item->units); amount_cell($stock_item->price); amount_cell($line_total); label_cell($stock_item->req_del_date); - qty_cell($stock_item->qty_received); - qty_cell($stock_item->qty_inv); + qty_cell($stock_item->qty_received, false, $dec); + qty_cell($stock_item->qty_inv, false, $dec); end_row(); $total += $line_total; diff --git a/reporting/fonts/Helvetica-Bold.afm b/reporting/fonts/Helvetica-Bold.afm deleted file mode 100644 index 837c594e..00000000 --- a/reporting/fonts/Helvetica-Bold.afm +++ /dev/null @@ -1,2827 +0,0 @@ -StartFontMetrics 4.1 -Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date: Thu May 1 12:43:52 1997 -Comment UniqueID 43052 -Comment VMusage 37169 48194 -FontName Helvetica-Bold -FullName Helvetica Bold -FamilyName Helvetica -Weight Bold -ItalicAngle 0 -IsFixedPitch false -CharacterSet ExtendedRoman -FontBBox -170 -228 1003 962 -UnderlinePosition -100 -UnderlineThickness 50 -Version 002.000 -Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. -EncodingScheme AdobeStandardEncoding -CapHeight 718 -XHeight 532 -Ascender 718 -Descender -207 -StdHW 118 -StdVW 140 -StartCharMetrics 315 -C 32 ; WX 278 ; N space ; B 0 0 0 0 ; -C 33 ; WX 333 ; N exclam ; B 90 0 244 718 ; -C 34 ; WX 474 ; N quotedbl ; B 98 447 376 718 ; -C 35 ; WX 556 ; N numbersign ; B 18 0 538 698 ; -C 36 ; WX 556 ; N dollar ; B 30 -115 523 775 ; -C 37 ; WX 889 ; N percent ; B 28 -19 861 710 ; -C 38 ; WX 722 ; N ampersand ; B 54 -19 701 718 ; -C 39 ; WX 278 ; N quoteright ; B 69 445 209 718 ; -C 40 ; WX 333 ; N parenleft ; B 35 -208 314 734 ; -C 41 ; WX 333 ; N parenright ; B 19 -208 298 734 ; -C 42 ; WX 389 ; N asterisk ; B 27 387 362 718 ; -C 43 ; WX 584 ; N plus ; B 40 0 544 506 ; -C 44 ; WX 278 ; N comma ; B 64 -168 214 146 ; -C 45 ; WX 333 ; N hyphen ; B 27 215 306 345 ; -C 46 ; WX 278 ; N period ; B 64 0 214 146 ; -C 47 ; WX 278 ; N slash ; B -33 -19 311 737 ; -C 48 ; WX 556 ; N zero ; B 32 -19 524 710 ; -C 49 ; WX 556 ; N one ; B 69 0 378 710 ; -C 50 ; WX 556 ; N two ; B 26 0 511 710 ; -C 51 ; WX 556 ; N three ; B 27 -19 516 710 ; -C 52 ; WX 556 ; N four ; B 27 0 526 710 ; -C 53 ; WX 556 ; N five ; B 27 -19 516 698 ; -C 54 ; WX 556 ; N six ; B 31 -19 520 710 ; -C 55 ; WX 556 ; N seven ; B 25 0 528 698 ; -C 56 ; WX 556 ; N eight ; B 32 -19 524 710 ; -C 57 ; WX 556 ; N nine ; B 30 -19 522 710 ; -C 58 ; WX 333 ; N colon ; B 92 0 242 512 ; -C 59 ; WX 333 ; N semicolon ; B 92 -168 242 512 ; -C 60 ; WX 584 ; N less ; B 38 -8 546 514 ; -C 61 ; WX 584 ; N equal ; B 40 87 544 419 ; -C 62 ; WX 584 ; N greater ; B 38 -8 546 514 ; -C 63 ; WX 611 ; N question ; B 60 0 556 727 ; -C 64 ; WX 975 ; N at ; B 118 -19 856 737 ; -C 65 ; WX 722 ; N A ; B 20 0 702 718 ; -C 66 ; WX 722 ; N B ; B 76 0 669 718 ; -C 67 ; WX 722 ; N C ; B 44 -19 684 737 ; -C 68 ; WX 722 ; N D ; B 76 0 685 718 ; -C 69 ; WX 667 ; N E ; B 76 0 621 718 ; -C 70 ; WX 611 ; N F ; B 76 0 587 718 ; -C 71 ; WX 778 ; N G ; B 44 -19 713 737 ; -C 72 ; WX 722 ; N H ; B 71 0 651 718 ; -C 73 ; WX 278 ; N I ; B 64 0 214 718 ; -C 74 ; WX 556 ; N J ; B 22 -18 484 718 ; -C 75 ; WX 722 ; N K ; B 87 0 722 718 ; -C 76 ; WX 611 ; N L ; B 76 0 583 718 ; -C 77 ; WX 833 ; N M ; B 69 0 765 718 ; -C 78 ; WX 722 ; N N ; B 69 0 654 718 ; -C 79 ; WX 778 ; N O ; B 44 -19 734 737 ; -C 80 ; WX 667 ; N P ; B 76 0 627 718 ; -C 81 ; WX 778 ; N Q ; B 44 -52 737 737 ; -C 82 ; WX 722 ; N R ; B 76 0 677 718 ; -C 83 ; WX 667 ; N S ; B 39 -19 629 737 ; -C 84 ; WX 611 ; N T ; B 14 0 598 718 ; -C 85 ; WX 722 ; N U ; B 72 -19 651 718 ; -C 86 ; WX 667 ; N V ; B 19 0 648 718 ; -C 87 ; WX 944 ; N W ; B 16 0 929 718 ; -C 88 ; WX 667 ; N X ; B 14 0 653 718 ; -C 89 ; WX 667 ; N Y ; B 15 0 653 718 ; -C 90 ; WX 611 ; N Z ; B 25 0 586 718 ; -C 91 ; WX 333 ; N bracketleft ; B 63 -196 309 722 ; -C 92 ; WX 278 ; N backslash ; B -33 -19 311 737 ; -C 93 ; WX 333 ; N bracketright ; B 24 -196 270 722 ; -C 94 ; WX 584 ; N asciicircum ; B 62 323 522 698 ; -C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; -C 96 ; WX 278 ; N quoteleft ; B 69 454 209 727 ; -C 97 ; WX 556 ; N a ; B 29 -14 527 546 ; -C 98 ; WX 611 ; N b ; B 61 -14 578 718 ; -C 99 ; WX 556 ; N c ; B 34 -14 524 546 ; -C 100 ; WX 611 ; N d ; B 34 -14 551 718 ; -C 101 ; WX 556 ; N e ; B 23 -14 528 546 ; -C 102 ; WX 333 ; N f ; B 10 0 318 727 ; L i fi ; L l fl ; -C 103 ; WX 611 ; N g ; B 40 -217 553 546 ; -C 104 ; WX 611 ; N h ; B 65 0 546 718 ; -C 105 ; WX 278 ; N i ; B 69 0 209 725 ; -C 106 ; WX 278 ; N j ; B 3 -214 209 725 ; -C 107 ; WX 556 ; N k ; B 69 0 562 718 ; -C 108 ; WX 278 ; N l ; B 69 0 209 718 ; -C 109 ; WX 889 ; N m ; B 64 0 826 546 ; -C 110 ; WX 611 ; N n ; B 65 0 546 546 ; -C 111 ; WX 611 ; N o ; B 34 -14 578 546 ; -C 112 ; WX 611 ; N p ; B 62 -207 578 546 ; -C 113 ; WX 611 ; N q ; B 34 -207 552 546 ; -C 114 ; WX 389 ; N r ; B 64 0 373 546 ; -C 115 ; WX 556 ; N s ; B 30 -14 519 546 ; -C 116 ; WX 333 ; N t ; B 10 -6 309 676 ; -C 117 ; WX 611 ; N u ; B 66 -14 545 532 ; -C 118 ; WX 556 ; N v ; B 13 0 543 532 ; -C 119 ; WX 778 ; N w ; B 10 0 769 532 ; -C 120 ; WX 556 ; N x ; B 15 0 541 532 ; -C 121 ; WX 556 ; N y ; B 10 -214 539 532 ; -C 122 ; WX 500 ; N z ; B 20 0 480 532 ; -C 123 ; WX 389 ; N braceleft ; B 48 -196 365 722 ; -C 124 ; WX 280 ; N bar ; B 84 -225 196 775 ; -C 125 ; WX 389 ; N braceright ; B 24 -196 341 722 ; -C 126 ; WX 584 ; N asciitilde ; B 61 163 523 343 ; -C 161 ; WX 333 ; N exclamdown ; B 90 -186 244 532 ; -C 162 ; WX 556 ; N cent ; B 34 -118 524 628 ; -C 163 ; WX 556 ; N sterling ; B 28 -16 541 718 ; -C 164 ; WX 167 ; N fraction ; B -170 -19 336 710 ; -C 165 ; WX 556 ; N yen ; B -9 0 565 698 ; -C 166 ; WX 556 ; N florin ; B -10 -210 516 737 ; -C 167 ; WX 556 ; N section ; B 34 -184 522 727 ; -C 168 ; WX 556 ; N currency ; B -3 76 559 636 ; -C 169 ; WX 238 ; N quotesingle ; B 70 447 168 718 ; -C 170 ; WX 500 ; N quotedblleft ; B 64 454 436 727 ; -C 171 ; WX 556 ; N guillemotleft ; B 88 76 468 484 ; -C 172 ; WX 333 ; N guilsinglleft ; B 83 76 250 484 ; -C 173 ; WX 333 ; N guilsinglright ; B 83 76 250 484 ; -C 174 ; WX 611 ; N fi ; B 10 0 542 727 ; -C 175 ; WX 611 ; N fl ; B 10 0 542 727 ; -C 177 ; WX 556 ; N endash ; B 0 227 556 333 ; -C 178 ; WX 556 ; N dagger ; B 36 -171 520 718 ; -C 179 ; WX 556 ; N daggerdbl ; B 36 -171 520 718 ; -C 180 ; WX 278 ; N periodcentered ; B 58 172 220 334 ; -C 182 ; WX 556 ; N paragraph ; B -8 -191 539 700 ; -C 183 ; WX 350 ; N bullet ; B 10 194 340 524 ; -C 184 ; WX 278 ; N quotesinglbase ; B 69 -146 209 127 ; -C 185 ; WX 500 ; N quotedblbase ; B 64 -146 436 127 ; -C 186 ; WX 500 ; N quotedblright ; B 64 445 436 718 ; -C 187 ; WX 556 ; N guillemotright ; B 88 76 468 484 ; -C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; -C 189 ; WX 1000 ; N perthousand ; B -3 -19 1003 710 ; -C 191 ; WX 611 ; N questiondown ; B 55 -195 551 532 ; -C 193 ; WX 333 ; N grave ; B -23 604 225 750 ; -C 194 ; WX 333 ; N acute ; B 108 604 356 750 ; -C 195 ; WX 333 ; N circumflex ; B -10 604 343 750 ; -C 196 ; WX 333 ; N tilde ; B -17 610 350 737 ; -C 197 ; WX 333 ; N macron ; B -6 604 339 678 ; -C 198 ; WX 333 ; N breve ; B -2 604 335 750 ; -C 199 ; WX 333 ; N dotaccent ; B 104 614 230 729 ; -C 200 ; WX 333 ; N dieresis ; B 6 614 327 729 ; -C 202 ; WX 333 ; N ring ; B 59 568 275 776 ; -C 203 ; WX 333 ; N cedilla ; B 6 -228 245 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B 9 604 486 750 ; -C 206 ; WX 333 ; N ogonek ; B 71 -228 304 0 ; -C 207 ; WX 333 ; N caron ; B -10 604 343 750 ; -C 208 ; WX 1000 ; N emdash ; B 0 227 1000 333 ; -C 225 ; WX 1000 ; N AE ; B 5 0 954 718 ; -C 227 ; WX 370 ; N ordfeminine ; B 22 401 347 737 ; -C 232 ; WX 611 ; N Lslash ; B -20 0 583 718 ; -C 233 ; WX 778 ; N Oslash ; B 33 -27 744 745 ; -C 234 ; WX 1000 ; N OE ; B 37 -19 961 737 ; -C 235 ; WX 365 ; N ordmasculine ; B 6 401 360 737 ; -C 241 ; WX 889 ; N ae ; B 29 -14 858 546 ; -C 245 ; WX 278 ; N dotlessi ; B 69 0 209 532 ; -C 248 ; WX 278 ; N lslash ; B -18 0 296 718 ; -C 249 ; WX 611 ; N oslash ; B 22 -29 589 560 ; -C 250 ; WX 944 ; N oe ; B 34 -14 912 546 ; -C 251 ; WX 611 ; N germandbls ; B 69 -14 579 731 ; -C -1 ; WX 278 ; N Idieresis ; B -21 0 300 915 ; -C -1 ; WX 556 ; N eacute ; B 23 -14 528 750 ; -C -1 ; WX 556 ; N abreve ; B 29 -14 527 750 ; -C -1 ; WX 611 ; N uhungarumlaut ; B 66 -14 625 750 ; -C -1 ; WX 556 ; N ecaron ; B 23 -14 528 750 ; -C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ; -C -1 ; WX 584 ; N divide ; B 40 -42 544 548 ; -C -1 ; WX 667 ; N Yacute ; B 15 0 653 936 ; -C -1 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ; -C -1 ; WX 556 ; N aacute ; B 29 -14 527 750 ; -C -1 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ; -C -1 ; WX 556 ; N yacute ; B 10 -214 539 750 ; -C -1 ; WX 556 ; N scommaaccent ; B 30 -228 519 546 ; -C -1 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ; -C -1 ; WX 722 ; N Uring ; B 72 -19 651 962 ; -C -1 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ; -C -1 ; WX 556 ; N aogonek ; B 29 -224 545 546 ; -C -1 ; WX 722 ; N Uacute ; B 72 -19 651 936 ; -C -1 ; WX 611 ; N uogonek ; B 66 -228 545 532 ; -C -1 ; WX 667 ; N Edieresis ; B 76 0 621 915 ; -C -1 ; WX 722 ; N Dcroat ; B -5 0 685 718 ; -C -1 ; WX 250 ; N commaaccent ; B 64 -228 199 -50 ; -C -1 ; WX 737 ; N copyright ; B -11 -19 749 737 ; -C -1 ; WX 667 ; N Emacron ; B 76 0 621 864 ; -C -1 ; WX 556 ; N ccaron ; B 34 -14 524 750 ; -C -1 ; WX 556 ; N aring ; B 29 -14 527 776 ; -C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 654 718 ; -C -1 ; WX 278 ; N lacute ; B 69 0 329 936 ; -C -1 ; WX 556 ; N agrave ; B 29 -14 527 750 ; -C -1 ; WX 611 ; N Tcommaaccent ; B 14 -228 598 718 ; -C -1 ; WX 722 ; N Cacute ; B 44 -19 684 936 ; -C -1 ; WX 556 ; N atilde ; B 29 -14 527 737 ; -C -1 ; WX 667 ; N Edotaccent ; B 76 0 621 915 ; -C -1 ; WX 556 ; N scaron ; B 30 -14 519 750 ; -C -1 ; WX 556 ; N scedilla ; B 30 -228 519 546 ; -C -1 ; WX 278 ; N iacute ; B 69 0 329 750 ; -C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; -C -1 ; WX 722 ; N Rcaron ; B 76 0 677 936 ; -C -1 ; WX 778 ; N Gcommaaccent ; B 44 -228 713 737 ; -C -1 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ; -C -1 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ; -C -1 ; WX 722 ; N Amacron ; B 20 0 702 864 ; -C -1 ; WX 389 ; N rcaron ; B 18 0 373 750 ; -C -1 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ; -C -1 ; WX 611 ; N Zdotaccent ; B 25 0 586 915 ; -C -1 ; WX 667 ; N Thorn ; B 76 0 627 718 ; -C -1 ; WX 778 ; N Omacron ; B 44 -19 734 864 ; -C -1 ; WX 722 ; N Racute ; B 76 0 677 936 ; -C -1 ; WX 667 ; N Sacute ; B 39 -19 629 936 ; -C -1 ; WX 743 ; N dcaron ; B 34 -14 750 718 ; -C -1 ; WX 722 ; N Umacron ; B 72 -19 651 864 ; -C -1 ; WX 611 ; N uring ; B 66 -14 545 776 ; -C -1 ; WX 333 ; N threesuperior ; B 8 271 326 710 ; -C -1 ; WX 778 ; N Ograve ; B 44 -19 734 936 ; -C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; -C -1 ; WX 722 ; N Abreve ; B 20 0 702 936 ; -C -1 ; WX 584 ; N multiply ; B 40 1 545 505 ; -C -1 ; WX 611 ; N uacute ; B 66 -14 545 750 ; -C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ; -C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; -C -1 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ; -C -1 ; WX 722 ; N Nacute ; B 69 0 654 936 ; -C -1 ; WX 278 ; N icircumflex ; B -37 0 316 750 ; -C -1 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ; -C -1 ; WX 556 ; N adieresis ; B 29 -14 527 729 ; -C -1 ; WX 556 ; N edieresis ; B 23 -14 528 729 ; -C -1 ; WX 556 ; N cacute ; B 34 -14 524 750 ; -C -1 ; WX 611 ; N nacute ; B 65 0 546 750 ; -C -1 ; WX 611 ; N umacron ; B 66 -14 545 678 ; -C -1 ; WX 722 ; N Ncaron ; B 69 0 654 936 ; -C -1 ; WX 278 ; N Iacute ; B 64 0 329 936 ; -C -1 ; WX 584 ; N plusminus ; B 40 0 544 506 ; -C -1 ; WX 280 ; N brokenbar ; B 84 -150 196 700 ; -C -1 ; WX 737 ; N registered ; B -11 -19 748 737 ; -C -1 ; WX 778 ; N Gbreve ; B 44 -19 713 936 ; -C -1 ; WX 278 ; N Idotaccent ; B 64 0 214 915 ; -C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; -C -1 ; WX 667 ; N Egrave ; B 76 0 621 936 ; -C -1 ; WX 389 ; N racute ; B 64 0 384 750 ; -C -1 ; WX 611 ; N omacron ; B 34 -14 578 678 ; -C -1 ; WX 611 ; N Zacute ; B 25 0 586 936 ; -C -1 ; WX 611 ; N Zcaron ; B 25 0 586 936 ; -C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; -C -1 ; WX 722 ; N Eth ; B -5 0 685 718 ; -C -1 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ; -C -1 ; WX 278 ; N lcommaaccent ; B 69 -228 213 718 ; -C -1 ; WX 389 ; N tcaron ; B 10 -6 421 878 ; -C -1 ; WX 556 ; N eogonek ; B 23 -228 528 546 ; -C -1 ; WX 722 ; N Uogonek ; B 72 -228 651 718 ; -C -1 ; WX 722 ; N Aacute ; B 20 0 702 936 ; -C -1 ; WX 722 ; N Adieresis ; B 20 0 702 915 ; -C -1 ; WX 556 ; N egrave ; B 23 -14 528 750 ; -C -1 ; WX 500 ; N zacute ; B 20 0 480 750 ; -C -1 ; WX 278 ; N iogonek ; B 16 -224 249 725 ; -C -1 ; WX 778 ; N Oacute ; B 44 -19 734 936 ; -C -1 ; WX 611 ; N oacute ; B 34 -14 578 750 ; -C -1 ; WX 556 ; N amacron ; B 29 -14 527 678 ; -C -1 ; WX 556 ; N sacute ; B 30 -14 519 750 ; -C -1 ; WX 278 ; N idieresis ; B -21 0 300 729 ; -C -1 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ; -C -1 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ; -C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; -C -1 ; WX 611 ; N thorn ; B 62 -208 578 718 ; -C -1 ; WX 333 ; N twosuperior ; B 9 283 324 710 ; -C -1 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ; -C -1 ; WX 611 ; N mu ; B 66 -207 545 532 ; -C -1 ; WX 278 ; N igrave ; B -50 0 209 750 ; -C -1 ; WX 611 ; N ohungarumlaut ; B 34 -14 625 750 ; -C -1 ; WX 667 ; N Eogonek ; B 76 -224 639 718 ; -C -1 ; WX 611 ; N dcroat ; B 34 -14 650 718 ; -C -1 ; WX 834 ; N threequarters ; B 16 -19 799 710 ; -C -1 ; WX 667 ; N Scedilla ; B 39 -228 629 737 ; -C -1 ; WX 400 ; N lcaron ; B 69 0 408 718 ; -C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 722 718 ; -C -1 ; WX 611 ; N Lacute ; B 76 0 583 936 ; -C -1 ; WX 1000 ; N trademark ; B 44 306 956 718 ; -C -1 ; WX 556 ; N edotaccent ; B 23 -14 528 729 ; -C -1 ; WX 278 ; N Igrave ; B -50 0 214 936 ; -C -1 ; WX 278 ; N Imacron ; B -33 0 312 864 ; -C -1 ; WX 611 ; N Lcaron ; B 76 0 583 718 ; -C -1 ; WX 834 ; N onehalf ; B 26 -19 794 710 ; -C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; -C -1 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ; -C -1 ; WX 611 ; N ntilde ; B 65 0 546 737 ; -C -1 ; WX 722 ; N Uhungarumlaut ; B 72 -19 681 936 ; -C -1 ; WX 667 ; N Eacute ; B 76 0 621 936 ; -C -1 ; WX 556 ; N emacron ; B 23 -14 528 678 ; -C -1 ; WX 611 ; N gbreve ; B 40 -217 553 750 ; -C -1 ; WX 834 ; N onequarter ; B 26 -19 766 710 ; -C -1 ; WX 667 ; N Scaron ; B 39 -19 629 936 ; -C -1 ; WX 667 ; N Scommaaccent ; B 39 -228 629 737 ; -C -1 ; WX 778 ; N Ohungarumlaut ; B 44 -19 734 936 ; -C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; -C -1 ; WX 611 ; N ograve ; B 34 -14 578 750 ; -C -1 ; WX 722 ; N Ccaron ; B 44 -19 684 936 ; -C -1 ; WX 611 ; N ugrave ; B 66 -14 545 750 ; -C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; -C -1 ; WX 722 ; N Dcaron ; B 76 0 685 936 ; -C -1 ; WX 389 ; N rcommaaccent ; B 64 -228 373 546 ; -C -1 ; WX 722 ; N Ntilde ; B 69 0 654 923 ; -C -1 ; WX 611 ; N otilde ; B 34 -14 578 737 ; -C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 677 718 ; -C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 583 718 ; -C -1 ; WX 722 ; N Atilde ; B 20 0 702 923 ; -C -1 ; WX 722 ; N Aogonek ; B 20 -224 742 718 ; -C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; -C -1 ; WX 778 ; N Otilde ; B 44 -19 734 923 ; -C -1 ; WX 500 ; N zdotaccent ; B 20 0 480 729 ; -C -1 ; WX 667 ; N Ecaron ; B 76 0 621 936 ; -C -1 ; WX 278 ; N Iogonek ; B -11 -228 222 718 ; -C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 562 718 ; -C -1 ; WX 584 ; N minus ; B 40 197 544 309 ; -C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ; -C -1 ; WX 611 ; N ncaron ; B 65 0 546 750 ; -C -1 ; WX 333 ; N tcommaaccent ; B 10 -228 309 676 ; -C -1 ; WX 584 ; N logicalnot ; B 40 108 544 419 ; -C -1 ; WX 611 ; N odieresis ; B 34 -14 578 729 ; -C -1 ; WX 611 ; N udieresis ; B 66 -14 545 729 ; -C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; -C -1 ; WX 611 ; N gcommaaccent ; B 40 -217 553 850 ; -C -1 ; WX 611 ; N eth ; B 34 -14 578 737 ; -C -1 ; WX 500 ; N zcaron ; B 20 0 480 750 ; -C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 546 546 ; -C -1 ; WX 333 ; N onesuperior ; B 26 283 237 710 ; -C -1 ; WX 278 ; N imacron ; B -8 0 285 678 ; -C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; -EndCharMetrics -StartKernData -StartKernPairs 2481 -KPX A C -40 -KPX A Cacute -40 -KPX A Ccaron -40 -KPX A Ccedilla -40 -KPX A G -50 -KPX A Gbreve -50 -KPX A Gcommaaccent -50 -KPX A O -40 -KPX A Oacute -40 -KPX A Ocircumflex -40 -KPX A Odieresis -40 -KPX A Ograve -40 -KPX A Ohungarumlaut -40 -KPX A Omacron -40 -KPX A Oslash -40 -KPX A Otilde -40 -KPX A Q -40 -KPX A T -90 -KPX A Tcaron -90 -KPX A Tcommaaccent -90 -KPX A U -50 -KPX A Uacute -50 -KPX A Ucircumflex -50 -KPX A Udieresis -50 -KPX A Ugrave -50 -KPX A Uhungarumlaut -50 -KPX A Umacron -50 -KPX A Uogonek -50 -KPX A Uring -50 -KPX A V -80 -KPX A W -60 -KPX A Y -110 -KPX A Yacute -110 -KPX A Ydieresis -110 -KPX A u -30 -KPX A uacute -30 -KPX A ucircumflex -30 -KPX A udieresis -30 -KPX A ugrave -30 -KPX A uhungarumlaut -30 -KPX A umacron -30 -KPX A uogonek -30 -KPX A uring -30 -KPX A v -40 -KPX A w -30 -KPX A y -30 -KPX A yacute -30 -KPX A ydieresis -30 -KPX Aacute C -40 -KPX Aacute Cacute -40 -KPX Aacute Ccaron -40 -KPX Aacute Ccedilla -40 -KPX Aacute G -50 -KPX Aacute Gbreve -50 -KPX Aacute Gcommaaccent -50 -KPX Aacute O -40 -KPX Aacute Oacute -40 -KPX Aacute Ocircumflex -40 -KPX Aacute Odieresis -40 -KPX Aacute Ograve -40 -KPX Aacute Ohungarumlaut -40 -KPX Aacute Omacron -40 -KPX Aacute Oslash -40 -KPX Aacute Otilde -40 -KPX Aacute Q -40 -KPX Aacute T -90 -KPX Aacute Tcaron -90 -KPX Aacute Tcommaaccent -90 -KPX Aacute U -50 -KPX Aacute Uacute -50 -KPX Aacute Ucircumflex -50 -KPX Aacute Udieresis -50 -KPX Aacute Ugrave -50 -KPX Aacute Uhungarumlaut -50 -KPX Aacute Umacron -50 -KPX Aacute Uogonek -50 -KPX Aacute Uring -50 -KPX Aacute V -80 -KPX Aacute W -60 -KPX Aacute Y -110 -KPX Aacute Yacute -110 -KPX Aacute Ydieresis -110 -KPX Aacute u -30 -KPX Aacute uacute -30 -KPX Aacute ucircumflex -30 -KPX Aacute udieresis -30 -KPX Aacute ugrave -30 -KPX Aacute uhungarumlaut -30 -KPX Aacute umacron -30 -KPX Aacute uogonek -30 -KPX Aacute uring -30 -KPX Aacute v -40 -KPX Aacute w -30 -KPX Aacute y -30 -KPX Aacute yacute -30 -KPX Aacute ydieresis -30 -KPX Abreve C -40 -KPX Abreve Cacute -40 -KPX Abreve Ccaron -40 -KPX Abreve Ccedilla -40 -KPX Abreve G -50 -KPX Abreve Gbreve -50 -KPX Abreve Gcommaaccent -50 -KPX Abreve O -40 -KPX Abreve Oacute -40 -KPX Abreve Ocircumflex -40 -KPX Abreve Odieresis -40 -KPX Abreve Ograve -40 -KPX Abreve Ohungarumlaut -40 -KPX Abreve Omacron -40 -KPX Abreve Oslash -40 -KPX Abreve Otilde -40 -KPX Abreve Q -40 -KPX Abreve T -90 -KPX Abreve Tcaron -90 -KPX Abreve Tcommaaccent -90 -KPX Abreve U -50 -KPX Abreve Uacute -50 -KPX Abreve Ucircumflex -50 -KPX Abreve Udieresis -50 -KPX Abreve Ugrave -50 -KPX Abreve Uhungarumlaut -50 -KPX Abreve Umacron -50 -KPX Abreve Uogonek -50 -KPX Abreve Uring -50 -KPX Abreve V -80 -KPX Abreve W -60 -KPX Abreve Y -110 -KPX Abreve Yacute -110 -KPX Abreve Ydieresis -110 -KPX Abreve u -30 -KPX Abreve uacute -30 -KPX Abreve ucircumflex -30 -KPX Abreve udieresis -30 -KPX Abreve ugrave -30 -KPX Abreve uhungarumlaut -30 -KPX Abreve umacron -30 -KPX Abreve uogonek -30 -KPX Abreve uring -30 -KPX Abreve v -40 -KPX Abreve w -30 -KPX Abreve y -30 -KPX Abreve yacute -30 -KPX Abreve ydieresis -30 -KPX Acircumflex C -40 -KPX Acircumflex Cacute -40 -KPX Acircumflex Ccaron -40 -KPX Acircumflex Ccedilla -40 -KPX Acircumflex G -50 -KPX Acircumflex Gbreve -50 -KPX Acircumflex Gcommaaccent -50 -KPX Acircumflex O -40 -KPX Acircumflex Oacute -40 -KPX Acircumflex Ocircumflex -40 -KPX Acircumflex Odieresis -40 -KPX Acircumflex Ograve -40 -KPX Acircumflex Ohungarumlaut -40 -KPX Acircumflex Omacron -40 -KPX Acircumflex Oslash -40 -KPX Acircumflex Otilde -40 -KPX Acircumflex Q -40 -KPX Acircumflex T -90 -KPX Acircumflex Tcaron -90 -KPX Acircumflex Tcommaaccent -90 -KPX Acircumflex U -50 -KPX Acircumflex Uacute -50 -KPX Acircumflex Ucircumflex -50 -KPX Acircumflex Udieresis -50 -KPX Acircumflex Ugrave -50 -KPX Acircumflex Uhungarumlaut -50 -KPX Acircumflex Umacron -50 -KPX Acircumflex Uogonek -50 -KPX Acircumflex Uring -50 -KPX Acircumflex V -80 -KPX Acircumflex W -60 -KPX Acircumflex Y -110 -KPX Acircumflex Yacute -110 -KPX Acircumflex Ydieresis -110 -KPX Acircumflex u -30 -KPX Acircumflex uacute -30 -KPX Acircumflex ucircumflex -30 -KPX Acircumflex udieresis -30 -KPX Acircumflex ugrave -30 -KPX Acircumflex uhungarumlaut -30 -KPX Acircumflex umacron -30 -KPX Acircumflex uogonek -30 -KPX Acircumflex uring -30 -KPX Acircumflex v -40 -KPX Acircumflex w -30 -KPX Acircumflex y -30 -KPX Acircumflex yacute -30 -KPX Acircumflex ydieresis -30 -KPX Adieresis C -40 -KPX Adieresis Cacute -40 -KPX Adieresis Ccaron -40 -KPX Adieresis Ccedilla -40 -KPX Adieresis G -50 -KPX Adieresis Gbreve -50 -KPX Adieresis Gcommaaccent -50 -KPX Adieresis O -40 -KPX Adieresis Oacute -40 -KPX Adieresis Ocircumflex -40 -KPX Adieresis Odieresis -40 -KPX Adieresis Ograve -40 -KPX Adieresis Ohungarumlaut -40 -KPX Adieresis Omacron -40 -KPX Adieresis Oslash -40 -KPX Adieresis Otilde -40 -KPX Adieresis Q -40 -KPX Adieresis T -90 -KPX Adieresis Tcaron -90 -KPX Adieresis Tcommaaccent -90 -KPX Adieresis U -50 -KPX Adieresis Uacute -50 -KPX Adieresis Ucircumflex -50 -KPX Adieresis Udieresis -50 -KPX Adieresis Ugrave -50 -KPX Adieresis Uhungarumlaut -50 -KPX Adieresis Umacron -50 -KPX Adieresis Uogonek -50 -KPX Adieresis Uring -50 -KPX Adieresis V -80 -KPX Adieresis W -60 -KPX Adieresis Y -110 -KPX Adieresis Yacute -110 -KPX Adieresis Ydieresis -110 -KPX Adieresis u -30 -KPX Adieresis uacute -30 -KPX Adieresis ucircumflex -30 -KPX Adieresis udieresis -30 -KPX Adieresis ugrave -30 -KPX Adieresis uhungarumlaut -30 -KPX Adieresis umacron -30 -KPX Adieresis uogonek -30 -KPX Adieresis uring -30 -KPX Adieresis v -40 -KPX Adieresis w -30 -KPX Adieresis y -30 -KPX Adieresis yacute -30 -KPX Adieresis ydieresis -30 -KPX Agrave C -40 -KPX Agrave Cacute -40 -KPX Agrave Ccaron -40 -KPX Agrave Ccedilla -40 -KPX Agrave G -50 -KPX Agrave Gbreve -50 -KPX Agrave Gcommaaccent -50 -KPX Agrave O -40 -KPX Agrave Oacute -40 -KPX Agrave Ocircumflex -40 -KPX Agrave Odieresis -40 -KPX Agrave Ograve -40 -KPX Agrave Ohungarumlaut -40 -KPX Agrave Omacron -40 -KPX Agrave Oslash -40 -KPX Agrave Otilde -40 -KPX Agrave Q -40 -KPX Agrave T -90 -KPX Agrave Tcaron -90 -KPX Agrave Tcommaaccent -90 -KPX Agrave U -50 -KPX Agrave Uacute -50 -KPX Agrave Ucircumflex -50 -KPX Agrave Udieresis -50 -KPX Agrave Ugrave -50 -KPX Agrave Uhungarumlaut -50 -KPX Agrave Umacron -50 -KPX Agrave Uogonek -50 -KPX Agrave Uring -50 -KPX Agrave V -80 -KPX Agrave W -60 -KPX Agrave Y -110 -KPX Agrave Yacute -110 -KPX Agrave Ydieresis -110 -KPX Agrave u -30 -KPX Agrave uacute -30 -KPX Agrave ucircumflex -30 -KPX Agrave udieresis -30 -KPX Agrave ugrave -30 -KPX Agrave uhungarumlaut -30 -KPX Agrave umacron -30 -KPX Agrave uogonek -30 -KPX Agrave uring -30 -KPX Agrave v -40 -KPX Agrave w -30 -KPX Agrave y -30 -KPX Agrave yacute -30 -KPX Agrave ydieresis -30 -KPX Amacron C -40 -KPX Amacron Cacute -40 -KPX Amacron Ccaron -40 -KPX Amacron Ccedilla -40 -KPX Amacron G -50 -KPX Amacron Gbreve -50 -KPX Amacron Gcommaaccent -50 -KPX Amacron O -40 -KPX Amacron Oacute -40 -KPX Amacron Ocircumflex -40 -KPX Amacron Odieresis -40 -KPX Amacron Ograve -40 -KPX Amacron Ohungarumlaut -40 -KPX Amacron Omacron -40 -KPX Amacron Oslash -40 -KPX Amacron Otilde -40 -KPX Amacron Q -40 -KPX Amacron T -90 -KPX Amacron Tcaron -90 -KPX Amacron Tcommaaccent -90 -KPX Amacron U -50 -KPX Amacron Uacute -50 -KPX Amacron Ucircumflex -50 -KPX Amacron Udieresis -50 -KPX Amacron Ugrave -50 -KPX Amacron Uhungarumlaut -50 -KPX Amacron Umacron -50 -KPX Amacron Uogonek -50 -KPX Amacron Uring -50 -KPX Amacron V -80 -KPX Amacron W -60 -KPX Amacron Y -110 -KPX Amacron Yacute -110 -KPX Amacron Ydieresis -110 -KPX Amacron u -30 -KPX Amacron uacute -30 -KPX Amacron ucircumflex -30 -KPX Amacron udieresis -30 -KPX Amacron ugrave -30 -KPX Amacron uhungarumlaut -30 -KPX Amacron umacron -30 -KPX Amacron uogonek -30 -KPX Amacron uring -30 -KPX Amacron v -40 -KPX Amacron w -30 -KPX Amacron y -30 -KPX Amacron yacute -30 -KPX Amacron ydieresis -30 -KPX Aogonek C -40 -KPX Aogonek Cacute -40 -KPX Aogonek Ccaron -40 -KPX Aogonek Ccedilla -40 -KPX Aogonek G -50 -KPX Aogonek Gbreve -50 -KPX Aogonek Gcommaaccent -50 -KPX Aogonek O -40 -KPX Aogonek Oacute -40 -KPX Aogonek Ocircumflex -40 -KPX Aogonek Odieresis -40 -KPX Aogonek Ograve -40 -KPX Aogonek Ohungarumlaut -40 -KPX Aogonek Omacron -40 -KPX Aogonek Oslash -40 -KPX Aogonek Otilde -40 -KPX Aogonek Q -40 -KPX Aogonek T -90 -KPX Aogonek Tcaron -90 -KPX Aogonek Tcommaaccent -90 -KPX Aogonek U -50 -KPX Aogonek Uacute -50 -KPX Aogonek Ucircumflex -50 -KPX Aogonek Udieresis -50 -KPX Aogonek Ugrave -50 -KPX Aogonek Uhungarumlaut -50 -KPX Aogonek Umacron -50 -KPX Aogonek Uogonek -50 -KPX Aogonek Uring -50 -KPX Aogonek V -80 -KPX Aogonek W -60 -KPX Aogonek Y -110 -KPX Aogonek Yacute -110 -KPX Aogonek Ydieresis -110 -KPX Aogonek u -30 -KPX Aogonek uacute -30 -KPX Aogonek ucircumflex -30 -KPX Aogonek udieresis -30 -KPX Aogonek ugrave -30 -KPX Aogonek uhungarumlaut -30 -KPX Aogonek umacron -30 -KPX Aogonek uogonek -30 -KPX Aogonek uring -30 -KPX Aogonek v -40 -KPX Aogonek w -30 -KPX Aogonek y -30 -KPX Aogonek yacute -30 -KPX Aogonek ydieresis -30 -KPX Aring C -40 -KPX Aring Cacute -40 -KPX Aring Ccaron -40 -KPX Aring Ccedilla -40 -KPX Aring G -50 -KPX Aring Gbreve -50 -KPX Aring Gcommaaccent -50 -KPX Aring O -40 -KPX Aring Oacute -40 -KPX Aring Ocircumflex -40 -KPX Aring Odieresis -40 -KPX Aring Ograve -40 -KPX Aring Ohungarumlaut -40 -KPX Aring Omacron -40 -KPX Aring Oslash -40 -KPX Aring Otilde -40 -KPX Aring Q -40 -KPX Aring T -90 -KPX Aring Tcaron -90 -KPX Aring Tcommaaccent -90 -KPX Aring U -50 -KPX Aring Uacute -50 -KPX Aring Ucircumflex -50 -KPX Aring Udieresis -50 -KPX Aring Ugrave -50 -KPX Aring Uhungarumlaut -50 -KPX Aring Umacron -50 -KPX Aring Uogonek -50 -KPX Aring Uring -50 -KPX Aring V -80 -KPX Aring W -60 -KPX Aring Y -110 -KPX Aring Yacute -110 -KPX Aring Ydieresis -110 -KPX Aring u -30 -KPX Aring uacute -30 -KPX Aring ucircumflex -30 -KPX Aring udieresis -30 -KPX Aring ugrave -30 -KPX Aring uhungarumlaut -30 -KPX Aring umacron -30 -KPX Aring uogonek -30 -KPX Aring uring -30 -KPX Aring v -40 -KPX Aring w -30 -KPX Aring y -30 -KPX Aring yacute -30 -KPX Aring ydieresis -30 -KPX Atilde C -40 -KPX Atilde Cacute -40 -KPX Atilde Ccaron -40 -KPX Atilde Ccedilla -40 -KPX Atilde G -50 -KPX Atilde Gbreve -50 -KPX Atilde Gcommaaccent -50 -KPX Atilde O -40 -KPX Atilde Oacute -40 -KPX Atilde Ocircumflex -40 -KPX Atilde Odieresis -40 -KPX Atilde Ograve -40 -KPX Atilde Ohungarumlaut -40 -KPX Atilde Omacron -40 -KPX Atilde Oslash -40 -KPX Atilde Otilde -40 -KPX Atilde Q -40 -KPX Atilde T -90 -KPX Atilde Tcaron -90 -KPX Atilde Tcommaaccent -90 -KPX Atilde U -50 -KPX Atilde Uacute -50 -KPX Atilde Ucircumflex -50 -KPX Atilde Udieresis -50 -KPX Atilde Ugrave -50 -KPX Atilde Uhungarumlaut -50 -KPX Atilde Umacron -50 -KPX Atilde Uogonek -50 -KPX Atilde Uring -50 -KPX Atilde V -80 -KPX Atilde W -60 -KPX Atilde Y -110 -KPX Atilde Yacute -110 -KPX Atilde Ydieresis -110 -KPX Atilde u -30 -KPX Atilde uacute -30 -KPX Atilde ucircumflex -30 -KPX Atilde udieresis -30 -KPX Atilde ugrave -30 -KPX Atilde uhungarumlaut -30 -KPX Atilde umacron -30 -KPX Atilde uogonek -30 -KPX Atilde uring -30 -KPX Atilde v -40 -KPX Atilde w -30 -KPX Atilde y -30 -KPX Atilde yacute -30 -KPX Atilde ydieresis -30 -KPX B A -30 -KPX B Aacute -30 -KPX B Abreve -30 -KPX B Acircumflex -30 -KPX B Adieresis -30 -KPX B Agrave -30 -KPX B Amacron -30 -KPX B Aogonek -30 -KPX B Aring -30 -KPX B Atilde -30 -KPX B U -10 -KPX B Uacute -10 -KPX B Ucircumflex -10 -KPX B Udieresis -10 -KPX B Ugrave -10 -KPX B Uhungarumlaut -10 -KPX B Umacron -10 -KPX B Uogonek -10 -KPX B Uring -10 -KPX D A -40 -KPX D Aacute -40 -KPX D Abreve -40 -KPX D Acircumflex -40 -KPX D Adieresis -40 -KPX D Agrave -40 -KPX D Amacron -40 -KPX D Aogonek -40 -KPX D Aring -40 -KPX D Atilde -40 -KPX D V -40 -KPX D W -40 -KPX D Y -70 -KPX D Yacute -70 -KPX D Ydieresis -70 -KPX D comma -30 -KPX D period -30 -KPX Dcaron A -40 -KPX Dcaron Aacute -40 -KPX Dcaron Abreve -40 -KPX Dcaron Acircumflex -40 -KPX Dcaron Adieresis -40 -KPX Dcaron Agrave -40 -KPX Dcaron Amacron -40 -KPX Dcaron Aogonek -40 -KPX Dcaron Aring -40 -KPX Dcaron Atilde -40 -KPX Dcaron V -40 -KPX Dcaron W -40 -KPX Dcaron Y -70 -KPX Dcaron Yacute -70 -KPX Dcaron Ydieresis -70 -KPX Dcaron comma -30 -KPX Dcaron period -30 -KPX Dcroat A -40 -KPX Dcroat Aacute -40 -KPX Dcroat Abreve -40 -KPX Dcroat Acircumflex -40 -KPX Dcroat Adieresis -40 -KPX Dcroat Agrave -40 -KPX Dcroat Amacron -40 -KPX Dcroat Aogonek -40 -KPX Dcroat Aring -40 -KPX Dcroat Atilde -40 -KPX Dcroat V -40 -KPX Dcroat W -40 -KPX Dcroat Y -70 -KPX Dcroat Yacute -70 -KPX Dcroat Ydieresis -70 -KPX Dcroat comma -30 -KPX Dcroat period -30 -KPX F A -80 -KPX F Aacute -80 -KPX F Abreve -80 -KPX F Acircumflex -80 -KPX F Adieresis -80 -KPX F Agrave -80 -KPX F Amacron -80 -KPX F Aogonek -80 -KPX F Aring -80 -KPX F Atilde -80 -KPX F a -20 -KPX F aacute -20 -KPX F abreve -20 -KPX F acircumflex -20 -KPX F adieresis -20 -KPX F agrave -20 -KPX F amacron -20 -KPX F aogonek -20 -KPX F aring -20 -KPX F atilde -20 -KPX F comma -100 -KPX F period -100 -KPX J A -20 -KPX J Aacute -20 -KPX J Abreve -20 -KPX J Acircumflex -20 -KPX J Adieresis -20 -KPX J Agrave -20 -KPX J Amacron -20 -KPX J Aogonek -20 -KPX J Aring -20 -KPX J Atilde -20 -KPX J comma -20 -KPX J period -20 -KPX J u -20 -KPX J uacute -20 -KPX J ucircumflex -20 -KPX J udieresis -20 -KPX J ugrave -20 -KPX J uhungarumlaut -20 -KPX J umacron -20 -KPX J uogonek -20 -KPX J uring -20 -KPX K O -30 -KPX K Oacute -30 -KPX K Ocircumflex -30 -KPX K Odieresis -30 -KPX K Ograve -30 -KPX K Ohungarumlaut -30 -KPX K Omacron -30 -KPX K Oslash -30 -KPX K Otilde -30 -KPX K e -15 -KPX K eacute -15 -KPX K ecaron -15 -KPX K ecircumflex -15 -KPX K edieresis -15 -KPX K edotaccent -15 -KPX K egrave -15 -KPX K emacron -15 -KPX K eogonek -15 -KPX K o -35 -KPX K oacute -35 -KPX K ocircumflex -35 -KPX K odieresis -35 -KPX K ograve -35 -KPX K ohungarumlaut -35 -KPX K omacron -35 -KPX K oslash -35 -KPX K otilde -35 -KPX K u -30 -KPX K uacute -30 -KPX K ucircumflex -30 -KPX K udieresis -30 -KPX K ugrave -30 -KPX K uhungarumlaut -30 -KPX K umacron -30 -KPX K uogonek -30 -KPX K uring -30 -KPX K y -40 -KPX K yacute -40 -KPX K ydieresis -40 -KPX Kcommaaccent O -30 -KPX Kcommaaccent Oacute -30 -KPX Kcommaaccent Ocircumflex -30 -KPX Kcommaaccent Odieresis -30 -KPX Kcommaaccent Ograve -30 -KPX Kcommaaccent Ohungarumlaut -30 -KPX Kcommaaccent Omacron -30 -KPX Kcommaaccent Oslash -30 -KPX Kcommaaccent Otilde -30 -KPX Kcommaaccent e -15 -KPX Kcommaaccent eacute -15 -KPX Kcommaaccent ecaron -15 -KPX Kcommaaccent ecircumflex -15 -KPX Kcommaaccent edieresis -15 -KPX Kcommaaccent edotaccent -15 -KPX Kcommaaccent egrave -15 -KPX Kcommaaccent emacron -15 -KPX Kcommaaccent eogonek -15 -KPX Kcommaaccent o -35 -KPX Kcommaaccent oacute -35 -KPX Kcommaaccent ocircumflex -35 -KPX Kcommaaccent odieresis -35 -KPX Kcommaaccent ograve -35 -KPX Kcommaaccent ohungarumlaut -35 -KPX Kcommaaccent omacron -35 -KPX Kcommaaccent oslash -35 -KPX Kcommaaccent otilde -35 -KPX Kcommaaccent u -30 -KPX Kcommaaccent uacute -30 -KPX Kcommaaccent ucircumflex -30 -KPX Kcommaaccent udieresis -30 -KPX Kcommaaccent ugrave -30 -KPX Kcommaaccent uhungarumlaut -30 -KPX Kcommaaccent umacron -30 -KPX Kcommaaccent uogonek -30 -KPX Kcommaaccent uring -30 -KPX Kcommaaccent y -40 -KPX Kcommaaccent yacute -40 -KPX Kcommaaccent ydieresis -40 -KPX L T -90 -KPX L Tcaron -90 -KPX L Tcommaaccent -90 -KPX L V -110 -KPX L W -80 -KPX L Y -120 -KPX L Yacute -120 -KPX L Ydieresis -120 -KPX L quotedblright -140 -KPX L quoteright -140 -KPX L y -30 -KPX L yacute -30 -KPX L ydieresis -30 -KPX Lacute T -90 -KPX Lacute Tcaron -90 -KPX Lacute Tcommaaccent -90 -KPX Lacute V -110 -KPX Lacute W -80 -KPX Lacute Y -120 -KPX Lacute Yacute -120 -KPX Lacute Ydieresis -120 -KPX Lacute quotedblright -140 -KPX Lacute quoteright -140 -KPX Lacute y -30 -KPX Lacute yacute -30 -KPX Lacute ydieresis -30 -KPX Lcommaaccent T -90 -KPX Lcommaaccent Tcaron -90 -KPX Lcommaaccent Tcommaaccent -90 -KPX Lcommaaccent V -110 -KPX Lcommaaccent W -80 -KPX Lcommaaccent Y -120 -KPX Lcommaaccent Yacute -120 -KPX Lcommaaccent Ydieresis -120 -KPX Lcommaaccent quotedblright -140 -KPX Lcommaaccent quoteright -140 -KPX Lcommaaccent y -30 -KPX Lcommaaccent yacute -30 -KPX Lcommaaccent ydieresis -30 -KPX Lslash T -90 -KPX Lslash Tcaron -90 -KPX Lslash Tcommaaccent -90 -KPX Lslash V -110 -KPX Lslash W -80 -KPX Lslash Y -120 -KPX Lslash Yacute -120 -KPX Lslash Ydieresis -120 -KPX Lslash quotedblright -140 -KPX Lslash quoteright -140 -KPX Lslash y -30 -KPX Lslash yacute -30 -KPX Lslash ydieresis -30 -KPX O A -50 -KPX O Aacute -50 -KPX O Abreve -50 -KPX O Acircumflex -50 -KPX O Adieresis -50 -KPX O Agrave -50 -KPX O Amacron -50 -KPX O Aogonek -50 -KPX O Aring -50 -KPX O Atilde -50 -KPX O T -40 -KPX O Tcaron -40 -KPX O Tcommaaccent -40 -KPX O V -50 -KPX O W -50 -KPX O X -50 -KPX O Y -70 -KPX O Yacute -70 -KPX O Ydieresis -70 -KPX O comma -40 -KPX O period -40 -KPX Oacute A -50 -KPX Oacute Aacute -50 -KPX Oacute Abreve -50 -KPX Oacute Acircumflex -50 -KPX Oacute Adieresis -50 -KPX Oacute Agrave -50 -KPX Oacute Amacron -50 -KPX Oacute Aogonek -50 -KPX Oacute Aring -50 -KPX Oacute Atilde -50 -KPX Oacute T -40 -KPX Oacute Tcaron -40 -KPX Oacute Tcommaaccent -40 -KPX Oacute V -50 -KPX Oacute W -50 -KPX Oacute X -50 -KPX Oacute Y -70 -KPX Oacute Yacute -70 -KPX Oacute Ydieresis -70 -KPX Oacute comma -40 -KPX Oacute period -40 -KPX Ocircumflex A -50 -KPX Ocircumflex Aacute -50 -KPX Ocircumflex Abreve -50 -KPX Ocircumflex Acircumflex -50 -KPX Ocircumflex Adieresis -50 -KPX Ocircumflex Agrave -50 -KPX Ocircumflex Amacron -50 -KPX Ocircumflex Aogonek -50 -KPX Ocircumflex Aring -50 -KPX Ocircumflex Atilde -50 -KPX Ocircumflex T -40 -KPX Ocircumflex Tcaron -40 -KPX Ocircumflex Tcommaaccent -40 -KPX Ocircumflex V -50 -KPX Ocircumflex W -50 -KPX Ocircumflex X -50 -KPX Ocircumflex Y -70 -KPX Ocircumflex Yacute -70 -KPX Ocircumflex Ydieresis -70 -KPX Ocircumflex comma -40 -KPX Ocircumflex period -40 -KPX Odieresis A -50 -KPX Odieresis Aacute -50 -KPX Odieresis Abreve -50 -KPX Odieresis Acircumflex -50 -KPX Odieresis Adieresis -50 -KPX Odieresis Agrave -50 -KPX Odieresis Amacron -50 -KPX Odieresis Aogonek -50 -KPX Odieresis Aring -50 -KPX Odieresis Atilde -50 -KPX Odieresis T -40 -KPX Odieresis Tcaron -40 -KPX Odieresis Tcommaaccent -40 -KPX Odieresis V -50 -KPX Odieresis W -50 -KPX Odieresis X -50 -KPX Odieresis Y -70 -KPX Odieresis Yacute -70 -KPX Odieresis Ydieresis -70 -KPX Odieresis comma -40 -KPX Odieresis period -40 -KPX Ograve A -50 -KPX Ograve Aacute -50 -KPX Ograve Abreve -50 -KPX Ograve Acircumflex -50 -KPX Ograve Adieresis -50 -KPX Ograve Agrave -50 -KPX Ograve Amacron -50 -KPX Ograve Aogonek -50 -KPX Ograve Aring -50 -KPX Ograve Atilde -50 -KPX Ograve T -40 -KPX Ograve Tcaron -40 -KPX Ograve Tcommaaccent -40 -KPX Ograve V -50 -KPX Ograve W -50 -KPX Ograve X -50 -KPX Ograve Y -70 -KPX Ograve Yacute -70 -KPX Ograve Ydieresis -70 -KPX Ograve comma -40 -KPX Ograve period -40 -KPX Ohungarumlaut A -50 -KPX Ohungarumlaut Aacute -50 -KPX Ohungarumlaut Abreve -50 -KPX Ohungarumlaut Acircumflex -50 -KPX Ohungarumlaut Adieresis -50 -KPX Ohungarumlaut Agrave -50 -KPX Ohungarumlaut Amacron -50 -KPX Ohungarumlaut Aogonek -50 -KPX Ohungarumlaut Aring -50 -KPX Ohungarumlaut Atilde -50 -KPX Ohungarumlaut T -40 -KPX Ohungarumlaut Tcaron -40 -KPX Ohungarumlaut Tcommaaccent -40 -KPX Ohungarumlaut V -50 -KPX Ohungarumlaut W -50 -KPX Ohungarumlaut X -50 -KPX Ohungarumlaut Y -70 -KPX Ohungarumlaut Yacute -70 -KPX Ohungarumlaut Ydieresis -70 -KPX Ohungarumlaut comma -40 -KPX Ohungarumlaut period -40 -KPX Omacron A -50 -KPX Omacron Aacute -50 -KPX Omacron Abreve -50 -KPX Omacron Acircumflex -50 -KPX Omacron Adieresis -50 -KPX Omacron Agrave -50 -KPX Omacron Amacron -50 -KPX Omacron Aogonek -50 -KPX Omacron Aring -50 -KPX Omacron Atilde -50 -KPX Omacron T -40 -KPX Omacron Tcaron -40 -KPX Omacron Tcommaaccent -40 -KPX Omacron V -50 -KPX Omacron W -50 -KPX Omacron X -50 -KPX Omacron Y -70 -KPX Omacron Yacute -70 -KPX Omacron Ydieresis -70 -KPX Omacron comma -40 -KPX Omacron period -40 -KPX Oslash A -50 -KPX Oslash Aacute -50 -KPX Oslash Abreve -50 -KPX Oslash Acircumflex -50 -KPX Oslash Adieresis -50 -KPX Oslash Agrave -50 -KPX Oslash Amacron -50 -KPX Oslash Aogonek -50 -KPX Oslash Aring -50 -KPX Oslash Atilde -50 -KPX Oslash T -40 -KPX Oslash Tcaron -40 -KPX Oslash Tcommaaccent -40 -KPX Oslash V -50 -KPX Oslash W -50 -KPX Oslash X -50 -KPX Oslash Y -70 -KPX Oslash Yacute -70 -KPX Oslash Ydieresis -70 -KPX Oslash comma -40 -KPX Oslash period -40 -KPX Otilde A -50 -KPX Otilde Aacute -50 -KPX Otilde Abreve -50 -KPX Otilde Acircumflex -50 -KPX Otilde Adieresis -50 -KPX Otilde Agrave -50 -KPX Otilde Amacron -50 -KPX Otilde Aogonek -50 -KPX Otilde Aring -50 -KPX Otilde Atilde -50 -KPX Otilde T -40 -KPX Otilde Tcaron -40 -KPX Otilde Tcommaaccent -40 -KPX Otilde V -50 -KPX Otilde W -50 -KPX Otilde X -50 -KPX Otilde Y -70 -KPX Otilde Yacute -70 -KPX Otilde Ydieresis -70 -KPX Otilde comma -40 -KPX Otilde period -40 -KPX P A -100 -KPX P Aacute -100 -KPX P Abreve -100 -KPX P Acircumflex -100 -KPX P Adieresis -100 -KPX P Agrave -100 -KPX P Amacron -100 -KPX P Aogonek -100 -KPX P Aring -100 -KPX P Atilde -100 -KPX P a -30 -KPX P aacute -30 -KPX P abreve -30 -KPX P acircumflex -30 -KPX P adieresis -30 -KPX P agrave -30 -KPX P amacron -30 -KPX P aogonek -30 -KPX P aring -30 -KPX P atilde -30 -KPX P comma -120 -KPX P e -30 -KPX P eacute -30 -KPX P ecaron -30 -KPX P ecircumflex -30 -KPX P edieresis -30 -KPX P edotaccent -30 -KPX P egrave -30 -KPX P emacron -30 -KPX P eogonek -30 -KPX P o -40 -KPX P oacute -40 -KPX P ocircumflex -40 -KPX P odieresis -40 -KPX P ograve -40 -KPX P ohungarumlaut -40 -KPX P omacron -40 -KPX P oslash -40 -KPX P otilde -40 -KPX P period -120 -KPX Q U -10 -KPX Q Uacute -10 -KPX Q Ucircumflex -10 -KPX Q Udieresis -10 -KPX Q Ugrave -10 -KPX Q Uhungarumlaut -10 -KPX Q Umacron -10 -KPX Q Uogonek -10 -KPX Q Uring -10 -KPX Q comma 20 -KPX Q period 20 -KPX R O -20 -KPX R Oacute -20 -KPX R Ocircumflex -20 -KPX R Odieresis -20 -KPX R Ograve -20 -KPX R Ohungarumlaut -20 -KPX R Omacron -20 -KPX R Oslash -20 -KPX R Otilde -20 -KPX R T -20 -KPX R Tcaron -20 -KPX R Tcommaaccent -20 -KPX R U -20 -KPX R Uacute -20 -KPX R Ucircumflex -20 -KPX R Udieresis -20 -KPX R Ugrave -20 -KPX R Uhungarumlaut -20 -KPX R Umacron -20 -KPX R Uogonek -20 -KPX R Uring -20 -KPX R V -50 -KPX R W -40 -KPX R Y -50 -KPX R Yacute -50 -KPX R Ydieresis -50 -KPX Racute O -20 -KPX Racute Oacute -20 -KPX Racute Ocircumflex -20 -KPX Racute Odieresis -20 -KPX Racute Ograve -20 -KPX Racute Ohungarumlaut -20 -KPX Racute Omacron -20 -KPX Racute Oslash -20 -KPX Racute Otilde -20 -KPX Racute T -20 -KPX Racute Tcaron -20 -KPX Racute Tcommaaccent -20 -KPX Racute U -20 -KPX Racute Uacute -20 -KPX Racute Ucircumflex -20 -KPX Racute Udieresis -20 -KPX Racute Ugrave -20 -KPX Racute Uhungarumlaut -20 -KPX Racute Umacron -20 -KPX Racute Uogonek -20 -KPX Racute Uring -20 -KPX Racute V -50 -KPX Racute W -40 -KPX Racute Y -50 -KPX Racute Yacute -50 -KPX Racute Ydieresis -50 -KPX Rcaron O -20 -KPX Rcaron Oacute -20 -KPX Rcaron Ocircumflex -20 -KPX Rcaron Odieresis -20 -KPX Rcaron Ograve -20 -KPX Rcaron Ohungarumlaut -20 -KPX Rcaron Omacron -20 -KPX Rcaron Oslash -20 -KPX Rcaron Otilde -20 -KPX Rcaron T -20 -KPX Rcaron Tcaron -20 -KPX Rcaron Tcommaaccent -20 -KPX Rcaron U -20 -KPX Rcaron Uacute -20 -KPX Rcaron Ucircumflex -20 -KPX Rcaron Udieresis -20 -KPX Rcaron Ugrave -20 -KPX Rcaron Uhungarumlaut -20 -KPX Rcaron Umacron -20 -KPX Rcaron Uogonek -20 -KPX Rcaron Uring -20 -KPX Rcaron V -50 -KPX Rcaron W -40 -KPX Rcaron Y -50 -KPX Rcaron Yacute -50 -KPX Rcaron Ydieresis -50 -KPX Rcommaaccent O -20 -KPX Rcommaaccent Oacute -20 -KPX Rcommaaccent Ocircumflex -20 -KPX Rcommaaccent Odieresis -20 -KPX Rcommaaccent Ograve -20 -KPX Rcommaaccent Ohungarumlaut -20 -KPX Rcommaaccent Omacron -20 -KPX Rcommaaccent Oslash -20 -KPX Rcommaaccent Otilde -20 -KPX Rcommaaccent T -20 -KPX Rcommaaccent Tcaron -20 -KPX Rcommaaccent Tcommaaccent -20 -KPX Rcommaaccent U -20 -KPX Rcommaaccent Uacute -20 -KPX Rcommaaccent Ucircumflex -20 -KPX Rcommaaccent Udieresis -20 -KPX Rcommaaccent Ugrave -20 -KPX Rcommaaccent Uhungarumlaut -20 -KPX Rcommaaccent Umacron -20 -KPX Rcommaaccent Uogonek -20 -KPX Rcommaaccent Uring -20 -KPX Rcommaaccent V -50 -KPX Rcommaaccent W -40 -KPX Rcommaaccent Y -50 -KPX Rcommaaccent Yacute -50 -KPX Rcommaaccent Ydieresis -50 -KPX T A -90 -KPX T Aacute -90 -KPX T Abreve -90 -KPX T Acircumflex -90 -KPX T Adieresis -90 -KPX T Agrave -90 -KPX T Amacron -90 -KPX T Aogonek -90 -KPX T Aring -90 -KPX T Atilde -90 -KPX T O -40 -KPX T Oacute -40 -KPX T Ocircumflex -40 -KPX T Odieresis -40 -KPX T Ograve -40 -KPX T Ohungarumlaut -40 -KPX T Omacron -40 -KPX T Oslash -40 -KPX T Otilde -40 -KPX T a -80 -KPX T aacute -80 -KPX T abreve -80 -KPX T acircumflex -80 -KPX T adieresis -80 -KPX T agrave -80 -KPX T amacron -80 -KPX T aogonek -80 -KPX T aring -80 -KPX T atilde -80 -KPX T colon -40 -KPX T comma -80 -KPX T e -60 -KPX T eacute -60 -KPX T ecaron -60 -KPX T ecircumflex -60 -KPX T edieresis -60 -KPX T edotaccent -60 -KPX T egrave -60 -KPX T emacron -60 -KPX T eogonek -60 -KPX T hyphen -120 -KPX T o -80 -KPX T oacute -80 -KPX T ocircumflex -80 -KPX T odieresis -80 -KPX T ograve -80 -KPX T ohungarumlaut -80 -KPX T omacron -80 -KPX T oslash -80 -KPX T otilde -80 -KPX T period -80 -KPX T r -80 -KPX T racute -80 -KPX T rcommaaccent -80 -KPX T semicolon -40 -KPX T u -90 -KPX T uacute -90 -KPX T ucircumflex -90 -KPX T udieresis -90 -KPX T ugrave -90 -KPX T uhungarumlaut -90 -KPX T umacron -90 -KPX T uogonek -90 -KPX T uring -90 -KPX T w -60 -KPX T y -60 -KPX T yacute -60 -KPX T ydieresis -60 -KPX Tcaron A -90 -KPX Tcaron Aacute -90 -KPX Tcaron Abreve -90 -KPX Tcaron Acircumflex -90 -KPX Tcaron Adieresis -90 -KPX Tcaron Agrave -90 -KPX Tcaron Amacron -90 -KPX Tcaron Aogonek -90 -KPX Tcaron Aring -90 -KPX Tcaron Atilde -90 -KPX Tcaron O -40 -KPX Tcaron Oacute -40 -KPX Tcaron Ocircumflex -40 -KPX Tcaron Odieresis -40 -KPX Tcaron Ograve -40 -KPX Tcaron Ohungarumlaut -40 -KPX Tcaron Omacron -40 -KPX Tcaron Oslash -40 -KPX Tcaron Otilde -40 -KPX Tcaron a -80 -KPX Tcaron aacute -80 -KPX Tcaron abreve -80 -KPX Tcaron acircumflex -80 -KPX Tcaron adieresis -80 -KPX Tcaron agrave -80 -KPX Tcaron amacron -80 -KPX Tcaron aogonek -80 -KPX Tcaron aring -80 -KPX Tcaron atilde -80 -KPX Tcaron colon -40 -KPX Tcaron comma -80 -KPX Tcaron e -60 -KPX Tcaron eacute -60 -KPX Tcaron ecaron -60 -KPX Tcaron ecircumflex -60 -KPX Tcaron edieresis -60 -KPX Tcaron edotaccent -60 -KPX Tcaron egrave -60 -KPX Tcaron emacron -60 -KPX Tcaron eogonek -60 -KPX Tcaron hyphen -120 -KPX Tcaron o -80 -KPX Tcaron oacute -80 -KPX Tcaron ocircumflex -80 -KPX Tcaron odieresis -80 -KPX Tcaron ograve -80 -KPX Tcaron ohungarumlaut -80 -KPX Tcaron omacron -80 -KPX Tcaron oslash -80 -KPX Tcaron otilde -80 -KPX Tcaron period -80 -KPX Tcaron r -80 -KPX Tcaron racute -80 -KPX Tcaron rcommaaccent -80 -KPX Tcaron semicolon -40 -KPX Tcaron u -90 -KPX Tcaron uacute -90 -KPX Tcaron ucircumflex -90 -KPX Tcaron udieresis -90 -KPX Tcaron ugrave -90 -KPX Tcaron uhungarumlaut -90 -KPX Tcaron umacron -90 -KPX Tcaron uogonek -90 -KPX Tcaron uring -90 -KPX Tcaron w -60 -KPX Tcaron y -60 -KPX Tcaron yacute -60 -KPX Tcaron ydieresis -60 -KPX Tcommaaccent A -90 -KPX Tcommaaccent Aacute -90 -KPX Tcommaaccent Abreve -90 -KPX Tcommaaccent Acircumflex -90 -KPX Tcommaaccent Adieresis -90 -KPX Tcommaaccent Agrave -90 -KPX Tcommaaccent Amacron -90 -KPX Tcommaaccent Aogonek -90 -KPX Tcommaaccent Aring -90 -KPX Tcommaaccent Atilde -90 -KPX Tcommaaccent O -40 -KPX Tcommaaccent Oacute -40 -KPX Tcommaaccent Ocircumflex -40 -KPX Tcommaaccent Odieresis -40 -KPX Tcommaaccent Ograve -40 -KPX Tcommaaccent Ohungarumlaut -40 -KPX Tcommaaccent Omacron -40 -KPX Tcommaaccent Oslash -40 -KPX Tcommaaccent Otilde -40 -KPX Tcommaaccent a -80 -KPX Tcommaaccent aacute -80 -KPX Tcommaaccent abreve -80 -KPX Tcommaaccent acircumflex -80 -KPX Tcommaaccent adieresis -80 -KPX Tcommaaccent agrave -80 -KPX Tcommaaccent amacron -80 -KPX Tcommaaccent aogonek -80 -KPX Tcommaaccent aring -80 -KPX Tcommaaccent atilde -80 -KPX Tcommaaccent colon -40 -KPX Tcommaaccent comma -80 -KPX Tcommaaccent e -60 -KPX Tcommaaccent eacute -60 -KPX Tcommaaccent ecaron -60 -KPX Tcommaaccent ecircumflex -60 -KPX Tcommaaccent edieresis -60 -KPX Tcommaaccent edotaccent -60 -KPX Tcommaaccent egrave -60 -KPX Tcommaaccent emacron -60 -KPX Tcommaaccent eogonek -60 -KPX Tcommaaccent hyphen -120 -KPX Tcommaaccent o -80 -KPX Tcommaaccent oacute -80 -KPX Tcommaaccent ocircumflex -80 -KPX Tcommaaccent odieresis -80 -KPX Tcommaaccent ograve -80 -KPX Tcommaaccent ohungarumlaut -80 -KPX Tcommaaccent omacron -80 -KPX Tcommaaccent oslash -80 -KPX Tcommaaccent otilde -80 -KPX Tcommaaccent period -80 -KPX Tcommaaccent r -80 -KPX Tcommaaccent racute -80 -KPX Tcommaaccent rcommaaccent -80 -KPX Tcommaaccent semicolon -40 -KPX Tcommaaccent u -90 -KPX Tcommaaccent uacute -90 -KPX Tcommaaccent ucircumflex -90 -KPX Tcommaaccent udieresis -90 -KPX Tcommaaccent ugrave -90 -KPX Tcommaaccent uhungarumlaut -90 -KPX Tcommaaccent umacron -90 -KPX Tcommaaccent uogonek -90 -KPX Tcommaaccent uring -90 -KPX Tcommaaccent w -60 -KPX Tcommaaccent y -60 -KPX Tcommaaccent yacute -60 -KPX Tcommaaccent ydieresis -60 -KPX U A -50 -KPX U Aacute -50 -KPX U Abreve -50 -KPX U Acircumflex -50 -KPX U Adieresis -50 -KPX U Agrave -50 -KPX U Amacron -50 -KPX U Aogonek -50 -KPX U Aring -50 -KPX U Atilde -50 -KPX U comma -30 -KPX U period -30 -KPX Uacute A -50 -KPX Uacute Aacute -50 -KPX Uacute Abreve -50 -KPX Uacute Acircumflex -50 -KPX Uacute Adieresis -50 -KPX Uacute Agrave -50 -KPX Uacute Amacron -50 -KPX Uacute Aogonek -50 -KPX Uacute Aring -50 -KPX Uacute Atilde -50 -KPX Uacute comma -30 -KPX Uacute period -30 -KPX Ucircumflex A -50 -KPX Ucircumflex Aacute -50 -KPX Ucircumflex Abreve -50 -KPX Ucircumflex Acircumflex -50 -KPX Ucircumflex Adieresis -50 -KPX Ucircumflex Agrave -50 -KPX Ucircumflex Amacron -50 -KPX Ucircumflex Aogonek -50 -KPX Ucircumflex Aring -50 -KPX Ucircumflex Atilde -50 -KPX Ucircumflex comma -30 -KPX Ucircumflex period -30 -KPX Udieresis A -50 -KPX Udieresis Aacute -50 -KPX Udieresis Abreve -50 -KPX Udieresis Acircumflex -50 -KPX Udieresis Adieresis -50 -KPX Udieresis Agrave -50 -KPX Udieresis Amacron -50 -KPX Udieresis Aogonek -50 -KPX Udieresis Aring -50 -KPX Udieresis Atilde -50 -KPX Udieresis comma -30 -KPX Udieresis period -30 -KPX Ugrave A -50 -KPX Ugrave Aacute -50 -KPX Ugrave Abreve -50 -KPX Ugrave Acircumflex -50 -KPX Ugrave Adieresis -50 -KPX Ugrave Agrave -50 -KPX Ugrave Amacron -50 -KPX Ugrave Aogonek -50 -KPX Ugrave Aring -50 -KPX Ugrave Atilde -50 -KPX Ugrave comma -30 -KPX Ugrave period -30 -KPX Uhungarumlaut A -50 -KPX Uhungarumlaut Aacute -50 -KPX Uhungarumlaut Abreve -50 -KPX Uhungarumlaut Acircumflex -50 -KPX Uhungarumlaut Adieresis -50 -KPX Uhungarumlaut Agrave -50 -KPX Uhungarumlaut Amacron -50 -KPX Uhungarumlaut Aogonek -50 -KPX Uhungarumlaut Aring -50 -KPX Uhungarumlaut Atilde -50 -KPX Uhungarumlaut comma -30 -KPX Uhungarumlaut period -30 -KPX Umacron A -50 -KPX Umacron Aacute -50 -KPX Umacron Abreve -50 -KPX Umacron Acircumflex -50 -KPX Umacron Adieresis -50 -KPX Umacron Agrave -50 -KPX Umacron Amacron -50 -KPX Umacron Aogonek -50 -KPX Umacron Aring -50 -KPX Umacron Atilde -50 -KPX Umacron comma -30 -KPX Umacron period -30 -KPX Uogonek A -50 -KPX Uogonek Aacute -50 -KPX Uogonek Abreve -50 -KPX Uogonek Acircumflex -50 -KPX Uogonek Adieresis -50 -KPX Uogonek Agrave -50 -KPX Uogonek Amacron -50 -KPX Uogonek Aogonek -50 -KPX Uogonek Aring -50 -KPX Uogonek Atilde -50 -KPX Uogonek comma -30 -KPX Uogonek period -30 -KPX Uring A -50 -KPX Uring Aacute -50 -KPX Uring Abreve -50 -KPX Uring Acircumflex -50 -KPX Uring Adieresis -50 -KPX Uring Agrave -50 -KPX Uring Amacron -50 -KPX Uring Aogonek -50 -KPX Uring Aring -50 -KPX Uring Atilde -50 -KPX Uring comma -30 -KPX Uring period -30 -KPX V A -80 -KPX V Aacute -80 -KPX V Abreve -80 -KPX V Acircumflex -80 -KPX V Adieresis -80 -KPX V Agrave -80 -KPX V Amacron -80 -KPX V Aogonek -80 -KPX V Aring -80 -KPX V Atilde -80 -KPX V G -50 -KPX V Gbreve -50 -KPX V Gcommaaccent -50 -KPX V O -50 -KPX V Oacute -50 -KPX V Ocircumflex -50 -KPX V Odieresis -50 -KPX V Ograve -50 -KPX V Ohungarumlaut -50 -KPX V Omacron -50 -KPX V Oslash -50 -KPX V Otilde -50 -KPX V a -60 -KPX V aacute -60 -KPX V abreve -60 -KPX V acircumflex -60 -KPX V adieresis -60 -KPX V agrave -60 -KPX V amacron -60 -KPX V aogonek -60 -KPX V aring -60 -KPX V atilde -60 -KPX V colon -40 -KPX V comma -120 -KPX V e -50 -KPX V eacute -50 -KPX V ecaron -50 -KPX V ecircumflex -50 -KPX V edieresis -50 -KPX V edotaccent -50 -KPX V egrave -50 -KPX V emacron -50 -KPX V eogonek -50 -KPX V hyphen -80 -KPX V o -90 -KPX V oacute -90 -KPX V ocircumflex -90 -KPX V odieresis -90 -KPX V ograve -90 -KPX V ohungarumlaut -90 -KPX V omacron -90 -KPX V oslash -90 -KPX V otilde -90 -KPX V period -120 -KPX V semicolon -40 -KPX V u -60 -KPX V uacute -60 -KPX V ucircumflex -60 -KPX V udieresis -60 -KPX V ugrave -60 -KPX V uhungarumlaut -60 -KPX V umacron -60 -KPX V uogonek -60 -KPX V uring -60 -KPX W A -60 -KPX W Aacute -60 -KPX W Abreve -60 -KPX W Acircumflex -60 -KPX W Adieresis -60 -KPX W Agrave -60 -KPX W Amacron -60 -KPX W Aogonek -60 -KPX W Aring -60 -KPX W Atilde -60 -KPX W O -20 -KPX W Oacute -20 -KPX W Ocircumflex -20 -KPX W Odieresis -20 -KPX W Ograve -20 -KPX W Ohungarumlaut -20 -KPX W Omacron -20 -KPX W Oslash -20 -KPX W Otilde -20 -KPX W a -40 -KPX W aacute -40 -KPX W abreve -40 -KPX W acircumflex -40 -KPX W adieresis -40 -KPX W agrave -40 -KPX W amacron -40 -KPX W aogonek -40 -KPX W aring -40 -KPX W atilde -40 -KPX W colon -10 -KPX W comma -80 -KPX W e -35 -KPX W eacute -35 -KPX W ecaron -35 -KPX W ecircumflex -35 -KPX W edieresis -35 -KPX W edotaccent -35 -KPX W egrave -35 -KPX W emacron -35 -KPX W eogonek -35 -KPX W hyphen -40 -KPX W o -60 -KPX W oacute -60 -KPX W ocircumflex -60 -KPX W odieresis -60 -KPX W ograve -60 -KPX W ohungarumlaut -60 -KPX W omacron -60 -KPX W oslash -60 -KPX W otilde -60 -KPX W period -80 -KPX W semicolon -10 -KPX W u -45 -KPX W uacute -45 -KPX W ucircumflex -45 -KPX W udieresis -45 -KPX W ugrave -45 -KPX W uhungarumlaut -45 -KPX W umacron -45 -KPX W uogonek -45 -KPX W uring -45 -KPX W y -20 -KPX W yacute -20 -KPX W ydieresis -20 -KPX Y A -110 -KPX Y Aacute -110 -KPX Y Abreve -110 -KPX Y Acircumflex -110 -KPX Y Adieresis -110 -KPX Y Agrave -110 -KPX Y Amacron -110 -KPX Y Aogonek -110 -KPX Y Aring -110 -KPX Y Atilde -110 -KPX Y O -70 -KPX Y Oacute -70 -KPX Y Ocircumflex -70 -KPX Y Odieresis -70 -KPX Y Ograve -70 -KPX Y Ohungarumlaut -70 -KPX Y Omacron -70 -KPX Y Oslash -70 -KPX Y Otilde -70 -KPX Y a -90 -KPX Y aacute -90 -KPX Y abreve -90 -KPX Y acircumflex -90 -KPX Y adieresis -90 -KPX Y agrave -90 -KPX Y amacron -90 -KPX Y aogonek -90 -KPX Y aring -90 -KPX Y atilde -90 -KPX Y colon -50 -KPX Y comma -100 -KPX Y e -80 -KPX Y eacute -80 -KPX Y ecaron -80 -KPX Y ecircumflex -80 -KPX Y edieresis -80 -KPX Y edotaccent -80 -KPX Y egrave -80 -KPX Y emacron -80 -KPX Y eogonek -80 -KPX Y o -100 -KPX Y oacute -100 -KPX Y ocircumflex -100 -KPX Y odieresis -100 -KPX Y ograve -100 -KPX Y ohungarumlaut -100 -KPX Y omacron -100 -KPX Y oslash -100 -KPX Y otilde -100 -KPX Y period -100 -KPX Y semicolon -50 -KPX Y u -100 -KPX Y uacute -100 -KPX Y ucircumflex -100 -KPX Y udieresis -100 -KPX Y ugrave -100 -KPX Y uhungarumlaut -100 -KPX Y umacron -100 -KPX Y uogonek -100 -KPX Y uring -100 -KPX Yacute A -110 -KPX Yacute Aacute -110 -KPX Yacute Abreve -110 -KPX Yacute Acircumflex -110 -KPX Yacute Adieresis -110 -KPX Yacute Agrave -110 -KPX Yacute Amacron -110 -KPX Yacute Aogonek -110 -KPX Yacute Aring -110 -KPX Yacute Atilde -110 -KPX Yacute O -70 -KPX Yacute Oacute -70 -KPX Yacute Ocircumflex -70 -KPX Yacute Odieresis -70 -KPX Yacute Ograve -70 -KPX Yacute Ohungarumlaut -70 -KPX Yacute Omacron -70 -KPX Yacute Oslash -70 -KPX Yacute Otilde -70 -KPX Yacute a -90 -KPX Yacute aacute -90 -KPX Yacute abreve -90 -KPX Yacute acircumflex -90 -KPX Yacute adieresis -90 -KPX Yacute agrave -90 -KPX Yacute amacron -90 -KPX Yacute aogonek -90 -KPX Yacute aring -90 -KPX Yacute atilde -90 -KPX Yacute colon -50 -KPX Yacute comma -100 -KPX Yacute e -80 -KPX Yacute eacute -80 -KPX Yacute ecaron -80 -KPX Yacute ecircumflex -80 -KPX Yacute edieresis -80 -KPX Yacute edotaccent -80 -KPX Yacute egrave -80 -KPX Yacute emacron -80 -KPX Yacute eogonek -80 -KPX Yacute o -100 -KPX Yacute oacute -100 -KPX Yacute ocircumflex -100 -KPX Yacute odieresis -100 -KPX Yacute ograve -100 -KPX Yacute ohungarumlaut -100 -KPX Yacute omacron -100 -KPX Yacute oslash -100 -KPX Yacute otilde -100 -KPX Yacute period -100 -KPX Yacute semicolon -50 -KPX Yacute u -100 -KPX Yacute uacute -100 -KPX Yacute ucircumflex -100 -KPX Yacute udieresis -100 -KPX Yacute ugrave -100 -KPX Yacute uhungarumlaut -100 -KPX Yacute umacron -100 -KPX Yacute uogonek -100 -KPX Yacute uring -100 -KPX Ydieresis A -110 -KPX Ydieresis Aacute -110 -KPX Ydieresis Abreve -110 -KPX Ydieresis Acircumflex -110 -KPX Ydieresis Adieresis -110 -KPX Ydieresis Agrave -110 -KPX Ydieresis Amacron -110 -KPX Ydieresis Aogonek -110 -KPX Ydieresis Aring -110 -KPX Ydieresis Atilde -110 -KPX Ydieresis O -70 -KPX Ydieresis Oacute -70 -KPX Ydieresis Ocircumflex -70 -KPX Ydieresis Odieresis -70 -KPX Ydieresis Ograve -70 -KPX Ydieresis Ohungarumlaut -70 -KPX Ydieresis Omacron -70 -KPX Ydieresis Oslash -70 -KPX Ydieresis Otilde -70 -KPX Ydieresis a -90 -KPX Ydieresis aacute -90 -KPX Ydieresis abreve -90 -KPX Ydieresis acircumflex -90 -KPX Ydieresis adieresis -90 -KPX Ydieresis agrave -90 -KPX Ydieresis amacron -90 -KPX Ydieresis aogonek -90 -KPX Ydieresis aring -90 -KPX Ydieresis atilde -90 -KPX Ydieresis colon -50 -KPX Ydieresis comma -100 -KPX Ydieresis e -80 -KPX Ydieresis eacute -80 -KPX Ydieresis ecaron -80 -KPX Ydieresis ecircumflex -80 -KPX Ydieresis edieresis -80 -KPX Ydieresis edotaccent -80 -KPX Ydieresis egrave -80 -KPX Ydieresis emacron -80 -KPX Ydieresis eogonek -80 -KPX Ydieresis o -100 -KPX Ydieresis oacute -100 -KPX Ydieresis ocircumflex -100 -KPX Ydieresis odieresis -100 -KPX Ydieresis ograve -100 -KPX Ydieresis ohungarumlaut -100 -KPX Ydieresis omacron -100 -KPX Ydieresis oslash -100 -KPX Ydieresis otilde -100 -KPX Ydieresis period -100 -KPX Ydieresis semicolon -50 -KPX Ydieresis u -100 -KPX Ydieresis uacute -100 -KPX Ydieresis ucircumflex -100 -KPX Ydieresis udieresis -100 -KPX Ydieresis ugrave -100 -KPX Ydieresis uhungarumlaut -100 -KPX Ydieresis umacron -100 -KPX Ydieresis uogonek -100 -KPX Ydieresis uring -100 -KPX a g -10 -KPX a gbreve -10 -KPX a gcommaaccent -10 -KPX a v -15 -KPX a w -15 -KPX a y -20 -KPX a yacute -20 -KPX a ydieresis -20 -KPX aacute g -10 -KPX aacute gbreve -10 -KPX aacute gcommaaccent -10 -KPX aacute v -15 -KPX aacute w -15 -KPX aacute y -20 -KPX aacute yacute -20 -KPX aacute ydieresis -20 -KPX abreve g -10 -KPX abreve gbreve -10 -KPX abreve gcommaaccent -10 -KPX abreve v -15 -KPX abreve w -15 -KPX abreve y -20 -KPX abreve yacute -20 -KPX abreve ydieresis -20 -KPX acircumflex g -10 -KPX acircumflex gbreve -10 -KPX acircumflex gcommaaccent -10 -KPX acircumflex v -15 -KPX acircumflex w -15 -KPX acircumflex y -20 -KPX acircumflex yacute -20 -KPX acircumflex ydieresis -20 -KPX adieresis g -10 -KPX adieresis gbreve -10 -KPX adieresis gcommaaccent -10 -KPX adieresis v -15 -KPX adieresis w -15 -KPX adieresis y -20 -KPX adieresis yacute -20 -KPX adieresis ydieresis -20 -KPX agrave g -10 -KPX agrave gbreve -10 -KPX agrave gcommaaccent -10 -KPX agrave v -15 -KPX agrave w -15 -KPX agrave y -20 -KPX agrave yacute -20 -KPX agrave ydieresis -20 -KPX amacron g -10 -KPX amacron gbreve -10 -KPX amacron gcommaaccent -10 -KPX amacron v -15 -KPX amacron w -15 -KPX amacron y -20 -KPX amacron yacute -20 -KPX amacron ydieresis -20 -KPX aogonek g -10 -KPX aogonek gbreve -10 -KPX aogonek gcommaaccent -10 -KPX aogonek v -15 -KPX aogonek w -15 -KPX aogonek y -20 -KPX aogonek yacute -20 -KPX aogonek ydieresis -20 -KPX aring g -10 -KPX aring gbreve -10 -KPX aring gcommaaccent -10 -KPX aring v -15 -KPX aring w -15 -KPX aring y -20 -KPX aring yacute -20 -KPX aring ydieresis -20 -KPX atilde g -10 -KPX atilde gbreve -10 -KPX atilde gcommaaccent -10 -KPX atilde v -15 -KPX atilde w -15 -KPX atilde y -20 -KPX atilde yacute -20 -KPX atilde ydieresis -20 -KPX b l -10 -KPX b lacute -10 -KPX b lcommaaccent -10 -KPX b lslash -10 -KPX b u -20 -KPX b uacute -20 -KPX b ucircumflex -20 -KPX b udieresis -20 -KPX b ugrave -20 -KPX b uhungarumlaut -20 -KPX b umacron -20 -KPX b uogonek -20 -KPX b uring -20 -KPX b v -20 -KPX b y -20 -KPX b yacute -20 -KPX b ydieresis -20 -KPX c h -10 -KPX c k -20 -KPX c kcommaaccent -20 -KPX c l -20 -KPX c lacute -20 -KPX c lcommaaccent -20 -KPX c lslash -20 -KPX c y -10 -KPX c yacute -10 -KPX c ydieresis -10 -KPX cacute h -10 -KPX cacute k -20 -KPX cacute kcommaaccent -20 -KPX cacute l -20 -KPX cacute lacute -20 -KPX cacute lcommaaccent -20 -KPX cacute lslash -20 -KPX cacute y -10 -KPX cacute yacute -10 -KPX cacute ydieresis -10 -KPX ccaron h -10 -KPX ccaron k -20 -KPX ccaron kcommaaccent -20 -KPX ccaron l -20 -KPX ccaron lacute -20 -KPX ccaron lcommaaccent -20 -KPX ccaron lslash -20 -KPX ccaron y -10 -KPX ccaron yacute -10 -KPX ccaron ydieresis -10 -KPX ccedilla h -10 -KPX ccedilla k -20 -KPX ccedilla kcommaaccent -20 -KPX ccedilla l -20 -KPX ccedilla lacute -20 -KPX ccedilla lcommaaccent -20 -KPX ccedilla lslash -20 -KPX ccedilla y -10 -KPX ccedilla yacute -10 -KPX ccedilla ydieresis -10 -KPX colon space -40 -KPX comma quotedblright -120 -KPX comma quoteright -120 -KPX comma space -40 -KPX d d -10 -KPX d dcroat -10 -KPX d v -15 -KPX d w -15 -KPX d y -15 -KPX d yacute -15 -KPX d ydieresis -15 -KPX dcroat d -10 -KPX dcroat dcroat -10 -KPX dcroat v -15 -KPX dcroat w -15 -KPX dcroat y -15 -KPX dcroat yacute -15 -KPX dcroat ydieresis -15 -KPX e comma 10 -KPX e period 20 -KPX e v -15 -KPX e w -15 -KPX e x -15 -KPX e y -15 -KPX e yacute -15 -KPX e ydieresis -15 -KPX eacute comma 10 -KPX eacute period 20 -KPX eacute v -15 -KPX eacute w -15 -KPX eacute x -15 -KPX eacute y -15 -KPX eacute yacute -15 -KPX eacute ydieresis -15 -KPX ecaron comma 10 -KPX ecaron period 20 -KPX ecaron v -15 -KPX ecaron w -15 -KPX ecaron x -15 -KPX ecaron y -15 -KPX ecaron yacute -15 -KPX ecaron ydieresis -15 -KPX ecircumflex comma 10 -KPX ecircumflex period 20 -KPX ecircumflex v -15 -KPX ecircumflex w -15 -KPX ecircumflex x -15 -KPX ecircumflex y -15 -KPX ecircumflex yacute -15 -KPX ecircumflex ydieresis -15 -KPX edieresis comma 10 -KPX edieresis period 20 -KPX edieresis v -15 -KPX edieresis w -15 -KPX edieresis x -15 -KPX edieresis y -15 -KPX edieresis yacute -15 -KPX edieresis ydieresis -15 -KPX edotaccent comma 10 -KPX edotaccent period 20 -KPX edotaccent v -15 -KPX edotaccent w -15 -KPX edotaccent x -15 -KPX edotaccent y -15 -KPX edotaccent yacute -15 -KPX edotaccent ydieresis -15 -KPX egrave comma 10 -KPX egrave period 20 -KPX egrave v -15 -KPX egrave w -15 -KPX egrave x -15 -KPX egrave y -15 -KPX egrave yacute -15 -KPX egrave ydieresis -15 -KPX emacron comma 10 -KPX emacron period 20 -KPX emacron v -15 -KPX emacron w -15 -KPX emacron x -15 -KPX emacron y -15 -KPX emacron yacute -15 -KPX emacron ydieresis -15 -KPX eogonek comma 10 -KPX eogonek period 20 -KPX eogonek v -15 -KPX eogonek w -15 -KPX eogonek x -15 -KPX eogonek y -15 -KPX eogonek yacute -15 -KPX eogonek ydieresis -15 -KPX f comma -10 -KPX f e -10 -KPX f eacute -10 -KPX f ecaron -10 -KPX f ecircumflex -10 -KPX f edieresis -10 -KPX f edotaccent -10 -KPX f egrave -10 -KPX f emacron -10 -KPX f eogonek -10 -KPX f o -20 -KPX f oacute -20 -KPX f ocircumflex -20 -KPX f odieresis -20 -KPX f ograve -20 -KPX f ohungarumlaut -20 -KPX f omacron -20 -KPX f oslash -20 -KPX f otilde -20 -KPX f period -10 -KPX f quotedblright 30 -KPX f quoteright 30 -KPX g e 10 -KPX g eacute 10 -KPX g ecaron 10 -KPX g ecircumflex 10 -KPX g edieresis 10 -KPX g edotaccent 10 -KPX g egrave 10 -KPX g emacron 10 -KPX g eogonek 10 -KPX g g -10 -KPX g gbreve -10 -KPX g gcommaaccent -10 -KPX gbreve e 10 -KPX gbreve eacute 10 -KPX gbreve ecaron 10 -KPX gbreve ecircumflex 10 -KPX gbreve edieresis 10 -KPX gbreve edotaccent 10 -KPX gbreve egrave 10 -KPX gbreve emacron 10 -KPX gbreve eogonek 10 -KPX gbreve g -10 -KPX gbreve gbreve -10 -KPX gbreve gcommaaccent -10 -KPX gcommaaccent e 10 -KPX gcommaaccent eacute 10 -KPX gcommaaccent ecaron 10 -KPX gcommaaccent ecircumflex 10 -KPX gcommaaccent edieresis 10 -KPX gcommaaccent edotaccent 10 -KPX gcommaaccent egrave 10 -KPX gcommaaccent emacron 10 -KPX gcommaaccent eogonek 10 -KPX gcommaaccent g -10 -KPX gcommaaccent gbreve -10 -KPX gcommaaccent gcommaaccent -10 -KPX h y -20 -KPX h yacute -20 -KPX h ydieresis -20 -KPX k o -15 -KPX k oacute -15 -KPX k ocircumflex -15 -KPX k odieresis -15 -KPX k ograve -15 -KPX k ohungarumlaut -15 -KPX k omacron -15 -KPX k oslash -15 -KPX k otilde -15 -KPX kcommaaccent o -15 -KPX kcommaaccent oacute -15 -KPX kcommaaccent ocircumflex -15 -KPX kcommaaccent odieresis -15 -KPX kcommaaccent ograve -15 -KPX kcommaaccent ohungarumlaut -15 -KPX kcommaaccent omacron -15 -KPX kcommaaccent oslash -15 -KPX kcommaaccent otilde -15 -KPX l w -15 -KPX l y -15 -KPX l yacute -15 -KPX l ydieresis -15 -KPX lacute w -15 -KPX lacute y -15 -KPX lacute yacute -15 -KPX lacute ydieresis -15 -KPX lcommaaccent w -15 -KPX lcommaaccent y -15 -KPX lcommaaccent yacute -15 -KPX lcommaaccent ydieresis -15 -KPX lslash w -15 -KPX lslash y -15 -KPX lslash yacute -15 -KPX lslash ydieresis -15 -KPX m u -20 -KPX m uacute -20 -KPX m ucircumflex -20 -KPX m udieresis -20 -KPX m ugrave -20 -KPX m uhungarumlaut -20 -KPX m umacron -20 -KPX m uogonek -20 -KPX m uring -20 -KPX m y -30 -KPX m yacute -30 -KPX m ydieresis -30 -KPX n u -10 -KPX n uacute -10 -KPX n ucircumflex -10 -KPX n udieresis -10 -KPX n ugrave -10 -KPX n uhungarumlaut -10 -KPX n umacron -10 -KPX n uogonek -10 -KPX n uring -10 -KPX n v -40 -KPX n y -20 -KPX n yacute -20 -KPX n ydieresis -20 -KPX nacute u -10 -KPX nacute uacute -10 -KPX nacute ucircumflex -10 -KPX nacute udieresis -10 -KPX nacute ugrave -10 -KPX nacute uhungarumlaut -10 -KPX nacute umacron -10 -KPX nacute uogonek -10 -KPX nacute uring -10 -KPX nacute v -40 -KPX nacute y -20 -KPX nacute yacute -20 -KPX nacute ydieresis -20 -KPX ncaron u -10 -KPX ncaron uacute -10 -KPX ncaron ucircumflex -10 -KPX ncaron udieresis -10 -KPX ncaron ugrave -10 -KPX ncaron uhungarumlaut -10 -KPX ncaron umacron -10 -KPX ncaron uogonek -10 -KPX ncaron uring -10 -KPX ncaron v -40 -KPX ncaron y -20 -KPX ncaron yacute -20 -KPX ncaron ydieresis -20 -KPX ncommaaccent u -10 -KPX ncommaaccent uacute -10 -KPX ncommaaccent ucircumflex -10 -KPX ncommaaccent udieresis -10 -KPX ncommaaccent ugrave -10 -KPX ncommaaccent uhungarumlaut -10 -KPX ncommaaccent umacron -10 -KPX ncommaaccent uogonek -10 -KPX ncommaaccent uring -10 -KPX ncommaaccent v -40 -KPX ncommaaccent y -20 -KPX ncommaaccent yacute -20 -KPX ncommaaccent ydieresis -20 -KPX ntilde u -10 -KPX ntilde uacute -10 -KPX ntilde ucircumflex -10 -KPX ntilde udieresis -10 -KPX ntilde ugrave -10 -KPX ntilde uhungarumlaut -10 -KPX ntilde umacron -10 -KPX ntilde uogonek -10 -KPX ntilde uring -10 -KPX ntilde v -40 -KPX ntilde y -20 -KPX ntilde yacute -20 -KPX ntilde ydieresis -20 -KPX o v -20 -KPX o w -15 -KPX o x -30 -KPX o y -20 -KPX o yacute -20 -KPX o ydieresis -20 -KPX oacute v -20 -KPX oacute w -15 -KPX oacute x -30 -KPX oacute y -20 -KPX oacute yacute -20 -KPX oacute ydieresis -20 -KPX ocircumflex v -20 -KPX ocircumflex w -15 -KPX ocircumflex x -30 -KPX ocircumflex y -20 -KPX ocircumflex yacute -20 -KPX ocircumflex ydieresis -20 -KPX odieresis v -20 -KPX odieresis w -15 -KPX odieresis x -30 -KPX odieresis y -20 -KPX odieresis yacute -20 -KPX odieresis ydieresis -20 -KPX ograve v -20 -KPX ograve w -15 -KPX ograve x -30 -KPX ograve y -20 -KPX ograve yacute -20 -KPX ograve ydieresis -20 -KPX ohungarumlaut v -20 -KPX ohungarumlaut w -15 -KPX ohungarumlaut x -30 -KPX ohungarumlaut y -20 -KPX ohungarumlaut yacute -20 -KPX ohungarumlaut ydieresis -20 -KPX omacron v -20 -KPX omacron w -15 -KPX omacron x -30 -KPX omacron y -20 -KPX omacron yacute -20 -KPX omacron ydieresis -20 -KPX oslash v -20 -KPX oslash w -15 -KPX oslash x -30 -KPX oslash y -20 -KPX oslash yacute -20 -KPX oslash ydieresis -20 -KPX otilde v -20 -KPX otilde w -15 -KPX otilde x -30 -KPX otilde y -20 -KPX otilde yacute -20 -KPX otilde ydieresis -20 -KPX p y -15 -KPX p yacute -15 -KPX p ydieresis -15 -KPX period quotedblright -120 -KPX period quoteright -120 -KPX period space -40 -KPX quotedblright space -80 -KPX quoteleft quoteleft -46 -KPX quoteright d -80 -KPX quoteright dcroat -80 -KPX quoteright l -20 -KPX quoteright lacute -20 -KPX quoteright lcommaaccent -20 -KPX quoteright lslash -20 -KPX quoteright quoteright -46 -KPX quoteright r -40 -KPX quoteright racute -40 -KPX quoteright rcaron -40 -KPX quoteright rcommaaccent -40 -KPX quoteright s -60 -KPX quoteright sacute -60 -KPX quoteright scaron -60 -KPX quoteright scedilla -60 -KPX quoteright scommaaccent -60 -KPX quoteright space -80 -KPX quoteright v -20 -KPX r c -20 -KPX r cacute -20 -KPX r ccaron -20 -KPX r ccedilla -20 -KPX r comma -60 -KPX r d -20 -KPX r dcroat -20 -KPX r g -15 -KPX r gbreve -15 -KPX r gcommaaccent -15 -KPX r hyphen -20 -KPX r o -20 -KPX r oacute -20 -KPX r ocircumflex -20 -KPX r odieresis -20 -KPX r ograve -20 -KPX r ohungarumlaut -20 -KPX r omacron -20 -KPX r oslash -20 -KPX r otilde -20 -KPX r period -60 -KPX r q -20 -KPX r s -15 -KPX r sacute -15 -KPX r scaron -15 -KPX r scedilla -15 -KPX r scommaaccent -15 -KPX r t 20 -KPX r tcommaaccent 20 -KPX r v 10 -KPX r y 10 -KPX r yacute 10 -KPX r ydieresis 10 -KPX racute c -20 -KPX racute cacute -20 -KPX racute ccaron -20 -KPX racute ccedilla -20 -KPX racute comma -60 -KPX racute d -20 -KPX racute dcroat -20 -KPX racute g -15 -KPX racute gbreve -15 -KPX racute gcommaaccent -15 -KPX racute hyphen -20 -KPX racute o -20 -KPX racute oacute -20 -KPX racute ocircumflex -20 -KPX racute odieresis -20 -KPX racute ograve -20 -KPX racute ohungarumlaut -20 -KPX racute omacron -20 -KPX racute oslash -20 -KPX racute otilde -20 -KPX racute period -60 -KPX racute q -20 -KPX racute s -15 -KPX racute sacute -15 -KPX racute scaron -15 -KPX racute scedilla -15 -KPX racute scommaaccent -15 -KPX racute t 20 -KPX racute tcommaaccent 20 -KPX racute v 10 -KPX racute y 10 -KPX racute yacute 10 -KPX racute ydieresis 10 -KPX rcaron c -20 -KPX rcaron cacute -20 -KPX rcaron ccaron -20 -KPX rcaron ccedilla -20 -KPX rcaron comma -60 -KPX rcaron d -20 -KPX rcaron dcroat -20 -KPX rcaron g -15 -KPX rcaron gbreve -15 -KPX rcaron gcommaaccent -15 -KPX rcaron hyphen -20 -KPX rcaron o -20 -KPX rcaron oacute -20 -KPX rcaron ocircumflex -20 -KPX rcaron odieresis -20 -KPX rcaron ograve -20 -KPX rcaron ohungarumlaut -20 -KPX rcaron omacron -20 -KPX rcaron oslash -20 -KPX rcaron otilde -20 -KPX rcaron period -60 -KPX rcaron q -20 -KPX rcaron s -15 -KPX rcaron sacute -15 -KPX rcaron scaron -15 -KPX rcaron scedilla -15 -KPX rcaron scommaaccent -15 -KPX rcaron t 20 -KPX rcaron tcommaaccent 20 -KPX rcaron v 10 -KPX rcaron y 10 -KPX rcaron yacute 10 -KPX rcaron ydieresis 10 -KPX rcommaaccent c -20 -KPX rcommaaccent cacute -20 -KPX rcommaaccent ccaron -20 -KPX rcommaaccent ccedilla -20 -KPX rcommaaccent comma -60 -KPX rcommaaccent d -20 -KPX rcommaaccent dcroat -20 -KPX rcommaaccent g -15 -KPX rcommaaccent gbreve -15 -KPX rcommaaccent gcommaaccent -15 -KPX rcommaaccent hyphen -20 -KPX rcommaaccent o -20 -KPX rcommaaccent oacute -20 -KPX rcommaaccent ocircumflex -20 -KPX rcommaaccent odieresis -20 -KPX rcommaaccent ograve -20 -KPX rcommaaccent ohungarumlaut -20 -KPX rcommaaccent omacron -20 -KPX rcommaaccent oslash -20 -KPX rcommaaccent otilde -20 -KPX rcommaaccent period -60 -KPX rcommaaccent q -20 -KPX rcommaaccent s -15 -KPX rcommaaccent sacute -15 -KPX rcommaaccent scaron -15 -KPX rcommaaccent scedilla -15 -KPX rcommaaccent scommaaccent -15 -KPX rcommaaccent t 20 -KPX rcommaaccent tcommaaccent 20 -KPX rcommaaccent v 10 -KPX rcommaaccent y 10 -KPX rcommaaccent yacute 10 -KPX rcommaaccent ydieresis 10 -KPX s w -15 -KPX sacute w -15 -KPX scaron w -15 -KPX scedilla w -15 -KPX scommaaccent w -15 -KPX semicolon space -40 -KPX space T -100 -KPX space Tcaron -100 -KPX space Tcommaaccent -100 -KPX space V -80 -KPX space W -80 -KPX space Y -120 -KPX space Yacute -120 -KPX space Ydieresis -120 -KPX space quotedblleft -80 -KPX space quoteleft -60 -KPX v a -20 -KPX v aacute -20 -KPX v abreve -20 -KPX v acircumflex -20 -KPX v adieresis -20 -KPX v agrave -20 -KPX v amacron -20 -KPX v aogonek -20 -KPX v aring -20 -KPX v atilde -20 -KPX v comma -80 -KPX v o -30 -KPX v oacute -30 -KPX v ocircumflex -30 -KPX v odieresis -30 -KPX v ograve -30 -KPX v ohungarumlaut -30 -KPX v omacron -30 -KPX v oslash -30 -KPX v otilde -30 -KPX v period -80 -KPX w comma -40 -KPX w o -20 -KPX w oacute -20 -KPX w ocircumflex -20 -KPX w odieresis -20 -KPX w ograve -20 -KPX w ohungarumlaut -20 -KPX w omacron -20 -KPX w oslash -20 -KPX w otilde -20 -KPX w period -40 -KPX x e -10 -KPX x eacute -10 -KPX x ecaron -10 -KPX x ecircumflex -10 -KPX x edieresis -10 -KPX x edotaccent -10 -KPX x egrave -10 -KPX x emacron -10 -KPX x eogonek -10 -KPX y a -30 -KPX y aacute -30 -KPX y abreve -30 -KPX y acircumflex -30 -KPX y adieresis -30 -KPX y agrave -30 -KPX y amacron -30 -KPX y aogonek -30 -KPX y aring -30 -KPX y atilde -30 -KPX y comma -80 -KPX y e -10 -KPX y eacute -10 -KPX y ecaron -10 -KPX y ecircumflex -10 -KPX y edieresis -10 -KPX y edotaccent -10 -KPX y egrave -10 -KPX y emacron -10 -KPX y eogonek -10 -KPX y o -25 -KPX y oacute -25 -KPX y ocircumflex -25 -KPX y odieresis -25 -KPX y ograve -25 -KPX y ohungarumlaut -25 -KPX y omacron -25 -KPX y oslash -25 -KPX y otilde -25 -KPX y period -80 -KPX yacute a -30 -KPX yacute aacute -30 -KPX yacute abreve -30 -KPX yacute acircumflex -30 -KPX yacute adieresis -30 -KPX yacute agrave -30 -KPX yacute amacron -30 -KPX yacute aogonek -30 -KPX yacute aring -30 -KPX yacute atilde -30 -KPX yacute comma -80 -KPX yacute e -10 -KPX yacute eacute -10 -KPX yacute ecaron -10 -KPX yacute ecircumflex -10 -KPX yacute edieresis -10 -KPX yacute edotaccent -10 -KPX yacute egrave -10 -KPX yacute emacron -10 -KPX yacute eogonek -10 -KPX yacute o -25 -KPX yacute oacute -25 -KPX yacute ocircumflex -25 -KPX yacute odieresis -25 -KPX yacute ograve -25 -KPX yacute ohungarumlaut -25 -KPX yacute omacron -25 -KPX yacute oslash -25 -KPX yacute otilde -25 -KPX yacute period -80 -KPX ydieresis a -30 -KPX ydieresis aacute -30 -KPX ydieresis abreve -30 -KPX ydieresis acircumflex -30 -KPX ydieresis adieresis -30 -KPX ydieresis agrave -30 -KPX ydieresis amacron -30 -KPX ydieresis aogonek -30 -KPX ydieresis aring -30 -KPX ydieresis atilde -30 -KPX ydieresis comma -80 -KPX ydieresis e -10 -KPX ydieresis eacute -10 -KPX ydieresis ecaron -10 -KPX ydieresis ecircumflex -10 -KPX ydieresis edieresis -10 -KPX ydieresis edotaccent -10 -KPX ydieresis egrave -10 -KPX ydieresis emacron -10 -KPX ydieresis eogonek -10 -KPX ydieresis o -25 -KPX ydieresis oacute -25 -KPX ydieresis ocircumflex -25 -KPX ydieresis odieresis -25 -KPX ydieresis ograve -25 -KPX ydieresis ohungarumlaut -25 -KPX ydieresis omacron -25 -KPX ydieresis oslash -25 -KPX ydieresis otilde -25 -KPX ydieresis period -80 -KPX z e 10 -KPX z eacute 10 -KPX z ecaron 10 -KPX z ecircumflex 10 -KPX z edieresis 10 -KPX z edotaccent 10 -KPX z egrave 10 -KPX z emacron 10 -KPX z eogonek 10 -KPX zacute e 10 -KPX zacute eacute 10 -KPX zacute ecaron 10 -KPX zacute ecircumflex 10 -KPX zacute edieresis 10 -KPX zacute edotaccent 10 -KPX zacute egrave 10 -KPX zacute emacron 10 -KPX zacute eogonek 10 -KPX zcaron e 10 -KPX zcaron eacute 10 -KPX zcaron ecaron 10 -KPX zcaron ecircumflex 10 -KPX zcaron edieresis 10 -KPX zcaron edotaccent 10 -KPX zcaron egrave 10 -KPX zcaron emacron 10 -KPX zcaron eogonek 10 -KPX zdotaccent e 10 -KPX zdotaccent eacute 10 -KPX zdotaccent ecaron 10 -KPX zdotaccent ecircumflex 10 -KPX zdotaccent edieresis 10 -KPX zdotaccent edotaccent 10 -KPX zdotaccent egrave 10 -KPX zdotaccent emacron 10 -KPX zdotaccent eogonek 10 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/reporting/fonts/Helvetica-BoldOblique.afm b/reporting/fonts/Helvetica-BoldOblique.afm deleted file mode 100644 index 1715b210..00000000 --- a/reporting/fonts/Helvetica-BoldOblique.afm +++ /dev/null @@ -1,2827 +0,0 @@ -StartFontMetrics 4.1 -Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date: Thu May 1 12:45:12 1997 -Comment UniqueID 43053 -Comment VMusage 14482 68586 -FontName Helvetica-BoldOblique -FullName Helvetica Bold Oblique -FamilyName Helvetica -Weight Bold -ItalicAngle -12 -IsFixedPitch false -CharacterSet ExtendedRoman -FontBBox -174 -228 1114 962 -UnderlinePosition -100 -UnderlineThickness 50 -Version 002.000 -Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. -EncodingScheme AdobeStandardEncoding -CapHeight 718 -XHeight 532 -Ascender 718 -Descender -207 -StdHW 118 -StdVW 140 -StartCharMetrics 315 -C 32 ; WX 278 ; N space ; B 0 0 0 0 ; -C 33 ; WX 333 ; N exclam ; B 94 0 397 718 ; -C 34 ; WX 474 ; N quotedbl ; B 193 447 529 718 ; -C 35 ; WX 556 ; N numbersign ; B 60 0 644 698 ; -C 36 ; WX 556 ; N dollar ; B 67 -115 622 775 ; -C 37 ; WX 889 ; N percent ; B 136 -19 901 710 ; -C 38 ; WX 722 ; N ampersand ; B 89 -19 732 718 ; -C 39 ; WX 278 ; N quoteright ; B 167 445 362 718 ; -C 40 ; WX 333 ; N parenleft ; B 76 -208 470 734 ; -C 41 ; WX 333 ; N parenright ; B -25 -208 369 734 ; -C 42 ; WX 389 ; N asterisk ; B 146 387 481 718 ; -C 43 ; WX 584 ; N plus ; B 82 0 610 506 ; -C 44 ; WX 278 ; N comma ; B 28 -168 245 146 ; -C 45 ; WX 333 ; N hyphen ; B 73 215 379 345 ; -C 46 ; WX 278 ; N period ; B 64 0 245 146 ; -C 47 ; WX 278 ; N slash ; B -37 -19 468 737 ; -C 48 ; WX 556 ; N zero ; B 86 -19 617 710 ; -C 49 ; WX 556 ; N one ; B 173 0 529 710 ; -C 50 ; WX 556 ; N two ; B 26 0 619 710 ; -C 51 ; WX 556 ; N three ; B 65 -19 608 710 ; -C 52 ; WX 556 ; N four ; B 60 0 598 710 ; -C 53 ; WX 556 ; N five ; B 64 -19 636 698 ; -C 54 ; WX 556 ; N six ; B 85 -19 619 710 ; -C 55 ; WX 556 ; N seven ; B 125 0 676 698 ; -C 56 ; WX 556 ; N eight ; B 69 -19 616 710 ; -C 57 ; WX 556 ; N nine ; B 78 -19 615 710 ; -C 58 ; WX 333 ; N colon ; B 92 0 351 512 ; -C 59 ; WX 333 ; N semicolon ; B 56 -168 351 512 ; -C 60 ; WX 584 ; N less ; B 82 -8 655 514 ; -C 61 ; WX 584 ; N equal ; B 58 87 633 419 ; -C 62 ; WX 584 ; N greater ; B 36 -8 609 514 ; -C 63 ; WX 611 ; N question ; B 165 0 671 727 ; -C 64 ; WX 975 ; N at ; B 186 -19 954 737 ; -C 65 ; WX 722 ; N A ; B 20 0 702 718 ; -C 66 ; WX 722 ; N B ; B 76 0 764 718 ; -C 67 ; WX 722 ; N C ; B 107 -19 789 737 ; -C 68 ; WX 722 ; N D ; B 76 0 777 718 ; -C 69 ; WX 667 ; N E ; B 76 0 757 718 ; -C 70 ; WX 611 ; N F ; B 76 0 740 718 ; -C 71 ; WX 778 ; N G ; B 108 -19 817 737 ; -C 72 ; WX 722 ; N H ; B 71 0 804 718 ; -C 73 ; WX 278 ; N I ; B 64 0 367 718 ; -C 74 ; WX 556 ; N J ; B 60 -18 637 718 ; -C 75 ; WX 722 ; N K ; B 87 0 858 718 ; -C 76 ; WX 611 ; N L ; B 76 0 611 718 ; -C 77 ; WX 833 ; N M ; B 69 0 918 718 ; -C 78 ; WX 722 ; N N ; B 69 0 807 718 ; -C 79 ; WX 778 ; N O ; B 107 -19 823 737 ; -C 80 ; WX 667 ; N P ; B 76 0 738 718 ; -C 81 ; WX 778 ; N Q ; B 107 -52 823 737 ; -C 82 ; WX 722 ; N R ; B 76 0 778 718 ; -C 83 ; WX 667 ; N S ; B 81 -19 718 737 ; -C 84 ; WX 611 ; N T ; B 140 0 751 718 ; -C 85 ; WX 722 ; N U ; B 116 -19 804 718 ; -C 86 ; WX 667 ; N V ; B 172 0 801 718 ; -C 87 ; WX 944 ; N W ; B 169 0 1082 718 ; -C 88 ; WX 667 ; N X ; B 14 0 791 718 ; -C 89 ; WX 667 ; N Y ; B 168 0 806 718 ; -C 90 ; WX 611 ; N Z ; B 25 0 737 718 ; -C 91 ; WX 333 ; N bracketleft ; B 21 -196 462 722 ; -C 92 ; WX 278 ; N backslash ; B 124 -19 307 737 ; -C 93 ; WX 333 ; N bracketright ; B -18 -196 423 722 ; -C 94 ; WX 584 ; N asciicircum ; B 131 323 591 698 ; -C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; -C 96 ; WX 278 ; N quoteleft ; B 165 454 361 727 ; -C 97 ; WX 556 ; N a ; B 55 -14 583 546 ; -C 98 ; WX 611 ; N b ; B 61 -14 645 718 ; -C 99 ; WX 556 ; N c ; B 79 -14 599 546 ; -C 100 ; WX 611 ; N d ; B 82 -14 704 718 ; -C 101 ; WX 556 ; N e ; B 70 -14 593 546 ; -C 102 ; WX 333 ; N f ; B 87 0 469 727 ; L i fi ; L l fl ; -C 103 ; WX 611 ; N g ; B 38 -217 666 546 ; -C 104 ; WX 611 ; N h ; B 65 0 629 718 ; -C 105 ; WX 278 ; N i ; B 69 0 363 725 ; -C 106 ; WX 278 ; N j ; B -42 -214 363 725 ; -C 107 ; WX 556 ; N k ; B 69 0 670 718 ; -C 108 ; WX 278 ; N l ; B 69 0 362 718 ; -C 109 ; WX 889 ; N m ; B 64 0 909 546 ; -C 110 ; WX 611 ; N n ; B 65 0 629 546 ; -C 111 ; WX 611 ; N o ; B 82 -14 643 546 ; -C 112 ; WX 611 ; N p ; B 18 -207 645 546 ; -C 113 ; WX 611 ; N q ; B 80 -207 665 546 ; -C 114 ; WX 389 ; N r ; B 64 0 489 546 ; -C 115 ; WX 556 ; N s ; B 63 -14 584 546 ; -C 116 ; WX 333 ; N t ; B 100 -6 422 676 ; -C 117 ; WX 611 ; N u ; B 98 -14 658 532 ; -C 118 ; WX 556 ; N v ; B 126 0 656 532 ; -C 119 ; WX 778 ; N w ; B 123 0 882 532 ; -C 120 ; WX 556 ; N x ; B 15 0 648 532 ; -C 121 ; WX 556 ; N y ; B 42 -214 652 532 ; -C 122 ; WX 500 ; N z ; B 20 0 583 532 ; -C 123 ; WX 389 ; N braceleft ; B 94 -196 518 722 ; -C 124 ; WX 280 ; N bar ; B 36 -225 361 775 ; -C 125 ; WX 389 ; N braceright ; B -18 -196 407 722 ; -C 126 ; WX 584 ; N asciitilde ; B 115 163 577 343 ; -C 161 ; WX 333 ; N exclamdown ; B 50 -186 353 532 ; -C 162 ; WX 556 ; N cent ; B 79 -118 599 628 ; -C 163 ; WX 556 ; N sterling ; B 50 -16 635 718 ; -C 164 ; WX 167 ; N fraction ; B -174 -19 487 710 ; -C 165 ; WX 556 ; N yen ; B 60 0 713 698 ; -C 166 ; WX 556 ; N florin ; B -50 -210 669 737 ; -C 167 ; WX 556 ; N section ; B 61 -184 598 727 ; -C 168 ; WX 556 ; N currency ; B 27 76 680 636 ; -C 169 ; WX 238 ; N quotesingle ; B 165 447 321 718 ; -C 170 ; WX 500 ; N quotedblleft ; B 160 454 588 727 ; -C 171 ; WX 556 ; N guillemotleft ; B 135 76 571 484 ; -C 172 ; WX 333 ; N guilsinglleft ; B 130 76 353 484 ; -C 173 ; WX 333 ; N guilsinglright ; B 99 76 322 484 ; -C 174 ; WX 611 ; N fi ; B 87 0 696 727 ; -C 175 ; WX 611 ; N fl ; B 87 0 695 727 ; -C 177 ; WX 556 ; N endash ; B 48 227 627 333 ; -C 178 ; WX 556 ; N dagger ; B 118 -171 626 718 ; -C 179 ; WX 556 ; N daggerdbl ; B 46 -171 628 718 ; -C 180 ; WX 278 ; N periodcentered ; B 110 172 276 334 ; -C 182 ; WX 556 ; N paragraph ; B 98 -191 688 700 ; -C 183 ; WX 350 ; N bullet ; B 83 194 420 524 ; -C 184 ; WX 278 ; N quotesinglbase ; B 41 -146 236 127 ; -C 185 ; WX 500 ; N quotedblbase ; B 36 -146 463 127 ; -C 186 ; WX 500 ; N quotedblright ; B 162 445 589 718 ; -C 187 ; WX 556 ; N guillemotright ; B 104 76 540 484 ; -C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; -C 189 ; WX 1000 ; N perthousand ; B 76 -19 1038 710 ; -C 191 ; WX 611 ; N questiondown ; B 53 -195 559 532 ; -C 193 ; WX 333 ; N grave ; B 136 604 353 750 ; -C 194 ; WX 333 ; N acute ; B 236 604 515 750 ; -C 195 ; WX 333 ; N circumflex ; B 118 604 471 750 ; -C 196 ; WX 333 ; N tilde ; B 113 610 507 737 ; -C 197 ; WX 333 ; N macron ; B 122 604 483 678 ; -C 198 ; WX 333 ; N breve ; B 156 604 494 750 ; -C 199 ; WX 333 ; N dotaccent ; B 235 614 385 729 ; -C 200 ; WX 333 ; N dieresis ; B 137 614 482 729 ; -C 202 ; WX 333 ; N ring ; B 200 568 420 776 ; -C 203 ; WX 333 ; N cedilla ; B -37 -228 220 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B 137 604 645 750 ; -C 206 ; WX 333 ; N ogonek ; B 41 -228 264 0 ; -C 207 ; WX 333 ; N caron ; B 149 604 502 750 ; -C 208 ; WX 1000 ; N emdash ; B 48 227 1071 333 ; -C 225 ; WX 1000 ; N AE ; B 5 0 1100 718 ; -C 227 ; WX 370 ; N ordfeminine ; B 125 401 465 737 ; -C 232 ; WX 611 ; N Lslash ; B 34 0 611 718 ; -C 233 ; WX 778 ; N Oslash ; B 35 -27 894 745 ; -C 234 ; WX 1000 ; N OE ; B 99 -19 1114 737 ; -C 235 ; WX 365 ; N ordmasculine ; B 123 401 485 737 ; -C 241 ; WX 889 ; N ae ; B 56 -14 923 546 ; -C 245 ; WX 278 ; N dotlessi ; B 69 0 322 532 ; -C 248 ; WX 278 ; N lslash ; B 40 0 407 718 ; -C 249 ; WX 611 ; N oslash ; B 22 -29 701 560 ; -C 250 ; WX 944 ; N oe ; B 82 -14 977 546 ; -C 251 ; WX 611 ; N germandbls ; B 69 -14 657 731 ; -C -1 ; WX 278 ; N Idieresis ; B 64 0 494 915 ; -C -1 ; WX 556 ; N eacute ; B 70 -14 627 750 ; -C -1 ; WX 556 ; N abreve ; B 55 -14 606 750 ; -C -1 ; WX 611 ; N uhungarumlaut ; B 98 -14 784 750 ; -C -1 ; WX 556 ; N ecaron ; B 70 -14 614 750 ; -C -1 ; WX 667 ; N Ydieresis ; B 168 0 806 915 ; -C -1 ; WX 584 ; N divide ; B 82 -42 610 548 ; -C -1 ; WX 667 ; N Yacute ; B 168 0 806 936 ; -C -1 ; WX 722 ; N Acircumflex ; B 20 0 706 936 ; -C -1 ; WX 556 ; N aacute ; B 55 -14 627 750 ; -C -1 ; WX 722 ; N Ucircumflex ; B 116 -19 804 936 ; -C -1 ; WX 556 ; N yacute ; B 42 -214 652 750 ; -C -1 ; WX 556 ; N scommaaccent ; B 63 -228 584 546 ; -C -1 ; WX 556 ; N ecircumflex ; B 70 -14 593 750 ; -C -1 ; WX 722 ; N Uring ; B 116 -19 804 962 ; -C -1 ; WX 722 ; N Udieresis ; B 116 -19 804 915 ; -C -1 ; WX 556 ; N aogonek ; B 55 -224 583 546 ; -C -1 ; WX 722 ; N Uacute ; B 116 -19 804 936 ; -C -1 ; WX 611 ; N uogonek ; B 98 -228 658 532 ; -C -1 ; WX 667 ; N Edieresis ; B 76 0 757 915 ; -C -1 ; WX 722 ; N Dcroat ; B 62 0 777 718 ; -C -1 ; WX 250 ; N commaaccent ; B 16 -228 188 -50 ; -C -1 ; WX 737 ; N copyright ; B 56 -19 835 737 ; -C -1 ; WX 667 ; N Emacron ; B 76 0 757 864 ; -C -1 ; WX 556 ; N ccaron ; B 79 -14 614 750 ; -C -1 ; WX 556 ; N aring ; B 55 -14 583 776 ; -C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 807 718 ; -C -1 ; WX 278 ; N lacute ; B 69 0 528 936 ; -C -1 ; WX 556 ; N agrave ; B 55 -14 583 750 ; -C -1 ; WX 611 ; N Tcommaaccent ; B 140 -228 751 718 ; -C -1 ; WX 722 ; N Cacute ; B 107 -19 789 936 ; -C -1 ; WX 556 ; N atilde ; B 55 -14 619 737 ; -C -1 ; WX 667 ; N Edotaccent ; B 76 0 757 915 ; -C -1 ; WX 556 ; N scaron ; B 63 -14 614 750 ; -C -1 ; WX 556 ; N scedilla ; B 63 -228 584 546 ; -C -1 ; WX 278 ; N iacute ; B 69 0 488 750 ; -C -1 ; WX 494 ; N lozenge ; B 90 0 564 745 ; -C -1 ; WX 722 ; N Rcaron ; B 76 0 778 936 ; -C -1 ; WX 778 ; N Gcommaaccent ; B 108 -228 817 737 ; -C -1 ; WX 611 ; N ucircumflex ; B 98 -14 658 750 ; -C -1 ; WX 556 ; N acircumflex ; B 55 -14 583 750 ; -C -1 ; WX 722 ; N Amacron ; B 20 0 718 864 ; -C -1 ; WX 389 ; N rcaron ; B 64 0 530 750 ; -C -1 ; WX 556 ; N ccedilla ; B 79 -228 599 546 ; -C -1 ; WX 611 ; N Zdotaccent ; B 25 0 737 915 ; -C -1 ; WX 667 ; N Thorn ; B 76 0 716 718 ; -C -1 ; WX 778 ; N Omacron ; B 107 -19 823 864 ; -C -1 ; WX 722 ; N Racute ; B 76 0 778 936 ; -C -1 ; WX 667 ; N Sacute ; B 81 -19 722 936 ; -C -1 ; WX 743 ; N dcaron ; B 82 -14 903 718 ; -C -1 ; WX 722 ; N Umacron ; B 116 -19 804 864 ; -C -1 ; WX 611 ; N uring ; B 98 -14 658 776 ; -C -1 ; WX 333 ; N threesuperior ; B 91 271 441 710 ; -C -1 ; WX 778 ; N Ograve ; B 107 -19 823 936 ; -C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; -C -1 ; WX 722 ; N Abreve ; B 20 0 729 936 ; -C -1 ; WX 584 ; N multiply ; B 57 1 635 505 ; -C -1 ; WX 611 ; N uacute ; B 98 -14 658 750 ; -C -1 ; WX 611 ; N Tcaron ; B 140 0 751 936 ; -C -1 ; WX 494 ; N partialdiff ; B 43 -21 585 750 ; -C -1 ; WX 556 ; N ydieresis ; B 42 -214 652 729 ; -C -1 ; WX 722 ; N Nacute ; B 69 0 807 936 ; -C -1 ; WX 278 ; N icircumflex ; B 69 0 444 750 ; -C -1 ; WX 667 ; N Ecircumflex ; B 76 0 757 936 ; -C -1 ; WX 556 ; N adieresis ; B 55 -14 594 729 ; -C -1 ; WX 556 ; N edieresis ; B 70 -14 594 729 ; -C -1 ; WX 556 ; N cacute ; B 79 -14 627 750 ; -C -1 ; WX 611 ; N nacute ; B 65 0 654 750 ; -C -1 ; WX 611 ; N umacron ; B 98 -14 658 678 ; -C -1 ; WX 722 ; N Ncaron ; B 69 0 807 936 ; -C -1 ; WX 278 ; N Iacute ; B 64 0 528 936 ; -C -1 ; WX 584 ; N plusminus ; B 40 0 625 506 ; -C -1 ; WX 280 ; N brokenbar ; B 52 -150 345 700 ; -C -1 ; WX 737 ; N registered ; B 55 -19 834 737 ; -C -1 ; WX 778 ; N Gbreve ; B 108 -19 817 936 ; -C -1 ; WX 278 ; N Idotaccent ; B 64 0 397 915 ; -C -1 ; WX 600 ; N summation ; B 14 -10 670 706 ; -C -1 ; WX 667 ; N Egrave ; B 76 0 757 936 ; -C -1 ; WX 389 ; N racute ; B 64 0 543 750 ; -C -1 ; WX 611 ; N omacron ; B 82 -14 643 678 ; -C -1 ; WX 611 ; N Zacute ; B 25 0 737 936 ; -C -1 ; WX 611 ; N Zcaron ; B 25 0 737 936 ; -C -1 ; WX 549 ; N greaterequal ; B 26 0 629 704 ; -C -1 ; WX 722 ; N Eth ; B 62 0 777 718 ; -C -1 ; WX 722 ; N Ccedilla ; B 107 -228 789 737 ; -C -1 ; WX 278 ; N lcommaaccent ; B 30 -228 362 718 ; -C -1 ; WX 389 ; N tcaron ; B 100 -6 608 878 ; -C -1 ; WX 556 ; N eogonek ; B 70 -228 593 546 ; -C -1 ; WX 722 ; N Uogonek ; B 116 -228 804 718 ; -C -1 ; WX 722 ; N Aacute ; B 20 0 750 936 ; -C -1 ; WX 722 ; N Adieresis ; B 20 0 716 915 ; -C -1 ; WX 556 ; N egrave ; B 70 -14 593 750 ; -C -1 ; WX 500 ; N zacute ; B 20 0 599 750 ; -C -1 ; WX 278 ; N iogonek ; B -14 -224 363 725 ; -C -1 ; WX 778 ; N Oacute ; B 107 -19 823 936 ; -C -1 ; WX 611 ; N oacute ; B 82 -14 654 750 ; -C -1 ; WX 556 ; N amacron ; B 55 -14 595 678 ; -C -1 ; WX 556 ; N sacute ; B 63 -14 627 750 ; -C -1 ; WX 278 ; N idieresis ; B 69 0 455 729 ; -C -1 ; WX 778 ; N Ocircumflex ; B 107 -19 823 936 ; -C -1 ; WX 722 ; N Ugrave ; B 116 -19 804 936 ; -C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; -C -1 ; WX 611 ; N thorn ; B 18 -208 645 718 ; -C -1 ; WX 333 ; N twosuperior ; B 69 283 449 710 ; -C -1 ; WX 778 ; N Odieresis ; B 107 -19 823 915 ; -C -1 ; WX 611 ; N mu ; B 22 -207 658 532 ; -C -1 ; WX 278 ; N igrave ; B 69 0 326 750 ; -C -1 ; WX 611 ; N ohungarumlaut ; B 82 -14 784 750 ; -C -1 ; WX 667 ; N Eogonek ; B 76 -224 757 718 ; -C -1 ; WX 611 ; N dcroat ; B 82 -14 789 718 ; -C -1 ; WX 834 ; N threequarters ; B 99 -19 839 710 ; -C -1 ; WX 667 ; N Scedilla ; B 81 -228 718 737 ; -C -1 ; WX 400 ; N lcaron ; B 69 0 561 718 ; -C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 858 718 ; -C -1 ; WX 611 ; N Lacute ; B 76 0 611 936 ; -C -1 ; WX 1000 ; N trademark ; B 179 306 1109 718 ; -C -1 ; WX 556 ; N edotaccent ; B 70 -14 593 729 ; -C -1 ; WX 278 ; N Igrave ; B 64 0 367 936 ; -C -1 ; WX 278 ; N Imacron ; B 64 0 496 864 ; -C -1 ; WX 611 ; N Lcaron ; B 76 0 643 718 ; -C -1 ; WX 834 ; N onehalf ; B 132 -19 858 710 ; -C -1 ; WX 549 ; N lessequal ; B 29 0 676 704 ; -C -1 ; WX 611 ; N ocircumflex ; B 82 -14 643 750 ; -C -1 ; WX 611 ; N ntilde ; B 65 0 646 737 ; -C -1 ; WX 722 ; N Uhungarumlaut ; B 116 -19 880 936 ; -C -1 ; WX 667 ; N Eacute ; B 76 0 757 936 ; -C -1 ; WX 556 ; N emacron ; B 70 -14 595 678 ; -C -1 ; WX 611 ; N gbreve ; B 38 -217 666 750 ; -C -1 ; WX 834 ; N onequarter ; B 132 -19 806 710 ; -C -1 ; WX 667 ; N Scaron ; B 81 -19 718 936 ; -C -1 ; WX 667 ; N Scommaaccent ; B 81 -228 718 737 ; -C -1 ; WX 778 ; N Ohungarumlaut ; B 107 -19 908 936 ; -C -1 ; WX 400 ; N degree ; B 175 426 467 712 ; -C -1 ; WX 611 ; N ograve ; B 82 -14 643 750 ; -C -1 ; WX 722 ; N Ccaron ; B 107 -19 789 936 ; -C -1 ; WX 611 ; N ugrave ; B 98 -14 658 750 ; -C -1 ; WX 549 ; N radical ; B 112 -46 689 850 ; -C -1 ; WX 722 ; N Dcaron ; B 76 0 777 936 ; -C -1 ; WX 389 ; N rcommaaccent ; B 26 -228 489 546 ; -C -1 ; WX 722 ; N Ntilde ; B 69 0 807 923 ; -C -1 ; WX 611 ; N otilde ; B 82 -14 646 737 ; -C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 778 718 ; -C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 611 718 ; -C -1 ; WX 722 ; N Atilde ; B 20 0 741 923 ; -C -1 ; WX 722 ; N Aogonek ; B 20 -224 702 718 ; -C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; -C -1 ; WX 778 ; N Otilde ; B 107 -19 823 923 ; -C -1 ; WX 500 ; N zdotaccent ; B 20 0 583 729 ; -C -1 ; WX 667 ; N Ecaron ; B 76 0 757 936 ; -C -1 ; WX 278 ; N Iogonek ; B -41 -228 367 718 ; -C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 670 718 ; -C -1 ; WX 584 ; N minus ; B 82 197 610 309 ; -C -1 ; WX 278 ; N Icircumflex ; B 64 0 484 936 ; -C -1 ; WX 611 ; N ncaron ; B 65 0 641 750 ; -C -1 ; WX 333 ; N tcommaaccent ; B 58 -228 422 676 ; -C -1 ; WX 584 ; N logicalnot ; B 105 108 633 419 ; -C -1 ; WX 611 ; N odieresis ; B 82 -14 643 729 ; -C -1 ; WX 611 ; N udieresis ; B 98 -14 658 729 ; -C -1 ; WX 549 ; N notequal ; B 32 -49 630 570 ; -C -1 ; WX 611 ; N gcommaaccent ; B 38 -217 666 850 ; -C -1 ; WX 611 ; N eth ; B 82 -14 670 737 ; -C -1 ; WX 500 ; N zcaron ; B 20 0 586 750 ; -C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 629 546 ; -C -1 ; WX 333 ; N onesuperior ; B 148 283 388 710 ; -C -1 ; WX 278 ; N imacron ; B 69 0 429 678 ; -C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; -EndCharMetrics -StartKernData -StartKernPairs 2481 -KPX A C -40 -KPX A Cacute -40 -KPX A Ccaron -40 -KPX A Ccedilla -40 -KPX A G -50 -KPX A Gbreve -50 -KPX A Gcommaaccent -50 -KPX A O -40 -KPX A Oacute -40 -KPX A Ocircumflex -40 -KPX A Odieresis -40 -KPX A Ograve -40 -KPX A Ohungarumlaut -40 -KPX A Omacron -40 -KPX A Oslash -40 -KPX A Otilde -40 -KPX A Q -40 -KPX A T -90 -KPX A Tcaron -90 -KPX A Tcommaaccent -90 -KPX A U -50 -KPX A Uacute -50 -KPX A Ucircumflex -50 -KPX A Udieresis -50 -KPX A Ugrave -50 -KPX A Uhungarumlaut -50 -KPX A Umacron -50 -KPX A Uogonek -50 -KPX A Uring -50 -KPX A V -80 -KPX A W -60 -KPX A Y -110 -KPX A Yacute -110 -KPX A Ydieresis -110 -KPX A u -30 -KPX A uacute -30 -KPX A ucircumflex -30 -KPX A udieresis -30 -KPX A ugrave -30 -KPX A uhungarumlaut -30 -KPX A umacron -30 -KPX A uogonek -30 -KPX A uring -30 -KPX A v -40 -KPX A w -30 -KPX A y -30 -KPX A yacute -30 -KPX A ydieresis -30 -KPX Aacute C -40 -KPX Aacute Cacute -40 -KPX Aacute Ccaron -40 -KPX Aacute Ccedilla -40 -KPX Aacute G -50 -KPX Aacute Gbreve -50 -KPX Aacute Gcommaaccent -50 -KPX Aacute O -40 -KPX Aacute Oacute -40 -KPX Aacute Ocircumflex -40 -KPX Aacute Odieresis -40 -KPX Aacute Ograve -40 -KPX Aacute Ohungarumlaut -40 -KPX Aacute Omacron -40 -KPX Aacute Oslash -40 -KPX Aacute Otilde -40 -KPX Aacute Q -40 -KPX Aacute T -90 -KPX Aacute Tcaron -90 -KPX Aacute Tcommaaccent -90 -KPX Aacute U -50 -KPX Aacute Uacute -50 -KPX Aacute Ucircumflex -50 -KPX Aacute Udieresis -50 -KPX Aacute Ugrave -50 -KPX Aacute Uhungarumlaut -50 -KPX Aacute Umacron -50 -KPX Aacute Uogonek -50 -KPX Aacute Uring -50 -KPX Aacute V -80 -KPX Aacute W -60 -KPX Aacute Y -110 -KPX Aacute Yacute -110 -KPX Aacute Ydieresis -110 -KPX Aacute u -30 -KPX Aacute uacute -30 -KPX Aacute ucircumflex -30 -KPX Aacute udieresis -30 -KPX Aacute ugrave -30 -KPX Aacute uhungarumlaut -30 -KPX Aacute umacron -30 -KPX Aacute uogonek -30 -KPX Aacute uring -30 -KPX Aacute v -40 -KPX Aacute w -30 -KPX Aacute y -30 -KPX Aacute yacute -30 -KPX Aacute ydieresis -30 -KPX Abreve C -40 -KPX Abreve Cacute -40 -KPX Abreve Ccaron -40 -KPX Abreve Ccedilla -40 -KPX Abreve G -50 -KPX Abreve Gbreve -50 -KPX Abreve Gcommaaccent -50 -KPX Abreve O -40 -KPX Abreve Oacute -40 -KPX Abreve Ocircumflex -40 -KPX Abreve Odieresis -40 -KPX Abreve Ograve -40 -KPX Abreve Ohungarumlaut -40 -KPX Abreve Omacron -40 -KPX Abreve Oslash -40 -KPX Abreve Otilde -40 -KPX Abreve Q -40 -KPX Abreve T -90 -KPX Abreve Tcaron -90 -KPX Abreve Tcommaaccent -90 -KPX Abreve U -50 -KPX Abreve Uacute -50 -KPX Abreve Ucircumflex -50 -KPX Abreve Udieresis -50 -KPX Abreve Ugrave -50 -KPX Abreve Uhungarumlaut -50 -KPX Abreve Umacron -50 -KPX Abreve Uogonek -50 -KPX Abreve Uring -50 -KPX Abreve V -80 -KPX Abreve W -60 -KPX Abreve Y -110 -KPX Abreve Yacute -110 -KPX Abreve Ydieresis -110 -KPX Abreve u -30 -KPX Abreve uacute -30 -KPX Abreve ucircumflex -30 -KPX Abreve udieresis -30 -KPX Abreve ugrave -30 -KPX Abreve uhungarumlaut -30 -KPX Abreve umacron -30 -KPX Abreve uogonek -30 -KPX Abreve uring -30 -KPX Abreve v -40 -KPX Abreve w -30 -KPX Abreve y -30 -KPX Abreve yacute -30 -KPX Abreve ydieresis -30 -KPX Acircumflex C -40 -KPX Acircumflex Cacute -40 -KPX Acircumflex Ccaron -40 -KPX Acircumflex Ccedilla -40 -KPX Acircumflex G -50 -KPX Acircumflex Gbreve -50 -KPX Acircumflex Gcommaaccent -50 -KPX Acircumflex O -40 -KPX Acircumflex Oacute -40 -KPX Acircumflex Ocircumflex -40 -KPX Acircumflex Odieresis -40 -KPX Acircumflex Ograve -40 -KPX Acircumflex Ohungarumlaut -40 -KPX Acircumflex Omacron -40 -KPX Acircumflex Oslash -40 -KPX Acircumflex Otilde -40 -KPX Acircumflex Q -40 -KPX Acircumflex T -90 -KPX Acircumflex Tcaron -90 -KPX Acircumflex Tcommaaccent -90 -KPX Acircumflex U -50 -KPX Acircumflex Uacute -50 -KPX Acircumflex Ucircumflex -50 -KPX Acircumflex Udieresis -50 -KPX Acircumflex Ugrave -50 -KPX Acircumflex Uhungarumlaut -50 -KPX Acircumflex Umacron -50 -KPX Acircumflex Uogonek -50 -KPX Acircumflex Uring -50 -KPX Acircumflex V -80 -KPX Acircumflex W -60 -KPX Acircumflex Y -110 -KPX Acircumflex Yacute -110 -KPX Acircumflex Ydieresis -110 -KPX Acircumflex u -30 -KPX Acircumflex uacute -30 -KPX Acircumflex ucircumflex -30 -KPX Acircumflex udieresis -30 -KPX Acircumflex ugrave -30 -KPX Acircumflex uhungarumlaut -30 -KPX Acircumflex umacron -30 -KPX Acircumflex uogonek -30 -KPX Acircumflex uring -30 -KPX Acircumflex v -40 -KPX Acircumflex w -30 -KPX Acircumflex y -30 -KPX Acircumflex yacute -30 -KPX Acircumflex ydieresis -30 -KPX Adieresis C -40 -KPX Adieresis Cacute -40 -KPX Adieresis Ccaron -40 -KPX Adieresis Ccedilla -40 -KPX Adieresis G -50 -KPX Adieresis Gbreve -50 -KPX Adieresis Gcommaaccent -50 -KPX Adieresis O -40 -KPX Adieresis Oacute -40 -KPX Adieresis Ocircumflex -40 -KPX Adieresis Odieresis -40 -KPX Adieresis Ograve -40 -KPX Adieresis Ohungarumlaut -40 -KPX Adieresis Omacron -40 -KPX Adieresis Oslash -40 -KPX Adieresis Otilde -40 -KPX Adieresis Q -40 -KPX Adieresis T -90 -KPX Adieresis Tcaron -90 -KPX Adieresis Tcommaaccent -90 -KPX Adieresis U -50 -KPX Adieresis Uacute -50 -KPX Adieresis Ucircumflex -50 -KPX Adieresis Udieresis -50 -KPX Adieresis Ugrave -50 -KPX Adieresis Uhungarumlaut -50 -KPX Adieresis Umacron -50 -KPX Adieresis Uogonek -50 -KPX Adieresis Uring -50 -KPX Adieresis V -80 -KPX Adieresis W -60 -KPX Adieresis Y -110 -KPX Adieresis Yacute -110 -KPX Adieresis Ydieresis -110 -KPX Adieresis u -30 -KPX Adieresis uacute -30 -KPX Adieresis ucircumflex -30 -KPX Adieresis udieresis -30 -KPX Adieresis ugrave -30 -KPX Adieresis uhungarumlaut -30 -KPX Adieresis umacron -30 -KPX Adieresis uogonek -30 -KPX Adieresis uring -30 -KPX Adieresis v -40 -KPX Adieresis w -30 -KPX Adieresis y -30 -KPX Adieresis yacute -30 -KPX Adieresis ydieresis -30 -KPX Agrave C -40 -KPX Agrave Cacute -40 -KPX Agrave Ccaron -40 -KPX Agrave Ccedilla -40 -KPX Agrave G -50 -KPX Agrave Gbreve -50 -KPX Agrave Gcommaaccent -50 -KPX Agrave O -40 -KPX Agrave Oacute -40 -KPX Agrave Ocircumflex -40 -KPX Agrave Odieresis -40 -KPX Agrave Ograve -40 -KPX Agrave Ohungarumlaut -40 -KPX Agrave Omacron -40 -KPX Agrave Oslash -40 -KPX Agrave Otilde -40 -KPX Agrave Q -40 -KPX Agrave T -90 -KPX Agrave Tcaron -90 -KPX Agrave Tcommaaccent -90 -KPX Agrave U -50 -KPX Agrave Uacute -50 -KPX Agrave Ucircumflex -50 -KPX Agrave Udieresis -50 -KPX Agrave Ugrave -50 -KPX Agrave Uhungarumlaut -50 -KPX Agrave Umacron -50 -KPX Agrave Uogonek -50 -KPX Agrave Uring -50 -KPX Agrave V -80 -KPX Agrave W -60 -KPX Agrave Y -110 -KPX Agrave Yacute -110 -KPX Agrave Ydieresis -110 -KPX Agrave u -30 -KPX Agrave uacute -30 -KPX Agrave ucircumflex -30 -KPX Agrave udieresis -30 -KPX Agrave ugrave -30 -KPX Agrave uhungarumlaut -30 -KPX Agrave umacron -30 -KPX Agrave uogonek -30 -KPX Agrave uring -30 -KPX Agrave v -40 -KPX Agrave w -30 -KPX Agrave y -30 -KPX Agrave yacute -30 -KPX Agrave ydieresis -30 -KPX Amacron C -40 -KPX Amacron Cacute -40 -KPX Amacron Ccaron -40 -KPX Amacron Ccedilla -40 -KPX Amacron G -50 -KPX Amacron Gbreve -50 -KPX Amacron Gcommaaccent -50 -KPX Amacron O -40 -KPX Amacron Oacute -40 -KPX Amacron Ocircumflex -40 -KPX Amacron Odieresis -40 -KPX Amacron Ograve -40 -KPX Amacron Ohungarumlaut -40 -KPX Amacron Omacron -40 -KPX Amacron Oslash -40 -KPX Amacron Otilde -40 -KPX Amacron Q -40 -KPX Amacron T -90 -KPX Amacron Tcaron -90 -KPX Amacron Tcommaaccent -90 -KPX Amacron U -50 -KPX Amacron Uacute -50 -KPX Amacron Ucircumflex -50 -KPX Amacron Udieresis -50 -KPX Amacron Ugrave -50 -KPX Amacron Uhungarumlaut -50 -KPX Amacron Umacron -50 -KPX Amacron Uogonek -50 -KPX Amacron Uring -50 -KPX Amacron V -80 -KPX Amacron W -60 -KPX Amacron Y -110 -KPX Amacron Yacute -110 -KPX Amacron Ydieresis -110 -KPX Amacron u -30 -KPX Amacron uacute -30 -KPX Amacron ucircumflex -30 -KPX Amacron udieresis -30 -KPX Amacron ugrave -30 -KPX Amacron uhungarumlaut -30 -KPX Amacron umacron -30 -KPX Amacron uogonek -30 -KPX Amacron uring -30 -KPX Amacron v -40 -KPX Amacron w -30 -KPX Amacron y -30 -KPX Amacron yacute -30 -KPX Amacron ydieresis -30 -KPX Aogonek C -40 -KPX Aogonek Cacute -40 -KPX Aogonek Ccaron -40 -KPX Aogonek Ccedilla -40 -KPX Aogonek G -50 -KPX Aogonek Gbreve -50 -KPX Aogonek Gcommaaccent -50 -KPX Aogonek O -40 -KPX Aogonek Oacute -40 -KPX Aogonek Ocircumflex -40 -KPX Aogonek Odieresis -40 -KPX Aogonek Ograve -40 -KPX Aogonek Ohungarumlaut -40 -KPX Aogonek Omacron -40 -KPX Aogonek Oslash -40 -KPX Aogonek Otilde -40 -KPX Aogonek Q -40 -KPX Aogonek T -90 -KPX Aogonek Tcaron -90 -KPX Aogonek Tcommaaccent -90 -KPX Aogonek U -50 -KPX Aogonek Uacute -50 -KPX Aogonek Ucircumflex -50 -KPX Aogonek Udieresis -50 -KPX Aogonek Ugrave -50 -KPX Aogonek Uhungarumlaut -50 -KPX Aogonek Umacron -50 -KPX Aogonek Uogonek -50 -KPX Aogonek Uring -50 -KPX Aogonek V -80 -KPX Aogonek W -60 -KPX Aogonek Y -110 -KPX Aogonek Yacute -110 -KPX Aogonek Ydieresis -110 -KPX Aogonek u -30 -KPX Aogonek uacute -30 -KPX Aogonek ucircumflex -30 -KPX Aogonek udieresis -30 -KPX Aogonek ugrave -30 -KPX Aogonek uhungarumlaut -30 -KPX Aogonek umacron -30 -KPX Aogonek uogonek -30 -KPX Aogonek uring -30 -KPX Aogonek v -40 -KPX Aogonek w -30 -KPX Aogonek y -30 -KPX Aogonek yacute -30 -KPX Aogonek ydieresis -30 -KPX Aring C -40 -KPX Aring Cacute -40 -KPX Aring Ccaron -40 -KPX Aring Ccedilla -40 -KPX Aring G -50 -KPX Aring Gbreve -50 -KPX Aring Gcommaaccent -50 -KPX Aring O -40 -KPX Aring Oacute -40 -KPX Aring Ocircumflex -40 -KPX Aring Odieresis -40 -KPX Aring Ograve -40 -KPX Aring Ohungarumlaut -40 -KPX Aring Omacron -40 -KPX Aring Oslash -40 -KPX Aring Otilde -40 -KPX Aring Q -40 -KPX Aring T -90 -KPX Aring Tcaron -90 -KPX Aring Tcommaaccent -90 -KPX Aring U -50 -KPX Aring Uacute -50 -KPX Aring Ucircumflex -50 -KPX Aring Udieresis -50 -KPX Aring Ugrave -50 -KPX Aring Uhungarumlaut -50 -KPX Aring Umacron -50 -KPX Aring Uogonek -50 -KPX Aring Uring -50 -KPX Aring V -80 -KPX Aring W -60 -KPX Aring Y -110 -KPX Aring Yacute -110 -KPX Aring Ydieresis -110 -KPX Aring u -30 -KPX Aring uacute -30 -KPX Aring ucircumflex -30 -KPX Aring udieresis -30 -KPX Aring ugrave -30 -KPX Aring uhungarumlaut -30 -KPX Aring umacron -30 -KPX Aring uogonek -30 -KPX Aring uring -30 -KPX Aring v -40 -KPX Aring w -30 -KPX Aring y -30 -KPX Aring yacute -30 -KPX Aring ydieresis -30 -KPX Atilde C -40 -KPX Atilde Cacute -40 -KPX Atilde Ccaron -40 -KPX Atilde Ccedilla -40 -KPX Atilde G -50 -KPX Atilde Gbreve -50 -KPX Atilde Gcommaaccent -50 -KPX Atilde O -40 -KPX Atilde Oacute -40 -KPX Atilde Ocircumflex -40 -KPX Atilde Odieresis -40 -KPX Atilde Ograve -40 -KPX Atilde Ohungarumlaut -40 -KPX Atilde Omacron -40 -KPX Atilde Oslash -40 -KPX Atilde Otilde -40 -KPX Atilde Q -40 -KPX Atilde T -90 -KPX Atilde Tcaron -90 -KPX Atilde Tcommaaccent -90 -KPX Atilde U -50 -KPX Atilde Uacute -50 -KPX Atilde Ucircumflex -50 -KPX Atilde Udieresis -50 -KPX Atilde Ugrave -50 -KPX Atilde Uhungarumlaut -50 -KPX Atilde Umacron -50 -KPX Atilde Uogonek -50 -KPX Atilde Uring -50 -KPX Atilde V -80 -KPX Atilde W -60 -KPX Atilde Y -110 -KPX Atilde Yacute -110 -KPX Atilde Ydieresis -110 -KPX Atilde u -30 -KPX Atilde uacute -30 -KPX Atilde ucircumflex -30 -KPX Atilde udieresis -30 -KPX Atilde ugrave -30 -KPX Atilde uhungarumlaut -30 -KPX Atilde umacron -30 -KPX Atilde uogonek -30 -KPX Atilde uring -30 -KPX Atilde v -40 -KPX Atilde w -30 -KPX Atilde y -30 -KPX Atilde yacute -30 -KPX Atilde ydieresis -30 -KPX B A -30 -KPX B Aacute -30 -KPX B Abreve -30 -KPX B Acircumflex -30 -KPX B Adieresis -30 -KPX B Agrave -30 -KPX B Amacron -30 -KPX B Aogonek -30 -KPX B Aring -30 -KPX B Atilde -30 -KPX B U -10 -KPX B Uacute -10 -KPX B Ucircumflex -10 -KPX B Udieresis -10 -KPX B Ugrave -10 -KPX B Uhungarumlaut -10 -KPX B Umacron -10 -KPX B Uogonek -10 -KPX B Uring -10 -KPX D A -40 -KPX D Aacute -40 -KPX D Abreve -40 -KPX D Acircumflex -40 -KPX D Adieresis -40 -KPX D Agrave -40 -KPX D Amacron -40 -KPX D Aogonek -40 -KPX D Aring -40 -KPX D Atilde -40 -KPX D V -40 -KPX D W -40 -KPX D Y -70 -KPX D Yacute -70 -KPX D Ydieresis -70 -KPX D comma -30 -KPX D period -30 -KPX Dcaron A -40 -KPX Dcaron Aacute -40 -KPX Dcaron Abreve -40 -KPX Dcaron Acircumflex -40 -KPX Dcaron Adieresis -40 -KPX Dcaron Agrave -40 -KPX Dcaron Amacron -40 -KPX Dcaron Aogonek -40 -KPX Dcaron Aring -40 -KPX Dcaron Atilde -40 -KPX Dcaron V -40 -KPX Dcaron W -40 -KPX Dcaron Y -70 -KPX Dcaron Yacute -70 -KPX Dcaron Ydieresis -70 -KPX Dcaron comma -30 -KPX Dcaron period -30 -KPX Dcroat A -40 -KPX Dcroat Aacute -40 -KPX Dcroat Abreve -40 -KPX Dcroat Acircumflex -40 -KPX Dcroat Adieresis -40 -KPX Dcroat Agrave -40 -KPX Dcroat Amacron -40 -KPX Dcroat Aogonek -40 -KPX Dcroat Aring -40 -KPX Dcroat Atilde -40 -KPX Dcroat V -40 -KPX Dcroat W -40 -KPX Dcroat Y -70 -KPX Dcroat Yacute -70 -KPX Dcroat Ydieresis -70 -KPX Dcroat comma -30 -KPX Dcroat period -30 -KPX F A -80 -KPX F Aacute -80 -KPX F Abreve -80 -KPX F Acircumflex -80 -KPX F Adieresis -80 -KPX F Agrave -80 -KPX F Amacron -80 -KPX F Aogonek -80 -KPX F Aring -80 -KPX F Atilde -80 -KPX F a -20 -KPX F aacute -20 -KPX F abreve -20 -KPX F acircumflex -20 -KPX F adieresis -20 -KPX F agrave -20 -KPX F amacron -20 -KPX F aogonek -20 -KPX F aring -20 -KPX F atilde -20 -KPX F comma -100 -KPX F period -100 -KPX J A -20 -KPX J Aacute -20 -KPX J Abreve -20 -KPX J Acircumflex -20 -KPX J Adieresis -20 -KPX J Agrave -20 -KPX J Amacron -20 -KPX J Aogonek -20 -KPX J Aring -20 -KPX J Atilde -20 -KPX J comma -20 -KPX J period -20 -KPX J u -20 -KPX J uacute -20 -KPX J ucircumflex -20 -KPX J udieresis -20 -KPX J ugrave -20 -KPX J uhungarumlaut -20 -KPX J umacron -20 -KPX J uogonek -20 -KPX J uring -20 -KPX K O -30 -KPX K Oacute -30 -KPX K Ocircumflex -30 -KPX K Odieresis -30 -KPX K Ograve -30 -KPX K Ohungarumlaut -30 -KPX K Omacron -30 -KPX K Oslash -30 -KPX K Otilde -30 -KPX K e -15 -KPX K eacute -15 -KPX K ecaron -15 -KPX K ecircumflex -15 -KPX K edieresis -15 -KPX K edotaccent -15 -KPX K egrave -15 -KPX K emacron -15 -KPX K eogonek -15 -KPX K o -35 -KPX K oacute -35 -KPX K ocircumflex -35 -KPX K odieresis -35 -KPX K ograve -35 -KPX K ohungarumlaut -35 -KPX K omacron -35 -KPX K oslash -35 -KPX K otilde -35 -KPX K u -30 -KPX K uacute -30 -KPX K ucircumflex -30 -KPX K udieresis -30 -KPX K ugrave -30 -KPX K uhungarumlaut -30 -KPX K umacron -30 -KPX K uogonek -30 -KPX K uring -30 -KPX K y -40 -KPX K yacute -40 -KPX K ydieresis -40 -KPX Kcommaaccent O -30 -KPX Kcommaaccent Oacute -30 -KPX Kcommaaccent Ocircumflex -30 -KPX Kcommaaccent Odieresis -30 -KPX Kcommaaccent Ograve -30 -KPX Kcommaaccent Ohungarumlaut -30 -KPX Kcommaaccent Omacron -30 -KPX Kcommaaccent Oslash -30 -KPX Kcommaaccent Otilde -30 -KPX Kcommaaccent e -15 -KPX Kcommaaccent eacute -15 -KPX Kcommaaccent ecaron -15 -KPX Kcommaaccent ecircumflex -15 -KPX Kcommaaccent edieresis -15 -KPX Kcommaaccent edotaccent -15 -KPX Kcommaaccent egrave -15 -KPX Kcommaaccent emacron -15 -KPX Kcommaaccent eogonek -15 -KPX Kcommaaccent o -35 -KPX Kcommaaccent oacute -35 -KPX Kcommaaccent ocircumflex -35 -KPX Kcommaaccent odieresis -35 -KPX Kcommaaccent ograve -35 -KPX Kcommaaccent ohungarumlaut -35 -KPX Kcommaaccent omacron -35 -KPX Kcommaaccent oslash -35 -KPX Kcommaaccent otilde -35 -KPX Kcommaaccent u -30 -KPX Kcommaaccent uacute -30 -KPX Kcommaaccent ucircumflex -30 -KPX Kcommaaccent udieresis -30 -KPX Kcommaaccent ugrave -30 -KPX Kcommaaccent uhungarumlaut -30 -KPX Kcommaaccent umacron -30 -KPX Kcommaaccent uogonek -30 -KPX Kcommaaccent uring -30 -KPX Kcommaaccent y -40 -KPX Kcommaaccent yacute -40 -KPX Kcommaaccent ydieresis -40 -KPX L T -90 -KPX L Tcaron -90 -KPX L Tcommaaccent -90 -KPX L V -110 -KPX L W -80 -KPX L Y -120 -KPX L Yacute -120 -KPX L Ydieresis -120 -KPX L quotedblright -140 -KPX L quoteright -140 -KPX L y -30 -KPX L yacute -30 -KPX L ydieresis -30 -KPX Lacute T -90 -KPX Lacute Tcaron -90 -KPX Lacute Tcommaaccent -90 -KPX Lacute V -110 -KPX Lacute W -80 -KPX Lacute Y -120 -KPX Lacute Yacute -120 -KPX Lacute Ydieresis -120 -KPX Lacute quotedblright -140 -KPX Lacute quoteright -140 -KPX Lacute y -30 -KPX Lacute yacute -30 -KPX Lacute ydieresis -30 -KPX Lcommaaccent T -90 -KPX Lcommaaccent Tcaron -90 -KPX Lcommaaccent Tcommaaccent -90 -KPX Lcommaaccent V -110 -KPX Lcommaaccent W -80 -KPX Lcommaaccent Y -120 -KPX Lcommaaccent Yacute -120 -KPX Lcommaaccent Ydieresis -120 -KPX Lcommaaccent quotedblright -140 -KPX Lcommaaccent quoteright -140 -KPX Lcommaaccent y -30 -KPX Lcommaaccent yacute -30 -KPX Lcommaaccent ydieresis -30 -KPX Lslash T -90 -KPX Lslash Tcaron -90 -KPX Lslash Tcommaaccent -90 -KPX Lslash V -110 -KPX Lslash W -80 -KPX Lslash Y -120 -KPX Lslash Yacute -120 -KPX Lslash Ydieresis -120 -KPX Lslash quotedblright -140 -KPX Lslash quoteright -140 -KPX Lslash y -30 -KPX Lslash yacute -30 -KPX Lslash ydieresis -30 -KPX O A -50 -KPX O Aacute -50 -KPX O Abreve -50 -KPX O Acircumflex -50 -KPX O Adieresis -50 -KPX O Agrave -50 -KPX O Amacron -50 -KPX O Aogonek -50 -KPX O Aring -50 -KPX O Atilde -50 -KPX O T -40 -KPX O Tcaron -40 -KPX O Tcommaaccent -40 -KPX O V -50 -KPX O W -50 -KPX O X -50 -KPX O Y -70 -KPX O Yacute -70 -KPX O Ydieresis -70 -KPX O comma -40 -KPX O period -40 -KPX Oacute A -50 -KPX Oacute Aacute -50 -KPX Oacute Abreve -50 -KPX Oacute Acircumflex -50 -KPX Oacute Adieresis -50 -KPX Oacute Agrave -50 -KPX Oacute Amacron -50 -KPX Oacute Aogonek -50 -KPX Oacute Aring -50 -KPX Oacute Atilde -50 -KPX Oacute T -40 -KPX Oacute Tcaron -40 -KPX Oacute Tcommaaccent -40 -KPX Oacute V -50 -KPX Oacute W -50 -KPX Oacute X -50 -KPX Oacute Y -70 -KPX Oacute Yacute -70 -KPX Oacute Ydieresis -70 -KPX Oacute comma -40 -KPX Oacute period -40 -KPX Ocircumflex A -50 -KPX Ocircumflex Aacute -50 -KPX Ocircumflex Abreve -50 -KPX Ocircumflex Acircumflex -50 -KPX Ocircumflex Adieresis -50 -KPX Ocircumflex Agrave -50 -KPX Ocircumflex Amacron -50 -KPX Ocircumflex Aogonek -50 -KPX Ocircumflex Aring -50 -KPX Ocircumflex Atilde -50 -KPX Ocircumflex T -40 -KPX Ocircumflex Tcaron -40 -KPX Ocircumflex Tcommaaccent -40 -KPX Ocircumflex V -50 -KPX Ocircumflex W -50 -KPX Ocircumflex X -50 -KPX Ocircumflex Y -70 -KPX Ocircumflex Yacute -70 -KPX Ocircumflex Ydieresis -70 -KPX Ocircumflex comma -40 -KPX Ocircumflex period -40 -KPX Odieresis A -50 -KPX Odieresis Aacute -50 -KPX Odieresis Abreve -50 -KPX Odieresis Acircumflex -50 -KPX Odieresis Adieresis -50 -KPX Odieresis Agrave -50 -KPX Odieresis Amacron -50 -KPX Odieresis Aogonek -50 -KPX Odieresis Aring -50 -KPX Odieresis Atilde -50 -KPX Odieresis T -40 -KPX Odieresis Tcaron -40 -KPX Odieresis Tcommaaccent -40 -KPX Odieresis V -50 -KPX Odieresis W -50 -KPX Odieresis X -50 -KPX Odieresis Y -70 -KPX Odieresis Yacute -70 -KPX Odieresis Ydieresis -70 -KPX Odieresis comma -40 -KPX Odieresis period -40 -KPX Ograve A -50 -KPX Ograve Aacute -50 -KPX Ograve Abreve -50 -KPX Ograve Acircumflex -50 -KPX Ograve Adieresis -50 -KPX Ograve Agrave -50 -KPX Ograve Amacron -50 -KPX Ograve Aogonek -50 -KPX Ograve Aring -50 -KPX Ograve Atilde -50 -KPX Ograve T -40 -KPX Ograve Tcaron -40 -KPX Ograve Tcommaaccent -40 -KPX Ograve V -50 -KPX Ograve W -50 -KPX Ograve X -50 -KPX Ograve Y -70 -KPX Ograve Yacute -70 -KPX Ograve Ydieresis -70 -KPX Ograve comma -40 -KPX Ograve period -40 -KPX Ohungarumlaut A -50 -KPX Ohungarumlaut Aacute -50 -KPX Ohungarumlaut Abreve -50 -KPX Ohungarumlaut Acircumflex -50 -KPX Ohungarumlaut Adieresis -50 -KPX Ohungarumlaut Agrave -50 -KPX Ohungarumlaut Amacron -50 -KPX Ohungarumlaut Aogonek -50 -KPX Ohungarumlaut Aring -50 -KPX Ohungarumlaut Atilde -50 -KPX Ohungarumlaut T -40 -KPX Ohungarumlaut Tcaron -40 -KPX Ohungarumlaut Tcommaaccent -40 -KPX Ohungarumlaut V -50 -KPX Ohungarumlaut W -50 -KPX Ohungarumlaut X -50 -KPX Ohungarumlaut Y -70 -KPX Ohungarumlaut Yacute -70 -KPX Ohungarumlaut Ydieresis -70 -KPX Ohungarumlaut comma -40 -KPX Ohungarumlaut period -40 -KPX Omacron A -50 -KPX Omacron Aacute -50 -KPX Omacron Abreve -50 -KPX Omacron Acircumflex -50 -KPX Omacron Adieresis -50 -KPX Omacron Agrave -50 -KPX Omacron Amacron -50 -KPX Omacron Aogonek -50 -KPX Omacron Aring -50 -KPX Omacron Atilde -50 -KPX Omacron T -40 -KPX Omacron Tcaron -40 -KPX Omacron Tcommaaccent -40 -KPX Omacron V -50 -KPX Omacron W -50 -KPX Omacron X -50 -KPX Omacron Y -70 -KPX Omacron Yacute -70 -KPX Omacron Ydieresis -70 -KPX Omacron comma -40 -KPX Omacron period -40 -KPX Oslash A -50 -KPX Oslash Aacute -50 -KPX Oslash Abreve -50 -KPX Oslash Acircumflex -50 -KPX Oslash Adieresis -50 -KPX Oslash Agrave -50 -KPX Oslash Amacron -50 -KPX Oslash Aogonek -50 -KPX Oslash Aring -50 -KPX Oslash Atilde -50 -KPX Oslash T -40 -KPX Oslash Tcaron -40 -KPX Oslash Tcommaaccent -40 -KPX Oslash V -50 -KPX Oslash W -50 -KPX Oslash X -50 -KPX Oslash Y -70 -KPX Oslash Yacute -70 -KPX Oslash Ydieresis -70 -KPX Oslash comma -40 -KPX Oslash period -40 -KPX Otilde A -50 -KPX Otilde Aacute -50 -KPX Otilde Abreve -50 -KPX Otilde Acircumflex -50 -KPX Otilde Adieresis -50 -KPX Otilde Agrave -50 -KPX Otilde Amacron -50 -KPX Otilde Aogonek -50 -KPX Otilde Aring -50 -KPX Otilde Atilde -50 -KPX Otilde T -40 -KPX Otilde Tcaron -40 -KPX Otilde Tcommaaccent -40 -KPX Otilde V -50 -KPX Otilde W -50 -KPX Otilde X -50 -KPX Otilde Y -70 -KPX Otilde Yacute -70 -KPX Otilde Ydieresis -70 -KPX Otilde comma -40 -KPX Otilde period -40 -KPX P A -100 -KPX P Aacute -100 -KPX P Abreve -100 -KPX P Acircumflex -100 -KPX P Adieresis -100 -KPX P Agrave -100 -KPX P Amacron -100 -KPX P Aogonek -100 -KPX P Aring -100 -KPX P Atilde -100 -KPX P a -30 -KPX P aacute -30 -KPX P abreve -30 -KPX P acircumflex -30 -KPX P adieresis -30 -KPX P agrave -30 -KPX P amacron -30 -KPX P aogonek -30 -KPX P aring -30 -KPX P atilde -30 -KPX P comma -120 -KPX P e -30 -KPX P eacute -30 -KPX P ecaron -30 -KPX P ecircumflex -30 -KPX P edieresis -30 -KPX P edotaccent -30 -KPX P egrave -30 -KPX P emacron -30 -KPX P eogonek -30 -KPX P o -40 -KPX P oacute -40 -KPX P ocircumflex -40 -KPX P odieresis -40 -KPX P ograve -40 -KPX P ohungarumlaut -40 -KPX P omacron -40 -KPX P oslash -40 -KPX P otilde -40 -KPX P period -120 -KPX Q U -10 -KPX Q Uacute -10 -KPX Q Ucircumflex -10 -KPX Q Udieresis -10 -KPX Q Ugrave -10 -KPX Q Uhungarumlaut -10 -KPX Q Umacron -10 -KPX Q Uogonek -10 -KPX Q Uring -10 -KPX Q comma 20 -KPX Q period 20 -KPX R O -20 -KPX R Oacute -20 -KPX R Ocircumflex -20 -KPX R Odieresis -20 -KPX R Ograve -20 -KPX R Ohungarumlaut -20 -KPX R Omacron -20 -KPX R Oslash -20 -KPX R Otilde -20 -KPX R T -20 -KPX R Tcaron -20 -KPX R Tcommaaccent -20 -KPX R U -20 -KPX R Uacute -20 -KPX R Ucircumflex -20 -KPX R Udieresis -20 -KPX R Ugrave -20 -KPX R Uhungarumlaut -20 -KPX R Umacron -20 -KPX R Uogonek -20 -KPX R Uring -20 -KPX R V -50 -KPX R W -40 -KPX R Y -50 -KPX R Yacute -50 -KPX R Ydieresis -50 -KPX Racute O -20 -KPX Racute Oacute -20 -KPX Racute Ocircumflex -20 -KPX Racute Odieresis -20 -KPX Racute Ograve -20 -KPX Racute Ohungarumlaut -20 -KPX Racute Omacron -20 -KPX Racute Oslash -20 -KPX Racute Otilde -20 -KPX Racute T -20 -KPX Racute Tcaron -20 -KPX Racute Tcommaaccent -20 -KPX Racute U -20 -KPX Racute Uacute -20 -KPX Racute Ucircumflex -20 -KPX Racute Udieresis -20 -KPX Racute Ugrave -20 -KPX Racute Uhungarumlaut -20 -KPX Racute Umacron -20 -KPX Racute Uogonek -20 -KPX Racute Uring -20 -KPX Racute V -50 -KPX Racute W -40 -KPX Racute Y -50 -KPX Racute Yacute -50 -KPX Racute Ydieresis -50 -KPX Rcaron O -20 -KPX Rcaron Oacute -20 -KPX Rcaron Ocircumflex -20 -KPX Rcaron Odieresis -20 -KPX Rcaron Ograve -20 -KPX Rcaron Ohungarumlaut -20 -KPX Rcaron Omacron -20 -KPX Rcaron Oslash -20 -KPX Rcaron Otilde -20 -KPX Rcaron T -20 -KPX Rcaron Tcaron -20 -KPX Rcaron Tcommaaccent -20 -KPX Rcaron U -20 -KPX Rcaron Uacute -20 -KPX Rcaron Ucircumflex -20 -KPX Rcaron Udieresis -20 -KPX Rcaron Ugrave -20 -KPX Rcaron Uhungarumlaut -20 -KPX Rcaron Umacron -20 -KPX Rcaron Uogonek -20 -KPX Rcaron Uring -20 -KPX Rcaron V -50 -KPX Rcaron W -40 -KPX Rcaron Y -50 -KPX Rcaron Yacute -50 -KPX Rcaron Ydieresis -50 -KPX Rcommaaccent O -20 -KPX Rcommaaccent Oacute -20 -KPX Rcommaaccent Ocircumflex -20 -KPX Rcommaaccent Odieresis -20 -KPX Rcommaaccent Ograve -20 -KPX Rcommaaccent Ohungarumlaut -20 -KPX Rcommaaccent Omacron -20 -KPX Rcommaaccent Oslash -20 -KPX Rcommaaccent Otilde -20 -KPX Rcommaaccent T -20 -KPX Rcommaaccent Tcaron -20 -KPX Rcommaaccent Tcommaaccent -20 -KPX Rcommaaccent U -20 -KPX Rcommaaccent Uacute -20 -KPX Rcommaaccent Ucircumflex -20 -KPX Rcommaaccent Udieresis -20 -KPX Rcommaaccent Ugrave -20 -KPX Rcommaaccent Uhungarumlaut -20 -KPX Rcommaaccent Umacron -20 -KPX Rcommaaccent Uogonek -20 -KPX Rcommaaccent Uring -20 -KPX Rcommaaccent V -50 -KPX Rcommaaccent W -40 -KPX Rcommaaccent Y -50 -KPX Rcommaaccent Yacute -50 -KPX Rcommaaccent Ydieresis -50 -KPX T A -90 -KPX T Aacute -90 -KPX T Abreve -90 -KPX T Acircumflex -90 -KPX T Adieresis -90 -KPX T Agrave -90 -KPX T Amacron -90 -KPX T Aogonek -90 -KPX T Aring -90 -KPX T Atilde -90 -KPX T O -40 -KPX T Oacute -40 -KPX T Ocircumflex -40 -KPX T Odieresis -40 -KPX T Ograve -40 -KPX T Ohungarumlaut -40 -KPX T Omacron -40 -KPX T Oslash -40 -KPX T Otilde -40 -KPX T a -80 -KPX T aacute -80 -KPX T abreve -80 -KPX T acircumflex -80 -KPX T adieresis -80 -KPX T agrave -80 -KPX T amacron -80 -KPX T aogonek -80 -KPX T aring -80 -KPX T atilde -80 -KPX T colon -40 -KPX T comma -80 -KPX T e -60 -KPX T eacute -60 -KPX T ecaron -60 -KPX T ecircumflex -60 -KPX T edieresis -60 -KPX T edotaccent -60 -KPX T egrave -60 -KPX T emacron -60 -KPX T eogonek -60 -KPX T hyphen -120 -KPX T o -80 -KPX T oacute -80 -KPX T ocircumflex -80 -KPX T odieresis -80 -KPX T ograve -80 -KPX T ohungarumlaut -80 -KPX T omacron -80 -KPX T oslash -80 -KPX T otilde -80 -KPX T period -80 -KPX T r -80 -KPX T racute -80 -KPX T rcommaaccent -80 -KPX T semicolon -40 -KPX T u -90 -KPX T uacute -90 -KPX T ucircumflex -90 -KPX T udieresis -90 -KPX T ugrave -90 -KPX T uhungarumlaut -90 -KPX T umacron -90 -KPX T uogonek -90 -KPX T uring -90 -KPX T w -60 -KPX T y -60 -KPX T yacute -60 -KPX T ydieresis -60 -KPX Tcaron A -90 -KPX Tcaron Aacute -90 -KPX Tcaron Abreve -90 -KPX Tcaron Acircumflex -90 -KPX Tcaron Adieresis -90 -KPX Tcaron Agrave -90 -KPX Tcaron Amacron -90 -KPX Tcaron Aogonek -90 -KPX Tcaron Aring -90 -KPX Tcaron Atilde -90 -KPX Tcaron O -40 -KPX Tcaron Oacute -40 -KPX Tcaron Ocircumflex -40 -KPX Tcaron Odieresis -40 -KPX Tcaron Ograve -40 -KPX Tcaron Ohungarumlaut -40 -KPX Tcaron Omacron -40 -KPX Tcaron Oslash -40 -KPX Tcaron Otilde -40 -KPX Tcaron a -80 -KPX Tcaron aacute -80 -KPX Tcaron abreve -80 -KPX Tcaron acircumflex -80 -KPX Tcaron adieresis -80 -KPX Tcaron agrave -80 -KPX Tcaron amacron -80 -KPX Tcaron aogonek -80 -KPX Tcaron aring -80 -KPX Tcaron atilde -80 -KPX Tcaron colon -40 -KPX Tcaron comma -80 -KPX Tcaron e -60 -KPX Tcaron eacute -60 -KPX Tcaron ecaron -60 -KPX Tcaron ecircumflex -60 -KPX Tcaron edieresis -60 -KPX Tcaron edotaccent -60 -KPX Tcaron egrave -60 -KPX Tcaron emacron -60 -KPX Tcaron eogonek -60 -KPX Tcaron hyphen -120 -KPX Tcaron o -80 -KPX Tcaron oacute -80 -KPX Tcaron ocircumflex -80 -KPX Tcaron odieresis -80 -KPX Tcaron ograve -80 -KPX Tcaron ohungarumlaut -80 -KPX Tcaron omacron -80 -KPX Tcaron oslash -80 -KPX Tcaron otilde -80 -KPX Tcaron period -80 -KPX Tcaron r -80 -KPX Tcaron racute -80 -KPX Tcaron rcommaaccent -80 -KPX Tcaron semicolon -40 -KPX Tcaron u -90 -KPX Tcaron uacute -90 -KPX Tcaron ucircumflex -90 -KPX Tcaron udieresis -90 -KPX Tcaron ugrave -90 -KPX Tcaron uhungarumlaut -90 -KPX Tcaron umacron -90 -KPX Tcaron uogonek -90 -KPX Tcaron uring -90 -KPX Tcaron w -60 -KPX Tcaron y -60 -KPX Tcaron yacute -60 -KPX Tcaron ydieresis -60 -KPX Tcommaaccent A -90 -KPX Tcommaaccent Aacute -90 -KPX Tcommaaccent Abreve -90 -KPX Tcommaaccent Acircumflex -90 -KPX Tcommaaccent Adieresis -90 -KPX Tcommaaccent Agrave -90 -KPX Tcommaaccent Amacron -90 -KPX Tcommaaccent Aogonek -90 -KPX Tcommaaccent Aring -90 -KPX Tcommaaccent Atilde -90 -KPX Tcommaaccent O -40 -KPX Tcommaaccent Oacute -40 -KPX Tcommaaccent Ocircumflex -40 -KPX Tcommaaccent Odieresis -40 -KPX Tcommaaccent Ograve -40 -KPX Tcommaaccent Ohungarumlaut -40 -KPX Tcommaaccent Omacron -40 -KPX Tcommaaccent Oslash -40 -KPX Tcommaaccent Otilde -40 -KPX Tcommaaccent a -80 -KPX Tcommaaccent aacute -80 -KPX Tcommaaccent abreve -80 -KPX Tcommaaccent acircumflex -80 -KPX Tcommaaccent adieresis -80 -KPX Tcommaaccent agrave -80 -KPX Tcommaaccent amacron -80 -KPX Tcommaaccent aogonek -80 -KPX Tcommaaccent aring -80 -KPX Tcommaaccent atilde -80 -KPX Tcommaaccent colon -40 -KPX Tcommaaccent comma -80 -KPX Tcommaaccent e -60 -KPX Tcommaaccent eacute -60 -KPX Tcommaaccent ecaron -60 -KPX Tcommaaccent ecircumflex -60 -KPX Tcommaaccent edieresis -60 -KPX Tcommaaccent edotaccent -60 -KPX Tcommaaccent egrave -60 -KPX Tcommaaccent emacron -60 -KPX Tcommaaccent eogonek -60 -KPX Tcommaaccent hyphen -120 -KPX Tcommaaccent o -80 -KPX Tcommaaccent oacute -80 -KPX Tcommaaccent ocircumflex -80 -KPX Tcommaaccent odieresis -80 -KPX Tcommaaccent ograve -80 -KPX Tcommaaccent ohungarumlaut -80 -KPX Tcommaaccent omacron -80 -KPX Tcommaaccent oslash -80 -KPX Tcommaaccent otilde -80 -KPX Tcommaaccent period -80 -KPX Tcommaaccent r -80 -KPX Tcommaaccent racute -80 -KPX Tcommaaccent rcommaaccent -80 -KPX Tcommaaccent semicolon -40 -KPX Tcommaaccent u -90 -KPX Tcommaaccent uacute -90 -KPX Tcommaaccent ucircumflex -90 -KPX Tcommaaccent udieresis -90 -KPX Tcommaaccent ugrave -90 -KPX Tcommaaccent uhungarumlaut -90 -KPX Tcommaaccent umacron -90 -KPX Tcommaaccent uogonek -90 -KPX Tcommaaccent uring -90 -KPX Tcommaaccent w -60 -KPX Tcommaaccent y -60 -KPX Tcommaaccent yacute -60 -KPX Tcommaaccent ydieresis -60 -KPX U A -50 -KPX U Aacute -50 -KPX U Abreve -50 -KPX U Acircumflex -50 -KPX U Adieresis -50 -KPX U Agrave -50 -KPX U Amacron -50 -KPX U Aogonek -50 -KPX U Aring -50 -KPX U Atilde -50 -KPX U comma -30 -KPX U period -30 -KPX Uacute A -50 -KPX Uacute Aacute -50 -KPX Uacute Abreve -50 -KPX Uacute Acircumflex -50 -KPX Uacute Adieresis -50 -KPX Uacute Agrave -50 -KPX Uacute Amacron -50 -KPX Uacute Aogonek -50 -KPX Uacute Aring -50 -KPX Uacute Atilde -50 -KPX Uacute comma -30 -KPX Uacute period -30 -KPX Ucircumflex A -50 -KPX Ucircumflex Aacute -50 -KPX Ucircumflex Abreve -50 -KPX Ucircumflex Acircumflex -50 -KPX Ucircumflex Adieresis -50 -KPX Ucircumflex Agrave -50 -KPX Ucircumflex Amacron -50 -KPX Ucircumflex Aogonek -50 -KPX Ucircumflex Aring -50 -KPX Ucircumflex Atilde -50 -KPX Ucircumflex comma -30 -KPX Ucircumflex period -30 -KPX Udieresis A -50 -KPX Udieresis Aacute -50 -KPX Udieresis Abreve -50 -KPX Udieresis Acircumflex -50 -KPX Udieresis Adieresis -50 -KPX Udieresis Agrave -50 -KPX Udieresis Amacron -50 -KPX Udieresis Aogonek -50 -KPX Udieresis Aring -50 -KPX Udieresis Atilde -50 -KPX Udieresis comma -30 -KPX Udieresis period -30 -KPX Ugrave A -50 -KPX Ugrave Aacute -50 -KPX Ugrave Abreve -50 -KPX Ugrave Acircumflex -50 -KPX Ugrave Adieresis -50 -KPX Ugrave Agrave -50 -KPX Ugrave Amacron -50 -KPX Ugrave Aogonek -50 -KPX Ugrave Aring -50 -KPX Ugrave Atilde -50 -KPX Ugrave comma -30 -KPX Ugrave period -30 -KPX Uhungarumlaut A -50 -KPX Uhungarumlaut Aacute -50 -KPX Uhungarumlaut Abreve -50 -KPX Uhungarumlaut Acircumflex -50 -KPX Uhungarumlaut Adieresis -50 -KPX Uhungarumlaut Agrave -50 -KPX Uhungarumlaut Amacron -50 -KPX Uhungarumlaut Aogonek -50 -KPX Uhungarumlaut Aring -50 -KPX Uhungarumlaut Atilde -50 -KPX Uhungarumlaut comma -30 -KPX Uhungarumlaut period -30 -KPX Umacron A -50 -KPX Umacron Aacute -50 -KPX Umacron Abreve -50 -KPX Umacron Acircumflex -50 -KPX Umacron Adieresis -50 -KPX Umacron Agrave -50 -KPX Umacron Amacron -50 -KPX Umacron Aogonek -50 -KPX Umacron Aring -50 -KPX Umacron Atilde -50 -KPX Umacron comma -30 -KPX Umacron period -30 -KPX Uogonek A -50 -KPX Uogonek Aacute -50 -KPX Uogonek Abreve -50 -KPX Uogonek Acircumflex -50 -KPX Uogonek Adieresis -50 -KPX Uogonek Agrave -50 -KPX Uogonek Amacron -50 -KPX Uogonek Aogonek -50 -KPX Uogonek Aring -50 -KPX Uogonek Atilde -50 -KPX Uogonek comma -30 -KPX Uogonek period -30 -KPX Uring A -50 -KPX Uring Aacute -50 -KPX Uring Abreve -50 -KPX Uring Acircumflex -50 -KPX Uring Adieresis -50 -KPX Uring Agrave -50 -KPX Uring Amacron -50 -KPX Uring Aogonek -50 -KPX Uring Aring -50 -KPX Uring Atilde -50 -KPX Uring comma -30 -KPX Uring period -30 -KPX V A -80 -KPX V Aacute -80 -KPX V Abreve -80 -KPX V Acircumflex -80 -KPX V Adieresis -80 -KPX V Agrave -80 -KPX V Amacron -80 -KPX V Aogonek -80 -KPX V Aring -80 -KPX V Atilde -80 -KPX V G -50 -KPX V Gbreve -50 -KPX V Gcommaaccent -50 -KPX V O -50 -KPX V Oacute -50 -KPX V Ocircumflex -50 -KPX V Odieresis -50 -KPX V Ograve -50 -KPX V Ohungarumlaut -50 -KPX V Omacron -50 -KPX V Oslash -50 -KPX V Otilde -50 -KPX V a -60 -KPX V aacute -60 -KPX V abreve -60 -KPX V acircumflex -60 -KPX V adieresis -60 -KPX V agrave -60 -KPX V amacron -60 -KPX V aogonek -60 -KPX V aring -60 -KPX V atilde -60 -KPX V colon -40 -KPX V comma -120 -KPX V e -50 -KPX V eacute -50 -KPX V ecaron -50 -KPX V ecircumflex -50 -KPX V edieresis -50 -KPX V edotaccent -50 -KPX V egrave -50 -KPX V emacron -50 -KPX V eogonek -50 -KPX V hyphen -80 -KPX V o -90 -KPX V oacute -90 -KPX V ocircumflex -90 -KPX V odieresis -90 -KPX V ograve -90 -KPX V ohungarumlaut -90 -KPX V omacron -90 -KPX V oslash -90 -KPX V otilde -90 -KPX V period -120 -KPX V semicolon -40 -KPX V u -60 -KPX V uacute -60 -KPX V ucircumflex -60 -KPX V udieresis -60 -KPX V ugrave -60 -KPX V uhungarumlaut -60 -KPX V umacron -60 -KPX V uogonek -60 -KPX V uring -60 -KPX W A -60 -KPX W Aacute -60 -KPX W Abreve -60 -KPX W Acircumflex -60 -KPX W Adieresis -60 -KPX W Agrave -60 -KPX W Amacron -60 -KPX W Aogonek -60 -KPX W Aring -60 -KPX W Atilde -60 -KPX W O -20 -KPX W Oacute -20 -KPX W Ocircumflex -20 -KPX W Odieresis -20 -KPX W Ograve -20 -KPX W Ohungarumlaut -20 -KPX W Omacron -20 -KPX W Oslash -20 -KPX W Otilde -20 -KPX W a -40 -KPX W aacute -40 -KPX W abreve -40 -KPX W acircumflex -40 -KPX W adieresis -40 -KPX W agrave -40 -KPX W amacron -40 -KPX W aogonek -40 -KPX W aring -40 -KPX W atilde -40 -KPX W colon -10 -KPX W comma -80 -KPX W e -35 -KPX W eacute -35 -KPX W ecaron -35 -KPX W ecircumflex -35 -KPX W edieresis -35 -KPX W edotaccent -35 -KPX W egrave -35 -KPX W emacron -35 -KPX W eogonek -35 -KPX W hyphen -40 -KPX W o -60 -KPX W oacute -60 -KPX W ocircumflex -60 -KPX W odieresis -60 -KPX W ograve -60 -KPX W ohungarumlaut -60 -KPX W omacron -60 -KPX W oslash -60 -KPX W otilde -60 -KPX W period -80 -KPX W semicolon -10 -KPX W u -45 -KPX W uacute -45 -KPX W ucircumflex -45 -KPX W udieresis -45 -KPX W ugrave -45 -KPX W uhungarumlaut -45 -KPX W umacron -45 -KPX W uogonek -45 -KPX W uring -45 -KPX W y -20 -KPX W yacute -20 -KPX W ydieresis -20 -KPX Y A -110 -KPX Y Aacute -110 -KPX Y Abreve -110 -KPX Y Acircumflex -110 -KPX Y Adieresis -110 -KPX Y Agrave -110 -KPX Y Amacron -110 -KPX Y Aogonek -110 -KPX Y Aring -110 -KPX Y Atilde -110 -KPX Y O -70 -KPX Y Oacute -70 -KPX Y Ocircumflex -70 -KPX Y Odieresis -70 -KPX Y Ograve -70 -KPX Y Ohungarumlaut -70 -KPX Y Omacron -70 -KPX Y Oslash -70 -KPX Y Otilde -70 -KPX Y a -90 -KPX Y aacute -90 -KPX Y abreve -90 -KPX Y acircumflex -90 -KPX Y adieresis -90 -KPX Y agrave -90 -KPX Y amacron -90 -KPX Y aogonek -90 -KPX Y aring -90 -KPX Y atilde -90 -KPX Y colon -50 -KPX Y comma -100 -KPX Y e -80 -KPX Y eacute -80 -KPX Y ecaron -80 -KPX Y ecircumflex -80 -KPX Y edieresis -80 -KPX Y edotaccent -80 -KPX Y egrave -80 -KPX Y emacron -80 -KPX Y eogonek -80 -KPX Y o -100 -KPX Y oacute -100 -KPX Y ocircumflex -100 -KPX Y odieresis -100 -KPX Y ograve -100 -KPX Y ohungarumlaut -100 -KPX Y omacron -100 -KPX Y oslash -100 -KPX Y otilde -100 -KPX Y period -100 -KPX Y semicolon -50 -KPX Y u -100 -KPX Y uacute -100 -KPX Y ucircumflex -100 -KPX Y udieresis -100 -KPX Y ugrave -100 -KPX Y uhungarumlaut -100 -KPX Y umacron -100 -KPX Y uogonek -100 -KPX Y uring -100 -KPX Yacute A -110 -KPX Yacute Aacute -110 -KPX Yacute Abreve -110 -KPX Yacute Acircumflex -110 -KPX Yacute Adieresis -110 -KPX Yacute Agrave -110 -KPX Yacute Amacron -110 -KPX Yacute Aogonek -110 -KPX Yacute Aring -110 -KPX Yacute Atilde -110 -KPX Yacute O -70 -KPX Yacute Oacute -70 -KPX Yacute Ocircumflex -70 -KPX Yacute Odieresis -70 -KPX Yacute Ograve -70 -KPX Yacute Ohungarumlaut -70 -KPX Yacute Omacron -70 -KPX Yacute Oslash -70 -KPX Yacute Otilde -70 -KPX Yacute a -90 -KPX Yacute aacute -90 -KPX Yacute abreve -90 -KPX Yacute acircumflex -90 -KPX Yacute adieresis -90 -KPX Yacute agrave -90 -KPX Yacute amacron -90 -KPX Yacute aogonek -90 -KPX Yacute aring -90 -KPX Yacute atilde -90 -KPX Yacute colon -50 -KPX Yacute comma -100 -KPX Yacute e -80 -KPX Yacute eacute -80 -KPX Yacute ecaron -80 -KPX Yacute ecircumflex -80 -KPX Yacute edieresis -80 -KPX Yacute edotaccent -80 -KPX Yacute egrave -80 -KPX Yacute emacron -80 -KPX Yacute eogonek -80 -KPX Yacute o -100 -KPX Yacute oacute -100 -KPX Yacute ocircumflex -100 -KPX Yacute odieresis -100 -KPX Yacute ograve -100 -KPX Yacute ohungarumlaut -100 -KPX Yacute omacron -100 -KPX Yacute oslash -100 -KPX Yacute otilde -100 -KPX Yacute period -100 -KPX Yacute semicolon -50 -KPX Yacute u -100 -KPX Yacute uacute -100 -KPX Yacute ucircumflex -100 -KPX Yacute udieresis -100 -KPX Yacute ugrave -100 -KPX Yacute uhungarumlaut -100 -KPX Yacute umacron -100 -KPX Yacute uogonek -100 -KPX Yacute uring -100 -KPX Ydieresis A -110 -KPX Ydieresis Aacute -110 -KPX Ydieresis Abreve -110 -KPX Ydieresis Acircumflex -110 -KPX Ydieresis Adieresis -110 -KPX Ydieresis Agrave -110 -KPX Ydieresis Amacron -110 -KPX Ydieresis Aogonek -110 -KPX Ydieresis Aring -110 -KPX Ydieresis Atilde -110 -KPX Ydieresis O -70 -KPX Ydieresis Oacute -70 -KPX Ydieresis Ocircumflex -70 -KPX Ydieresis Odieresis -70 -KPX Ydieresis Ograve -70 -KPX Ydieresis Ohungarumlaut -70 -KPX Ydieresis Omacron -70 -KPX Ydieresis Oslash -70 -KPX Ydieresis Otilde -70 -KPX Ydieresis a -90 -KPX Ydieresis aacute -90 -KPX Ydieresis abreve -90 -KPX Ydieresis acircumflex -90 -KPX Ydieresis adieresis -90 -KPX Ydieresis agrave -90 -KPX Ydieresis amacron -90 -KPX Ydieresis aogonek -90 -KPX Ydieresis aring -90 -KPX Ydieresis atilde -90 -KPX Ydieresis colon -50 -KPX Ydieresis comma -100 -KPX Ydieresis e -80 -KPX Ydieresis eacute -80 -KPX Ydieresis ecaron -80 -KPX Ydieresis ecircumflex -80 -KPX Ydieresis edieresis -80 -KPX Ydieresis edotaccent -80 -KPX Ydieresis egrave -80 -KPX Ydieresis emacron -80 -KPX Ydieresis eogonek -80 -KPX Ydieresis o -100 -KPX Ydieresis oacute -100 -KPX Ydieresis ocircumflex -100 -KPX Ydieresis odieresis -100 -KPX Ydieresis ograve -100 -KPX Ydieresis ohungarumlaut -100 -KPX Ydieresis omacron -100 -KPX Ydieresis oslash -100 -KPX Ydieresis otilde -100 -KPX Ydieresis period -100 -KPX Ydieresis semicolon -50 -KPX Ydieresis u -100 -KPX Ydieresis uacute -100 -KPX Ydieresis ucircumflex -100 -KPX Ydieresis udieresis -100 -KPX Ydieresis ugrave -100 -KPX Ydieresis uhungarumlaut -100 -KPX Ydieresis umacron -100 -KPX Ydieresis uogonek -100 -KPX Ydieresis uring -100 -KPX a g -10 -KPX a gbreve -10 -KPX a gcommaaccent -10 -KPX a v -15 -KPX a w -15 -KPX a y -20 -KPX a yacute -20 -KPX a ydieresis -20 -KPX aacute g -10 -KPX aacute gbreve -10 -KPX aacute gcommaaccent -10 -KPX aacute v -15 -KPX aacute w -15 -KPX aacute y -20 -KPX aacute yacute -20 -KPX aacute ydieresis -20 -KPX abreve g -10 -KPX abreve gbreve -10 -KPX abreve gcommaaccent -10 -KPX abreve v -15 -KPX abreve w -15 -KPX abreve y -20 -KPX abreve yacute -20 -KPX abreve ydieresis -20 -KPX acircumflex g -10 -KPX acircumflex gbreve -10 -KPX acircumflex gcommaaccent -10 -KPX acircumflex v -15 -KPX acircumflex w -15 -KPX acircumflex y -20 -KPX acircumflex yacute -20 -KPX acircumflex ydieresis -20 -KPX adieresis g -10 -KPX adieresis gbreve -10 -KPX adieresis gcommaaccent -10 -KPX adieresis v -15 -KPX adieresis w -15 -KPX adieresis y -20 -KPX adieresis yacute -20 -KPX adieresis ydieresis -20 -KPX agrave g -10 -KPX agrave gbreve -10 -KPX agrave gcommaaccent -10 -KPX agrave v -15 -KPX agrave w -15 -KPX agrave y -20 -KPX agrave yacute -20 -KPX agrave ydieresis -20 -KPX amacron g -10 -KPX amacron gbreve -10 -KPX amacron gcommaaccent -10 -KPX amacron v -15 -KPX amacron w -15 -KPX amacron y -20 -KPX amacron yacute -20 -KPX amacron ydieresis -20 -KPX aogonek g -10 -KPX aogonek gbreve -10 -KPX aogonek gcommaaccent -10 -KPX aogonek v -15 -KPX aogonek w -15 -KPX aogonek y -20 -KPX aogonek yacute -20 -KPX aogonek ydieresis -20 -KPX aring g -10 -KPX aring gbreve -10 -KPX aring gcommaaccent -10 -KPX aring v -15 -KPX aring w -15 -KPX aring y -20 -KPX aring yacute -20 -KPX aring ydieresis -20 -KPX atilde g -10 -KPX atilde gbreve -10 -KPX atilde gcommaaccent -10 -KPX atilde v -15 -KPX atilde w -15 -KPX atilde y -20 -KPX atilde yacute -20 -KPX atilde ydieresis -20 -KPX b l -10 -KPX b lacute -10 -KPX b lcommaaccent -10 -KPX b lslash -10 -KPX b u -20 -KPX b uacute -20 -KPX b ucircumflex -20 -KPX b udieresis -20 -KPX b ugrave -20 -KPX b uhungarumlaut -20 -KPX b umacron -20 -KPX b uogonek -20 -KPX b uring -20 -KPX b v -20 -KPX b y -20 -KPX b yacute -20 -KPX b ydieresis -20 -KPX c h -10 -KPX c k -20 -KPX c kcommaaccent -20 -KPX c l -20 -KPX c lacute -20 -KPX c lcommaaccent -20 -KPX c lslash -20 -KPX c y -10 -KPX c yacute -10 -KPX c ydieresis -10 -KPX cacute h -10 -KPX cacute k -20 -KPX cacute kcommaaccent -20 -KPX cacute l -20 -KPX cacute lacute -20 -KPX cacute lcommaaccent -20 -KPX cacute lslash -20 -KPX cacute y -10 -KPX cacute yacute -10 -KPX cacute ydieresis -10 -KPX ccaron h -10 -KPX ccaron k -20 -KPX ccaron kcommaaccent -20 -KPX ccaron l -20 -KPX ccaron lacute -20 -KPX ccaron lcommaaccent -20 -KPX ccaron lslash -20 -KPX ccaron y -10 -KPX ccaron yacute -10 -KPX ccaron ydieresis -10 -KPX ccedilla h -10 -KPX ccedilla k -20 -KPX ccedilla kcommaaccent -20 -KPX ccedilla l -20 -KPX ccedilla lacute -20 -KPX ccedilla lcommaaccent -20 -KPX ccedilla lslash -20 -KPX ccedilla y -10 -KPX ccedilla yacute -10 -KPX ccedilla ydieresis -10 -KPX colon space -40 -KPX comma quotedblright -120 -KPX comma quoteright -120 -KPX comma space -40 -KPX d d -10 -KPX d dcroat -10 -KPX d v -15 -KPX d w -15 -KPX d y -15 -KPX d yacute -15 -KPX d ydieresis -15 -KPX dcroat d -10 -KPX dcroat dcroat -10 -KPX dcroat v -15 -KPX dcroat w -15 -KPX dcroat y -15 -KPX dcroat yacute -15 -KPX dcroat ydieresis -15 -KPX e comma 10 -KPX e period 20 -KPX e v -15 -KPX e w -15 -KPX e x -15 -KPX e y -15 -KPX e yacute -15 -KPX e ydieresis -15 -KPX eacute comma 10 -KPX eacute period 20 -KPX eacute v -15 -KPX eacute w -15 -KPX eacute x -15 -KPX eacute y -15 -KPX eacute yacute -15 -KPX eacute ydieresis -15 -KPX ecaron comma 10 -KPX ecaron period 20 -KPX ecaron v -15 -KPX ecaron w -15 -KPX ecaron x -15 -KPX ecaron y -15 -KPX ecaron yacute -15 -KPX ecaron ydieresis -15 -KPX ecircumflex comma 10 -KPX ecircumflex period 20 -KPX ecircumflex v -15 -KPX ecircumflex w -15 -KPX ecircumflex x -15 -KPX ecircumflex y -15 -KPX ecircumflex yacute -15 -KPX ecircumflex ydieresis -15 -KPX edieresis comma 10 -KPX edieresis period 20 -KPX edieresis v -15 -KPX edieresis w -15 -KPX edieresis x -15 -KPX edieresis y -15 -KPX edieresis yacute -15 -KPX edieresis ydieresis -15 -KPX edotaccent comma 10 -KPX edotaccent period 20 -KPX edotaccent v -15 -KPX edotaccent w -15 -KPX edotaccent x -15 -KPX edotaccent y -15 -KPX edotaccent yacute -15 -KPX edotaccent ydieresis -15 -KPX egrave comma 10 -KPX egrave period 20 -KPX egrave v -15 -KPX egrave w -15 -KPX egrave x -15 -KPX egrave y -15 -KPX egrave yacute -15 -KPX egrave ydieresis -15 -KPX emacron comma 10 -KPX emacron period 20 -KPX emacron v -15 -KPX emacron w -15 -KPX emacron x -15 -KPX emacron y -15 -KPX emacron yacute -15 -KPX emacron ydieresis -15 -KPX eogonek comma 10 -KPX eogonek period 20 -KPX eogonek v -15 -KPX eogonek w -15 -KPX eogonek x -15 -KPX eogonek y -15 -KPX eogonek yacute -15 -KPX eogonek ydieresis -15 -KPX f comma -10 -KPX f e -10 -KPX f eacute -10 -KPX f ecaron -10 -KPX f ecircumflex -10 -KPX f edieresis -10 -KPX f edotaccent -10 -KPX f egrave -10 -KPX f emacron -10 -KPX f eogonek -10 -KPX f o -20 -KPX f oacute -20 -KPX f ocircumflex -20 -KPX f odieresis -20 -KPX f ograve -20 -KPX f ohungarumlaut -20 -KPX f omacron -20 -KPX f oslash -20 -KPX f otilde -20 -KPX f period -10 -KPX f quotedblright 30 -KPX f quoteright 30 -KPX g e 10 -KPX g eacute 10 -KPX g ecaron 10 -KPX g ecircumflex 10 -KPX g edieresis 10 -KPX g edotaccent 10 -KPX g egrave 10 -KPX g emacron 10 -KPX g eogonek 10 -KPX g g -10 -KPX g gbreve -10 -KPX g gcommaaccent -10 -KPX gbreve e 10 -KPX gbreve eacute 10 -KPX gbreve ecaron 10 -KPX gbreve ecircumflex 10 -KPX gbreve edieresis 10 -KPX gbreve edotaccent 10 -KPX gbreve egrave 10 -KPX gbreve emacron 10 -KPX gbreve eogonek 10 -KPX gbreve g -10 -KPX gbreve gbreve -10 -KPX gbreve gcommaaccent -10 -KPX gcommaaccent e 10 -KPX gcommaaccent eacute 10 -KPX gcommaaccent ecaron 10 -KPX gcommaaccent ecircumflex 10 -KPX gcommaaccent edieresis 10 -KPX gcommaaccent edotaccent 10 -KPX gcommaaccent egrave 10 -KPX gcommaaccent emacron 10 -KPX gcommaaccent eogonek 10 -KPX gcommaaccent g -10 -KPX gcommaaccent gbreve -10 -KPX gcommaaccent gcommaaccent -10 -KPX h y -20 -KPX h yacute -20 -KPX h ydieresis -20 -KPX k o -15 -KPX k oacute -15 -KPX k ocircumflex -15 -KPX k odieresis -15 -KPX k ograve -15 -KPX k ohungarumlaut -15 -KPX k omacron -15 -KPX k oslash -15 -KPX k otilde -15 -KPX kcommaaccent o -15 -KPX kcommaaccent oacute -15 -KPX kcommaaccent ocircumflex -15 -KPX kcommaaccent odieresis -15 -KPX kcommaaccent ograve -15 -KPX kcommaaccent ohungarumlaut -15 -KPX kcommaaccent omacron -15 -KPX kcommaaccent oslash -15 -KPX kcommaaccent otilde -15 -KPX l w -15 -KPX l y -15 -KPX l yacute -15 -KPX l ydieresis -15 -KPX lacute w -15 -KPX lacute y -15 -KPX lacute yacute -15 -KPX lacute ydieresis -15 -KPX lcommaaccent w -15 -KPX lcommaaccent y -15 -KPX lcommaaccent yacute -15 -KPX lcommaaccent ydieresis -15 -KPX lslash w -15 -KPX lslash y -15 -KPX lslash yacute -15 -KPX lslash ydieresis -15 -KPX m u -20 -KPX m uacute -20 -KPX m ucircumflex -20 -KPX m udieresis -20 -KPX m ugrave -20 -KPX m uhungarumlaut -20 -KPX m umacron -20 -KPX m uogonek -20 -KPX m uring -20 -KPX m y -30 -KPX m yacute -30 -KPX m ydieresis -30 -KPX n u -10 -KPX n uacute -10 -KPX n ucircumflex -10 -KPX n udieresis -10 -KPX n ugrave -10 -KPX n uhungarumlaut -10 -KPX n umacron -10 -KPX n uogonek -10 -KPX n uring -10 -KPX n v -40 -KPX n y -20 -KPX n yacute -20 -KPX n ydieresis -20 -KPX nacute u -10 -KPX nacute uacute -10 -KPX nacute ucircumflex -10 -KPX nacute udieresis -10 -KPX nacute ugrave -10 -KPX nacute uhungarumlaut -10 -KPX nacute umacron -10 -KPX nacute uogonek -10 -KPX nacute uring -10 -KPX nacute v -40 -KPX nacute y -20 -KPX nacute yacute -20 -KPX nacute ydieresis -20 -KPX ncaron u -10 -KPX ncaron uacute -10 -KPX ncaron ucircumflex -10 -KPX ncaron udieresis -10 -KPX ncaron ugrave -10 -KPX ncaron uhungarumlaut -10 -KPX ncaron umacron -10 -KPX ncaron uogonek -10 -KPX ncaron uring -10 -KPX ncaron v -40 -KPX ncaron y -20 -KPX ncaron yacute -20 -KPX ncaron ydieresis -20 -KPX ncommaaccent u -10 -KPX ncommaaccent uacute -10 -KPX ncommaaccent ucircumflex -10 -KPX ncommaaccent udieresis -10 -KPX ncommaaccent ugrave -10 -KPX ncommaaccent uhungarumlaut -10 -KPX ncommaaccent umacron -10 -KPX ncommaaccent uogonek -10 -KPX ncommaaccent uring -10 -KPX ncommaaccent v -40 -KPX ncommaaccent y -20 -KPX ncommaaccent yacute -20 -KPX ncommaaccent ydieresis -20 -KPX ntilde u -10 -KPX ntilde uacute -10 -KPX ntilde ucircumflex -10 -KPX ntilde udieresis -10 -KPX ntilde ugrave -10 -KPX ntilde uhungarumlaut -10 -KPX ntilde umacron -10 -KPX ntilde uogonek -10 -KPX ntilde uring -10 -KPX ntilde v -40 -KPX ntilde y -20 -KPX ntilde yacute -20 -KPX ntilde ydieresis -20 -KPX o v -20 -KPX o w -15 -KPX o x -30 -KPX o y -20 -KPX o yacute -20 -KPX o ydieresis -20 -KPX oacute v -20 -KPX oacute w -15 -KPX oacute x -30 -KPX oacute y -20 -KPX oacute yacute -20 -KPX oacute ydieresis -20 -KPX ocircumflex v -20 -KPX ocircumflex w -15 -KPX ocircumflex x -30 -KPX ocircumflex y -20 -KPX ocircumflex yacute -20 -KPX ocircumflex ydieresis -20 -KPX odieresis v -20 -KPX odieresis w -15 -KPX odieresis x -30 -KPX odieresis y -20 -KPX odieresis yacute -20 -KPX odieresis ydieresis -20 -KPX ograve v -20 -KPX ograve w -15 -KPX ograve x -30 -KPX ograve y -20 -KPX ograve yacute -20 -KPX ograve ydieresis -20 -KPX ohungarumlaut v -20 -KPX ohungarumlaut w -15 -KPX ohungarumlaut x -30 -KPX ohungarumlaut y -20 -KPX ohungarumlaut yacute -20 -KPX ohungarumlaut ydieresis -20 -KPX omacron v -20 -KPX omacron w -15 -KPX omacron x -30 -KPX omacron y -20 -KPX omacron yacute -20 -KPX omacron ydieresis -20 -KPX oslash v -20 -KPX oslash w -15 -KPX oslash x -30 -KPX oslash y -20 -KPX oslash yacute -20 -KPX oslash ydieresis -20 -KPX otilde v -20 -KPX otilde w -15 -KPX otilde x -30 -KPX otilde y -20 -KPX otilde yacute -20 -KPX otilde ydieresis -20 -KPX p y -15 -KPX p yacute -15 -KPX p ydieresis -15 -KPX period quotedblright -120 -KPX period quoteright -120 -KPX period space -40 -KPX quotedblright space -80 -KPX quoteleft quoteleft -46 -KPX quoteright d -80 -KPX quoteright dcroat -80 -KPX quoteright l -20 -KPX quoteright lacute -20 -KPX quoteright lcommaaccent -20 -KPX quoteright lslash -20 -KPX quoteright quoteright -46 -KPX quoteright r -40 -KPX quoteright racute -40 -KPX quoteright rcaron -40 -KPX quoteright rcommaaccent -40 -KPX quoteright s -60 -KPX quoteright sacute -60 -KPX quoteright scaron -60 -KPX quoteright scedilla -60 -KPX quoteright scommaaccent -60 -KPX quoteright space -80 -KPX quoteright v -20 -KPX r c -20 -KPX r cacute -20 -KPX r ccaron -20 -KPX r ccedilla -20 -KPX r comma -60 -KPX r d -20 -KPX r dcroat -20 -KPX r g -15 -KPX r gbreve -15 -KPX r gcommaaccent -15 -KPX r hyphen -20 -KPX r o -20 -KPX r oacute -20 -KPX r ocircumflex -20 -KPX r odieresis -20 -KPX r ograve -20 -KPX r ohungarumlaut -20 -KPX r omacron -20 -KPX r oslash -20 -KPX r otilde -20 -KPX r period -60 -KPX r q -20 -KPX r s -15 -KPX r sacute -15 -KPX r scaron -15 -KPX r scedilla -15 -KPX r scommaaccent -15 -KPX r t 20 -KPX r tcommaaccent 20 -KPX r v 10 -KPX r y 10 -KPX r yacute 10 -KPX r ydieresis 10 -KPX racute c -20 -KPX racute cacute -20 -KPX racute ccaron -20 -KPX racute ccedilla -20 -KPX racute comma -60 -KPX racute d -20 -KPX racute dcroat -20 -KPX racute g -15 -KPX racute gbreve -15 -KPX racute gcommaaccent -15 -KPX racute hyphen -20 -KPX racute o -20 -KPX racute oacute -20 -KPX racute ocircumflex -20 -KPX racute odieresis -20 -KPX racute ograve -20 -KPX racute ohungarumlaut -20 -KPX racute omacron -20 -KPX racute oslash -20 -KPX racute otilde -20 -KPX racute period -60 -KPX racute q -20 -KPX racute s -15 -KPX racute sacute -15 -KPX racute scaron -15 -KPX racute scedilla -15 -KPX racute scommaaccent -15 -KPX racute t 20 -KPX racute tcommaaccent 20 -KPX racute v 10 -KPX racute y 10 -KPX racute yacute 10 -KPX racute ydieresis 10 -KPX rcaron c -20 -KPX rcaron cacute -20 -KPX rcaron ccaron -20 -KPX rcaron ccedilla -20 -KPX rcaron comma -60 -KPX rcaron d -20 -KPX rcaron dcroat -20 -KPX rcaron g -15 -KPX rcaron gbreve -15 -KPX rcaron gcommaaccent -15 -KPX rcaron hyphen -20 -KPX rcaron o -20 -KPX rcaron oacute -20 -KPX rcaron ocircumflex -20 -KPX rcaron odieresis -20 -KPX rcaron ograve -20 -KPX rcaron ohungarumlaut -20 -KPX rcaron omacron -20 -KPX rcaron oslash -20 -KPX rcaron otilde -20 -KPX rcaron period -60 -KPX rcaron q -20 -KPX rcaron s -15 -KPX rcaron sacute -15 -KPX rcaron scaron -15 -KPX rcaron scedilla -15 -KPX rcaron scommaaccent -15 -KPX rcaron t 20 -KPX rcaron tcommaaccent 20 -KPX rcaron v 10 -KPX rcaron y 10 -KPX rcaron yacute 10 -KPX rcaron ydieresis 10 -KPX rcommaaccent c -20 -KPX rcommaaccent cacute -20 -KPX rcommaaccent ccaron -20 -KPX rcommaaccent ccedilla -20 -KPX rcommaaccent comma -60 -KPX rcommaaccent d -20 -KPX rcommaaccent dcroat -20 -KPX rcommaaccent g -15 -KPX rcommaaccent gbreve -15 -KPX rcommaaccent gcommaaccent -15 -KPX rcommaaccent hyphen -20 -KPX rcommaaccent o -20 -KPX rcommaaccent oacute -20 -KPX rcommaaccent ocircumflex -20 -KPX rcommaaccent odieresis -20 -KPX rcommaaccent ograve -20 -KPX rcommaaccent ohungarumlaut -20 -KPX rcommaaccent omacron -20 -KPX rcommaaccent oslash -20 -KPX rcommaaccent otilde -20 -KPX rcommaaccent period -60 -KPX rcommaaccent q -20 -KPX rcommaaccent s -15 -KPX rcommaaccent sacute -15 -KPX rcommaaccent scaron -15 -KPX rcommaaccent scedilla -15 -KPX rcommaaccent scommaaccent -15 -KPX rcommaaccent t 20 -KPX rcommaaccent tcommaaccent 20 -KPX rcommaaccent v 10 -KPX rcommaaccent y 10 -KPX rcommaaccent yacute 10 -KPX rcommaaccent ydieresis 10 -KPX s w -15 -KPX sacute w -15 -KPX scaron w -15 -KPX scedilla w -15 -KPX scommaaccent w -15 -KPX semicolon space -40 -KPX space T -100 -KPX space Tcaron -100 -KPX space Tcommaaccent -100 -KPX space V -80 -KPX space W -80 -KPX space Y -120 -KPX space Yacute -120 -KPX space Ydieresis -120 -KPX space quotedblleft -80 -KPX space quoteleft -60 -KPX v a -20 -KPX v aacute -20 -KPX v abreve -20 -KPX v acircumflex -20 -KPX v adieresis -20 -KPX v agrave -20 -KPX v amacron -20 -KPX v aogonek -20 -KPX v aring -20 -KPX v atilde -20 -KPX v comma -80 -KPX v o -30 -KPX v oacute -30 -KPX v ocircumflex -30 -KPX v odieresis -30 -KPX v ograve -30 -KPX v ohungarumlaut -30 -KPX v omacron -30 -KPX v oslash -30 -KPX v otilde -30 -KPX v period -80 -KPX w comma -40 -KPX w o -20 -KPX w oacute -20 -KPX w ocircumflex -20 -KPX w odieresis -20 -KPX w ograve -20 -KPX w ohungarumlaut -20 -KPX w omacron -20 -KPX w oslash -20 -KPX w otilde -20 -KPX w period -40 -KPX x e -10 -KPX x eacute -10 -KPX x ecaron -10 -KPX x ecircumflex -10 -KPX x edieresis -10 -KPX x edotaccent -10 -KPX x egrave -10 -KPX x emacron -10 -KPX x eogonek -10 -KPX y a -30 -KPX y aacute -30 -KPX y abreve -30 -KPX y acircumflex -30 -KPX y adieresis -30 -KPX y agrave -30 -KPX y amacron -30 -KPX y aogonek -30 -KPX y aring -30 -KPX y atilde -30 -KPX y comma -80 -KPX y e -10 -KPX y eacute -10 -KPX y ecaron -10 -KPX y ecircumflex -10 -KPX y edieresis -10 -KPX y edotaccent -10 -KPX y egrave -10 -KPX y emacron -10 -KPX y eogonek -10 -KPX y o -25 -KPX y oacute -25 -KPX y ocircumflex -25 -KPX y odieresis -25 -KPX y ograve -25 -KPX y ohungarumlaut -25 -KPX y omacron -25 -KPX y oslash -25 -KPX y otilde -25 -KPX y period -80 -KPX yacute a -30 -KPX yacute aacute -30 -KPX yacute abreve -30 -KPX yacute acircumflex -30 -KPX yacute adieresis -30 -KPX yacute agrave -30 -KPX yacute amacron -30 -KPX yacute aogonek -30 -KPX yacute aring -30 -KPX yacute atilde -30 -KPX yacute comma -80 -KPX yacute e -10 -KPX yacute eacute -10 -KPX yacute ecaron -10 -KPX yacute ecircumflex -10 -KPX yacute edieresis -10 -KPX yacute edotaccent -10 -KPX yacute egrave -10 -KPX yacute emacron -10 -KPX yacute eogonek -10 -KPX yacute o -25 -KPX yacute oacute -25 -KPX yacute ocircumflex -25 -KPX yacute odieresis -25 -KPX yacute ograve -25 -KPX yacute ohungarumlaut -25 -KPX yacute omacron -25 -KPX yacute oslash -25 -KPX yacute otilde -25 -KPX yacute period -80 -KPX ydieresis a -30 -KPX ydieresis aacute -30 -KPX ydieresis abreve -30 -KPX ydieresis acircumflex -30 -KPX ydieresis adieresis -30 -KPX ydieresis agrave -30 -KPX ydieresis amacron -30 -KPX ydieresis aogonek -30 -KPX ydieresis aring -30 -KPX ydieresis atilde -30 -KPX ydieresis comma -80 -KPX ydieresis e -10 -KPX ydieresis eacute -10 -KPX ydieresis ecaron -10 -KPX ydieresis ecircumflex -10 -KPX ydieresis edieresis -10 -KPX ydieresis edotaccent -10 -KPX ydieresis egrave -10 -KPX ydieresis emacron -10 -KPX ydieresis eogonek -10 -KPX ydieresis o -25 -KPX ydieresis oacute -25 -KPX ydieresis ocircumflex -25 -KPX ydieresis odieresis -25 -KPX ydieresis ograve -25 -KPX ydieresis ohungarumlaut -25 -KPX ydieresis omacron -25 -KPX ydieresis oslash -25 -KPX ydieresis otilde -25 -KPX ydieresis period -80 -KPX z e 10 -KPX z eacute 10 -KPX z ecaron 10 -KPX z ecircumflex 10 -KPX z edieresis 10 -KPX z edotaccent 10 -KPX z egrave 10 -KPX z emacron 10 -KPX z eogonek 10 -KPX zacute e 10 -KPX zacute eacute 10 -KPX zacute ecaron 10 -KPX zacute ecircumflex 10 -KPX zacute edieresis 10 -KPX zacute edotaccent 10 -KPX zacute egrave 10 -KPX zacute emacron 10 -KPX zacute eogonek 10 -KPX zcaron e 10 -KPX zcaron eacute 10 -KPX zcaron ecaron 10 -KPX zcaron ecircumflex 10 -KPX zcaron edieresis 10 -KPX zcaron edotaccent 10 -KPX zcaron egrave 10 -KPX zcaron emacron 10 -KPX zcaron eogonek 10 -KPX zdotaccent e 10 -KPX zdotaccent eacute 10 -KPX zdotaccent ecaron 10 -KPX zdotaccent ecircumflex 10 -KPX zdotaccent edieresis 10 -KPX zdotaccent edotaccent 10 -KPX zdotaccent egrave 10 -KPX zdotaccent emacron 10 -KPX zdotaccent eogonek 10 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/reporting/fonts/Helvetica-Oblique.afm b/reporting/fonts/Helvetica-Oblique.afm deleted file mode 100644 index 7a7af001..00000000 --- a/reporting/fonts/Helvetica-Oblique.afm +++ /dev/null @@ -1,3051 +0,0 @@ -StartFontMetrics 4.1 -Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date: Thu May 1 12:44:31 1997 -Comment UniqueID 43055 -Comment VMusage 14960 69346 -FontName Helvetica-Oblique -FullName Helvetica Oblique -FamilyName Helvetica -Weight Medium -ItalicAngle -12 -IsFixedPitch false -CharacterSet ExtendedRoman -FontBBox -170 -225 1116 931 -UnderlinePosition -100 -UnderlineThickness 50 -Version 002.000 -Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. -EncodingScheme AdobeStandardEncoding -CapHeight 718 -XHeight 523 -Ascender 718 -Descender -207 -StdHW 76 -StdVW 88 -StartCharMetrics 315 -C 32 ; WX 278 ; N space ; B 0 0 0 0 ; -C 33 ; WX 278 ; N exclam ; B 90 0 340 718 ; -C 34 ; WX 355 ; N quotedbl ; B 168 463 438 718 ; -C 35 ; WX 556 ; N numbersign ; B 73 0 631 688 ; -C 36 ; WX 556 ; N dollar ; B 69 -115 617 775 ; -C 37 ; WX 889 ; N percent ; B 147 -19 889 703 ; -C 38 ; WX 667 ; N ampersand ; B 77 -15 647 718 ; -C 39 ; WX 222 ; N quoteright ; B 151 463 310 718 ; -C 40 ; WX 333 ; N parenleft ; B 108 -207 454 733 ; -C 41 ; WX 333 ; N parenright ; B -9 -207 337 733 ; -C 42 ; WX 389 ; N asterisk ; B 165 431 475 718 ; -C 43 ; WX 584 ; N plus ; B 85 0 606 505 ; -C 44 ; WX 278 ; N comma ; B 56 -147 214 106 ; -C 45 ; WX 333 ; N hyphen ; B 93 232 357 322 ; -C 46 ; WX 278 ; N period ; B 87 0 214 106 ; -C 47 ; WX 278 ; N slash ; B -21 -19 452 737 ; -C 48 ; WX 556 ; N zero ; B 93 -19 608 703 ; -C 49 ; WX 556 ; N one ; B 207 0 508 703 ; -C 50 ; WX 556 ; N two ; B 26 0 617 703 ; -C 51 ; WX 556 ; N three ; B 75 -19 610 703 ; -C 52 ; WX 556 ; N four ; B 61 0 576 703 ; -C 53 ; WX 556 ; N five ; B 68 -19 621 688 ; -C 54 ; WX 556 ; N six ; B 91 -19 615 703 ; -C 55 ; WX 556 ; N seven ; B 137 0 669 688 ; -C 56 ; WX 556 ; N eight ; B 74 -19 607 703 ; -C 57 ; WX 556 ; N nine ; B 82 -19 609 703 ; -C 58 ; WX 278 ; N colon ; B 87 0 301 516 ; -C 59 ; WX 278 ; N semicolon ; B 56 -147 301 516 ; -C 60 ; WX 584 ; N less ; B 94 11 641 495 ; -C 61 ; WX 584 ; N equal ; B 63 115 628 390 ; -C 62 ; WX 584 ; N greater ; B 50 11 597 495 ; -C 63 ; WX 556 ; N question ; B 161 0 610 727 ; -C 64 ; WX 1015 ; N at ; B 215 -19 965 737 ; -C 65 ; WX 667 ; N A ; B 14 0 654 718 ; -C 66 ; WX 667 ; N B ; B 74 0 712 718 ; -C 67 ; WX 722 ; N C ; B 108 -19 782 737 ; -C 68 ; WX 722 ; N D ; B 81 0 764 718 ; -C 69 ; WX 667 ; N E ; B 86 0 762 718 ; -C 70 ; WX 611 ; N F ; B 86 0 736 718 ; -C 71 ; WX 778 ; N G ; B 111 -19 799 737 ; -C 72 ; WX 722 ; N H ; B 77 0 799 718 ; -C 73 ; WX 278 ; N I ; B 91 0 341 718 ; -C 74 ; WX 500 ; N J ; B 47 -19 581 718 ; -C 75 ; WX 667 ; N K ; B 76 0 808 718 ; -C 76 ; WX 556 ; N L ; B 76 0 555 718 ; -C 77 ; WX 833 ; N M ; B 73 0 914 718 ; -C 78 ; WX 722 ; N N ; B 76 0 799 718 ; -C 79 ; WX 778 ; N O ; B 105 -19 826 737 ; -C 80 ; WX 667 ; N P ; B 86 0 737 718 ; -C 81 ; WX 778 ; N Q ; B 105 -56 826 737 ; -C 82 ; WX 722 ; N R ; B 88 0 773 718 ; -C 83 ; WX 667 ; N S ; B 90 -19 713 737 ; -C 84 ; WX 611 ; N T ; B 148 0 750 718 ; -C 85 ; WX 722 ; N U ; B 123 -19 797 718 ; -C 86 ; WX 667 ; N V ; B 173 0 800 718 ; -C 87 ; WX 944 ; N W ; B 169 0 1081 718 ; -C 88 ; WX 667 ; N X ; B 19 0 790 718 ; -C 89 ; WX 667 ; N Y ; B 167 0 806 718 ; -C 90 ; WX 611 ; N Z ; B 23 0 741 718 ; -C 91 ; WX 278 ; N bracketleft ; B 21 -196 403 722 ; -C 92 ; WX 278 ; N backslash ; B 140 -19 291 737 ; -C 93 ; WX 278 ; N bracketright ; B -14 -196 368 722 ; -C 94 ; WX 469 ; N asciicircum ; B 42 264 539 688 ; -C 95 ; WX 556 ; N underscore ; B -27 -125 540 -75 ; -C 96 ; WX 222 ; N quoteleft ; B 165 470 323 725 ; -C 97 ; WX 556 ; N a ; B 61 -15 559 538 ; -C 98 ; WX 556 ; N b ; B 58 -15 584 718 ; -C 99 ; WX 500 ; N c ; B 74 -15 553 538 ; -C 100 ; WX 556 ; N d ; B 84 -15 652 718 ; -C 101 ; WX 556 ; N e ; B 84 -15 578 538 ; -C 102 ; WX 278 ; N f ; B 86 0 416 728 ; L i fi ; L l fl ; -C 103 ; WX 556 ; N g ; B 42 -220 610 538 ; -C 104 ; WX 556 ; N h ; B 65 0 573 718 ; -C 105 ; WX 222 ; N i ; B 67 0 308 718 ; -C 106 ; WX 222 ; N j ; B -60 -210 308 718 ; -C 107 ; WX 500 ; N k ; B 67 0 600 718 ; -C 108 ; WX 222 ; N l ; B 67 0 308 718 ; -C 109 ; WX 833 ; N m ; B 65 0 852 538 ; -C 110 ; WX 556 ; N n ; B 65 0 573 538 ; -C 111 ; WX 556 ; N o ; B 83 -14 585 538 ; -C 112 ; WX 556 ; N p ; B 14 -207 584 538 ; -C 113 ; WX 556 ; N q ; B 84 -207 605 538 ; -C 114 ; WX 333 ; N r ; B 77 0 446 538 ; -C 115 ; WX 500 ; N s ; B 63 -15 529 538 ; -C 116 ; WX 278 ; N t ; B 102 -7 368 669 ; -C 117 ; WX 556 ; N u ; B 94 -15 600 523 ; -C 118 ; WX 500 ; N v ; B 119 0 603 523 ; -C 119 ; WX 722 ; N w ; B 125 0 820 523 ; -C 120 ; WX 500 ; N x ; B 11 0 594 523 ; -C 121 ; WX 500 ; N y ; B 15 -214 600 523 ; -C 122 ; WX 500 ; N z ; B 31 0 571 523 ; -C 123 ; WX 334 ; N braceleft ; B 92 -196 445 722 ; -C 124 ; WX 260 ; N bar ; B 46 -225 332 775 ; -C 125 ; WX 334 ; N braceright ; B 0 -196 354 722 ; -C 126 ; WX 584 ; N asciitilde ; B 111 180 580 326 ; -C 161 ; WX 333 ; N exclamdown ; B 77 -195 326 523 ; -C 162 ; WX 556 ; N cent ; B 95 -115 584 623 ; -C 163 ; WX 556 ; N sterling ; B 49 -16 634 718 ; -C 164 ; WX 167 ; N fraction ; B -170 -19 482 703 ; -C 165 ; WX 556 ; N yen ; B 81 0 699 688 ; -C 166 ; WX 556 ; N florin ; B -52 -207 654 737 ; -C 167 ; WX 556 ; N section ; B 76 -191 584 737 ; -C 168 ; WX 556 ; N currency ; B 60 99 646 603 ; -C 169 ; WX 191 ; N quotesingle ; B 157 463 285 718 ; -C 170 ; WX 333 ; N quotedblleft ; B 138 470 461 725 ; -C 171 ; WX 556 ; N guillemotleft ; B 146 108 554 446 ; -C 172 ; WX 333 ; N guilsinglleft ; B 137 108 340 446 ; -C 173 ; WX 333 ; N guilsinglright ; B 111 108 314 446 ; -C 174 ; WX 500 ; N fi ; B 86 0 587 728 ; -C 175 ; WX 500 ; N fl ; B 86 0 585 728 ; -C 177 ; WX 556 ; N endash ; B 51 240 623 313 ; -C 178 ; WX 556 ; N dagger ; B 135 -159 622 718 ; -C 179 ; WX 556 ; N daggerdbl ; B 52 -159 623 718 ; -C 180 ; WX 278 ; N periodcentered ; B 129 190 257 315 ; -C 182 ; WX 537 ; N paragraph ; B 126 -173 650 718 ; -C 183 ; WX 350 ; N bullet ; B 91 202 413 517 ; -C 184 ; WX 222 ; N quotesinglbase ; B 21 -149 180 106 ; -C 185 ; WX 333 ; N quotedblbase ; B -6 -149 318 106 ; -C 186 ; WX 333 ; N quotedblright ; B 124 463 448 718 ; -C 187 ; WX 556 ; N guillemotright ; B 120 108 528 446 ; -C 188 ; WX 1000 ; N ellipsis ; B 115 0 908 106 ; -C 189 ; WX 1000 ; N perthousand ; B 88 -19 1029 703 ; -C 191 ; WX 611 ; N questiondown ; B 85 -201 534 525 ; -C 193 ; WX 333 ; N grave ; B 170 593 337 734 ; -C 194 ; WX 333 ; N acute ; B 248 593 475 734 ; -C 195 ; WX 333 ; N circumflex ; B 147 593 438 734 ; -C 196 ; WX 333 ; N tilde ; B 125 606 490 722 ; -C 197 ; WX 333 ; N macron ; B 143 627 468 684 ; -C 198 ; WX 333 ; N breve ; B 167 595 476 731 ; -C 199 ; WX 333 ; N dotaccent ; B 249 604 362 706 ; -C 200 ; WX 333 ; N dieresis ; B 168 604 443 706 ; -C 202 ; WX 333 ; N ring ; B 214 572 402 756 ; -C 203 ; WX 333 ; N cedilla ; B 2 -225 232 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B 157 593 565 734 ; -C 206 ; WX 333 ; N ogonek ; B 43 -225 249 0 ; -C 207 ; WX 333 ; N caron ; B 177 593 468 734 ; -C 208 ; WX 1000 ; N emdash ; B 51 240 1067 313 ; -C 225 ; WX 1000 ; N AE ; B 8 0 1097 718 ; -C 227 ; WX 370 ; N ordfeminine ; B 127 405 449 737 ; -C 232 ; WX 556 ; N Lslash ; B 41 0 555 718 ; -C 233 ; WX 778 ; N Oslash ; B 43 -19 890 737 ; -C 234 ; WX 1000 ; N OE ; B 98 -19 1116 737 ; -C 235 ; WX 365 ; N ordmasculine ; B 141 405 468 737 ; -C 241 ; WX 889 ; N ae ; B 61 -15 909 538 ; -C 245 ; WX 278 ; N dotlessi ; B 95 0 294 523 ; -C 248 ; WX 222 ; N lslash ; B 41 0 347 718 ; -C 249 ; WX 611 ; N oslash ; B 29 -22 647 545 ; -C 250 ; WX 944 ; N oe ; B 83 -15 964 538 ; -C 251 ; WX 611 ; N germandbls ; B 67 -15 658 728 ; -C -1 ; WX 278 ; N Idieresis ; B 91 0 458 901 ; -C -1 ; WX 556 ; N eacute ; B 84 -15 587 734 ; -C -1 ; WX 556 ; N abreve ; B 61 -15 578 731 ; -C -1 ; WX 556 ; N uhungarumlaut ; B 94 -15 677 734 ; -C -1 ; WX 556 ; N ecaron ; B 84 -15 580 734 ; -C -1 ; WX 667 ; N Ydieresis ; B 167 0 806 901 ; -C -1 ; WX 584 ; N divide ; B 85 -19 606 524 ; -C -1 ; WX 667 ; N Yacute ; B 167 0 806 929 ; -C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; -C -1 ; WX 556 ; N aacute ; B 61 -15 587 734 ; -C -1 ; WX 722 ; N Ucircumflex ; B 123 -19 797 929 ; -C -1 ; WX 500 ; N yacute ; B 15 -214 600 734 ; -C -1 ; WX 500 ; N scommaaccent ; B 63 -225 529 538 ; -C -1 ; WX 556 ; N ecircumflex ; B 84 -15 578 734 ; -C -1 ; WX 722 ; N Uring ; B 123 -19 797 931 ; -C -1 ; WX 722 ; N Udieresis ; B 123 -19 797 901 ; -C -1 ; WX 556 ; N aogonek ; B 61 -220 559 538 ; -C -1 ; WX 722 ; N Uacute ; B 123 -19 797 929 ; -C -1 ; WX 556 ; N uogonek ; B 94 -225 600 523 ; -C -1 ; WX 667 ; N Edieresis ; B 86 0 762 901 ; -C -1 ; WX 722 ; N Dcroat ; B 69 0 764 718 ; -C -1 ; WX 250 ; N commaaccent ; B 39 -225 172 -40 ; -C -1 ; WX 737 ; N copyright ; B 54 -19 837 737 ; -C -1 ; WX 667 ; N Emacron ; B 86 0 762 879 ; -C -1 ; WX 500 ; N ccaron ; B 74 -15 553 734 ; -C -1 ; WX 556 ; N aring ; B 61 -15 559 756 ; -C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 799 718 ; -C -1 ; WX 222 ; N lacute ; B 67 0 461 929 ; -C -1 ; WX 556 ; N agrave ; B 61 -15 559 734 ; -C -1 ; WX 611 ; N Tcommaaccent ; B 148 -225 750 718 ; -C -1 ; WX 722 ; N Cacute ; B 108 -19 782 929 ; -C -1 ; WX 556 ; N atilde ; B 61 -15 592 722 ; -C -1 ; WX 667 ; N Edotaccent ; B 86 0 762 901 ; -C -1 ; WX 500 ; N scaron ; B 63 -15 552 734 ; -C -1 ; WX 500 ; N scedilla ; B 63 -225 529 538 ; -C -1 ; WX 278 ; N iacute ; B 95 0 448 734 ; -C -1 ; WX 471 ; N lozenge ; B 88 0 540 728 ; -C -1 ; WX 722 ; N Rcaron ; B 88 0 773 929 ; -C -1 ; WX 778 ; N Gcommaaccent ; B 111 -225 799 737 ; -C -1 ; WX 556 ; N ucircumflex ; B 94 -15 600 734 ; -C -1 ; WX 556 ; N acircumflex ; B 61 -15 559 734 ; -C -1 ; WX 667 ; N Amacron ; B 14 0 677 879 ; -C -1 ; WX 333 ; N rcaron ; B 77 0 508 734 ; -C -1 ; WX 500 ; N ccedilla ; B 74 -225 553 538 ; -C -1 ; WX 611 ; N Zdotaccent ; B 23 0 741 901 ; -C -1 ; WX 667 ; N Thorn ; B 86 0 712 718 ; -C -1 ; WX 778 ; N Omacron ; B 105 -19 826 879 ; -C -1 ; WX 722 ; N Racute ; B 88 0 773 929 ; -C -1 ; WX 667 ; N Sacute ; B 90 -19 713 929 ; -C -1 ; WX 643 ; N dcaron ; B 84 -15 808 718 ; -C -1 ; WX 722 ; N Umacron ; B 123 -19 797 879 ; -C -1 ; WX 556 ; N uring ; B 94 -15 600 756 ; -C -1 ; WX 333 ; N threesuperior ; B 90 270 436 703 ; -C -1 ; WX 778 ; N Ograve ; B 105 -19 826 929 ; -C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; -C -1 ; WX 667 ; N Abreve ; B 14 0 685 926 ; -C -1 ; WX 584 ; N multiply ; B 50 0 642 506 ; -C -1 ; WX 556 ; N uacute ; B 94 -15 600 734 ; -C -1 ; WX 611 ; N Tcaron ; B 148 0 750 929 ; -C -1 ; WX 476 ; N partialdiff ; B 41 -38 550 714 ; -C -1 ; WX 500 ; N ydieresis ; B 15 -214 600 706 ; -C -1 ; WX 722 ; N Nacute ; B 76 0 799 929 ; -C -1 ; WX 278 ; N icircumflex ; B 95 0 411 734 ; -C -1 ; WX 667 ; N Ecircumflex ; B 86 0 762 929 ; -C -1 ; WX 556 ; N adieresis ; B 61 -15 559 706 ; -C -1 ; WX 556 ; N edieresis ; B 84 -15 578 706 ; -C -1 ; WX 500 ; N cacute ; B 74 -15 559 734 ; -C -1 ; WX 556 ; N nacute ; B 65 0 587 734 ; -C -1 ; WX 556 ; N umacron ; B 94 -15 600 684 ; -C -1 ; WX 722 ; N Ncaron ; B 76 0 799 929 ; -C -1 ; WX 278 ; N Iacute ; B 91 0 489 929 ; -C -1 ; WX 584 ; N plusminus ; B 39 0 618 506 ; -C -1 ; WX 260 ; N brokenbar ; B 62 -150 316 700 ; -C -1 ; WX 737 ; N registered ; B 54 -19 837 737 ; -C -1 ; WX 778 ; N Gbreve ; B 111 -19 799 926 ; -C -1 ; WX 278 ; N Idotaccent ; B 91 0 377 901 ; -C -1 ; WX 600 ; N summation ; B 15 -10 671 706 ; -C -1 ; WX 667 ; N Egrave ; B 86 0 762 929 ; -C -1 ; WX 333 ; N racute ; B 77 0 475 734 ; -C -1 ; WX 556 ; N omacron ; B 83 -14 585 684 ; -C -1 ; WX 611 ; N Zacute ; B 23 0 741 929 ; -C -1 ; WX 611 ; N Zcaron ; B 23 0 741 929 ; -C -1 ; WX 549 ; N greaterequal ; B 26 0 620 674 ; -C -1 ; WX 722 ; N Eth ; B 69 0 764 718 ; -C -1 ; WX 722 ; N Ccedilla ; B 108 -225 782 737 ; -C -1 ; WX 222 ; N lcommaaccent ; B 25 -225 308 718 ; -C -1 ; WX 317 ; N tcaron ; B 102 -7 501 808 ; -C -1 ; WX 556 ; N eogonek ; B 84 -225 578 538 ; -C -1 ; WX 722 ; N Uogonek ; B 123 -225 797 718 ; -C -1 ; WX 667 ; N Aacute ; B 14 0 683 929 ; -C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; -C -1 ; WX 556 ; N egrave ; B 84 -15 578 734 ; -C -1 ; WX 500 ; N zacute ; B 31 0 571 734 ; -C -1 ; WX 222 ; N iogonek ; B -61 -225 308 718 ; -C -1 ; WX 778 ; N Oacute ; B 105 -19 826 929 ; -C -1 ; WX 556 ; N oacute ; B 83 -14 587 734 ; -C -1 ; WX 556 ; N amacron ; B 61 -15 580 684 ; -C -1 ; WX 500 ; N sacute ; B 63 -15 559 734 ; -C -1 ; WX 278 ; N idieresis ; B 95 0 416 706 ; -C -1 ; WX 778 ; N Ocircumflex ; B 105 -19 826 929 ; -C -1 ; WX 722 ; N Ugrave ; B 123 -19 797 929 ; -C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; -C -1 ; WX 556 ; N thorn ; B 14 -207 584 718 ; -C -1 ; WX 333 ; N twosuperior ; B 64 281 449 703 ; -C -1 ; WX 778 ; N Odieresis ; B 105 -19 826 901 ; -C -1 ; WX 556 ; N mu ; B 24 -207 600 523 ; -C -1 ; WX 278 ; N igrave ; B 95 0 310 734 ; -C -1 ; WX 556 ; N ohungarumlaut ; B 83 -14 677 734 ; -C -1 ; WX 667 ; N Eogonek ; B 86 -220 762 718 ; -C -1 ; WX 556 ; N dcroat ; B 84 -15 689 718 ; -C -1 ; WX 834 ; N threequarters ; B 130 -19 861 703 ; -C -1 ; WX 667 ; N Scedilla ; B 90 -225 713 737 ; -C -1 ; WX 299 ; N lcaron ; B 67 0 464 718 ; -C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 808 718 ; -C -1 ; WX 556 ; N Lacute ; B 76 0 555 929 ; -C -1 ; WX 1000 ; N trademark ; B 186 306 1056 718 ; -C -1 ; WX 556 ; N edotaccent ; B 84 -15 578 706 ; -C -1 ; WX 278 ; N Igrave ; B 91 0 351 929 ; -C -1 ; WX 278 ; N Imacron ; B 91 0 483 879 ; -C -1 ; WX 556 ; N Lcaron ; B 76 0 570 718 ; -C -1 ; WX 834 ; N onehalf ; B 114 -19 839 703 ; -C -1 ; WX 549 ; N lessequal ; B 26 0 666 674 ; -C -1 ; WX 556 ; N ocircumflex ; B 83 -14 585 734 ; -C -1 ; WX 556 ; N ntilde ; B 65 0 592 722 ; -C -1 ; WX 722 ; N Uhungarumlaut ; B 123 -19 801 929 ; -C -1 ; WX 667 ; N Eacute ; B 86 0 762 929 ; -C -1 ; WX 556 ; N emacron ; B 84 -15 580 684 ; -C -1 ; WX 556 ; N gbreve ; B 42 -220 610 731 ; -C -1 ; WX 834 ; N onequarter ; B 150 -19 802 703 ; -C -1 ; WX 667 ; N Scaron ; B 90 -19 713 929 ; -C -1 ; WX 667 ; N Scommaaccent ; B 90 -225 713 737 ; -C -1 ; WX 778 ; N Ohungarumlaut ; B 105 -19 829 929 ; -C -1 ; WX 400 ; N degree ; B 169 411 468 703 ; -C -1 ; WX 556 ; N ograve ; B 83 -14 585 734 ; -C -1 ; WX 722 ; N Ccaron ; B 108 -19 782 929 ; -C -1 ; WX 556 ; N ugrave ; B 94 -15 600 734 ; -C -1 ; WX 453 ; N radical ; B 79 -80 617 762 ; -C -1 ; WX 722 ; N Dcaron ; B 81 0 764 929 ; -C -1 ; WX 333 ; N rcommaaccent ; B 30 -225 446 538 ; -C -1 ; WX 722 ; N Ntilde ; B 76 0 799 917 ; -C -1 ; WX 556 ; N otilde ; B 83 -14 602 722 ; -C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 773 718 ; -C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 555 718 ; -C -1 ; WX 667 ; N Atilde ; B 14 0 699 917 ; -C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ; -C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; -C -1 ; WX 778 ; N Otilde ; B 105 -19 826 917 ; -C -1 ; WX 500 ; N zdotaccent ; B 31 0 571 706 ; -C -1 ; WX 667 ; N Ecaron ; B 86 0 762 929 ; -C -1 ; WX 278 ; N Iogonek ; B -33 -225 341 718 ; -C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 600 718 ; -C -1 ; WX 584 ; N minus ; B 85 216 606 289 ; -C -1 ; WX 278 ; N Icircumflex ; B 91 0 452 929 ; -C -1 ; WX 556 ; N ncaron ; B 65 0 580 734 ; -C -1 ; WX 278 ; N tcommaaccent ; B 63 -225 368 669 ; -C -1 ; WX 584 ; N logicalnot ; B 106 108 628 390 ; -C -1 ; WX 556 ; N odieresis ; B 83 -14 585 706 ; -C -1 ; WX 556 ; N udieresis ; B 94 -15 600 706 ; -C -1 ; WX 549 ; N notequal ; B 34 -35 623 551 ; -C -1 ; WX 556 ; N gcommaaccent ; B 42 -220 610 822 ; -C -1 ; WX 556 ; N eth ; B 81 -15 617 737 ; -C -1 ; WX 500 ; N zcaron ; B 31 0 571 734 ; -C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 573 538 ; -C -1 ; WX 333 ; N onesuperior ; B 166 281 371 703 ; -C -1 ; WX 278 ; N imacron ; B 95 0 417 684 ; -C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; -EndCharMetrics -StartKernData -StartKernPairs 2705 -KPX A C -30 -KPX A Cacute -30 -KPX A Ccaron -30 -KPX A Ccedilla -30 -KPX A G -30 -KPX A Gbreve -30 -KPX A Gcommaaccent -30 -KPX A O -30 -KPX A Oacute -30 -KPX A Ocircumflex -30 -KPX A Odieresis -30 -KPX A Ograve -30 -KPX A Ohungarumlaut -30 -KPX A Omacron -30 -KPX A Oslash -30 -KPX A Otilde -30 -KPX A Q -30 -KPX A T -120 -KPX A Tcaron -120 -KPX A Tcommaaccent -120 -KPX A U -50 -KPX A Uacute -50 -KPX A Ucircumflex -50 -KPX A Udieresis -50 -KPX A Ugrave -50 -KPX A Uhungarumlaut -50 -KPX A Umacron -50 -KPX A Uogonek -50 -KPX A Uring -50 -KPX A V -70 -KPX A W -50 -KPX A Y -100 -KPX A Yacute -100 -KPX A Ydieresis -100 -KPX A u -30 -KPX A uacute -30 -KPX A ucircumflex -30 -KPX A udieresis -30 -KPX A ugrave -30 -KPX A uhungarumlaut -30 -KPX A umacron -30 -KPX A uogonek -30 -KPX A uring -30 -KPX A v -40 -KPX A w -40 -KPX A y -40 -KPX A yacute -40 -KPX A ydieresis -40 -KPX Aacute C -30 -KPX Aacute Cacute -30 -KPX Aacute Ccaron -30 -KPX Aacute Ccedilla -30 -KPX Aacute G -30 -KPX Aacute Gbreve -30 -KPX Aacute Gcommaaccent -30 -KPX Aacute O -30 -KPX Aacute Oacute -30 -KPX Aacute Ocircumflex -30 -KPX Aacute Odieresis -30 -KPX Aacute Ograve -30 -KPX Aacute Ohungarumlaut -30 -KPX Aacute Omacron -30 -KPX Aacute Oslash -30 -KPX Aacute Otilde -30 -KPX Aacute Q -30 -KPX Aacute T -120 -KPX Aacute Tcaron -120 -KPX Aacute Tcommaaccent -120 -KPX Aacute U -50 -KPX Aacute Uacute -50 -KPX Aacute Ucircumflex -50 -KPX Aacute Udieresis -50 -KPX Aacute Ugrave -50 -KPX Aacute Uhungarumlaut -50 -KPX Aacute Umacron -50 -KPX Aacute Uogonek -50 -KPX Aacute Uring -50 -KPX Aacute V -70 -KPX Aacute W -50 -KPX Aacute Y -100 -KPX Aacute Yacute -100 -KPX Aacute Ydieresis -100 -KPX Aacute u -30 -KPX Aacute uacute -30 -KPX Aacute ucircumflex -30 -KPX Aacute udieresis -30 -KPX Aacute ugrave -30 -KPX Aacute uhungarumlaut -30 -KPX Aacute umacron -30 -KPX Aacute uogonek -30 -KPX Aacute uring -30 -KPX Aacute v -40 -KPX Aacute w -40 -KPX Aacute y -40 -KPX Aacute yacute -40 -KPX Aacute ydieresis -40 -KPX Abreve C -30 -KPX Abreve Cacute -30 -KPX Abreve Ccaron -30 -KPX Abreve Ccedilla -30 -KPX Abreve G -30 -KPX Abreve Gbreve -30 -KPX Abreve Gcommaaccent -30 -KPX Abreve O -30 -KPX Abreve Oacute -30 -KPX Abreve Ocircumflex -30 -KPX Abreve Odieresis -30 -KPX Abreve Ograve -30 -KPX Abreve Ohungarumlaut -30 -KPX Abreve Omacron -30 -KPX Abreve Oslash -30 -KPX Abreve Otilde -30 -KPX Abreve Q -30 -KPX Abreve T -120 -KPX Abreve Tcaron -120 -KPX Abreve Tcommaaccent -120 -KPX Abreve U -50 -KPX Abreve Uacute -50 -KPX Abreve Ucircumflex -50 -KPX Abreve Udieresis -50 -KPX Abreve Ugrave -50 -KPX Abreve Uhungarumlaut -50 -KPX Abreve Umacron -50 -KPX Abreve Uogonek -50 -KPX Abreve Uring -50 -KPX Abreve V -70 -KPX Abreve W -50 -KPX Abreve Y -100 -KPX Abreve Yacute -100 -KPX Abreve Ydieresis -100 -KPX Abreve u -30 -KPX Abreve uacute -30 -KPX Abreve ucircumflex -30 -KPX Abreve udieresis -30 -KPX Abreve ugrave -30 -KPX Abreve uhungarumlaut -30 -KPX Abreve umacron -30 -KPX Abreve uogonek -30 -KPX Abreve uring -30 -KPX Abreve v -40 -KPX Abreve w -40 -KPX Abreve y -40 -KPX Abreve yacute -40 -KPX Abreve ydieresis -40 -KPX Acircumflex C -30 -KPX Acircumflex Cacute -30 -KPX Acircumflex Ccaron -30 -KPX Acircumflex Ccedilla -30 -KPX Acircumflex G -30 -KPX Acircumflex Gbreve -30 -KPX Acircumflex Gcommaaccent -30 -KPX Acircumflex O -30 -KPX Acircumflex Oacute -30 -KPX Acircumflex Ocircumflex -30 -KPX Acircumflex Odieresis -30 -KPX Acircumflex Ograve -30 -KPX Acircumflex Ohungarumlaut -30 -KPX Acircumflex Omacron -30 -KPX Acircumflex Oslash -30 -KPX Acircumflex Otilde -30 -KPX Acircumflex Q -30 -KPX Acircumflex T -120 -KPX Acircumflex Tcaron -120 -KPX Acircumflex Tcommaaccent -120 -KPX Acircumflex U -50 -KPX Acircumflex Uacute -50 -KPX Acircumflex Ucircumflex -50 -KPX Acircumflex Udieresis -50 -KPX Acircumflex Ugrave -50 -KPX Acircumflex Uhungarumlaut -50 -KPX Acircumflex Umacron -50 -KPX Acircumflex Uogonek -50 -KPX Acircumflex Uring -50 -KPX Acircumflex V -70 -KPX Acircumflex W -50 -KPX Acircumflex Y -100 -KPX Acircumflex Yacute -100 -KPX Acircumflex Ydieresis -100 -KPX Acircumflex u -30 -KPX Acircumflex uacute -30 -KPX Acircumflex ucircumflex -30 -KPX Acircumflex udieresis -30 -KPX Acircumflex ugrave -30 -KPX Acircumflex uhungarumlaut -30 -KPX Acircumflex umacron -30 -KPX Acircumflex uogonek -30 -KPX Acircumflex uring -30 -KPX Acircumflex v -40 -KPX Acircumflex w -40 -KPX Acircumflex y -40 -KPX Acircumflex yacute -40 -KPX Acircumflex ydieresis -40 -KPX Adieresis C -30 -KPX Adieresis Cacute -30 -KPX Adieresis Ccaron -30 -KPX Adieresis Ccedilla -30 -KPX Adieresis G -30 -KPX Adieresis Gbreve -30 -KPX Adieresis Gcommaaccent -30 -KPX Adieresis O -30 -KPX Adieresis Oacute -30 -KPX Adieresis Ocircumflex -30 -KPX Adieresis Odieresis -30 -KPX Adieresis Ograve -30 -KPX Adieresis Ohungarumlaut -30 -KPX Adieresis Omacron -30 -KPX Adieresis Oslash -30 -KPX Adieresis Otilde -30 -KPX Adieresis Q -30 -KPX Adieresis T -120 -KPX Adieresis Tcaron -120 -KPX Adieresis Tcommaaccent -120 -KPX Adieresis U -50 -KPX Adieresis Uacute -50 -KPX Adieresis Ucircumflex -50 -KPX Adieresis Udieresis -50 -KPX Adieresis Ugrave -50 -KPX Adieresis Uhungarumlaut -50 -KPX Adieresis Umacron -50 -KPX Adieresis Uogonek -50 -KPX Adieresis Uring -50 -KPX Adieresis V -70 -KPX Adieresis W -50 -KPX Adieresis Y -100 -KPX Adieresis Yacute -100 -KPX Adieresis Ydieresis -100 -KPX Adieresis u -30 -KPX Adieresis uacute -30 -KPX Adieresis ucircumflex -30 -KPX Adieresis udieresis -30 -KPX Adieresis ugrave -30 -KPX Adieresis uhungarumlaut -30 -KPX Adieresis umacron -30 -KPX Adieresis uogonek -30 -KPX Adieresis uring -30 -KPX Adieresis v -40 -KPX Adieresis w -40 -KPX Adieresis y -40 -KPX Adieresis yacute -40 -KPX Adieresis ydieresis -40 -KPX Agrave C -30 -KPX Agrave Cacute -30 -KPX Agrave Ccaron -30 -KPX Agrave Ccedilla -30 -KPX Agrave G -30 -KPX Agrave Gbreve -30 -KPX Agrave Gcommaaccent -30 -KPX Agrave O -30 -KPX Agrave Oacute -30 -KPX Agrave Ocircumflex -30 -KPX Agrave Odieresis -30 -KPX Agrave Ograve -30 -KPX Agrave Ohungarumlaut -30 -KPX Agrave Omacron -30 -KPX Agrave Oslash -30 -KPX Agrave Otilde -30 -KPX Agrave Q -30 -KPX Agrave T -120 -KPX Agrave Tcaron -120 -KPX Agrave Tcommaaccent -120 -KPX Agrave U -50 -KPX Agrave Uacute -50 -KPX Agrave Ucircumflex -50 -KPX Agrave Udieresis -50 -KPX Agrave Ugrave -50 -KPX Agrave Uhungarumlaut -50 -KPX Agrave Umacron -50 -KPX Agrave Uogonek -50 -KPX Agrave Uring -50 -KPX Agrave V -70 -KPX Agrave W -50 -KPX Agrave Y -100 -KPX Agrave Yacute -100 -KPX Agrave Ydieresis -100 -KPX Agrave u -30 -KPX Agrave uacute -30 -KPX Agrave ucircumflex -30 -KPX Agrave udieresis -30 -KPX Agrave ugrave -30 -KPX Agrave uhungarumlaut -30 -KPX Agrave umacron -30 -KPX Agrave uogonek -30 -KPX Agrave uring -30 -KPX Agrave v -40 -KPX Agrave w -40 -KPX Agrave y -40 -KPX Agrave yacute -40 -KPX Agrave ydieresis -40 -KPX Amacron C -30 -KPX Amacron Cacute -30 -KPX Amacron Ccaron -30 -KPX Amacron Ccedilla -30 -KPX Amacron G -30 -KPX Amacron Gbreve -30 -KPX Amacron Gcommaaccent -30 -KPX Amacron O -30 -KPX Amacron Oacute -30 -KPX Amacron Ocircumflex -30 -KPX Amacron Odieresis -30 -KPX Amacron Ograve -30 -KPX Amacron Ohungarumlaut -30 -KPX Amacron Omacron -30 -KPX Amacron Oslash -30 -KPX Amacron Otilde -30 -KPX Amacron Q -30 -KPX Amacron T -120 -KPX Amacron Tcaron -120 -KPX Amacron Tcommaaccent -120 -KPX Amacron U -50 -KPX Amacron Uacute -50 -KPX Amacron Ucircumflex -50 -KPX Amacron Udieresis -50 -KPX Amacron Ugrave -50 -KPX Amacron Uhungarumlaut -50 -KPX Amacron Umacron -50 -KPX Amacron Uogonek -50 -KPX Amacron Uring -50 -KPX Amacron V -70 -KPX Amacron W -50 -KPX Amacron Y -100 -KPX Amacron Yacute -100 -KPX Amacron Ydieresis -100 -KPX Amacron u -30 -KPX Amacron uacute -30 -KPX Amacron ucircumflex -30 -KPX Amacron udieresis -30 -KPX Amacron ugrave -30 -KPX Amacron uhungarumlaut -30 -KPX Amacron umacron -30 -KPX Amacron uogonek -30 -KPX Amacron uring -30 -KPX Amacron v -40 -KPX Amacron w -40 -KPX Amacron y -40 -KPX Amacron yacute -40 -KPX Amacron ydieresis -40 -KPX Aogonek C -30 -KPX Aogonek Cacute -30 -KPX Aogonek Ccaron -30 -KPX Aogonek Ccedilla -30 -KPX Aogonek G -30 -KPX Aogonek Gbreve -30 -KPX Aogonek Gcommaaccent -30 -KPX Aogonek O -30 -KPX Aogonek Oacute -30 -KPX Aogonek Ocircumflex -30 -KPX Aogonek Odieresis -30 -KPX Aogonek Ograve -30 -KPX Aogonek Ohungarumlaut -30 -KPX Aogonek Omacron -30 -KPX Aogonek Oslash -30 -KPX Aogonek Otilde -30 -KPX Aogonek Q -30 -KPX Aogonek T -120 -KPX Aogonek Tcaron -120 -KPX Aogonek Tcommaaccent -120 -KPX Aogonek U -50 -KPX Aogonek Uacute -50 -KPX Aogonek Ucircumflex -50 -KPX Aogonek Udieresis -50 -KPX Aogonek Ugrave -50 -KPX Aogonek Uhungarumlaut -50 -KPX Aogonek Umacron -50 -KPX Aogonek Uogonek -50 -KPX Aogonek Uring -50 -KPX Aogonek V -70 -KPX Aogonek W -50 -KPX Aogonek Y -100 -KPX Aogonek Yacute -100 -KPX Aogonek Ydieresis -100 -KPX Aogonek u -30 -KPX Aogonek uacute -30 -KPX Aogonek ucircumflex -30 -KPX Aogonek udieresis -30 -KPX Aogonek ugrave -30 -KPX Aogonek uhungarumlaut -30 -KPX Aogonek umacron -30 -KPX Aogonek uogonek -30 -KPX Aogonek uring -30 -KPX Aogonek v -40 -KPX Aogonek w -40 -KPX Aogonek y -40 -KPX Aogonek yacute -40 -KPX Aogonek ydieresis -40 -KPX Aring C -30 -KPX Aring Cacute -30 -KPX Aring Ccaron -30 -KPX Aring Ccedilla -30 -KPX Aring G -30 -KPX Aring Gbreve -30 -KPX Aring Gcommaaccent -30 -KPX Aring O -30 -KPX Aring Oacute -30 -KPX Aring Ocircumflex -30 -KPX Aring Odieresis -30 -KPX Aring Ograve -30 -KPX Aring Ohungarumlaut -30 -KPX Aring Omacron -30 -KPX Aring Oslash -30 -KPX Aring Otilde -30 -KPX Aring Q -30 -KPX Aring T -120 -KPX Aring Tcaron -120 -KPX Aring Tcommaaccent -120 -KPX Aring U -50 -KPX Aring Uacute -50 -KPX Aring Ucircumflex -50 -KPX Aring Udieresis -50 -KPX Aring Ugrave -50 -KPX Aring Uhungarumlaut -50 -KPX Aring Umacron -50 -KPX Aring Uogonek -50 -KPX Aring Uring -50 -KPX Aring V -70 -KPX Aring W -50 -KPX Aring Y -100 -KPX Aring Yacute -100 -KPX Aring Ydieresis -100 -KPX Aring u -30 -KPX Aring uacute -30 -KPX Aring ucircumflex -30 -KPX Aring udieresis -30 -KPX Aring ugrave -30 -KPX Aring uhungarumlaut -30 -KPX Aring umacron -30 -KPX Aring uogonek -30 -KPX Aring uring -30 -KPX Aring v -40 -KPX Aring w -40 -KPX Aring y -40 -KPX Aring yacute -40 -KPX Aring ydieresis -40 -KPX Atilde C -30 -KPX Atilde Cacute -30 -KPX Atilde Ccaron -30 -KPX Atilde Ccedilla -30 -KPX Atilde G -30 -KPX Atilde Gbreve -30 -KPX Atilde Gcommaaccent -30 -KPX Atilde O -30 -KPX Atilde Oacute -30 -KPX Atilde Ocircumflex -30 -KPX Atilde Odieresis -30 -KPX Atilde Ograve -30 -KPX Atilde Ohungarumlaut -30 -KPX Atilde Omacron -30 -KPX Atilde Oslash -30 -KPX Atilde Otilde -30 -KPX Atilde Q -30 -KPX Atilde T -120 -KPX Atilde Tcaron -120 -KPX Atilde Tcommaaccent -120 -KPX Atilde U -50 -KPX Atilde Uacute -50 -KPX Atilde Ucircumflex -50 -KPX Atilde Udieresis -50 -KPX Atilde Ugrave -50 -KPX Atilde Uhungarumlaut -50 -KPX Atilde Umacron -50 -KPX Atilde Uogonek -50 -KPX Atilde Uring -50 -KPX Atilde V -70 -KPX Atilde W -50 -KPX Atilde Y -100 -KPX Atilde Yacute -100 -KPX Atilde Ydieresis -100 -KPX Atilde u -30 -KPX Atilde uacute -30 -KPX Atilde ucircumflex -30 -KPX Atilde udieresis -30 -KPX Atilde ugrave -30 -KPX Atilde uhungarumlaut -30 -KPX Atilde umacron -30 -KPX Atilde uogonek -30 -KPX Atilde uring -30 -KPX Atilde v -40 -KPX Atilde w -40 -KPX Atilde y -40 -KPX Atilde yacute -40 -KPX Atilde ydieresis -40 -KPX B U -10 -KPX B Uacute -10 -KPX B Ucircumflex -10 -KPX B Udieresis -10 -KPX B Ugrave -10 -KPX B Uhungarumlaut -10 -KPX B Umacron -10 -KPX B Uogonek -10 -KPX B Uring -10 -KPX B comma -20 -KPX B period -20 -KPX C comma -30 -KPX C period -30 -KPX Cacute comma -30 -KPX Cacute period -30 -KPX Ccaron comma -30 -KPX Ccaron period -30 -KPX Ccedilla comma -30 -KPX Ccedilla period -30 -KPX D A -40 -KPX D Aacute -40 -KPX D Abreve -40 -KPX D Acircumflex -40 -KPX D Adieresis -40 -KPX D Agrave -40 -KPX D Amacron -40 -KPX D Aogonek -40 -KPX D Aring -40 -KPX D Atilde -40 -KPX D V -70 -KPX D W -40 -KPX D Y -90 -KPX D Yacute -90 -KPX D Ydieresis -90 -KPX D comma -70 -KPX D period -70 -KPX Dcaron A -40 -KPX Dcaron Aacute -40 -KPX Dcaron Abreve -40 -KPX Dcaron Acircumflex -40 -KPX Dcaron Adieresis -40 -KPX Dcaron Agrave -40 -KPX Dcaron Amacron -40 -KPX Dcaron Aogonek -40 -KPX Dcaron Aring -40 -KPX Dcaron Atilde -40 -KPX Dcaron V -70 -KPX Dcaron W -40 -KPX Dcaron Y -90 -KPX Dcaron Yacute -90 -KPX Dcaron Ydieresis -90 -KPX Dcaron comma -70 -KPX Dcaron period -70 -KPX Dcroat A -40 -KPX Dcroat Aacute -40 -KPX Dcroat Abreve -40 -KPX Dcroat Acircumflex -40 -KPX Dcroat Adieresis -40 -KPX Dcroat Agrave -40 -KPX Dcroat Amacron -40 -KPX Dcroat Aogonek -40 -KPX Dcroat Aring -40 -KPX Dcroat Atilde -40 -KPX Dcroat V -70 -KPX Dcroat W -40 -KPX Dcroat Y -90 -KPX Dcroat Yacute -90 -KPX Dcroat Ydieresis -90 -KPX Dcroat comma -70 -KPX Dcroat period -70 -KPX F A -80 -KPX F Aacute -80 -KPX F Abreve -80 -KPX F Acircumflex -80 -KPX F Adieresis -80 -KPX F Agrave -80 -KPX F Amacron -80 -KPX F Aogonek -80 -KPX F Aring -80 -KPX F Atilde -80 -KPX F a -50 -KPX F aacute -50 -KPX F abreve -50 -KPX F acircumflex -50 -KPX F adieresis -50 -KPX F agrave -50 -KPX F amacron -50 -KPX F aogonek -50 -KPX F aring -50 -KPX F atilde -50 -KPX F comma -150 -KPX F e -30 -KPX F eacute -30 -KPX F ecaron -30 -KPX F ecircumflex -30 -KPX F edieresis -30 -KPX F edotaccent -30 -KPX F egrave -30 -KPX F emacron -30 -KPX F eogonek -30 -KPX F o -30 -KPX F oacute -30 -KPX F ocircumflex -30 -KPX F odieresis -30 -KPX F ograve -30 -KPX F ohungarumlaut -30 -KPX F omacron -30 -KPX F oslash -30 -KPX F otilde -30 -KPX F period -150 -KPX F r -45 -KPX F racute -45 -KPX F rcaron -45 -KPX F rcommaaccent -45 -KPX J A -20 -KPX J Aacute -20 -KPX J Abreve -20 -KPX J Acircumflex -20 -KPX J Adieresis -20 -KPX J Agrave -20 -KPX J Amacron -20 -KPX J Aogonek -20 -KPX J Aring -20 -KPX J Atilde -20 -KPX J a -20 -KPX J aacute -20 -KPX J abreve -20 -KPX J acircumflex -20 -KPX J adieresis -20 -KPX J agrave -20 -KPX J amacron -20 -KPX J aogonek -20 -KPX J aring -20 -KPX J atilde -20 -KPX J comma -30 -KPX J period -30 -KPX J u -20 -KPX J uacute -20 -KPX J ucircumflex -20 -KPX J udieresis -20 -KPX J ugrave -20 -KPX J uhungarumlaut -20 -KPX J umacron -20 -KPX J uogonek -20 -KPX J uring -20 -KPX K O -50 -KPX K Oacute -50 -KPX K Ocircumflex -50 -KPX K Odieresis -50 -KPX K Ograve -50 -KPX K Ohungarumlaut -50 -KPX K Omacron -50 -KPX K Oslash -50 -KPX K Otilde -50 -KPX K e -40 -KPX K eacute -40 -KPX K ecaron -40 -KPX K ecircumflex -40 -KPX K edieresis -40 -KPX K edotaccent -40 -KPX K egrave -40 -KPX K emacron -40 -KPX K eogonek -40 -KPX K o -40 -KPX K oacute -40 -KPX K ocircumflex -40 -KPX K odieresis -40 -KPX K ograve -40 -KPX K ohungarumlaut -40 -KPX K omacron -40 -KPX K oslash -40 -KPX K otilde -40 -KPX K u -30 -KPX K uacute -30 -KPX K ucircumflex -30 -KPX K udieresis -30 -KPX K ugrave -30 -KPX K uhungarumlaut -30 -KPX K umacron -30 -KPX K uogonek -30 -KPX K uring -30 -KPX K y -50 -KPX K yacute -50 -KPX K ydieresis -50 -KPX Kcommaaccent O -50 -KPX Kcommaaccent Oacute -50 -KPX Kcommaaccent Ocircumflex -50 -KPX Kcommaaccent Odieresis -50 -KPX Kcommaaccent Ograve -50 -KPX Kcommaaccent Ohungarumlaut -50 -KPX Kcommaaccent Omacron -50 -KPX Kcommaaccent Oslash -50 -KPX Kcommaaccent Otilde -50 -KPX Kcommaaccent e -40 -KPX Kcommaaccent eacute -40 -KPX Kcommaaccent ecaron -40 -KPX Kcommaaccent ecircumflex -40 -KPX Kcommaaccent edieresis -40 -KPX Kcommaaccent edotaccent -40 -KPX Kcommaaccent egrave -40 -KPX Kcommaaccent emacron -40 -KPX Kcommaaccent eogonek -40 -KPX Kcommaaccent o -40 -KPX Kcommaaccent oacute -40 -KPX Kcommaaccent ocircumflex -40 -KPX Kcommaaccent odieresis -40 -KPX Kcommaaccent ograve -40 -KPX Kcommaaccent ohungarumlaut -40 -KPX Kcommaaccent omacron -40 -KPX Kcommaaccent oslash -40 -KPX Kcommaaccent otilde -40 -KPX Kcommaaccent u -30 -KPX Kcommaaccent uacute -30 -KPX Kcommaaccent ucircumflex -30 -KPX Kcommaaccent udieresis -30 -KPX Kcommaaccent ugrave -30 -KPX Kcommaaccent uhungarumlaut -30 -KPX Kcommaaccent umacron -30 -KPX Kcommaaccent uogonek -30 -KPX Kcommaaccent uring -30 -KPX Kcommaaccent y -50 -KPX Kcommaaccent yacute -50 -KPX Kcommaaccent ydieresis -50 -KPX L T -110 -KPX L Tcaron -110 -KPX L Tcommaaccent -110 -KPX L V -110 -KPX L W -70 -KPX L Y -140 -KPX L Yacute -140 -KPX L Ydieresis -140 -KPX L quotedblright -140 -KPX L quoteright -160 -KPX L y -30 -KPX L yacute -30 -KPX L ydieresis -30 -KPX Lacute T -110 -KPX Lacute Tcaron -110 -KPX Lacute Tcommaaccent -110 -KPX Lacute V -110 -KPX Lacute W -70 -KPX Lacute Y -140 -KPX Lacute Yacute -140 -KPX Lacute Ydieresis -140 -KPX Lacute quotedblright -140 -KPX Lacute quoteright -160 -KPX Lacute y -30 -KPX Lacute yacute -30 -KPX Lacute ydieresis -30 -KPX Lcaron T -110 -KPX Lcaron Tcaron -110 -KPX Lcaron Tcommaaccent -110 -KPX Lcaron V -110 -KPX Lcaron W -70 -KPX Lcaron Y -140 -KPX Lcaron Yacute -140 -KPX Lcaron Ydieresis -140 -KPX Lcaron quotedblright -140 -KPX Lcaron quoteright -160 -KPX Lcaron y -30 -KPX Lcaron yacute -30 -KPX Lcaron ydieresis -30 -KPX Lcommaaccent T -110 -KPX Lcommaaccent Tcaron -110 -KPX Lcommaaccent Tcommaaccent -110 -KPX Lcommaaccent V -110 -KPX Lcommaaccent W -70 -KPX Lcommaaccent Y -140 -KPX Lcommaaccent Yacute -140 -KPX Lcommaaccent Ydieresis -140 -KPX Lcommaaccent quotedblright -140 -KPX Lcommaaccent quoteright -160 -KPX Lcommaaccent y -30 -KPX Lcommaaccent yacute -30 -KPX Lcommaaccent ydieresis -30 -KPX Lslash T -110 -KPX Lslash Tcaron -110 -KPX Lslash Tcommaaccent -110 -KPX Lslash V -110 -KPX Lslash W -70 -KPX Lslash Y -140 -KPX Lslash Yacute -140 -KPX Lslash Ydieresis -140 -KPX Lslash quotedblright -140 -KPX Lslash quoteright -160 -KPX Lslash y -30 -KPX Lslash yacute -30 -KPX Lslash ydieresis -30 -KPX O A -20 -KPX O Aacute -20 -KPX O Abreve -20 -KPX O Acircumflex -20 -KPX O Adieresis -20 -KPX O Agrave -20 -KPX O Amacron -20 -KPX O Aogonek -20 -KPX O Aring -20 -KPX O Atilde -20 -KPX O T -40 -KPX O Tcaron -40 -KPX O Tcommaaccent -40 -KPX O V -50 -KPX O W -30 -KPX O X -60 -KPX O Y -70 -KPX O Yacute -70 -KPX O Ydieresis -70 -KPX O comma -40 -KPX O period -40 -KPX Oacute A -20 -KPX Oacute Aacute -20 -KPX Oacute Abreve -20 -KPX Oacute Acircumflex -20 -KPX Oacute Adieresis -20 -KPX Oacute Agrave -20 -KPX Oacute Amacron -20 -KPX Oacute Aogonek -20 -KPX Oacute Aring -20 -KPX Oacute Atilde -20 -KPX Oacute T -40 -KPX Oacute Tcaron -40 -KPX Oacute Tcommaaccent -40 -KPX Oacute V -50 -KPX Oacute W -30 -KPX Oacute X -60 -KPX Oacute Y -70 -KPX Oacute Yacute -70 -KPX Oacute Ydieresis -70 -KPX Oacute comma -40 -KPX Oacute period -40 -KPX Ocircumflex A -20 -KPX Ocircumflex Aacute -20 -KPX Ocircumflex Abreve -20 -KPX Ocircumflex Acircumflex -20 -KPX Ocircumflex Adieresis -20 -KPX Ocircumflex Agrave -20 -KPX Ocircumflex Amacron -20 -KPX Ocircumflex Aogonek -20 -KPX Ocircumflex Aring -20 -KPX Ocircumflex Atilde -20 -KPX Ocircumflex T -40 -KPX Ocircumflex Tcaron -40 -KPX Ocircumflex Tcommaaccent -40 -KPX Ocircumflex V -50 -KPX Ocircumflex W -30 -KPX Ocircumflex X -60 -KPX Ocircumflex Y -70 -KPX Ocircumflex Yacute -70 -KPX Ocircumflex Ydieresis -70 -KPX Ocircumflex comma -40 -KPX Ocircumflex period -40 -KPX Odieresis A -20 -KPX Odieresis Aacute -20 -KPX Odieresis Abreve -20 -KPX Odieresis Acircumflex -20 -KPX Odieresis Adieresis -20 -KPX Odieresis Agrave -20 -KPX Odieresis Amacron -20 -KPX Odieresis Aogonek -20 -KPX Odieresis Aring -20 -KPX Odieresis Atilde -20 -KPX Odieresis T -40 -KPX Odieresis Tcaron -40 -KPX Odieresis Tcommaaccent -40 -KPX Odieresis V -50 -KPX Odieresis W -30 -KPX Odieresis X -60 -KPX Odieresis Y -70 -KPX Odieresis Yacute -70 -KPX Odieresis Ydieresis -70 -KPX Odieresis comma -40 -KPX Odieresis period -40 -KPX Ograve A -20 -KPX Ograve Aacute -20 -KPX Ograve Abreve -20 -KPX Ograve Acircumflex -20 -KPX Ograve Adieresis -20 -KPX Ograve Agrave -20 -KPX Ograve Amacron -20 -KPX Ograve Aogonek -20 -KPX Ograve Aring -20 -KPX Ograve Atilde -20 -KPX Ograve T -40 -KPX Ograve Tcaron -40 -KPX Ograve Tcommaaccent -40 -KPX Ograve V -50 -KPX Ograve W -30 -KPX Ograve X -60 -KPX Ograve Y -70 -KPX Ograve Yacute -70 -KPX Ograve Ydieresis -70 -KPX Ograve comma -40 -KPX Ograve period -40 -KPX Ohungarumlaut A -20 -KPX Ohungarumlaut Aacute -20 -KPX Ohungarumlaut Abreve -20 -KPX Ohungarumlaut Acircumflex -20 -KPX Ohungarumlaut Adieresis -20 -KPX Ohungarumlaut Agrave -20 -KPX Ohungarumlaut Amacron -20 -KPX Ohungarumlaut Aogonek -20 -KPX Ohungarumlaut Aring -20 -KPX Ohungarumlaut Atilde -20 -KPX Ohungarumlaut T -40 -KPX Ohungarumlaut Tcaron -40 -KPX Ohungarumlaut Tcommaaccent -40 -KPX Ohungarumlaut V -50 -KPX Ohungarumlaut W -30 -KPX Ohungarumlaut X -60 -KPX Ohungarumlaut Y -70 -KPX Ohungarumlaut Yacute -70 -KPX Ohungarumlaut Ydieresis -70 -KPX Ohungarumlaut comma -40 -KPX Ohungarumlaut period -40 -KPX Omacron A -20 -KPX Omacron Aacute -20 -KPX Omacron Abreve -20 -KPX Omacron Acircumflex -20 -KPX Omacron Adieresis -20 -KPX Omacron Agrave -20 -KPX Omacron Amacron -20 -KPX Omacron Aogonek -20 -KPX Omacron Aring -20 -KPX Omacron Atilde -20 -KPX Omacron T -40 -KPX Omacron Tcaron -40 -KPX Omacron Tcommaaccent -40 -KPX Omacron V -50 -KPX Omacron W -30 -KPX Omacron X -60 -KPX Omacron Y -70 -KPX Omacron Yacute -70 -KPX Omacron Ydieresis -70 -KPX Omacron comma -40 -KPX Omacron period -40 -KPX Oslash A -20 -KPX Oslash Aacute -20 -KPX Oslash Abreve -20 -KPX Oslash Acircumflex -20 -KPX Oslash Adieresis -20 -KPX Oslash Agrave -20 -KPX Oslash Amacron -20 -KPX Oslash Aogonek -20 -KPX Oslash Aring -20 -KPX Oslash Atilde -20 -KPX Oslash T -40 -KPX Oslash Tcaron -40 -KPX Oslash Tcommaaccent -40 -KPX Oslash V -50 -KPX Oslash W -30 -KPX Oslash X -60 -KPX Oslash Y -70 -KPX Oslash Yacute -70 -KPX Oslash Ydieresis -70 -KPX Oslash comma -40 -KPX Oslash period -40 -KPX Otilde A -20 -KPX Otilde Aacute -20 -KPX Otilde Abreve -20 -KPX Otilde Acircumflex -20 -KPX Otilde Adieresis -20 -KPX Otilde Agrave -20 -KPX Otilde Amacron -20 -KPX Otilde Aogonek -20 -KPX Otilde Aring -20 -KPX Otilde Atilde -20 -KPX Otilde T -40 -KPX Otilde Tcaron -40 -KPX Otilde Tcommaaccent -40 -KPX Otilde V -50 -KPX Otilde W -30 -KPX Otilde X -60 -KPX Otilde Y -70 -KPX Otilde Yacute -70 -KPX Otilde Ydieresis -70 -KPX Otilde comma -40 -KPX Otilde period -40 -KPX P A -120 -KPX P Aacute -120 -KPX P Abreve -120 -KPX P Acircumflex -120 -KPX P Adieresis -120 -KPX P Agrave -120 -KPX P Amacron -120 -KPX P Aogonek -120 -KPX P Aring -120 -KPX P Atilde -120 -KPX P a -40 -KPX P aacute -40 -KPX P abreve -40 -KPX P acircumflex -40 -KPX P adieresis -40 -KPX P agrave -40 -KPX P amacron -40 -KPX P aogonek -40 -KPX P aring -40 -KPX P atilde -40 -KPX P comma -180 -KPX P e -50 -KPX P eacute -50 -KPX P ecaron -50 -KPX P ecircumflex -50 -KPX P edieresis -50 -KPX P edotaccent -50 -KPX P egrave -50 -KPX P emacron -50 -KPX P eogonek -50 -KPX P o -50 -KPX P oacute -50 -KPX P ocircumflex -50 -KPX P odieresis -50 -KPX P ograve -50 -KPX P ohungarumlaut -50 -KPX P omacron -50 -KPX P oslash -50 -KPX P otilde -50 -KPX P period -180 -KPX Q U -10 -KPX Q Uacute -10 -KPX Q Ucircumflex -10 -KPX Q Udieresis -10 -KPX Q Ugrave -10 -KPX Q Uhungarumlaut -10 -KPX Q Umacron -10 -KPX Q Uogonek -10 -KPX Q Uring -10 -KPX R O -20 -KPX R Oacute -20 -KPX R Ocircumflex -20 -KPX R Odieresis -20 -KPX R Ograve -20 -KPX R Ohungarumlaut -20 -KPX R Omacron -20 -KPX R Oslash -20 -KPX R Otilde -20 -KPX R T -30 -KPX R Tcaron -30 -KPX R Tcommaaccent -30 -KPX R U -40 -KPX R Uacute -40 -KPX R Ucircumflex -40 -KPX R Udieresis -40 -KPX R Ugrave -40 -KPX R Uhungarumlaut -40 -KPX R Umacron -40 -KPX R Uogonek -40 -KPX R Uring -40 -KPX R V -50 -KPX R W -30 -KPX R Y -50 -KPX R Yacute -50 -KPX R Ydieresis -50 -KPX Racute O -20 -KPX Racute Oacute -20 -KPX Racute Ocircumflex -20 -KPX Racute Odieresis -20 -KPX Racute Ograve -20 -KPX Racute Ohungarumlaut -20 -KPX Racute Omacron -20 -KPX Racute Oslash -20 -KPX Racute Otilde -20 -KPX Racute T -30 -KPX Racute Tcaron -30 -KPX Racute Tcommaaccent -30 -KPX Racute U -40 -KPX Racute Uacute -40 -KPX Racute Ucircumflex -40 -KPX Racute Udieresis -40 -KPX Racute Ugrave -40 -KPX Racute Uhungarumlaut -40 -KPX Racute Umacron -40 -KPX Racute Uogonek -40 -KPX Racute Uring -40 -KPX Racute V -50 -KPX Racute W -30 -KPX Racute Y -50 -KPX Racute Yacute -50 -KPX Racute Ydieresis -50 -KPX Rcaron O -20 -KPX Rcaron Oacute -20 -KPX Rcaron Ocircumflex -20 -KPX Rcaron Odieresis -20 -KPX Rcaron Ograve -20 -KPX Rcaron Ohungarumlaut -20 -KPX Rcaron Omacron -20 -KPX Rcaron Oslash -20 -KPX Rcaron Otilde -20 -KPX Rcaron T -30 -KPX Rcaron Tcaron -30 -KPX Rcaron Tcommaaccent -30 -KPX Rcaron U -40 -KPX Rcaron Uacute -40 -KPX Rcaron Ucircumflex -40 -KPX Rcaron Udieresis -40 -KPX Rcaron Ugrave -40 -KPX Rcaron Uhungarumlaut -40 -KPX Rcaron Umacron -40 -KPX Rcaron Uogonek -40 -KPX Rcaron Uring -40 -KPX Rcaron V -50 -KPX Rcaron W -30 -KPX Rcaron Y -50 -KPX Rcaron Yacute -50 -KPX Rcaron Ydieresis -50 -KPX Rcommaaccent O -20 -KPX Rcommaaccent Oacute -20 -KPX Rcommaaccent Ocircumflex -20 -KPX Rcommaaccent Odieresis -20 -KPX Rcommaaccent Ograve -20 -KPX Rcommaaccent Ohungarumlaut -20 -KPX Rcommaaccent Omacron -20 -KPX Rcommaaccent Oslash -20 -KPX Rcommaaccent Otilde -20 -KPX Rcommaaccent T -30 -KPX Rcommaaccent Tcaron -30 -KPX Rcommaaccent Tcommaaccent -30 -KPX Rcommaaccent U -40 -KPX Rcommaaccent Uacute -40 -KPX Rcommaaccent Ucircumflex -40 -KPX Rcommaaccent Udieresis -40 -KPX Rcommaaccent Ugrave -40 -KPX Rcommaaccent Uhungarumlaut -40 -KPX Rcommaaccent Umacron -40 -KPX Rcommaaccent Uogonek -40 -KPX Rcommaaccent Uring -40 -KPX Rcommaaccent V -50 -KPX Rcommaaccent W -30 -KPX Rcommaaccent Y -50 -KPX Rcommaaccent Yacute -50 -KPX Rcommaaccent Ydieresis -50 -KPX S comma -20 -KPX S period -20 -KPX Sacute comma -20 -KPX Sacute period -20 -KPX Scaron comma -20 -KPX Scaron period -20 -KPX Scedilla comma -20 -KPX Scedilla period -20 -KPX Scommaaccent comma -20 -KPX Scommaaccent period -20 -KPX T A -120 -KPX T Aacute -120 -KPX T Abreve -120 -KPX T Acircumflex -120 -KPX T Adieresis -120 -KPX T Agrave -120 -KPX T Amacron -120 -KPX T Aogonek -120 -KPX T Aring -120 -KPX T Atilde -120 -KPX T O -40 -KPX T Oacute -40 -KPX T Ocircumflex -40 -KPX T Odieresis -40 -KPX T Ograve -40 -KPX T Ohungarumlaut -40 -KPX T Omacron -40 -KPX T Oslash -40 -KPX T Otilde -40 -KPX T a -120 -KPX T aacute -120 -KPX T abreve -60 -KPX T acircumflex -120 -KPX T adieresis -120 -KPX T agrave -120 -KPX T amacron -60 -KPX T aogonek -120 -KPX T aring -120 -KPX T atilde -60 -KPX T colon -20 -KPX T comma -120 -KPX T e -120 -KPX T eacute -120 -KPX T ecaron -120 -KPX T ecircumflex -120 -KPX T edieresis -120 -KPX T edotaccent -120 -KPX T egrave -60 -KPX T emacron -60 -KPX T eogonek -120 -KPX T hyphen -140 -KPX T o -120 -KPX T oacute -120 -KPX T ocircumflex -120 -KPX T odieresis -120 -KPX T ograve -120 -KPX T ohungarumlaut -120 -KPX T omacron -60 -KPX T oslash -120 -KPX T otilde -60 -KPX T period -120 -KPX T r -120 -KPX T racute -120 -KPX T rcaron -120 -KPX T rcommaaccent -120 -KPX T semicolon -20 -KPX T u -120 -KPX T uacute -120 -KPX T ucircumflex -120 -KPX T udieresis -120 -KPX T ugrave -120 -KPX T uhungarumlaut -120 -KPX T umacron -60 -KPX T uogonek -120 -KPX T uring -120 -KPX T w -120 -KPX T y -120 -KPX T yacute -120 -KPX T ydieresis -60 -KPX Tcaron A -120 -KPX Tcaron Aacute -120 -KPX Tcaron Abreve -120 -KPX Tcaron Acircumflex -120 -KPX Tcaron Adieresis -120 -KPX Tcaron Agrave -120 -KPX Tcaron Amacron -120 -KPX Tcaron Aogonek -120 -KPX Tcaron Aring -120 -KPX Tcaron Atilde -120 -KPX Tcaron O -40 -KPX Tcaron Oacute -40 -KPX Tcaron Ocircumflex -40 -KPX Tcaron Odieresis -40 -KPX Tcaron Ograve -40 -KPX Tcaron Ohungarumlaut -40 -KPX Tcaron Omacron -40 -KPX Tcaron Oslash -40 -KPX Tcaron Otilde -40 -KPX Tcaron a -120 -KPX Tcaron aacute -120 -KPX Tcaron abreve -60 -KPX Tcaron acircumflex -120 -KPX Tcaron adieresis -120 -KPX Tcaron agrave -120 -KPX Tcaron amacron -60 -KPX Tcaron aogonek -120 -KPX Tcaron aring -120 -KPX Tcaron atilde -60 -KPX Tcaron colon -20 -KPX Tcaron comma -120 -KPX Tcaron e -120 -KPX Tcaron eacute -120 -KPX Tcaron ecaron -120 -KPX Tcaron ecircumflex -120 -KPX Tcaron edieresis -120 -KPX Tcaron edotaccent -120 -KPX Tcaron egrave -60 -KPX Tcaron emacron -60 -KPX Tcaron eogonek -120 -KPX Tcaron hyphen -140 -KPX Tcaron o -120 -KPX Tcaron oacute -120 -KPX Tcaron ocircumflex -120 -KPX Tcaron odieresis -120 -KPX Tcaron ograve -120 -KPX Tcaron ohungarumlaut -120 -KPX Tcaron omacron -60 -KPX Tcaron oslash -120 -KPX Tcaron otilde -60 -KPX Tcaron period -120 -KPX Tcaron r -120 -KPX Tcaron racute -120 -KPX Tcaron rcaron -120 -KPX Tcaron rcommaaccent -120 -KPX Tcaron semicolon -20 -KPX Tcaron u -120 -KPX Tcaron uacute -120 -KPX Tcaron ucircumflex -120 -KPX Tcaron udieresis -120 -KPX Tcaron ugrave -120 -KPX Tcaron uhungarumlaut -120 -KPX Tcaron umacron -60 -KPX Tcaron uogonek -120 -KPX Tcaron uring -120 -KPX Tcaron w -120 -KPX Tcaron y -120 -KPX Tcaron yacute -120 -KPX Tcaron ydieresis -60 -KPX Tcommaaccent A -120 -KPX Tcommaaccent Aacute -120 -KPX Tcommaaccent Abreve -120 -KPX Tcommaaccent Acircumflex -120 -KPX Tcommaaccent Adieresis -120 -KPX Tcommaaccent Agrave -120 -KPX Tcommaaccent Amacron -120 -KPX Tcommaaccent Aogonek -120 -KPX Tcommaaccent Aring -120 -KPX Tcommaaccent Atilde -120 -KPX Tcommaaccent O -40 -KPX Tcommaaccent Oacute -40 -KPX Tcommaaccent Ocircumflex -40 -KPX Tcommaaccent Odieresis -40 -KPX Tcommaaccent Ograve -40 -KPX Tcommaaccent Ohungarumlaut -40 -KPX Tcommaaccent Omacron -40 -KPX Tcommaaccent Oslash -40 -KPX Tcommaaccent Otilde -40 -KPX Tcommaaccent a -120 -KPX Tcommaaccent aacute -120 -KPX Tcommaaccent abreve -60 -KPX Tcommaaccent acircumflex -120 -KPX Tcommaaccent adieresis -120 -KPX Tcommaaccent agrave -120 -KPX Tcommaaccent amacron -60 -KPX Tcommaaccent aogonek -120 -KPX Tcommaaccent aring -120 -KPX Tcommaaccent atilde -60 -KPX Tcommaaccent colon -20 -KPX Tcommaaccent comma -120 -KPX Tcommaaccent e -120 -KPX Tcommaaccent eacute -120 -KPX Tcommaaccent ecaron -120 -KPX Tcommaaccent ecircumflex -120 -KPX Tcommaaccent edieresis -120 -KPX Tcommaaccent edotaccent -120 -KPX Tcommaaccent egrave -60 -KPX Tcommaaccent emacron -60 -KPX Tcommaaccent eogonek -120 -KPX Tcommaaccent hyphen -140 -KPX Tcommaaccent o -120 -KPX Tcommaaccent oacute -120 -KPX Tcommaaccent ocircumflex -120 -KPX Tcommaaccent odieresis -120 -KPX Tcommaaccent ograve -120 -KPX Tcommaaccent ohungarumlaut -120 -KPX Tcommaaccent omacron -60 -KPX Tcommaaccent oslash -120 -KPX Tcommaaccent otilde -60 -KPX Tcommaaccent period -120 -KPX Tcommaaccent r -120 -KPX Tcommaaccent racute -120 -KPX Tcommaaccent rcaron -120 -KPX Tcommaaccent rcommaaccent -120 -KPX Tcommaaccent semicolon -20 -KPX Tcommaaccent u -120 -KPX Tcommaaccent uacute -120 -KPX Tcommaaccent ucircumflex -120 -KPX Tcommaaccent udieresis -120 -KPX Tcommaaccent ugrave -120 -KPX Tcommaaccent uhungarumlaut -120 -KPX Tcommaaccent umacron -60 -KPX Tcommaaccent uogonek -120 -KPX Tcommaaccent uring -120 -KPX Tcommaaccent w -120 -KPX Tcommaaccent y -120 -KPX Tcommaaccent yacute -120 -KPX Tcommaaccent ydieresis -60 -KPX U A -40 -KPX U Aacute -40 -KPX U Abreve -40 -KPX U Acircumflex -40 -KPX U Adieresis -40 -KPX U Agrave -40 -KPX U Amacron -40 -KPX U Aogonek -40 -KPX U Aring -40 -KPX U Atilde -40 -KPX U comma -40 -KPX U period -40 -KPX Uacute A -40 -KPX Uacute Aacute -40 -KPX Uacute Abreve -40 -KPX Uacute Acircumflex -40 -KPX Uacute Adieresis -40 -KPX Uacute Agrave -40 -KPX Uacute Amacron -40 -KPX Uacute Aogonek -40 -KPX Uacute Aring -40 -KPX Uacute Atilde -40 -KPX Uacute comma -40 -KPX Uacute period -40 -KPX Ucircumflex A -40 -KPX Ucircumflex Aacute -40 -KPX Ucircumflex Abreve -40 -KPX Ucircumflex Acircumflex -40 -KPX Ucircumflex Adieresis -40 -KPX Ucircumflex Agrave -40 -KPX Ucircumflex Amacron -40 -KPX Ucircumflex Aogonek -40 -KPX Ucircumflex Aring -40 -KPX Ucircumflex Atilde -40 -KPX Ucircumflex comma -40 -KPX Ucircumflex period -40 -KPX Udieresis A -40 -KPX Udieresis Aacute -40 -KPX Udieresis Abreve -40 -KPX Udieresis Acircumflex -40 -KPX Udieresis Adieresis -40 -KPX Udieresis Agrave -40 -KPX Udieresis Amacron -40 -KPX Udieresis Aogonek -40 -KPX Udieresis Aring -40 -KPX Udieresis Atilde -40 -KPX Udieresis comma -40 -KPX Udieresis period -40 -KPX Ugrave A -40 -KPX Ugrave Aacute -40 -KPX Ugrave Abreve -40 -KPX Ugrave Acircumflex -40 -KPX Ugrave Adieresis -40 -KPX Ugrave Agrave -40 -KPX Ugrave Amacron -40 -KPX Ugrave Aogonek -40 -KPX Ugrave Aring -40 -KPX Ugrave Atilde -40 -KPX Ugrave comma -40 -KPX Ugrave period -40 -KPX Uhungarumlaut A -40 -KPX Uhungarumlaut Aacute -40 -KPX Uhungarumlaut Abreve -40 -KPX Uhungarumlaut Acircumflex -40 -KPX Uhungarumlaut Adieresis -40 -KPX Uhungarumlaut Agrave -40 -KPX Uhungarumlaut Amacron -40 -KPX Uhungarumlaut Aogonek -40 -KPX Uhungarumlaut Aring -40 -KPX Uhungarumlaut Atilde -40 -KPX Uhungarumlaut comma -40 -KPX Uhungarumlaut period -40 -KPX Umacron A -40 -KPX Umacron Aacute -40 -KPX Umacron Abreve -40 -KPX Umacron Acircumflex -40 -KPX Umacron Adieresis -40 -KPX Umacron Agrave -40 -KPX Umacron Amacron -40 -KPX Umacron Aogonek -40 -KPX Umacron Aring -40 -KPX Umacron Atilde -40 -KPX Umacron comma -40 -KPX Umacron period -40 -KPX Uogonek A -40 -KPX Uogonek Aacute -40 -KPX Uogonek Abreve -40 -KPX Uogonek Acircumflex -40 -KPX Uogonek Adieresis -40 -KPX Uogonek Agrave -40 -KPX Uogonek Amacron -40 -KPX Uogonek Aogonek -40 -KPX Uogonek Aring -40 -KPX Uogonek Atilde -40 -KPX Uogonek comma -40 -KPX Uogonek period -40 -KPX Uring A -40 -KPX Uring Aacute -40 -KPX Uring Abreve -40 -KPX Uring Acircumflex -40 -KPX Uring Adieresis -40 -KPX Uring Agrave -40 -KPX Uring Amacron -40 -KPX Uring Aogonek -40 -KPX Uring Aring -40 -KPX Uring Atilde -40 -KPX Uring comma -40 -KPX Uring period -40 -KPX V A -80 -KPX V Aacute -80 -KPX V Abreve -80 -KPX V Acircumflex -80 -KPX V Adieresis -80 -KPX V Agrave -80 -KPX V Amacron -80 -KPX V Aogonek -80 -KPX V Aring -80 -KPX V Atilde -80 -KPX V G -40 -KPX V Gbreve -40 -KPX V Gcommaaccent -40 -KPX V O -40 -KPX V Oacute -40 -KPX V Ocircumflex -40 -KPX V Odieresis -40 -KPX V Ograve -40 -KPX V Ohungarumlaut -40 -KPX V Omacron -40 -KPX V Oslash -40 -KPX V Otilde -40 -KPX V a -70 -KPX V aacute -70 -KPX V abreve -70 -KPX V acircumflex -70 -KPX V adieresis -70 -KPX V agrave -70 -KPX V amacron -70 -KPX V aogonek -70 -KPX V aring -70 -KPX V atilde -70 -KPX V colon -40 -KPX V comma -125 -KPX V e -80 -KPX V eacute -80 -KPX V ecaron -80 -KPX V ecircumflex -80 -KPX V edieresis -80 -KPX V edotaccent -80 -KPX V egrave -80 -KPX V emacron -80 -KPX V eogonek -80 -KPX V hyphen -80 -KPX V o -80 -KPX V oacute -80 -KPX V ocircumflex -80 -KPX V odieresis -80 -KPX V ograve -80 -KPX V ohungarumlaut -80 -KPX V omacron -80 -KPX V oslash -80 -KPX V otilde -80 -KPX V period -125 -KPX V semicolon -40 -KPX V u -70 -KPX V uacute -70 -KPX V ucircumflex -70 -KPX V udieresis -70 -KPX V ugrave -70 -KPX V uhungarumlaut -70 -KPX V umacron -70 -KPX V uogonek -70 -KPX V uring -70 -KPX W A -50 -KPX W Aacute -50 -KPX W Abreve -50 -KPX W Acircumflex -50 -KPX W Adieresis -50 -KPX W Agrave -50 -KPX W Amacron -50 -KPX W Aogonek -50 -KPX W Aring -50 -KPX W Atilde -50 -KPX W O -20 -KPX W Oacute -20 -KPX W Ocircumflex -20 -KPX W Odieresis -20 -KPX W Ograve -20 -KPX W Ohungarumlaut -20 -KPX W Omacron -20 -KPX W Oslash -20 -KPX W Otilde -20 -KPX W a -40 -KPX W aacute -40 -KPX W abreve -40 -KPX W acircumflex -40 -KPX W adieresis -40 -KPX W agrave -40 -KPX W amacron -40 -KPX W aogonek -40 -KPX W aring -40 -KPX W atilde -40 -KPX W comma -80 -KPX W e -30 -KPX W eacute -30 -KPX W ecaron -30 -KPX W ecircumflex -30 -KPX W edieresis -30 -KPX W edotaccent -30 -KPX W egrave -30 -KPX W emacron -30 -KPX W eogonek -30 -KPX W hyphen -40 -KPX W o -30 -KPX W oacute -30 -KPX W ocircumflex -30 -KPX W odieresis -30 -KPX W ograve -30 -KPX W ohungarumlaut -30 -KPX W omacron -30 -KPX W oslash -30 -KPX W otilde -30 -KPX W period -80 -KPX W u -30 -KPX W uacute -30 -KPX W ucircumflex -30 -KPX W udieresis -30 -KPX W ugrave -30 -KPX W uhungarumlaut -30 -KPX W umacron -30 -KPX W uogonek -30 -KPX W uring -30 -KPX W y -20 -KPX W yacute -20 -KPX W ydieresis -20 -KPX Y A -110 -KPX Y Aacute -110 -KPX Y Abreve -110 -KPX Y Acircumflex -110 -KPX Y Adieresis -110 -KPX Y Agrave -110 -KPX Y Amacron -110 -KPX Y Aogonek -110 -KPX Y Aring -110 -KPX Y Atilde -110 -KPX Y O -85 -KPX Y Oacute -85 -KPX Y Ocircumflex -85 -KPX Y Odieresis -85 -KPX Y Ograve -85 -KPX Y Ohungarumlaut -85 -KPX Y Omacron -85 -KPX Y Oslash -85 -KPX Y Otilde -85 -KPX Y a -140 -KPX Y aacute -140 -KPX Y abreve -70 -KPX Y acircumflex -140 -KPX Y adieresis -140 -KPX Y agrave -140 -KPX Y amacron -70 -KPX Y aogonek -140 -KPX Y aring -140 -KPX Y atilde -140 -KPX Y colon -60 -KPX Y comma -140 -KPX Y e -140 -KPX Y eacute -140 -KPX Y ecaron -140 -KPX Y ecircumflex -140 -KPX Y edieresis -140 -KPX Y edotaccent -140 -KPX Y egrave -140 -KPX Y emacron -70 -KPX Y eogonek -140 -KPX Y hyphen -140 -KPX Y i -20 -KPX Y iacute -20 -KPX Y iogonek -20 -KPX Y o -140 -KPX Y oacute -140 -KPX Y ocircumflex -140 -KPX Y odieresis -140 -KPX Y ograve -140 -KPX Y ohungarumlaut -140 -KPX Y omacron -140 -KPX Y oslash -140 -KPX Y otilde -140 -KPX Y period -140 -KPX Y semicolon -60 -KPX Y u -110 -KPX Y uacute -110 -KPX Y ucircumflex -110 -KPX Y udieresis -110 -KPX Y ugrave -110 -KPX Y uhungarumlaut -110 -KPX Y umacron -110 -KPX Y uogonek -110 -KPX Y uring -110 -KPX Yacute A -110 -KPX Yacute Aacute -110 -KPX Yacute Abreve -110 -KPX Yacute Acircumflex -110 -KPX Yacute Adieresis -110 -KPX Yacute Agrave -110 -KPX Yacute Amacron -110 -KPX Yacute Aogonek -110 -KPX Yacute Aring -110 -KPX Yacute Atilde -110 -KPX Yacute O -85 -KPX Yacute Oacute -85 -KPX Yacute Ocircumflex -85 -KPX Yacute Odieresis -85 -KPX Yacute Ograve -85 -KPX Yacute Ohungarumlaut -85 -KPX Yacute Omacron -85 -KPX Yacute Oslash -85 -KPX Yacute Otilde -85 -KPX Yacute a -140 -KPX Yacute aacute -140 -KPX Yacute abreve -70 -KPX Yacute acircumflex -140 -KPX Yacute adieresis -140 -KPX Yacute agrave -140 -KPX Yacute amacron -70 -KPX Yacute aogonek -140 -KPX Yacute aring -140 -KPX Yacute atilde -70 -KPX Yacute colon -60 -KPX Yacute comma -140 -KPX Yacute e -140 -KPX Yacute eacute -140 -KPX Yacute ecaron -140 -KPX Yacute ecircumflex -140 -KPX Yacute edieresis -140 -KPX Yacute edotaccent -140 -KPX Yacute egrave -140 -KPX Yacute emacron -70 -KPX Yacute eogonek -140 -KPX Yacute hyphen -140 -KPX Yacute i -20 -KPX Yacute iacute -20 -KPX Yacute iogonek -20 -KPX Yacute o -140 -KPX Yacute oacute -140 -KPX Yacute ocircumflex -140 -KPX Yacute odieresis -140 -KPX Yacute ograve -140 -KPX Yacute ohungarumlaut -140 -KPX Yacute omacron -70 -KPX Yacute oslash -140 -KPX Yacute otilde -140 -KPX Yacute period -140 -KPX Yacute semicolon -60 -KPX Yacute u -110 -KPX Yacute uacute -110 -KPX Yacute ucircumflex -110 -KPX Yacute udieresis -110 -KPX Yacute ugrave -110 -KPX Yacute uhungarumlaut -110 -KPX Yacute umacron -110 -KPX Yacute uogonek -110 -KPX Yacute uring -110 -KPX Ydieresis A -110 -KPX Ydieresis Aacute -110 -KPX Ydieresis Abreve -110 -KPX Ydieresis Acircumflex -110 -KPX Ydieresis Adieresis -110 -KPX Ydieresis Agrave -110 -KPX Ydieresis Amacron -110 -KPX Ydieresis Aogonek -110 -KPX Ydieresis Aring -110 -KPX Ydieresis Atilde -110 -KPX Ydieresis O -85 -KPX Ydieresis Oacute -85 -KPX Ydieresis Ocircumflex -85 -KPX Ydieresis Odieresis -85 -KPX Ydieresis Ograve -85 -KPX Ydieresis Ohungarumlaut -85 -KPX Ydieresis Omacron -85 -KPX Ydieresis Oslash -85 -KPX Ydieresis Otilde -85 -KPX Ydieresis a -140 -KPX Ydieresis aacute -140 -KPX Ydieresis abreve -70 -KPX Ydieresis acircumflex -140 -KPX Ydieresis adieresis -140 -KPX Ydieresis agrave -140 -KPX Ydieresis amacron -70 -KPX Ydieresis aogonek -140 -KPX Ydieresis aring -140 -KPX Ydieresis atilde -70 -KPX Ydieresis colon -60 -KPX Ydieresis comma -140 -KPX Ydieresis e -140 -KPX Ydieresis eacute -140 -KPX Ydieresis ecaron -140 -KPX Ydieresis ecircumflex -140 -KPX Ydieresis edieresis -140 -KPX Ydieresis edotaccent -140 -KPX Ydieresis egrave -140 -KPX Ydieresis emacron -70 -KPX Ydieresis eogonek -140 -KPX Ydieresis hyphen -140 -KPX Ydieresis i -20 -KPX Ydieresis iacute -20 -KPX Ydieresis iogonek -20 -KPX Ydieresis o -140 -KPX Ydieresis oacute -140 -KPX Ydieresis ocircumflex -140 -KPX Ydieresis odieresis -140 -KPX Ydieresis ograve -140 -KPX Ydieresis ohungarumlaut -140 -KPX Ydieresis omacron -140 -KPX Ydieresis oslash -140 -KPX Ydieresis otilde -140 -KPX Ydieresis period -140 -KPX Ydieresis semicolon -60 -KPX Ydieresis u -110 -KPX Ydieresis uacute -110 -KPX Ydieresis ucircumflex -110 -KPX Ydieresis udieresis -110 -KPX Ydieresis ugrave -110 -KPX Ydieresis uhungarumlaut -110 -KPX Ydieresis umacron -110 -KPX Ydieresis uogonek -110 -KPX Ydieresis uring -110 -KPX a v -20 -KPX a w -20 -KPX a y -30 -KPX a yacute -30 -KPX a ydieresis -30 -KPX aacute v -20 -KPX aacute w -20 -KPX aacute y -30 -KPX aacute yacute -30 -KPX aacute ydieresis -30 -KPX abreve v -20 -KPX abreve w -20 -KPX abreve y -30 -KPX abreve yacute -30 -KPX abreve ydieresis -30 -KPX acircumflex v -20 -KPX acircumflex w -20 -KPX acircumflex y -30 -KPX acircumflex yacute -30 -KPX acircumflex ydieresis -30 -KPX adieresis v -20 -KPX adieresis w -20 -KPX adieresis y -30 -KPX adieresis yacute -30 -KPX adieresis ydieresis -30 -KPX agrave v -20 -KPX agrave w -20 -KPX agrave y -30 -KPX agrave yacute -30 -KPX agrave ydieresis -30 -KPX amacron v -20 -KPX amacron w -20 -KPX amacron y -30 -KPX amacron yacute -30 -KPX amacron ydieresis -30 -KPX aogonek v -20 -KPX aogonek w -20 -KPX aogonek y -30 -KPX aogonek yacute -30 -KPX aogonek ydieresis -30 -KPX aring v -20 -KPX aring w -20 -KPX aring y -30 -KPX aring yacute -30 -KPX aring ydieresis -30 -KPX atilde v -20 -KPX atilde w -20 -KPX atilde y -30 -KPX atilde yacute -30 -KPX atilde ydieresis -30 -KPX b b -10 -KPX b comma -40 -KPX b l -20 -KPX b lacute -20 -KPX b lcommaaccent -20 -KPX b lslash -20 -KPX b period -40 -KPX b u -20 -KPX b uacute -20 -KPX b ucircumflex -20 -KPX b udieresis -20 -KPX b ugrave -20 -KPX b uhungarumlaut -20 -KPX b umacron -20 -KPX b uogonek -20 -KPX b uring -20 -KPX b v -20 -KPX b y -20 -KPX b yacute -20 -KPX b ydieresis -20 -KPX c comma -15 -KPX c k -20 -KPX c kcommaaccent -20 -KPX cacute comma -15 -KPX cacute k -20 -KPX cacute kcommaaccent -20 -KPX ccaron comma -15 -KPX ccaron k -20 -KPX ccaron kcommaaccent -20 -KPX ccedilla comma -15 -KPX ccedilla k -20 -KPX ccedilla kcommaaccent -20 -KPX colon space -50 -KPX comma quotedblright -100 -KPX comma quoteright -100 -KPX e comma -15 -KPX e period -15 -KPX e v -30 -KPX e w -20 -KPX e x -30 -KPX e y -20 -KPX e yacute -20 -KPX e ydieresis -20 -KPX eacute comma -15 -KPX eacute period -15 -KPX eacute v -30 -KPX eacute w -20 -KPX eacute x -30 -KPX eacute y -20 -KPX eacute yacute -20 -KPX eacute ydieresis -20 -KPX ecaron comma -15 -KPX ecaron period -15 -KPX ecaron v -30 -KPX ecaron w -20 -KPX ecaron x -30 -KPX ecaron y -20 -KPX ecaron yacute -20 -KPX ecaron ydieresis -20 -KPX ecircumflex comma -15 -KPX ecircumflex period -15 -KPX ecircumflex v -30 -KPX ecircumflex w -20 -KPX ecircumflex x -30 -KPX ecircumflex y -20 -KPX ecircumflex yacute -20 -KPX ecircumflex ydieresis -20 -KPX edieresis comma -15 -KPX edieresis period -15 -KPX edieresis v -30 -KPX edieresis w -20 -KPX edieresis x -30 -KPX edieresis y -20 -KPX edieresis yacute -20 -KPX edieresis ydieresis -20 -KPX edotaccent comma -15 -KPX edotaccent period -15 -KPX edotaccent v -30 -KPX edotaccent w -20 -KPX edotaccent x -30 -KPX edotaccent y -20 -KPX edotaccent yacute -20 -KPX edotaccent ydieresis -20 -KPX egrave comma -15 -KPX egrave period -15 -KPX egrave v -30 -KPX egrave w -20 -KPX egrave x -30 -KPX egrave y -20 -KPX egrave yacute -20 -KPX egrave ydieresis -20 -KPX emacron comma -15 -KPX emacron period -15 -KPX emacron v -30 -KPX emacron w -20 -KPX emacron x -30 -KPX emacron y -20 -KPX emacron yacute -20 -KPX emacron ydieresis -20 -KPX eogonek comma -15 -KPX eogonek period -15 -KPX eogonek v -30 -KPX eogonek w -20 -KPX eogonek x -30 -KPX eogonek y -20 -KPX eogonek yacute -20 -KPX eogonek ydieresis -20 -KPX f a -30 -KPX f aacute -30 -KPX f abreve -30 -KPX f acircumflex -30 -KPX f adieresis -30 -KPX f agrave -30 -KPX f amacron -30 -KPX f aogonek -30 -KPX f aring -30 -KPX f atilde -30 -KPX f comma -30 -KPX f dotlessi -28 -KPX f e -30 -KPX f eacute -30 -KPX f ecaron -30 -KPX f ecircumflex -30 -KPX f edieresis -30 -KPX f edotaccent -30 -KPX f egrave -30 -KPX f emacron -30 -KPX f eogonek -30 -KPX f o -30 -KPX f oacute -30 -KPX f ocircumflex -30 -KPX f odieresis -30 -KPX f ograve -30 -KPX f ohungarumlaut -30 -KPX f omacron -30 -KPX f oslash -30 -KPX f otilde -30 -KPX f period -30 -KPX f quotedblright 60 -KPX f quoteright 50 -KPX g r -10 -KPX g racute -10 -KPX g rcaron -10 -KPX g rcommaaccent -10 -KPX gbreve r -10 -KPX gbreve racute -10 -KPX gbreve rcaron -10 -KPX gbreve rcommaaccent -10 -KPX gcommaaccent r -10 -KPX gcommaaccent racute -10 -KPX gcommaaccent rcaron -10 -KPX gcommaaccent rcommaaccent -10 -KPX h y -30 -KPX h yacute -30 -KPX h ydieresis -30 -KPX k e -20 -KPX k eacute -20 -KPX k ecaron -20 -KPX k ecircumflex -20 -KPX k edieresis -20 -KPX k edotaccent -20 -KPX k egrave -20 -KPX k emacron -20 -KPX k eogonek -20 -KPX k o -20 -KPX k oacute -20 -KPX k ocircumflex -20 -KPX k odieresis -20 -KPX k ograve -20 -KPX k ohungarumlaut -20 -KPX k omacron -20 -KPX k oslash -20 -KPX k otilde -20 -KPX kcommaaccent e -20 -KPX kcommaaccent eacute -20 -KPX kcommaaccent ecaron -20 -KPX kcommaaccent ecircumflex -20 -KPX kcommaaccent edieresis -20 -KPX kcommaaccent edotaccent -20 -KPX kcommaaccent egrave -20 -KPX kcommaaccent emacron -20 -KPX kcommaaccent eogonek -20 -KPX kcommaaccent o -20 -KPX kcommaaccent oacute -20 -KPX kcommaaccent ocircumflex -20 -KPX kcommaaccent odieresis -20 -KPX kcommaaccent ograve -20 -KPX kcommaaccent ohungarumlaut -20 -KPX kcommaaccent omacron -20 -KPX kcommaaccent oslash -20 -KPX kcommaaccent otilde -20 -KPX m u -10 -KPX m uacute -10 -KPX m ucircumflex -10 -KPX m udieresis -10 -KPX m ugrave -10 -KPX m uhungarumlaut -10 -KPX m umacron -10 -KPX m uogonek -10 -KPX m uring -10 -KPX m y -15 -KPX m yacute -15 -KPX m ydieresis -15 -KPX n u -10 -KPX n uacute -10 -KPX n ucircumflex -10 -KPX n udieresis -10 -KPX n ugrave -10 -KPX n uhungarumlaut -10 -KPX n umacron -10 -KPX n uogonek -10 -KPX n uring -10 -KPX n v -20 -KPX n y -15 -KPX n yacute -15 -KPX n ydieresis -15 -KPX nacute u -10 -KPX nacute uacute -10 -KPX nacute ucircumflex -10 -KPX nacute udieresis -10 -KPX nacute ugrave -10 -KPX nacute uhungarumlaut -10 -KPX nacute umacron -10 -KPX nacute uogonek -10 -KPX nacute uring -10 -KPX nacute v -20 -KPX nacute y -15 -KPX nacute yacute -15 -KPX nacute ydieresis -15 -KPX ncaron u -10 -KPX ncaron uacute -10 -KPX ncaron ucircumflex -10 -KPX ncaron udieresis -10 -KPX ncaron ugrave -10 -KPX ncaron uhungarumlaut -10 -KPX ncaron umacron -10 -KPX ncaron uogonek -10 -KPX ncaron uring -10 -KPX ncaron v -20 -KPX ncaron y -15 -KPX ncaron yacute -15 -KPX ncaron ydieresis -15 -KPX ncommaaccent u -10 -KPX ncommaaccent uacute -10 -KPX ncommaaccent ucircumflex -10 -KPX ncommaaccent udieresis -10 -KPX ncommaaccent ugrave -10 -KPX ncommaaccent uhungarumlaut -10 -KPX ncommaaccent umacron -10 -KPX ncommaaccent uogonek -10 -KPX ncommaaccent uring -10 -KPX ncommaaccent v -20 -KPX ncommaaccent y -15 -KPX ncommaaccent yacute -15 -KPX ncommaaccent ydieresis -15 -KPX ntilde u -10 -KPX ntilde uacute -10 -KPX ntilde ucircumflex -10 -KPX ntilde udieresis -10 -KPX ntilde ugrave -10 -KPX ntilde uhungarumlaut -10 -KPX ntilde umacron -10 -KPX ntilde uogonek -10 -KPX ntilde uring -10 -KPX ntilde v -20 -KPX ntilde y -15 -KPX ntilde yacute -15 -KPX ntilde ydieresis -15 -KPX o comma -40 -KPX o period -40 -KPX o v -15 -KPX o w -15 -KPX o x -30 -KPX o y -30 -KPX o yacute -30 -KPX o ydieresis -30 -KPX oacute comma -40 -KPX oacute period -40 -KPX oacute v -15 -KPX oacute w -15 -KPX oacute x -30 -KPX oacute y -30 -KPX oacute yacute -30 -KPX oacute ydieresis -30 -KPX ocircumflex comma -40 -KPX ocircumflex period -40 -KPX ocircumflex v -15 -KPX ocircumflex w -15 -KPX ocircumflex x -30 -KPX ocircumflex y -30 -KPX ocircumflex yacute -30 -KPX ocircumflex ydieresis -30 -KPX odieresis comma -40 -KPX odieresis period -40 -KPX odieresis v -15 -KPX odieresis w -15 -KPX odieresis x -30 -KPX odieresis y -30 -KPX odieresis yacute -30 -KPX odieresis ydieresis -30 -KPX ograve comma -40 -KPX ograve period -40 -KPX ograve v -15 -KPX ograve w -15 -KPX ograve x -30 -KPX ograve y -30 -KPX ograve yacute -30 -KPX ograve ydieresis -30 -KPX ohungarumlaut comma -40 -KPX ohungarumlaut period -40 -KPX ohungarumlaut v -15 -KPX ohungarumlaut w -15 -KPX ohungarumlaut x -30 -KPX ohungarumlaut y -30 -KPX ohungarumlaut yacute -30 -KPX ohungarumlaut ydieresis -30 -KPX omacron comma -40 -KPX omacron period -40 -KPX omacron v -15 -KPX omacron w -15 -KPX omacron x -30 -KPX omacron y -30 -KPX omacron yacute -30 -KPX omacron ydieresis -30 -KPX oslash a -55 -KPX oslash aacute -55 -KPX oslash abreve -55 -KPX oslash acircumflex -55 -KPX oslash adieresis -55 -KPX oslash agrave -55 -KPX oslash amacron -55 -KPX oslash aogonek -55 -KPX oslash aring -55 -KPX oslash atilde -55 -KPX oslash b -55 -KPX oslash c -55 -KPX oslash cacute -55 -KPX oslash ccaron -55 -KPX oslash ccedilla -55 -KPX oslash comma -95 -KPX oslash d -55 -KPX oslash dcroat -55 -KPX oslash e -55 -KPX oslash eacute -55 -KPX oslash ecaron -55 -KPX oslash ecircumflex -55 -KPX oslash edieresis -55 -KPX oslash edotaccent -55 -KPX oslash egrave -55 -KPX oslash emacron -55 -KPX oslash eogonek -55 -KPX oslash f -55 -KPX oslash g -55 -KPX oslash gbreve -55 -KPX oslash gcommaaccent -55 -KPX oslash h -55 -KPX oslash i -55 -KPX oslash iacute -55 -KPX oslash icircumflex -55 -KPX oslash idieresis -55 -KPX oslash igrave -55 -KPX oslash imacron -55 -KPX oslash iogonek -55 -KPX oslash j -55 -KPX oslash k -55 -KPX oslash kcommaaccent -55 -KPX oslash l -55 -KPX oslash lacute -55 -KPX oslash lcommaaccent -55 -KPX oslash lslash -55 -KPX oslash m -55 -KPX oslash n -55 -KPX oslash nacute -55 -KPX oslash ncaron -55 -KPX oslash ncommaaccent -55 -KPX oslash ntilde -55 -KPX oslash o -55 -KPX oslash oacute -55 -KPX oslash ocircumflex -55 -KPX oslash odieresis -55 -KPX oslash ograve -55 -KPX oslash ohungarumlaut -55 -KPX oslash omacron -55 -KPX oslash oslash -55 -KPX oslash otilde -55 -KPX oslash p -55 -KPX oslash period -95 -KPX oslash q -55 -KPX oslash r -55 -KPX oslash racute -55 -KPX oslash rcaron -55 -KPX oslash rcommaaccent -55 -KPX oslash s -55 -KPX oslash sacute -55 -KPX oslash scaron -55 -KPX oslash scedilla -55 -KPX oslash scommaaccent -55 -KPX oslash t -55 -KPX oslash tcommaaccent -55 -KPX oslash u -55 -KPX oslash uacute -55 -KPX oslash ucircumflex -55 -KPX oslash udieresis -55 -KPX oslash ugrave -55 -KPX oslash uhungarumlaut -55 -KPX oslash umacron -55 -KPX oslash uogonek -55 -KPX oslash uring -55 -KPX oslash v -70 -KPX oslash w -70 -KPX oslash x -85 -KPX oslash y -70 -KPX oslash yacute -70 -KPX oslash ydieresis -70 -KPX oslash z -55 -KPX oslash zacute -55 -KPX oslash zcaron -55 -KPX oslash zdotaccent -55 -KPX otilde comma -40 -KPX otilde period -40 -KPX otilde v -15 -KPX otilde w -15 -KPX otilde x -30 -KPX otilde y -30 -KPX otilde yacute -30 -KPX otilde ydieresis -30 -KPX p comma -35 -KPX p period -35 -KPX p y -30 -KPX p yacute -30 -KPX p ydieresis -30 -KPX period quotedblright -100 -KPX period quoteright -100 -KPX period space -60 -KPX quotedblright space -40 -KPX quoteleft quoteleft -57 -KPX quoteright d -50 -KPX quoteright dcroat -50 -KPX quoteright quoteright -57 -KPX quoteright r -50 -KPX quoteright racute -50 -KPX quoteright rcaron -50 -KPX quoteright rcommaaccent -50 -KPX quoteright s -50 -KPX quoteright sacute -50 -KPX quoteright scaron -50 -KPX quoteright scedilla -50 -KPX quoteright scommaaccent -50 -KPX quoteright space -70 -KPX r a -10 -KPX r aacute -10 -KPX r abreve -10 -KPX r acircumflex -10 -KPX r adieresis -10 -KPX r agrave -10 -KPX r amacron -10 -KPX r aogonek -10 -KPX r aring -10 -KPX r atilde -10 -KPX r colon 30 -KPX r comma -50 -KPX r i 15 -KPX r iacute 15 -KPX r icircumflex 15 -KPX r idieresis 15 -KPX r igrave 15 -KPX r imacron 15 -KPX r iogonek 15 -KPX r k 15 -KPX r kcommaaccent 15 -KPX r l 15 -KPX r lacute 15 -KPX r lcommaaccent 15 -KPX r lslash 15 -KPX r m 25 -KPX r n 25 -KPX r nacute 25 -KPX r ncaron 25 -KPX r ncommaaccent 25 -KPX r ntilde 25 -KPX r p 30 -KPX r period -50 -KPX r semicolon 30 -KPX r t 40 -KPX r tcommaaccent 40 -KPX r u 15 -KPX r uacute 15 -KPX r ucircumflex 15 -KPX r udieresis 15 -KPX r ugrave 15 -KPX r uhungarumlaut 15 -KPX r umacron 15 -KPX r uogonek 15 -KPX r uring 15 -KPX r v 30 -KPX r y 30 -KPX r yacute 30 -KPX r ydieresis 30 -KPX racute a -10 -KPX racute aacute -10 -KPX racute abreve -10 -KPX racute acircumflex -10 -KPX racute adieresis -10 -KPX racute agrave -10 -KPX racute amacron -10 -KPX racute aogonek -10 -KPX racute aring -10 -KPX racute atilde -10 -KPX racute colon 30 -KPX racute comma -50 -KPX racute i 15 -KPX racute iacute 15 -KPX racute icircumflex 15 -KPX racute idieresis 15 -KPX racute igrave 15 -KPX racute imacron 15 -KPX racute iogonek 15 -KPX racute k 15 -KPX racute kcommaaccent 15 -KPX racute l 15 -KPX racute lacute 15 -KPX racute lcommaaccent 15 -KPX racute lslash 15 -KPX racute m 25 -KPX racute n 25 -KPX racute nacute 25 -KPX racute ncaron 25 -KPX racute ncommaaccent 25 -KPX racute ntilde 25 -KPX racute p 30 -KPX racute period -50 -KPX racute semicolon 30 -KPX racute t 40 -KPX racute tcommaaccent 40 -KPX racute u 15 -KPX racute uacute 15 -KPX racute ucircumflex 15 -KPX racute udieresis 15 -KPX racute ugrave 15 -KPX racute uhungarumlaut 15 -KPX racute umacron 15 -KPX racute uogonek 15 -KPX racute uring 15 -KPX racute v 30 -KPX racute y 30 -KPX racute yacute 30 -KPX racute ydieresis 30 -KPX rcaron a -10 -KPX rcaron aacute -10 -KPX rcaron abreve -10 -KPX rcaron acircumflex -10 -KPX rcaron adieresis -10 -KPX rcaron agrave -10 -KPX rcaron amacron -10 -KPX rcaron aogonek -10 -KPX rcaron aring -10 -KPX rcaron atilde -10 -KPX rcaron colon 30 -KPX rcaron comma -50 -KPX rcaron i 15 -KPX rcaron iacute 15 -KPX rcaron icircumflex 15 -KPX rcaron idieresis 15 -KPX rcaron igrave 15 -KPX rcaron imacron 15 -KPX rcaron iogonek 15 -KPX rcaron k 15 -KPX rcaron kcommaaccent 15 -KPX rcaron l 15 -KPX rcaron lacute 15 -KPX rcaron lcommaaccent 15 -KPX rcaron lslash 15 -KPX rcaron m 25 -KPX rcaron n 25 -KPX rcaron nacute 25 -KPX rcaron ncaron 25 -KPX rcaron ncommaaccent 25 -KPX rcaron ntilde 25 -KPX rcaron p 30 -KPX rcaron period -50 -KPX rcaron semicolon 30 -KPX rcaron t 40 -KPX rcaron tcommaaccent 40 -KPX rcaron u 15 -KPX rcaron uacute 15 -KPX rcaron ucircumflex 15 -KPX rcaron udieresis 15 -KPX rcaron ugrave 15 -KPX rcaron uhungarumlaut 15 -KPX rcaron umacron 15 -KPX rcaron uogonek 15 -KPX rcaron uring 15 -KPX rcaron v 30 -KPX rcaron y 30 -KPX rcaron yacute 30 -KPX rcaron ydieresis 30 -KPX rcommaaccent a -10 -KPX rcommaaccent aacute -10 -KPX rcommaaccent abreve -10 -KPX rcommaaccent acircumflex -10 -KPX rcommaaccent adieresis -10 -KPX rcommaaccent agrave -10 -KPX rcommaaccent amacron -10 -KPX rcommaaccent aogonek -10 -KPX rcommaaccent aring -10 -KPX rcommaaccent atilde -10 -KPX rcommaaccent colon 30 -KPX rcommaaccent comma -50 -KPX rcommaaccent i 15 -KPX rcommaaccent iacute 15 -KPX rcommaaccent icircumflex 15 -KPX rcommaaccent idieresis 15 -KPX rcommaaccent igrave 15 -KPX rcommaaccent imacron 15 -KPX rcommaaccent iogonek 15 -KPX rcommaaccent k 15 -KPX rcommaaccent kcommaaccent 15 -KPX rcommaaccent l 15 -KPX rcommaaccent lacute 15 -KPX rcommaaccent lcommaaccent 15 -KPX rcommaaccent lslash 15 -KPX rcommaaccent m 25 -KPX rcommaaccent n 25 -KPX rcommaaccent nacute 25 -KPX rcommaaccent ncaron 25 -KPX rcommaaccent ncommaaccent 25 -KPX rcommaaccent ntilde 25 -KPX rcommaaccent p 30 -KPX rcommaaccent period -50 -KPX rcommaaccent semicolon 30 -KPX rcommaaccent t 40 -KPX rcommaaccent tcommaaccent 40 -KPX rcommaaccent u 15 -KPX rcommaaccent uacute 15 -KPX rcommaaccent ucircumflex 15 -KPX rcommaaccent udieresis 15 -KPX rcommaaccent ugrave 15 -KPX rcommaaccent uhungarumlaut 15 -KPX rcommaaccent umacron 15 -KPX rcommaaccent uogonek 15 -KPX rcommaaccent uring 15 -KPX rcommaaccent v 30 -KPX rcommaaccent y 30 -KPX rcommaaccent yacute 30 -KPX rcommaaccent ydieresis 30 -KPX s comma -15 -KPX s period -15 -KPX s w -30 -KPX sacute comma -15 -KPX sacute period -15 -KPX sacute w -30 -KPX scaron comma -15 -KPX scaron period -15 -KPX scaron w -30 -KPX scedilla comma -15 -KPX scedilla period -15 -KPX scedilla w -30 -KPX scommaaccent comma -15 -KPX scommaaccent period -15 -KPX scommaaccent w -30 -KPX semicolon space -50 -KPX space T -50 -KPX space Tcaron -50 -KPX space Tcommaaccent -50 -KPX space V -50 -KPX space W -40 -KPX space Y -90 -KPX space Yacute -90 -KPX space Ydieresis -90 -KPX space quotedblleft -30 -KPX space quoteleft -60 -KPX v a -25 -KPX v aacute -25 -KPX v abreve -25 -KPX v acircumflex -25 -KPX v adieresis -25 -KPX v agrave -25 -KPX v amacron -25 -KPX v aogonek -25 -KPX v aring -25 -KPX v atilde -25 -KPX v comma -80 -KPX v e -25 -KPX v eacute -25 -KPX v ecaron -25 -KPX v ecircumflex -25 -KPX v edieresis -25 -KPX v edotaccent -25 -KPX v egrave -25 -KPX v emacron -25 -KPX v eogonek -25 -KPX v o -25 -KPX v oacute -25 -KPX v ocircumflex -25 -KPX v odieresis -25 -KPX v ograve -25 -KPX v ohungarumlaut -25 -KPX v omacron -25 -KPX v oslash -25 -KPX v otilde -25 -KPX v period -80 -KPX w a -15 -KPX w aacute -15 -KPX w abreve -15 -KPX w acircumflex -15 -KPX w adieresis -15 -KPX w agrave -15 -KPX w amacron -15 -KPX w aogonek -15 -KPX w aring -15 -KPX w atilde -15 -KPX w comma -60 -KPX w e -10 -KPX w eacute -10 -KPX w ecaron -10 -KPX w ecircumflex -10 -KPX w edieresis -10 -KPX w edotaccent -10 -KPX w egrave -10 -KPX w emacron -10 -KPX w eogonek -10 -KPX w o -10 -KPX w oacute -10 -KPX w ocircumflex -10 -KPX w odieresis -10 -KPX w ograve -10 -KPX w ohungarumlaut -10 -KPX w omacron -10 -KPX w oslash -10 -KPX w otilde -10 -KPX w period -60 -KPX x e -30 -KPX x eacute -30 -KPX x ecaron -30 -KPX x ecircumflex -30 -KPX x edieresis -30 -KPX x edotaccent -30 -KPX x egrave -30 -KPX x emacron -30 -KPX x eogonek -30 -KPX y a -20 -KPX y aacute -20 -KPX y abreve -20 -KPX y acircumflex -20 -KPX y adieresis -20 -KPX y agrave -20 -KPX y amacron -20 -KPX y aogonek -20 -KPX y aring -20 -KPX y atilde -20 -KPX y comma -100 -KPX y e -20 -KPX y eacute -20 -KPX y ecaron -20 -KPX y ecircumflex -20 -KPX y edieresis -20 -KPX y edotaccent -20 -KPX y egrave -20 -KPX y emacron -20 -KPX y eogonek -20 -KPX y o -20 -KPX y oacute -20 -KPX y ocircumflex -20 -KPX y odieresis -20 -KPX y ograve -20 -KPX y ohungarumlaut -20 -KPX y omacron -20 -KPX y oslash -20 -KPX y otilde -20 -KPX y period -100 -KPX yacute a -20 -KPX yacute aacute -20 -KPX yacute abreve -20 -KPX yacute acircumflex -20 -KPX yacute adieresis -20 -KPX yacute agrave -20 -KPX yacute amacron -20 -KPX yacute aogonek -20 -KPX yacute aring -20 -KPX yacute atilde -20 -KPX yacute comma -100 -KPX yacute e -20 -KPX yacute eacute -20 -KPX yacute ecaron -20 -KPX yacute ecircumflex -20 -KPX yacute edieresis -20 -KPX yacute edotaccent -20 -KPX yacute egrave -20 -KPX yacute emacron -20 -KPX yacute eogonek -20 -KPX yacute o -20 -KPX yacute oacute -20 -KPX yacute ocircumflex -20 -KPX yacute odieresis -20 -KPX yacute ograve -20 -KPX yacute ohungarumlaut -20 -KPX yacute omacron -20 -KPX yacute oslash -20 -KPX yacute otilde -20 -KPX yacute period -100 -KPX ydieresis a -20 -KPX ydieresis aacute -20 -KPX ydieresis abreve -20 -KPX ydieresis acircumflex -20 -KPX ydieresis adieresis -20 -KPX ydieresis agrave -20 -KPX ydieresis amacron -20 -KPX ydieresis aogonek -20 -KPX ydieresis aring -20 -KPX ydieresis atilde -20 -KPX ydieresis comma -100 -KPX ydieresis e -20 -KPX ydieresis eacute -20 -KPX ydieresis ecaron -20 -KPX ydieresis ecircumflex -20 -KPX ydieresis edieresis -20 -KPX ydieresis edotaccent -20 -KPX ydieresis egrave -20 -KPX ydieresis emacron -20 -KPX ydieresis eogonek -20 -KPX ydieresis o -20 -KPX ydieresis oacute -20 -KPX ydieresis ocircumflex -20 -KPX ydieresis odieresis -20 -KPX ydieresis ograve -20 -KPX ydieresis ohungarumlaut -20 -KPX ydieresis omacron -20 -KPX ydieresis oslash -20 -KPX ydieresis otilde -20 -KPX ydieresis period -100 -KPX z e -15 -KPX z eacute -15 -KPX z ecaron -15 -KPX z ecircumflex -15 -KPX z edieresis -15 -KPX z edotaccent -15 -KPX z egrave -15 -KPX z emacron -15 -KPX z eogonek -15 -KPX z o -15 -KPX z oacute -15 -KPX z ocircumflex -15 -KPX z odieresis -15 -KPX z ograve -15 -KPX z ohungarumlaut -15 -KPX z omacron -15 -KPX z oslash -15 -KPX z otilde -15 -KPX zacute e -15 -KPX zacute eacute -15 -KPX zacute ecaron -15 -KPX zacute ecircumflex -15 -KPX zacute edieresis -15 -KPX zacute edotaccent -15 -KPX zacute egrave -15 -KPX zacute emacron -15 -KPX zacute eogonek -15 -KPX zacute o -15 -KPX zacute oacute -15 -KPX zacute ocircumflex -15 -KPX zacute odieresis -15 -KPX zacute ograve -15 -KPX zacute ohungarumlaut -15 -KPX zacute omacron -15 -KPX zacute oslash -15 -KPX zacute otilde -15 -KPX zcaron e -15 -KPX zcaron eacute -15 -KPX zcaron ecaron -15 -KPX zcaron ecircumflex -15 -KPX zcaron edieresis -15 -KPX zcaron edotaccent -15 -KPX zcaron egrave -15 -KPX zcaron emacron -15 -KPX zcaron eogonek -15 -KPX zcaron o -15 -KPX zcaron oacute -15 -KPX zcaron ocircumflex -15 -KPX zcaron odieresis -15 -KPX zcaron ograve -15 -KPX zcaron ohungarumlaut -15 -KPX zcaron omacron -15 -KPX zcaron oslash -15 -KPX zcaron otilde -15 -KPX zdotaccent e -15 -KPX zdotaccent eacute -15 -KPX zdotaccent ecaron -15 -KPX zdotaccent ecircumflex -15 -KPX zdotaccent edieresis -15 -KPX zdotaccent edotaccent -15 -KPX zdotaccent egrave -15 -KPX zdotaccent emacron -15 -KPX zdotaccent eogonek -15 -KPX zdotaccent o -15 -KPX zdotaccent oacute -15 -KPX zdotaccent ocircumflex -15 -KPX zdotaccent odieresis -15 -KPX zdotaccent ograve -15 -KPX zdotaccent ohungarumlaut -15 -KPX zdotaccent omacron -15 -KPX zdotaccent oslash -15 -KPX zdotaccent otilde -15 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/reporting/fonts/Helvetica.afm b/reporting/fonts/Helvetica.afm deleted file mode 100644 index bd32af54..00000000 --- a/reporting/fonts/Helvetica.afm +++ /dev/null @@ -1,3051 +0,0 @@ -StartFontMetrics 4.1 -Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date: Thu May 1 12:38:23 1997 -Comment UniqueID 43054 -Comment VMusage 37069 48094 -FontName Helvetica -FullName Helvetica -FamilyName Helvetica -Weight Medium -ItalicAngle 0 -IsFixedPitch false -CharacterSet ExtendedRoman -FontBBox -166 -225 1000 931 -UnderlinePosition -100 -UnderlineThickness 50 -Version 002.000 -Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. -EncodingScheme AdobeStandardEncoding -CapHeight 718 -XHeight 523 -Ascender 718 -Descender -207 -StdHW 76 -StdVW 88 -StartCharMetrics 315 -C 32 ; WX 278 ; N space ; B 0 0 0 0 ; -C 33 ; WX 278 ; N exclam ; B 90 0 187 718 ; -C 34 ; WX 355 ; N quotedbl ; B 70 463 285 718 ; -C 35 ; WX 556 ; N numbersign ; B 28 0 529 688 ; -C 36 ; WX 556 ; N dollar ; B 32 -115 520 775 ; -C 37 ; WX 889 ; N percent ; B 39 -19 850 703 ; -C 38 ; WX 667 ; N ampersand ; B 44 -15 645 718 ; -C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ; -C 40 ; WX 333 ; N parenleft ; B 68 -207 299 733 ; -C 41 ; WX 333 ; N parenright ; B 34 -207 265 733 ; -C 42 ; WX 389 ; N asterisk ; B 39 431 349 718 ; -C 43 ; WX 584 ; N plus ; B 39 0 545 505 ; -C 44 ; WX 278 ; N comma ; B 87 -147 191 106 ; -C 45 ; WX 333 ; N hyphen ; B 44 232 289 322 ; -C 46 ; WX 278 ; N period ; B 87 0 191 106 ; -C 47 ; WX 278 ; N slash ; B -17 -19 295 737 ; -C 48 ; WX 556 ; N zero ; B 37 -19 519 703 ; -C 49 ; WX 556 ; N one ; B 101 0 359 703 ; -C 50 ; WX 556 ; N two ; B 26 0 507 703 ; -C 51 ; WX 556 ; N three ; B 34 -19 522 703 ; -C 52 ; WX 556 ; N four ; B 25 0 523 703 ; -C 53 ; WX 556 ; N five ; B 32 -19 514 688 ; -C 54 ; WX 556 ; N six ; B 38 -19 518 703 ; -C 55 ; WX 556 ; N seven ; B 37 0 523 688 ; -C 56 ; WX 556 ; N eight ; B 38 -19 517 703 ; -C 57 ; WX 556 ; N nine ; B 42 -19 514 703 ; -C 58 ; WX 278 ; N colon ; B 87 0 191 516 ; -C 59 ; WX 278 ; N semicolon ; B 87 -147 191 516 ; -C 60 ; WX 584 ; N less ; B 48 11 536 495 ; -C 61 ; WX 584 ; N equal ; B 39 115 545 390 ; -C 62 ; WX 584 ; N greater ; B 48 11 536 495 ; -C 63 ; WX 556 ; N question ; B 56 0 492 727 ; -C 64 ; WX 1015 ; N at ; B 147 -19 868 737 ; -C 65 ; WX 667 ; N A ; B 14 0 654 718 ; -C 66 ; WX 667 ; N B ; B 74 0 627 718 ; -C 67 ; WX 722 ; N C ; B 44 -19 681 737 ; -C 68 ; WX 722 ; N D ; B 81 0 674 718 ; -C 69 ; WX 667 ; N E ; B 86 0 616 718 ; -C 70 ; WX 611 ; N F ; B 86 0 583 718 ; -C 71 ; WX 778 ; N G ; B 48 -19 704 737 ; -C 72 ; WX 722 ; N H ; B 77 0 646 718 ; -C 73 ; WX 278 ; N I ; B 91 0 188 718 ; -C 74 ; WX 500 ; N J ; B 17 -19 428 718 ; -C 75 ; WX 667 ; N K ; B 76 0 663 718 ; -C 76 ; WX 556 ; N L ; B 76 0 537 718 ; -C 77 ; WX 833 ; N M ; B 73 0 761 718 ; -C 78 ; WX 722 ; N N ; B 76 0 646 718 ; -C 79 ; WX 778 ; N O ; B 39 -19 739 737 ; -C 80 ; WX 667 ; N P ; B 86 0 622 718 ; -C 81 ; WX 778 ; N Q ; B 39 -56 739 737 ; -C 82 ; WX 722 ; N R ; B 88 0 684 718 ; -C 83 ; WX 667 ; N S ; B 49 -19 620 737 ; -C 84 ; WX 611 ; N T ; B 14 0 597 718 ; -C 85 ; WX 722 ; N U ; B 79 -19 644 718 ; -C 86 ; WX 667 ; N V ; B 20 0 647 718 ; -C 87 ; WX 944 ; N W ; B 16 0 928 718 ; -C 88 ; WX 667 ; N X ; B 19 0 648 718 ; -C 89 ; WX 667 ; N Y ; B 14 0 653 718 ; -C 90 ; WX 611 ; N Z ; B 23 0 588 718 ; -C 91 ; WX 278 ; N bracketleft ; B 63 -196 250 722 ; -C 92 ; WX 278 ; N backslash ; B -17 -19 295 737 ; -C 93 ; WX 278 ; N bracketright ; B 28 -196 215 722 ; -C 94 ; WX 469 ; N asciicircum ; B -14 264 483 688 ; -C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; -C 96 ; WX 222 ; N quoteleft ; B 65 470 169 725 ; -C 97 ; WX 556 ; N a ; B 36 -15 530 538 ; -C 98 ; WX 556 ; N b ; B 58 -15 517 718 ; -C 99 ; WX 500 ; N c ; B 30 -15 477 538 ; -C 100 ; WX 556 ; N d ; B 35 -15 499 718 ; -C 101 ; WX 556 ; N e ; B 40 -15 516 538 ; -C 102 ; WX 278 ; N f ; B 14 0 262 728 ; L i fi ; L l fl ; -C 103 ; WX 556 ; N g ; B 40 -220 499 538 ; -C 104 ; WX 556 ; N h ; B 65 0 491 718 ; -C 105 ; WX 222 ; N i ; B 67 0 155 718 ; -C 106 ; WX 222 ; N j ; B -16 -210 155 718 ; -C 107 ; WX 500 ; N k ; B 67 0 501 718 ; -C 108 ; WX 222 ; N l ; B 67 0 155 718 ; -C 109 ; WX 833 ; N m ; B 65 0 769 538 ; -C 110 ; WX 556 ; N n ; B 65 0 491 538 ; -C 111 ; WX 556 ; N o ; B 35 -14 521 538 ; -C 112 ; WX 556 ; N p ; B 58 -207 517 538 ; -C 113 ; WX 556 ; N q ; B 35 -207 494 538 ; -C 114 ; WX 333 ; N r ; B 77 0 332 538 ; -C 115 ; WX 500 ; N s ; B 32 -15 464 538 ; -C 116 ; WX 278 ; N t ; B 14 -7 257 669 ; -C 117 ; WX 556 ; N u ; B 68 -15 489 523 ; -C 118 ; WX 500 ; N v ; B 8 0 492 523 ; -C 119 ; WX 722 ; N w ; B 14 0 709 523 ; -C 120 ; WX 500 ; N x ; B 11 0 490 523 ; -C 121 ; WX 500 ; N y ; B 11 -214 489 523 ; -C 122 ; WX 500 ; N z ; B 31 0 469 523 ; -C 123 ; WX 334 ; N braceleft ; B 42 -196 292 722 ; -C 124 ; WX 260 ; N bar ; B 94 -225 167 775 ; -C 125 ; WX 334 ; N braceright ; B 42 -196 292 722 ; -C 126 ; WX 584 ; N asciitilde ; B 61 180 523 326 ; -C 161 ; WX 333 ; N exclamdown ; B 118 -195 215 523 ; -C 162 ; WX 556 ; N cent ; B 51 -115 513 623 ; -C 163 ; WX 556 ; N sterling ; B 33 -16 539 718 ; -C 164 ; WX 167 ; N fraction ; B -166 -19 333 703 ; -C 165 ; WX 556 ; N yen ; B 3 0 553 688 ; -C 166 ; WX 556 ; N florin ; B -11 -207 501 737 ; -C 167 ; WX 556 ; N section ; B 43 -191 512 737 ; -C 168 ; WX 556 ; N currency ; B 28 99 528 603 ; -C 169 ; WX 191 ; N quotesingle ; B 59 463 132 718 ; -C 170 ; WX 333 ; N quotedblleft ; B 38 470 307 725 ; -C 171 ; WX 556 ; N guillemotleft ; B 97 108 459 446 ; -C 172 ; WX 333 ; N guilsinglleft ; B 88 108 245 446 ; -C 173 ; WX 333 ; N guilsinglright ; B 88 108 245 446 ; -C 174 ; WX 500 ; N fi ; B 14 0 434 728 ; -C 175 ; WX 500 ; N fl ; B 14 0 432 728 ; -C 177 ; WX 556 ; N endash ; B 0 240 556 313 ; -C 178 ; WX 556 ; N dagger ; B 43 -159 514 718 ; -C 179 ; WX 556 ; N daggerdbl ; B 43 -159 514 718 ; -C 180 ; WX 278 ; N periodcentered ; B 77 190 202 315 ; -C 182 ; WX 537 ; N paragraph ; B 18 -173 497 718 ; -C 183 ; WX 350 ; N bullet ; B 18 202 333 517 ; -C 184 ; WX 222 ; N quotesinglbase ; B 53 -149 157 106 ; -C 185 ; WX 333 ; N quotedblbase ; B 26 -149 295 106 ; -C 186 ; WX 333 ; N quotedblright ; B 26 463 295 718 ; -C 187 ; WX 556 ; N guillemotright ; B 97 108 459 446 ; -C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 106 ; -C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 703 ; -C 191 ; WX 611 ; N questiondown ; B 91 -201 527 525 ; -C 193 ; WX 333 ; N grave ; B 14 593 211 734 ; -C 194 ; WX 333 ; N acute ; B 122 593 319 734 ; -C 195 ; WX 333 ; N circumflex ; B 21 593 312 734 ; -C 196 ; WX 333 ; N tilde ; B -4 606 337 722 ; -C 197 ; WX 333 ; N macron ; B 10 627 323 684 ; -C 198 ; WX 333 ; N breve ; B 13 595 321 731 ; -C 199 ; WX 333 ; N dotaccent ; B 121 604 212 706 ; -C 200 ; WX 333 ; N dieresis ; B 40 604 293 706 ; -C 202 ; WX 333 ; N ring ; B 75 572 259 756 ; -C 203 ; WX 333 ; N cedilla ; B 45 -225 259 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B 31 593 409 734 ; -C 206 ; WX 333 ; N ogonek ; B 73 -225 287 0 ; -C 207 ; WX 333 ; N caron ; B 21 593 312 734 ; -C 208 ; WX 1000 ; N emdash ; B 0 240 1000 313 ; -C 225 ; WX 1000 ; N AE ; B 8 0 951 718 ; -C 227 ; WX 370 ; N ordfeminine ; B 24 405 346 737 ; -C 232 ; WX 556 ; N Lslash ; B -20 0 537 718 ; -C 233 ; WX 778 ; N Oslash ; B 39 -19 740 737 ; -C 234 ; WX 1000 ; N OE ; B 36 -19 965 737 ; -C 235 ; WX 365 ; N ordmasculine ; B 25 405 341 737 ; -C 241 ; WX 889 ; N ae ; B 36 -15 847 538 ; -C 245 ; WX 278 ; N dotlessi ; B 95 0 183 523 ; -C 248 ; WX 222 ; N lslash ; B -20 0 242 718 ; -C 249 ; WX 611 ; N oslash ; B 28 -22 537 545 ; -C 250 ; WX 944 ; N oe ; B 35 -15 902 538 ; -C 251 ; WX 611 ; N germandbls ; B 67 -15 571 728 ; -C -1 ; WX 278 ; N Idieresis ; B 13 0 266 901 ; -C -1 ; WX 556 ; N eacute ; B 40 -15 516 734 ; -C -1 ; WX 556 ; N abreve ; B 36 -15 530 731 ; -C -1 ; WX 556 ; N uhungarumlaut ; B 68 -15 521 734 ; -C -1 ; WX 556 ; N ecaron ; B 40 -15 516 734 ; -C -1 ; WX 667 ; N Ydieresis ; B 14 0 653 901 ; -C -1 ; WX 584 ; N divide ; B 39 -19 545 524 ; -C -1 ; WX 667 ; N Yacute ; B 14 0 653 929 ; -C -1 ; WX 667 ; N Acircumflex ; B 14 0 654 929 ; -C -1 ; WX 556 ; N aacute ; B 36 -15 530 734 ; -C -1 ; WX 722 ; N Ucircumflex ; B 79 -19 644 929 ; -C -1 ; WX 500 ; N yacute ; B 11 -214 489 734 ; -C -1 ; WX 500 ; N scommaaccent ; B 32 -225 464 538 ; -C -1 ; WX 556 ; N ecircumflex ; B 40 -15 516 734 ; -C -1 ; WX 722 ; N Uring ; B 79 -19 644 931 ; -C -1 ; WX 722 ; N Udieresis ; B 79 -19 644 901 ; -C -1 ; WX 556 ; N aogonek ; B 36 -220 547 538 ; -C -1 ; WX 722 ; N Uacute ; B 79 -19 644 929 ; -C -1 ; WX 556 ; N uogonek ; B 68 -225 519 523 ; -C -1 ; WX 667 ; N Edieresis ; B 86 0 616 901 ; -C -1 ; WX 722 ; N Dcroat ; B 0 0 674 718 ; -C -1 ; WX 250 ; N commaaccent ; B 87 -225 181 -40 ; -C -1 ; WX 737 ; N copyright ; B -14 -19 752 737 ; -C -1 ; WX 667 ; N Emacron ; B 86 0 616 879 ; -C -1 ; WX 500 ; N ccaron ; B 30 -15 477 734 ; -C -1 ; WX 556 ; N aring ; B 36 -15 530 756 ; -C -1 ; WX 722 ; N Ncommaaccent ; B 76 -225 646 718 ; -C -1 ; WX 222 ; N lacute ; B 67 0 264 929 ; -C -1 ; WX 556 ; N agrave ; B 36 -15 530 734 ; -C -1 ; WX 611 ; N Tcommaaccent ; B 14 -225 597 718 ; -C -1 ; WX 722 ; N Cacute ; B 44 -19 681 929 ; -C -1 ; WX 556 ; N atilde ; B 36 -15 530 722 ; -C -1 ; WX 667 ; N Edotaccent ; B 86 0 616 901 ; -C -1 ; WX 500 ; N scaron ; B 32 -15 464 734 ; -C -1 ; WX 500 ; N scedilla ; B 32 -225 464 538 ; -C -1 ; WX 278 ; N iacute ; B 95 0 292 734 ; -C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; -C -1 ; WX 722 ; N Rcaron ; B 88 0 684 929 ; -C -1 ; WX 778 ; N Gcommaaccent ; B 48 -225 704 737 ; -C -1 ; WX 556 ; N ucircumflex ; B 68 -15 489 734 ; -C -1 ; WX 556 ; N acircumflex ; B 36 -15 530 734 ; -C -1 ; WX 667 ; N Amacron ; B 14 0 654 879 ; -C -1 ; WX 333 ; N rcaron ; B 61 0 352 734 ; -C -1 ; WX 500 ; N ccedilla ; B 30 -225 477 538 ; -C -1 ; WX 611 ; N Zdotaccent ; B 23 0 588 901 ; -C -1 ; WX 667 ; N Thorn ; B 86 0 622 718 ; -C -1 ; WX 778 ; N Omacron ; B 39 -19 739 879 ; -C -1 ; WX 722 ; N Racute ; B 88 0 684 929 ; -C -1 ; WX 667 ; N Sacute ; B 49 -19 620 929 ; -C -1 ; WX 643 ; N dcaron ; B 35 -15 655 718 ; -C -1 ; WX 722 ; N Umacron ; B 79 -19 644 879 ; -C -1 ; WX 556 ; N uring ; B 68 -15 489 756 ; -C -1 ; WX 333 ; N threesuperior ; B 5 270 325 703 ; -C -1 ; WX 778 ; N Ograve ; B 39 -19 739 929 ; -C -1 ; WX 667 ; N Agrave ; B 14 0 654 929 ; -C -1 ; WX 667 ; N Abreve ; B 14 0 654 926 ; -C -1 ; WX 584 ; N multiply ; B 39 0 545 506 ; -C -1 ; WX 556 ; N uacute ; B 68 -15 489 734 ; -C -1 ; WX 611 ; N Tcaron ; B 14 0 597 929 ; -C -1 ; WX 476 ; N partialdiff ; B 13 -38 463 714 ; -C -1 ; WX 500 ; N ydieresis ; B 11 -214 489 706 ; -C -1 ; WX 722 ; N Nacute ; B 76 0 646 929 ; -C -1 ; WX 278 ; N icircumflex ; B -6 0 285 734 ; -C -1 ; WX 667 ; N Ecircumflex ; B 86 0 616 929 ; -C -1 ; WX 556 ; N adieresis ; B 36 -15 530 706 ; -C -1 ; WX 556 ; N edieresis ; B 40 -15 516 706 ; -C -1 ; WX 500 ; N cacute ; B 30 -15 477 734 ; -C -1 ; WX 556 ; N nacute ; B 65 0 491 734 ; -C -1 ; WX 556 ; N umacron ; B 68 -15 489 684 ; -C -1 ; WX 722 ; N Ncaron ; B 76 0 646 929 ; -C -1 ; WX 278 ; N Iacute ; B 91 0 292 929 ; -C -1 ; WX 584 ; N plusminus ; B 39 0 545 506 ; -C -1 ; WX 260 ; N brokenbar ; B 94 -150 167 700 ; -C -1 ; WX 737 ; N registered ; B -14 -19 752 737 ; -C -1 ; WX 778 ; N Gbreve ; B 48 -19 704 926 ; -C -1 ; WX 278 ; N Idotaccent ; B 91 0 188 901 ; -C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; -C -1 ; WX 667 ; N Egrave ; B 86 0 616 929 ; -C -1 ; WX 333 ; N racute ; B 77 0 332 734 ; -C -1 ; WX 556 ; N omacron ; B 35 -14 521 684 ; -C -1 ; WX 611 ; N Zacute ; B 23 0 588 929 ; -C -1 ; WX 611 ; N Zcaron ; B 23 0 588 929 ; -C -1 ; WX 549 ; N greaterequal ; B 26 0 523 674 ; -C -1 ; WX 722 ; N Eth ; B 0 0 674 718 ; -C -1 ; WX 722 ; N Ccedilla ; B 44 -225 681 737 ; -C -1 ; WX 222 ; N lcommaaccent ; B 67 -225 167 718 ; -C -1 ; WX 317 ; N tcaron ; B 14 -7 329 808 ; -C -1 ; WX 556 ; N eogonek ; B 40 -225 516 538 ; -C -1 ; WX 722 ; N Uogonek ; B 79 -225 644 718 ; -C -1 ; WX 667 ; N Aacute ; B 14 0 654 929 ; -C -1 ; WX 667 ; N Adieresis ; B 14 0 654 901 ; -C -1 ; WX 556 ; N egrave ; B 40 -15 516 734 ; -C -1 ; WX 500 ; N zacute ; B 31 0 469 734 ; -C -1 ; WX 222 ; N iogonek ; B -31 -225 183 718 ; -C -1 ; WX 778 ; N Oacute ; B 39 -19 739 929 ; -C -1 ; WX 556 ; N oacute ; B 35 -14 521 734 ; -C -1 ; WX 556 ; N amacron ; B 36 -15 530 684 ; -C -1 ; WX 500 ; N sacute ; B 32 -15 464 734 ; -C -1 ; WX 278 ; N idieresis ; B 13 0 266 706 ; -C -1 ; WX 778 ; N Ocircumflex ; B 39 -19 739 929 ; -C -1 ; WX 722 ; N Ugrave ; B 79 -19 644 929 ; -C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; -C -1 ; WX 556 ; N thorn ; B 58 -207 517 718 ; -C -1 ; WX 333 ; N twosuperior ; B 4 281 323 703 ; -C -1 ; WX 778 ; N Odieresis ; B 39 -19 739 901 ; -C -1 ; WX 556 ; N mu ; B 68 -207 489 523 ; -C -1 ; WX 278 ; N igrave ; B -13 0 184 734 ; -C -1 ; WX 556 ; N ohungarumlaut ; B 35 -14 521 734 ; -C -1 ; WX 667 ; N Eogonek ; B 86 -220 633 718 ; -C -1 ; WX 556 ; N dcroat ; B 35 -15 550 718 ; -C -1 ; WX 834 ; N threequarters ; B 45 -19 810 703 ; -C -1 ; WX 667 ; N Scedilla ; B 49 -225 620 737 ; -C -1 ; WX 299 ; N lcaron ; B 67 0 311 718 ; -C -1 ; WX 667 ; N Kcommaaccent ; B 76 -225 663 718 ; -C -1 ; WX 556 ; N Lacute ; B 76 0 537 929 ; -C -1 ; WX 1000 ; N trademark ; B 46 306 903 718 ; -C -1 ; WX 556 ; N edotaccent ; B 40 -15 516 706 ; -C -1 ; WX 278 ; N Igrave ; B -13 0 188 929 ; -C -1 ; WX 278 ; N Imacron ; B -17 0 296 879 ; -C -1 ; WX 556 ; N Lcaron ; B 76 0 537 718 ; -C -1 ; WX 834 ; N onehalf ; B 43 -19 773 703 ; -C -1 ; WX 549 ; N lessequal ; B 26 0 523 674 ; -C -1 ; WX 556 ; N ocircumflex ; B 35 -14 521 734 ; -C -1 ; WX 556 ; N ntilde ; B 65 0 491 722 ; -C -1 ; WX 722 ; N Uhungarumlaut ; B 79 -19 644 929 ; -C -1 ; WX 667 ; N Eacute ; B 86 0 616 929 ; -C -1 ; WX 556 ; N emacron ; B 40 -15 516 684 ; -C -1 ; WX 556 ; N gbreve ; B 40 -220 499 731 ; -C -1 ; WX 834 ; N onequarter ; B 73 -19 756 703 ; -C -1 ; WX 667 ; N Scaron ; B 49 -19 620 929 ; -C -1 ; WX 667 ; N Scommaaccent ; B 49 -225 620 737 ; -C -1 ; WX 778 ; N Ohungarumlaut ; B 39 -19 739 929 ; -C -1 ; WX 400 ; N degree ; B 54 411 346 703 ; -C -1 ; WX 556 ; N ograve ; B 35 -14 521 734 ; -C -1 ; WX 722 ; N Ccaron ; B 44 -19 681 929 ; -C -1 ; WX 556 ; N ugrave ; B 68 -15 489 734 ; -C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; -C -1 ; WX 722 ; N Dcaron ; B 81 0 674 929 ; -C -1 ; WX 333 ; N rcommaaccent ; B 77 -225 332 538 ; -C -1 ; WX 722 ; N Ntilde ; B 76 0 646 917 ; -C -1 ; WX 556 ; N otilde ; B 35 -14 521 722 ; -C -1 ; WX 722 ; N Rcommaaccent ; B 88 -225 684 718 ; -C -1 ; WX 556 ; N Lcommaaccent ; B 76 -225 537 718 ; -C -1 ; WX 667 ; N Atilde ; B 14 0 654 917 ; -C -1 ; WX 667 ; N Aogonek ; B 14 -225 654 718 ; -C -1 ; WX 667 ; N Aring ; B 14 0 654 931 ; -C -1 ; WX 778 ; N Otilde ; B 39 -19 739 917 ; -C -1 ; WX 500 ; N zdotaccent ; B 31 0 469 706 ; -C -1 ; WX 667 ; N Ecaron ; B 86 0 616 929 ; -C -1 ; WX 278 ; N Iogonek ; B -3 -225 211 718 ; -C -1 ; WX 500 ; N kcommaaccent ; B 67 -225 501 718 ; -C -1 ; WX 584 ; N minus ; B 39 216 545 289 ; -C -1 ; WX 278 ; N Icircumflex ; B -6 0 285 929 ; -C -1 ; WX 556 ; N ncaron ; B 65 0 491 734 ; -C -1 ; WX 278 ; N tcommaaccent ; B 14 -225 257 669 ; -C -1 ; WX 584 ; N logicalnot ; B 39 108 545 390 ; -C -1 ; WX 556 ; N odieresis ; B 35 -14 521 706 ; -C -1 ; WX 556 ; N udieresis ; B 68 -15 489 706 ; -C -1 ; WX 549 ; N notequal ; B 12 -35 537 551 ; -C -1 ; WX 556 ; N gcommaaccent ; B 40 -220 499 822 ; -C -1 ; WX 556 ; N eth ; B 35 -15 522 737 ; -C -1 ; WX 500 ; N zcaron ; B 31 0 469 734 ; -C -1 ; WX 556 ; N ncommaaccent ; B 65 -225 491 538 ; -C -1 ; WX 333 ; N onesuperior ; B 43 281 222 703 ; -C -1 ; WX 278 ; N imacron ; B 5 0 272 684 ; -C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; -EndCharMetrics -StartKernData -StartKernPairs 2705 -KPX A C -30 -KPX A Cacute -30 -KPX A Ccaron -30 -KPX A Ccedilla -30 -KPX A G -30 -KPX A Gbreve -30 -KPX A Gcommaaccent -30 -KPX A O -30 -KPX A Oacute -30 -KPX A Ocircumflex -30 -KPX A Odieresis -30 -KPX A Ograve -30 -KPX A Ohungarumlaut -30 -KPX A Omacron -30 -KPX A Oslash -30 -KPX A Otilde -30 -KPX A Q -30 -KPX A T -120 -KPX A Tcaron -120 -KPX A Tcommaaccent -120 -KPX A U -50 -KPX A Uacute -50 -KPX A Ucircumflex -50 -KPX A Udieresis -50 -KPX A Ugrave -50 -KPX A Uhungarumlaut -50 -KPX A Umacron -50 -KPX A Uogonek -50 -KPX A Uring -50 -KPX A V -70 -KPX A W -50 -KPX A Y -100 -KPX A Yacute -100 -KPX A Ydieresis -100 -KPX A u -30 -KPX A uacute -30 -KPX A ucircumflex -30 -KPX A udieresis -30 -KPX A ugrave -30 -KPX A uhungarumlaut -30 -KPX A umacron -30 -KPX A uogonek -30 -KPX A uring -30 -KPX A v -40 -KPX A w -40 -KPX A y -40 -KPX A yacute -40 -KPX A ydieresis -40 -KPX Aacute C -30 -KPX Aacute Cacute -30 -KPX Aacute Ccaron -30 -KPX Aacute Ccedilla -30 -KPX Aacute G -30 -KPX Aacute Gbreve -30 -KPX Aacute Gcommaaccent -30 -KPX Aacute O -30 -KPX Aacute Oacute -30 -KPX Aacute Ocircumflex -30 -KPX Aacute Odieresis -30 -KPX Aacute Ograve -30 -KPX Aacute Ohungarumlaut -30 -KPX Aacute Omacron -30 -KPX Aacute Oslash -30 -KPX Aacute Otilde -30 -KPX Aacute Q -30 -KPX Aacute T -120 -KPX Aacute Tcaron -120 -KPX Aacute Tcommaaccent -120 -KPX Aacute U -50 -KPX Aacute Uacute -50 -KPX Aacute Ucircumflex -50 -KPX Aacute Udieresis -50 -KPX Aacute Ugrave -50 -KPX Aacute Uhungarumlaut -50 -KPX Aacute Umacron -50 -KPX Aacute Uogonek -50 -KPX Aacute Uring -50 -KPX Aacute V -70 -KPX Aacute W -50 -KPX Aacute Y -100 -KPX Aacute Yacute -100 -KPX Aacute Ydieresis -100 -KPX Aacute u -30 -KPX Aacute uacute -30 -KPX Aacute ucircumflex -30 -KPX Aacute udieresis -30 -KPX Aacute ugrave -30 -KPX Aacute uhungarumlaut -30 -KPX Aacute umacron -30 -KPX Aacute uogonek -30 -KPX Aacute uring -30 -KPX Aacute v -40 -KPX Aacute w -40 -KPX Aacute y -40 -KPX Aacute yacute -40 -KPX Aacute ydieresis -40 -KPX Abreve C -30 -KPX Abreve Cacute -30 -KPX Abreve Ccaron -30 -KPX Abreve Ccedilla -30 -KPX Abreve G -30 -KPX Abreve Gbreve -30 -KPX Abreve Gcommaaccent -30 -KPX Abreve O -30 -KPX Abreve Oacute -30 -KPX Abreve Ocircumflex -30 -KPX Abreve Odieresis -30 -KPX Abreve Ograve -30 -KPX Abreve Ohungarumlaut -30 -KPX Abreve Omacron -30 -KPX Abreve Oslash -30 -KPX Abreve Otilde -30 -KPX Abreve Q -30 -KPX Abreve T -120 -KPX Abreve Tcaron -120 -KPX Abreve Tcommaaccent -120 -KPX Abreve U -50 -KPX Abreve Uacute -50 -KPX Abreve Ucircumflex -50 -KPX Abreve Udieresis -50 -KPX Abreve Ugrave -50 -KPX Abreve Uhungarumlaut -50 -KPX Abreve Umacron -50 -KPX Abreve Uogonek -50 -KPX Abreve Uring -50 -KPX Abreve V -70 -KPX Abreve W -50 -KPX Abreve Y -100 -KPX Abreve Yacute -100 -KPX Abreve Ydieresis -100 -KPX Abreve u -30 -KPX Abreve uacute -30 -KPX Abreve ucircumflex -30 -KPX Abreve udieresis -30 -KPX Abreve ugrave -30 -KPX Abreve uhungarumlaut -30 -KPX Abreve umacron -30 -KPX Abreve uogonek -30 -KPX Abreve uring -30 -KPX Abreve v -40 -KPX Abreve w -40 -KPX Abreve y -40 -KPX Abreve yacute -40 -KPX Abreve ydieresis -40 -KPX Acircumflex C -30 -KPX Acircumflex Cacute -30 -KPX Acircumflex Ccaron -30 -KPX Acircumflex Ccedilla -30 -KPX Acircumflex G -30 -KPX Acircumflex Gbreve -30 -KPX Acircumflex Gcommaaccent -30 -KPX Acircumflex O -30 -KPX Acircumflex Oacute -30 -KPX Acircumflex Ocircumflex -30 -KPX Acircumflex Odieresis -30 -KPX Acircumflex Ograve -30 -KPX Acircumflex Ohungarumlaut -30 -KPX Acircumflex Omacron -30 -KPX Acircumflex Oslash -30 -KPX Acircumflex Otilde -30 -KPX Acircumflex Q -30 -KPX Acircumflex T -120 -KPX Acircumflex Tcaron -120 -KPX Acircumflex Tcommaaccent -120 -KPX Acircumflex U -50 -KPX Acircumflex Uacute -50 -KPX Acircumflex Ucircumflex -50 -KPX Acircumflex Udieresis -50 -KPX Acircumflex Ugrave -50 -KPX Acircumflex Uhungarumlaut -50 -KPX Acircumflex Umacron -50 -KPX Acircumflex Uogonek -50 -KPX Acircumflex Uring -50 -KPX Acircumflex V -70 -KPX Acircumflex W -50 -KPX Acircumflex Y -100 -KPX Acircumflex Yacute -100 -KPX Acircumflex Ydieresis -100 -KPX Acircumflex u -30 -KPX Acircumflex uacute -30 -KPX Acircumflex ucircumflex -30 -KPX Acircumflex udieresis -30 -KPX Acircumflex ugrave -30 -KPX Acircumflex uhungarumlaut -30 -KPX Acircumflex umacron -30 -KPX Acircumflex uogonek -30 -KPX Acircumflex uring -30 -KPX Acircumflex v -40 -KPX Acircumflex w -40 -KPX Acircumflex y -40 -KPX Acircumflex yacute -40 -KPX Acircumflex ydieresis -40 -KPX Adieresis C -30 -KPX Adieresis Cacute -30 -KPX Adieresis Ccaron -30 -KPX Adieresis Ccedilla -30 -KPX Adieresis G -30 -KPX Adieresis Gbreve -30 -KPX Adieresis Gcommaaccent -30 -KPX Adieresis O -30 -KPX Adieresis Oacute -30 -KPX Adieresis Ocircumflex -30 -KPX Adieresis Odieresis -30 -KPX Adieresis Ograve -30 -KPX Adieresis Ohungarumlaut -30 -KPX Adieresis Omacron -30 -KPX Adieresis Oslash -30 -KPX Adieresis Otilde -30 -KPX Adieresis Q -30 -KPX Adieresis T -120 -KPX Adieresis Tcaron -120 -KPX Adieresis Tcommaaccent -120 -KPX Adieresis U -50 -KPX Adieresis Uacute -50 -KPX Adieresis Ucircumflex -50 -KPX Adieresis Udieresis -50 -KPX Adieresis Ugrave -50 -KPX Adieresis Uhungarumlaut -50 -KPX Adieresis Umacron -50 -KPX Adieresis Uogonek -50 -KPX Adieresis Uring -50 -KPX Adieresis V -70 -KPX Adieresis W -50 -KPX Adieresis Y -100 -KPX Adieresis Yacute -100 -KPX Adieresis Ydieresis -100 -KPX Adieresis u -30 -KPX Adieresis uacute -30 -KPX Adieresis ucircumflex -30 -KPX Adieresis udieresis -30 -KPX Adieresis ugrave -30 -KPX Adieresis uhungarumlaut -30 -KPX Adieresis umacron -30 -KPX Adieresis uogonek -30 -KPX Adieresis uring -30 -KPX Adieresis v -40 -KPX Adieresis w -40 -KPX Adieresis y -40 -KPX Adieresis yacute -40 -KPX Adieresis ydieresis -40 -KPX Agrave C -30 -KPX Agrave Cacute -30 -KPX Agrave Ccaron -30 -KPX Agrave Ccedilla -30 -KPX Agrave G -30 -KPX Agrave Gbreve -30 -KPX Agrave Gcommaaccent -30 -KPX Agrave O -30 -KPX Agrave Oacute -30 -KPX Agrave Ocircumflex -30 -KPX Agrave Odieresis -30 -KPX Agrave Ograve -30 -KPX Agrave Ohungarumlaut -30 -KPX Agrave Omacron -30 -KPX Agrave Oslash -30 -KPX Agrave Otilde -30 -KPX Agrave Q -30 -KPX Agrave T -120 -KPX Agrave Tcaron -120 -KPX Agrave Tcommaaccent -120 -KPX Agrave U -50 -KPX Agrave Uacute -50 -KPX Agrave Ucircumflex -50 -KPX Agrave Udieresis -50 -KPX Agrave Ugrave -50 -KPX Agrave Uhungarumlaut -50 -KPX Agrave Umacron -50 -KPX Agrave Uogonek -50 -KPX Agrave Uring -50 -KPX Agrave V -70 -KPX Agrave W -50 -KPX Agrave Y -100 -KPX Agrave Yacute -100 -KPX Agrave Ydieresis -100 -KPX Agrave u -30 -KPX Agrave uacute -30 -KPX Agrave ucircumflex -30 -KPX Agrave udieresis -30 -KPX Agrave ugrave -30 -KPX Agrave uhungarumlaut -30 -KPX Agrave umacron -30 -KPX Agrave uogonek -30 -KPX Agrave uring -30 -KPX Agrave v -40 -KPX Agrave w -40 -KPX Agrave y -40 -KPX Agrave yacute -40 -KPX Agrave ydieresis -40 -KPX Amacron C -30 -KPX Amacron Cacute -30 -KPX Amacron Ccaron -30 -KPX Amacron Ccedilla -30 -KPX Amacron G -30 -KPX Amacron Gbreve -30 -KPX Amacron Gcommaaccent -30 -KPX Amacron O -30 -KPX Amacron Oacute -30 -KPX Amacron Ocircumflex -30 -KPX Amacron Odieresis -30 -KPX Amacron Ograve -30 -KPX Amacron Ohungarumlaut -30 -KPX Amacron Omacron -30 -KPX Amacron Oslash -30 -KPX Amacron Otilde -30 -KPX Amacron Q -30 -KPX Amacron T -120 -KPX Amacron Tcaron -120 -KPX Amacron Tcommaaccent -120 -KPX Amacron U -50 -KPX Amacron Uacute -50 -KPX Amacron Ucircumflex -50 -KPX Amacron Udieresis -50 -KPX Amacron Ugrave -50 -KPX Amacron Uhungarumlaut -50 -KPX Amacron Umacron -50 -KPX Amacron Uogonek -50 -KPX Amacron Uring -50 -KPX Amacron V -70 -KPX Amacron W -50 -KPX Amacron Y -100 -KPX Amacron Yacute -100 -KPX Amacron Ydieresis -100 -KPX Amacron u -30 -KPX Amacron uacute -30 -KPX Amacron ucircumflex -30 -KPX Amacron udieresis -30 -KPX Amacron ugrave -30 -KPX Amacron uhungarumlaut -30 -KPX Amacron umacron -30 -KPX Amacron uogonek -30 -KPX Amacron uring -30 -KPX Amacron v -40 -KPX Amacron w -40 -KPX Amacron y -40 -KPX Amacron yacute -40 -KPX Amacron ydieresis -40 -KPX Aogonek C -30 -KPX Aogonek Cacute -30 -KPX Aogonek Ccaron -30 -KPX Aogonek Ccedilla -30 -KPX Aogonek G -30 -KPX Aogonek Gbreve -30 -KPX Aogonek Gcommaaccent -30 -KPX Aogonek O -30 -KPX Aogonek Oacute -30 -KPX Aogonek Ocircumflex -30 -KPX Aogonek Odieresis -30 -KPX Aogonek Ograve -30 -KPX Aogonek Ohungarumlaut -30 -KPX Aogonek Omacron -30 -KPX Aogonek Oslash -30 -KPX Aogonek Otilde -30 -KPX Aogonek Q -30 -KPX Aogonek T -120 -KPX Aogonek Tcaron -120 -KPX Aogonek Tcommaaccent -120 -KPX Aogonek U -50 -KPX Aogonek Uacute -50 -KPX Aogonek Ucircumflex -50 -KPX Aogonek Udieresis -50 -KPX Aogonek Ugrave -50 -KPX Aogonek Uhungarumlaut -50 -KPX Aogonek Umacron -50 -KPX Aogonek Uogonek -50 -KPX Aogonek Uring -50 -KPX Aogonek V -70 -KPX Aogonek W -50 -KPX Aogonek Y -100 -KPX Aogonek Yacute -100 -KPX Aogonek Ydieresis -100 -KPX Aogonek u -30 -KPX Aogonek uacute -30 -KPX Aogonek ucircumflex -30 -KPX Aogonek udieresis -30 -KPX Aogonek ugrave -30 -KPX Aogonek uhungarumlaut -30 -KPX Aogonek umacron -30 -KPX Aogonek uogonek -30 -KPX Aogonek uring -30 -KPX Aogonek v -40 -KPX Aogonek w -40 -KPX Aogonek y -40 -KPX Aogonek yacute -40 -KPX Aogonek ydieresis -40 -KPX Aring C -30 -KPX Aring Cacute -30 -KPX Aring Ccaron -30 -KPX Aring Ccedilla -30 -KPX Aring G -30 -KPX Aring Gbreve -30 -KPX Aring Gcommaaccent -30 -KPX Aring O -30 -KPX Aring Oacute -30 -KPX Aring Ocircumflex -30 -KPX Aring Odieresis -30 -KPX Aring Ograve -30 -KPX Aring Ohungarumlaut -30 -KPX Aring Omacron -30 -KPX Aring Oslash -30 -KPX Aring Otilde -30 -KPX Aring Q -30 -KPX Aring T -120 -KPX Aring Tcaron -120 -KPX Aring Tcommaaccent -120 -KPX Aring U -50 -KPX Aring Uacute -50 -KPX Aring Ucircumflex -50 -KPX Aring Udieresis -50 -KPX Aring Ugrave -50 -KPX Aring Uhungarumlaut -50 -KPX Aring Umacron -50 -KPX Aring Uogonek -50 -KPX Aring Uring -50 -KPX Aring V -70 -KPX Aring W -50 -KPX Aring Y -100 -KPX Aring Yacute -100 -KPX Aring Ydieresis -100 -KPX Aring u -30 -KPX Aring uacute -30 -KPX Aring ucircumflex -30 -KPX Aring udieresis -30 -KPX Aring ugrave -30 -KPX Aring uhungarumlaut -30 -KPX Aring umacron -30 -KPX Aring uogonek -30 -KPX Aring uring -30 -KPX Aring v -40 -KPX Aring w -40 -KPX Aring y -40 -KPX Aring yacute -40 -KPX Aring ydieresis -40 -KPX Atilde C -30 -KPX Atilde Cacute -30 -KPX Atilde Ccaron -30 -KPX Atilde Ccedilla -30 -KPX Atilde G -30 -KPX Atilde Gbreve -30 -KPX Atilde Gcommaaccent -30 -KPX Atilde O -30 -KPX Atilde Oacute -30 -KPX Atilde Ocircumflex -30 -KPX Atilde Odieresis -30 -KPX Atilde Ograve -30 -KPX Atilde Ohungarumlaut -30 -KPX Atilde Omacron -30 -KPX Atilde Oslash -30 -KPX Atilde Otilde -30 -KPX Atilde Q -30 -KPX Atilde T -120 -KPX Atilde Tcaron -120 -KPX Atilde Tcommaaccent -120 -KPX Atilde U -50 -KPX Atilde Uacute -50 -KPX Atilde Ucircumflex -50 -KPX Atilde Udieresis -50 -KPX Atilde Ugrave -50 -KPX Atilde Uhungarumlaut -50 -KPX Atilde Umacron -50 -KPX Atilde Uogonek -50 -KPX Atilde Uring -50 -KPX Atilde V -70 -KPX Atilde W -50 -KPX Atilde Y -100 -KPX Atilde Yacute -100 -KPX Atilde Ydieresis -100 -KPX Atilde u -30 -KPX Atilde uacute -30 -KPX Atilde ucircumflex -30 -KPX Atilde udieresis -30 -KPX Atilde ugrave -30 -KPX Atilde uhungarumlaut -30 -KPX Atilde umacron -30 -KPX Atilde uogonek -30 -KPX Atilde uring -30 -KPX Atilde v -40 -KPX Atilde w -40 -KPX Atilde y -40 -KPX Atilde yacute -40 -KPX Atilde ydieresis -40 -KPX B U -10 -KPX B Uacute -10 -KPX B Ucircumflex -10 -KPX B Udieresis -10 -KPX B Ugrave -10 -KPX B Uhungarumlaut -10 -KPX B Umacron -10 -KPX B Uogonek -10 -KPX B Uring -10 -KPX B comma -20 -KPX B period -20 -KPX C comma -30 -KPX C period -30 -KPX Cacute comma -30 -KPX Cacute period -30 -KPX Ccaron comma -30 -KPX Ccaron period -30 -KPX Ccedilla comma -30 -KPX Ccedilla period -30 -KPX D A -40 -KPX D Aacute -40 -KPX D Abreve -40 -KPX D Acircumflex -40 -KPX D Adieresis -40 -KPX D Agrave -40 -KPX D Amacron -40 -KPX D Aogonek -40 -KPX D Aring -40 -KPX D Atilde -40 -KPX D V -70 -KPX D W -40 -KPX D Y -90 -KPX D Yacute -90 -KPX D Ydieresis -90 -KPX D comma -70 -KPX D period -70 -KPX Dcaron A -40 -KPX Dcaron Aacute -40 -KPX Dcaron Abreve -40 -KPX Dcaron Acircumflex -40 -KPX Dcaron Adieresis -40 -KPX Dcaron Agrave -40 -KPX Dcaron Amacron -40 -KPX Dcaron Aogonek -40 -KPX Dcaron Aring -40 -KPX Dcaron Atilde -40 -KPX Dcaron V -70 -KPX Dcaron W -40 -KPX Dcaron Y -90 -KPX Dcaron Yacute -90 -KPX Dcaron Ydieresis -90 -KPX Dcaron comma -70 -KPX Dcaron period -70 -KPX Dcroat A -40 -KPX Dcroat Aacute -40 -KPX Dcroat Abreve -40 -KPX Dcroat Acircumflex -40 -KPX Dcroat Adieresis -40 -KPX Dcroat Agrave -40 -KPX Dcroat Amacron -40 -KPX Dcroat Aogonek -40 -KPX Dcroat Aring -40 -KPX Dcroat Atilde -40 -KPX Dcroat V -70 -KPX Dcroat W -40 -KPX Dcroat Y -90 -KPX Dcroat Yacute -90 -KPX Dcroat Ydieresis -90 -KPX Dcroat comma -70 -KPX Dcroat period -70 -KPX F A -80 -KPX F Aacute -80 -KPX F Abreve -80 -KPX F Acircumflex -80 -KPX F Adieresis -80 -KPX F Agrave -80 -KPX F Amacron -80 -KPX F Aogonek -80 -KPX F Aring -80 -KPX F Atilde -80 -KPX F a -50 -KPX F aacute -50 -KPX F abreve -50 -KPX F acircumflex -50 -KPX F adieresis -50 -KPX F agrave -50 -KPX F amacron -50 -KPX F aogonek -50 -KPX F aring -50 -KPX F atilde -50 -KPX F comma -150 -KPX F e -30 -KPX F eacute -30 -KPX F ecaron -30 -KPX F ecircumflex -30 -KPX F edieresis -30 -KPX F edotaccent -30 -KPX F egrave -30 -KPX F emacron -30 -KPX F eogonek -30 -KPX F o -30 -KPX F oacute -30 -KPX F ocircumflex -30 -KPX F odieresis -30 -KPX F ograve -30 -KPX F ohungarumlaut -30 -KPX F omacron -30 -KPX F oslash -30 -KPX F otilde -30 -KPX F period -150 -KPX F r -45 -KPX F racute -45 -KPX F rcaron -45 -KPX F rcommaaccent -45 -KPX J A -20 -KPX J Aacute -20 -KPX J Abreve -20 -KPX J Acircumflex -20 -KPX J Adieresis -20 -KPX J Agrave -20 -KPX J Amacron -20 -KPX J Aogonek -20 -KPX J Aring -20 -KPX J Atilde -20 -KPX J a -20 -KPX J aacute -20 -KPX J abreve -20 -KPX J acircumflex -20 -KPX J adieresis -20 -KPX J agrave -20 -KPX J amacron -20 -KPX J aogonek -20 -KPX J aring -20 -KPX J atilde -20 -KPX J comma -30 -KPX J period -30 -KPX J u -20 -KPX J uacute -20 -KPX J ucircumflex -20 -KPX J udieresis -20 -KPX J ugrave -20 -KPX J uhungarumlaut -20 -KPX J umacron -20 -KPX J uogonek -20 -KPX J uring -20 -KPX K O -50 -KPX K Oacute -50 -KPX K Ocircumflex -50 -KPX K Odieresis -50 -KPX K Ograve -50 -KPX K Ohungarumlaut -50 -KPX K Omacron -50 -KPX K Oslash -50 -KPX K Otilde -50 -KPX K e -40 -KPX K eacute -40 -KPX K ecaron -40 -KPX K ecircumflex -40 -KPX K edieresis -40 -KPX K edotaccent -40 -KPX K egrave -40 -KPX K emacron -40 -KPX K eogonek -40 -KPX K o -40 -KPX K oacute -40 -KPX K ocircumflex -40 -KPX K odieresis -40 -KPX K ograve -40 -KPX K ohungarumlaut -40 -KPX K omacron -40 -KPX K oslash -40 -KPX K otilde -40 -KPX K u -30 -KPX K uacute -30 -KPX K ucircumflex -30 -KPX K udieresis -30 -KPX K ugrave -30 -KPX K uhungarumlaut -30 -KPX K umacron -30 -KPX K uogonek -30 -KPX K uring -30 -KPX K y -50 -KPX K yacute -50 -KPX K ydieresis -50 -KPX Kcommaaccent O -50 -KPX Kcommaaccent Oacute -50 -KPX Kcommaaccent Ocircumflex -50 -KPX Kcommaaccent Odieresis -50 -KPX Kcommaaccent Ograve -50 -KPX Kcommaaccent Ohungarumlaut -50 -KPX Kcommaaccent Omacron -50 -KPX Kcommaaccent Oslash -50 -KPX Kcommaaccent Otilde -50 -KPX Kcommaaccent e -40 -KPX Kcommaaccent eacute -40 -KPX Kcommaaccent ecaron -40 -KPX Kcommaaccent ecircumflex -40 -KPX Kcommaaccent edieresis -40 -KPX Kcommaaccent edotaccent -40 -KPX Kcommaaccent egrave -40 -KPX Kcommaaccent emacron -40 -KPX Kcommaaccent eogonek -40 -KPX Kcommaaccent o -40 -KPX Kcommaaccent oacute -40 -KPX Kcommaaccent ocircumflex -40 -KPX Kcommaaccent odieresis -40 -KPX Kcommaaccent ograve -40 -KPX Kcommaaccent ohungarumlaut -40 -KPX Kcommaaccent omacron -40 -KPX Kcommaaccent oslash -40 -KPX Kcommaaccent otilde -40 -KPX Kcommaaccent u -30 -KPX Kcommaaccent uacute -30 -KPX Kcommaaccent ucircumflex -30 -KPX Kcommaaccent udieresis -30 -KPX Kcommaaccent ugrave -30 -KPX Kcommaaccent uhungarumlaut -30 -KPX Kcommaaccent umacron -30 -KPX Kcommaaccent uogonek -30 -KPX Kcommaaccent uring -30 -KPX Kcommaaccent y -50 -KPX Kcommaaccent yacute -50 -KPX Kcommaaccent ydieresis -50 -KPX L T -110 -KPX L Tcaron -110 -KPX L Tcommaaccent -110 -KPX L V -110 -KPX L W -70 -KPX L Y -140 -KPX L Yacute -140 -KPX L Ydieresis -140 -KPX L quotedblright -140 -KPX L quoteright -160 -KPX L y -30 -KPX L yacute -30 -KPX L ydieresis -30 -KPX Lacute T -110 -KPX Lacute Tcaron -110 -KPX Lacute Tcommaaccent -110 -KPX Lacute V -110 -KPX Lacute W -70 -KPX Lacute Y -140 -KPX Lacute Yacute -140 -KPX Lacute Ydieresis -140 -KPX Lacute quotedblright -140 -KPX Lacute quoteright -160 -KPX Lacute y -30 -KPX Lacute yacute -30 -KPX Lacute ydieresis -30 -KPX Lcaron T -110 -KPX Lcaron Tcaron -110 -KPX Lcaron Tcommaaccent -110 -KPX Lcaron V -110 -KPX Lcaron W -70 -KPX Lcaron Y -140 -KPX Lcaron Yacute -140 -KPX Lcaron Ydieresis -140 -KPX Lcaron quotedblright -140 -KPX Lcaron quoteright -160 -KPX Lcaron y -30 -KPX Lcaron yacute -30 -KPX Lcaron ydieresis -30 -KPX Lcommaaccent T -110 -KPX Lcommaaccent Tcaron -110 -KPX Lcommaaccent Tcommaaccent -110 -KPX Lcommaaccent V -110 -KPX Lcommaaccent W -70 -KPX Lcommaaccent Y -140 -KPX Lcommaaccent Yacute -140 -KPX Lcommaaccent Ydieresis -140 -KPX Lcommaaccent quotedblright -140 -KPX Lcommaaccent quoteright -160 -KPX Lcommaaccent y -30 -KPX Lcommaaccent yacute -30 -KPX Lcommaaccent ydieresis -30 -KPX Lslash T -110 -KPX Lslash Tcaron -110 -KPX Lslash Tcommaaccent -110 -KPX Lslash V -110 -KPX Lslash W -70 -KPX Lslash Y -140 -KPX Lslash Yacute -140 -KPX Lslash Ydieresis -140 -KPX Lslash quotedblright -140 -KPX Lslash quoteright -160 -KPX Lslash y -30 -KPX Lslash yacute -30 -KPX Lslash ydieresis -30 -KPX O A -20 -KPX O Aacute -20 -KPX O Abreve -20 -KPX O Acircumflex -20 -KPX O Adieresis -20 -KPX O Agrave -20 -KPX O Amacron -20 -KPX O Aogonek -20 -KPX O Aring -20 -KPX O Atilde -20 -KPX O T -40 -KPX O Tcaron -40 -KPX O Tcommaaccent -40 -KPX O V -50 -KPX O W -30 -KPX O X -60 -KPX O Y -70 -KPX O Yacute -70 -KPX O Ydieresis -70 -KPX O comma -40 -KPX O period -40 -KPX Oacute A -20 -KPX Oacute Aacute -20 -KPX Oacute Abreve -20 -KPX Oacute Acircumflex -20 -KPX Oacute Adieresis -20 -KPX Oacute Agrave -20 -KPX Oacute Amacron -20 -KPX Oacute Aogonek -20 -KPX Oacute Aring -20 -KPX Oacute Atilde -20 -KPX Oacute T -40 -KPX Oacute Tcaron -40 -KPX Oacute Tcommaaccent -40 -KPX Oacute V -50 -KPX Oacute W -30 -KPX Oacute X -60 -KPX Oacute Y -70 -KPX Oacute Yacute -70 -KPX Oacute Ydieresis -70 -KPX Oacute comma -40 -KPX Oacute period -40 -KPX Ocircumflex A -20 -KPX Ocircumflex Aacute -20 -KPX Ocircumflex Abreve -20 -KPX Ocircumflex Acircumflex -20 -KPX Ocircumflex Adieresis -20 -KPX Ocircumflex Agrave -20 -KPX Ocircumflex Amacron -20 -KPX Ocircumflex Aogonek -20 -KPX Ocircumflex Aring -20 -KPX Ocircumflex Atilde -20 -KPX Ocircumflex T -40 -KPX Ocircumflex Tcaron -40 -KPX Ocircumflex Tcommaaccent -40 -KPX Ocircumflex V -50 -KPX Ocircumflex W -30 -KPX Ocircumflex X -60 -KPX Ocircumflex Y -70 -KPX Ocircumflex Yacute -70 -KPX Ocircumflex Ydieresis -70 -KPX Ocircumflex comma -40 -KPX Ocircumflex period -40 -KPX Odieresis A -20 -KPX Odieresis Aacute -20 -KPX Odieresis Abreve -20 -KPX Odieresis Acircumflex -20 -KPX Odieresis Adieresis -20 -KPX Odieresis Agrave -20 -KPX Odieresis Amacron -20 -KPX Odieresis Aogonek -20 -KPX Odieresis Aring -20 -KPX Odieresis Atilde -20 -KPX Odieresis T -40 -KPX Odieresis Tcaron -40 -KPX Odieresis Tcommaaccent -40 -KPX Odieresis V -50 -KPX Odieresis W -30 -KPX Odieresis X -60 -KPX Odieresis Y -70 -KPX Odieresis Yacute -70 -KPX Odieresis Ydieresis -70 -KPX Odieresis comma -40 -KPX Odieresis period -40 -KPX Ograve A -20 -KPX Ograve Aacute -20 -KPX Ograve Abreve -20 -KPX Ograve Acircumflex -20 -KPX Ograve Adieresis -20 -KPX Ograve Agrave -20 -KPX Ograve Amacron -20 -KPX Ograve Aogonek -20 -KPX Ograve Aring -20 -KPX Ograve Atilde -20 -KPX Ograve T -40 -KPX Ograve Tcaron -40 -KPX Ograve Tcommaaccent -40 -KPX Ograve V -50 -KPX Ograve W -30 -KPX Ograve X -60 -KPX Ograve Y -70 -KPX Ograve Yacute -70 -KPX Ograve Ydieresis -70 -KPX Ograve comma -40 -KPX Ograve period -40 -KPX Ohungarumlaut A -20 -KPX Ohungarumlaut Aacute -20 -KPX Ohungarumlaut Abreve -20 -KPX Ohungarumlaut Acircumflex -20 -KPX Ohungarumlaut Adieresis -20 -KPX Ohungarumlaut Agrave -20 -KPX Ohungarumlaut Amacron -20 -KPX Ohungarumlaut Aogonek -20 -KPX Ohungarumlaut Aring -20 -KPX Ohungarumlaut Atilde -20 -KPX Ohungarumlaut T -40 -KPX Ohungarumlaut Tcaron -40 -KPX Ohungarumlaut Tcommaaccent -40 -KPX Ohungarumlaut V -50 -KPX Ohungarumlaut W -30 -KPX Ohungarumlaut X -60 -KPX Ohungarumlaut Y -70 -KPX Ohungarumlaut Yacute -70 -KPX Ohungarumlaut Ydieresis -70 -KPX Ohungarumlaut comma -40 -KPX Ohungarumlaut period -40 -KPX Omacron A -20 -KPX Omacron Aacute -20 -KPX Omacron Abreve -20 -KPX Omacron Acircumflex -20 -KPX Omacron Adieresis -20 -KPX Omacron Agrave -20 -KPX Omacron Amacron -20 -KPX Omacron Aogonek -20 -KPX Omacron Aring -20 -KPX Omacron Atilde -20 -KPX Omacron T -40 -KPX Omacron Tcaron -40 -KPX Omacron Tcommaaccent -40 -KPX Omacron V -50 -KPX Omacron W -30 -KPX Omacron X -60 -KPX Omacron Y -70 -KPX Omacron Yacute -70 -KPX Omacron Ydieresis -70 -KPX Omacron comma -40 -KPX Omacron period -40 -KPX Oslash A -20 -KPX Oslash Aacute -20 -KPX Oslash Abreve -20 -KPX Oslash Acircumflex -20 -KPX Oslash Adieresis -20 -KPX Oslash Agrave -20 -KPX Oslash Amacron -20 -KPX Oslash Aogonek -20 -KPX Oslash Aring -20 -KPX Oslash Atilde -20 -KPX Oslash T -40 -KPX Oslash Tcaron -40 -KPX Oslash Tcommaaccent -40 -KPX Oslash V -50 -KPX Oslash W -30 -KPX Oslash X -60 -KPX Oslash Y -70 -KPX Oslash Yacute -70 -KPX Oslash Ydieresis -70 -KPX Oslash comma -40 -KPX Oslash period -40 -KPX Otilde A -20 -KPX Otilde Aacute -20 -KPX Otilde Abreve -20 -KPX Otilde Acircumflex -20 -KPX Otilde Adieresis -20 -KPX Otilde Agrave -20 -KPX Otilde Amacron -20 -KPX Otilde Aogonek -20 -KPX Otilde Aring -20 -KPX Otilde Atilde -20 -KPX Otilde T -40 -KPX Otilde Tcaron -40 -KPX Otilde Tcommaaccent -40 -KPX Otilde V -50 -KPX Otilde W -30 -KPX Otilde X -60 -KPX Otilde Y -70 -KPX Otilde Yacute -70 -KPX Otilde Ydieresis -70 -KPX Otilde comma -40 -KPX Otilde period -40 -KPX P A -120 -KPX P Aacute -120 -KPX P Abreve -120 -KPX P Acircumflex -120 -KPX P Adieresis -120 -KPX P Agrave -120 -KPX P Amacron -120 -KPX P Aogonek -120 -KPX P Aring -120 -KPX P Atilde -120 -KPX P a -40 -KPX P aacute -40 -KPX P abreve -40 -KPX P acircumflex -40 -KPX P adieresis -40 -KPX P agrave -40 -KPX P amacron -40 -KPX P aogonek -40 -KPX P aring -40 -KPX P atilde -40 -KPX P comma -180 -KPX P e -50 -KPX P eacute -50 -KPX P ecaron -50 -KPX P ecircumflex -50 -KPX P edieresis -50 -KPX P edotaccent -50 -KPX P egrave -50 -KPX P emacron -50 -KPX P eogonek -50 -KPX P o -50 -KPX P oacute -50 -KPX P ocircumflex -50 -KPX P odieresis -50 -KPX P ograve -50 -KPX P ohungarumlaut -50 -KPX P omacron -50 -KPX P oslash -50 -KPX P otilde -50 -KPX P period -180 -KPX Q U -10 -KPX Q Uacute -10 -KPX Q Ucircumflex -10 -KPX Q Udieresis -10 -KPX Q Ugrave -10 -KPX Q Uhungarumlaut -10 -KPX Q Umacron -10 -KPX Q Uogonek -10 -KPX Q Uring -10 -KPX R O -20 -KPX R Oacute -20 -KPX R Ocircumflex -20 -KPX R Odieresis -20 -KPX R Ograve -20 -KPX R Ohungarumlaut -20 -KPX R Omacron -20 -KPX R Oslash -20 -KPX R Otilde -20 -KPX R T -30 -KPX R Tcaron -30 -KPX R Tcommaaccent -30 -KPX R U -40 -KPX R Uacute -40 -KPX R Ucircumflex -40 -KPX R Udieresis -40 -KPX R Ugrave -40 -KPX R Uhungarumlaut -40 -KPX R Umacron -40 -KPX R Uogonek -40 -KPX R Uring -40 -KPX R V -50 -KPX R W -30 -KPX R Y -50 -KPX R Yacute -50 -KPX R Ydieresis -50 -KPX Racute O -20 -KPX Racute Oacute -20 -KPX Racute Ocircumflex -20 -KPX Racute Odieresis -20 -KPX Racute Ograve -20 -KPX Racute Ohungarumlaut -20 -KPX Racute Omacron -20 -KPX Racute Oslash -20 -KPX Racute Otilde -20 -KPX Racute T -30 -KPX Racute Tcaron -30 -KPX Racute Tcommaaccent -30 -KPX Racute U -40 -KPX Racute Uacute -40 -KPX Racute Ucircumflex -40 -KPX Racute Udieresis -40 -KPX Racute Ugrave -40 -KPX Racute Uhungarumlaut -40 -KPX Racute Umacron -40 -KPX Racute Uogonek -40 -KPX Racute Uring -40 -KPX Racute V -50 -KPX Racute W -30 -KPX Racute Y -50 -KPX Racute Yacute -50 -KPX Racute Ydieresis -50 -KPX Rcaron O -20 -KPX Rcaron Oacute -20 -KPX Rcaron Ocircumflex -20 -KPX Rcaron Odieresis -20 -KPX Rcaron Ograve -20 -KPX Rcaron Ohungarumlaut -20 -KPX Rcaron Omacron -20 -KPX Rcaron Oslash -20 -KPX Rcaron Otilde -20 -KPX Rcaron T -30 -KPX Rcaron Tcaron -30 -KPX Rcaron Tcommaaccent -30 -KPX Rcaron U -40 -KPX Rcaron Uacute -40 -KPX Rcaron Ucircumflex -40 -KPX Rcaron Udieresis -40 -KPX Rcaron Ugrave -40 -KPX Rcaron Uhungarumlaut -40 -KPX Rcaron Umacron -40 -KPX Rcaron Uogonek -40 -KPX Rcaron Uring -40 -KPX Rcaron V -50 -KPX Rcaron W -30 -KPX Rcaron Y -50 -KPX Rcaron Yacute -50 -KPX Rcaron Ydieresis -50 -KPX Rcommaaccent O -20 -KPX Rcommaaccent Oacute -20 -KPX Rcommaaccent Ocircumflex -20 -KPX Rcommaaccent Odieresis -20 -KPX Rcommaaccent Ograve -20 -KPX Rcommaaccent Ohungarumlaut -20 -KPX Rcommaaccent Omacron -20 -KPX Rcommaaccent Oslash -20 -KPX Rcommaaccent Otilde -20 -KPX Rcommaaccent T -30 -KPX Rcommaaccent Tcaron -30 -KPX Rcommaaccent Tcommaaccent -30 -KPX Rcommaaccent U -40 -KPX Rcommaaccent Uacute -40 -KPX Rcommaaccent Ucircumflex -40 -KPX Rcommaaccent Udieresis -40 -KPX Rcommaaccent Ugrave -40 -KPX Rcommaaccent Uhungarumlaut -40 -KPX Rcommaaccent Umacron -40 -KPX Rcommaaccent Uogonek -40 -KPX Rcommaaccent Uring -40 -KPX Rcommaaccent V -50 -KPX Rcommaaccent W -30 -KPX Rcommaaccent Y -50 -KPX Rcommaaccent Yacute -50 -KPX Rcommaaccent Ydieresis -50 -KPX S comma -20 -KPX S period -20 -KPX Sacute comma -20 -KPX Sacute period -20 -KPX Scaron comma -20 -KPX Scaron period -20 -KPX Scedilla comma -20 -KPX Scedilla period -20 -KPX Scommaaccent comma -20 -KPX Scommaaccent period -20 -KPX T A -120 -KPX T Aacute -120 -KPX T Abreve -120 -KPX T Acircumflex -120 -KPX T Adieresis -120 -KPX T Agrave -120 -KPX T Amacron -120 -KPX T Aogonek -120 -KPX T Aring -120 -KPX T Atilde -120 -KPX T O -40 -KPX T Oacute -40 -KPX T Ocircumflex -40 -KPX T Odieresis -40 -KPX T Ograve -40 -KPX T Ohungarumlaut -40 -KPX T Omacron -40 -KPX T Oslash -40 -KPX T Otilde -40 -KPX T a -120 -KPX T aacute -120 -KPX T abreve -60 -KPX T acircumflex -120 -KPX T adieresis -120 -KPX T agrave -120 -KPX T amacron -60 -KPX T aogonek -120 -KPX T aring -120 -KPX T atilde -60 -KPX T colon -20 -KPX T comma -120 -KPX T e -120 -KPX T eacute -120 -KPX T ecaron -120 -KPX T ecircumflex -120 -KPX T edieresis -120 -KPX T edotaccent -120 -KPX T egrave -60 -KPX T emacron -60 -KPX T eogonek -120 -KPX T hyphen -140 -KPX T o -120 -KPX T oacute -120 -KPX T ocircumflex -120 -KPX T odieresis -120 -KPX T ograve -120 -KPX T ohungarumlaut -120 -KPX T omacron -60 -KPX T oslash -120 -KPX T otilde -60 -KPX T period -120 -KPX T r -120 -KPX T racute -120 -KPX T rcaron -120 -KPX T rcommaaccent -120 -KPX T semicolon -20 -KPX T u -120 -KPX T uacute -120 -KPX T ucircumflex -120 -KPX T udieresis -120 -KPX T ugrave -120 -KPX T uhungarumlaut -120 -KPX T umacron -60 -KPX T uogonek -120 -KPX T uring -120 -KPX T w -120 -KPX T y -120 -KPX T yacute -120 -KPX T ydieresis -60 -KPX Tcaron A -120 -KPX Tcaron Aacute -120 -KPX Tcaron Abreve -120 -KPX Tcaron Acircumflex -120 -KPX Tcaron Adieresis -120 -KPX Tcaron Agrave -120 -KPX Tcaron Amacron -120 -KPX Tcaron Aogonek -120 -KPX Tcaron Aring -120 -KPX Tcaron Atilde -120 -KPX Tcaron O -40 -KPX Tcaron Oacute -40 -KPX Tcaron Ocircumflex -40 -KPX Tcaron Odieresis -40 -KPX Tcaron Ograve -40 -KPX Tcaron Ohungarumlaut -40 -KPX Tcaron Omacron -40 -KPX Tcaron Oslash -40 -KPX Tcaron Otilde -40 -KPX Tcaron a -120 -KPX Tcaron aacute -120 -KPX Tcaron abreve -60 -KPX Tcaron acircumflex -120 -KPX Tcaron adieresis -120 -KPX Tcaron agrave -120 -KPX Tcaron amacron -60 -KPX Tcaron aogonek -120 -KPX Tcaron aring -120 -KPX Tcaron atilde -60 -KPX Tcaron colon -20 -KPX Tcaron comma -120 -KPX Tcaron e -120 -KPX Tcaron eacute -120 -KPX Tcaron ecaron -120 -KPX Tcaron ecircumflex -120 -KPX Tcaron edieresis -120 -KPX Tcaron edotaccent -120 -KPX Tcaron egrave -60 -KPX Tcaron emacron -60 -KPX Tcaron eogonek -120 -KPX Tcaron hyphen -140 -KPX Tcaron o -120 -KPX Tcaron oacute -120 -KPX Tcaron ocircumflex -120 -KPX Tcaron odieresis -120 -KPX Tcaron ograve -120 -KPX Tcaron ohungarumlaut -120 -KPX Tcaron omacron -60 -KPX Tcaron oslash -120 -KPX Tcaron otilde -60 -KPX Tcaron period -120 -KPX Tcaron r -120 -KPX Tcaron racute -120 -KPX Tcaron rcaron -120 -KPX Tcaron rcommaaccent -120 -KPX Tcaron semicolon -20 -KPX Tcaron u -120 -KPX Tcaron uacute -120 -KPX Tcaron ucircumflex -120 -KPX Tcaron udieresis -120 -KPX Tcaron ugrave -120 -KPX Tcaron uhungarumlaut -120 -KPX Tcaron umacron -60 -KPX Tcaron uogonek -120 -KPX Tcaron uring -120 -KPX Tcaron w -120 -KPX Tcaron y -120 -KPX Tcaron yacute -120 -KPX Tcaron ydieresis -60 -KPX Tcommaaccent A -120 -KPX Tcommaaccent Aacute -120 -KPX Tcommaaccent Abreve -120 -KPX Tcommaaccent Acircumflex -120 -KPX Tcommaaccent Adieresis -120 -KPX Tcommaaccent Agrave -120 -KPX Tcommaaccent Amacron -120 -KPX Tcommaaccent Aogonek -120 -KPX Tcommaaccent Aring -120 -KPX Tcommaaccent Atilde -120 -KPX Tcommaaccent O -40 -KPX Tcommaaccent Oacute -40 -KPX Tcommaaccent Ocircumflex -40 -KPX Tcommaaccent Odieresis -40 -KPX Tcommaaccent Ograve -40 -KPX Tcommaaccent Ohungarumlaut -40 -KPX Tcommaaccent Omacron -40 -KPX Tcommaaccent Oslash -40 -KPX Tcommaaccent Otilde -40 -KPX Tcommaaccent a -120 -KPX Tcommaaccent aacute -120 -KPX Tcommaaccent abreve -60 -KPX Tcommaaccent acircumflex -120 -KPX Tcommaaccent adieresis -120 -KPX Tcommaaccent agrave -120 -KPX Tcommaaccent amacron -60 -KPX Tcommaaccent aogonek -120 -KPX Tcommaaccent aring -120 -KPX Tcommaaccent atilde -60 -KPX Tcommaaccent colon -20 -KPX Tcommaaccent comma -120 -KPX Tcommaaccent e -120 -KPX Tcommaaccent eacute -120 -KPX Tcommaaccent ecaron -120 -KPX Tcommaaccent ecircumflex -120 -KPX Tcommaaccent edieresis -120 -KPX Tcommaaccent edotaccent -120 -KPX Tcommaaccent egrave -60 -KPX Tcommaaccent emacron -60 -KPX Tcommaaccent eogonek -120 -KPX Tcommaaccent hyphen -140 -KPX Tcommaaccent o -120 -KPX Tcommaaccent oacute -120 -KPX Tcommaaccent ocircumflex -120 -KPX Tcommaaccent odieresis -120 -KPX Tcommaaccent ograve -120 -KPX Tcommaaccent ohungarumlaut -120 -KPX Tcommaaccent omacron -60 -KPX Tcommaaccent oslash -120 -KPX Tcommaaccent otilde -60 -KPX Tcommaaccent period -120 -KPX Tcommaaccent r -120 -KPX Tcommaaccent racute -120 -KPX Tcommaaccent rcaron -120 -KPX Tcommaaccent rcommaaccent -120 -KPX Tcommaaccent semicolon -20 -KPX Tcommaaccent u -120 -KPX Tcommaaccent uacute -120 -KPX Tcommaaccent ucircumflex -120 -KPX Tcommaaccent udieresis -120 -KPX Tcommaaccent ugrave -120 -KPX Tcommaaccent uhungarumlaut -120 -KPX Tcommaaccent umacron -60 -KPX Tcommaaccent uogonek -120 -KPX Tcommaaccent uring -120 -KPX Tcommaaccent w -120 -KPX Tcommaaccent y -120 -KPX Tcommaaccent yacute -120 -KPX Tcommaaccent ydieresis -60 -KPX U A -40 -KPX U Aacute -40 -KPX U Abreve -40 -KPX U Acircumflex -40 -KPX U Adieresis -40 -KPX U Agrave -40 -KPX U Amacron -40 -KPX U Aogonek -40 -KPX U Aring -40 -KPX U Atilde -40 -KPX U comma -40 -KPX U period -40 -KPX Uacute A -40 -KPX Uacute Aacute -40 -KPX Uacute Abreve -40 -KPX Uacute Acircumflex -40 -KPX Uacute Adieresis -40 -KPX Uacute Agrave -40 -KPX Uacute Amacron -40 -KPX Uacute Aogonek -40 -KPX Uacute Aring -40 -KPX Uacute Atilde -40 -KPX Uacute comma -40 -KPX Uacute period -40 -KPX Ucircumflex A -40 -KPX Ucircumflex Aacute -40 -KPX Ucircumflex Abreve -40 -KPX Ucircumflex Acircumflex -40 -KPX Ucircumflex Adieresis -40 -KPX Ucircumflex Agrave -40 -KPX Ucircumflex Amacron -40 -KPX Ucircumflex Aogonek -40 -KPX Ucircumflex Aring -40 -KPX Ucircumflex Atilde -40 -KPX Ucircumflex comma -40 -KPX Ucircumflex period -40 -KPX Udieresis A -40 -KPX Udieresis Aacute -40 -KPX Udieresis Abreve -40 -KPX Udieresis Acircumflex -40 -KPX Udieresis Adieresis -40 -KPX Udieresis Agrave -40 -KPX Udieresis Amacron -40 -KPX Udieresis Aogonek -40 -KPX Udieresis Aring -40 -KPX Udieresis Atilde -40 -KPX Udieresis comma -40 -KPX Udieresis period -40 -KPX Ugrave A -40 -KPX Ugrave Aacute -40 -KPX Ugrave Abreve -40 -KPX Ugrave Acircumflex -40 -KPX Ugrave Adieresis -40 -KPX Ugrave Agrave -40 -KPX Ugrave Amacron -40 -KPX Ugrave Aogonek -40 -KPX Ugrave Aring -40 -KPX Ugrave Atilde -40 -KPX Ugrave comma -40 -KPX Ugrave period -40 -KPX Uhungarumlaut A -40 -KPX Uhungarumlaut Aacute -40 -KPX Uhungarumlaut Abreve -40 -KPX Uhungarumlaut Acircumflex -40 -KPX Uhungarumlaut Adieresis -40 -KPX Uhungarumlaut Agrave -40 -KPX Uhungarumlaut Amacron -40 -KPX Uhungarumlaut Aogonek -40 -KPX Uhungarumlaut Aring -40 -KPX Uhungarumlaut Atilde -40 -KPX Uhungarumlaut comma -40 -KPX Uhungarumlaut period -40 -KPX Umacron A -40 -KPX Umacron Aacute -40 -KPX Umacron Abreve -40 -KPX Umacron Acircumflex -40 -KPX Umacron Adieresis -40 -KPX Umacron Agrave -40 -KPX Umacron Amacron -40 -KPX Umacron Aogonek -40 -KPX Umacron Aring -40 -KPX Umacron Atilde -40 -KPX Umacron comma -40 -KPX Umacron period -40 -KPX Uogonek A -40 -KPX Uogonek Aacute -40 -KPX Uogonek Abreve -40 -KPX Uogonek Acircumflex -40 -KPX Uogonek Adieresis -40 -KPX Uogonek Agrave -40 -KPX Uogonek Amacron -40 -KPX Uogonek Aogonek -40 -KPX Uogonek Aring -40 -KPX Uogonek Atilde -40 -KPX Uogonek comma -40 -KPX Uogonek period -40 -KPX Uring A -40 -KPX Uring Aacute -40 -KPX Uring Abreve -40 -KPX Uring Acircumflex -40 -KPX Uring Adieresis -40 -KPX Uring Agrave -40 -KPX Uring Amacron -40 -KPX Uring Aogonek -40 -KPX Uring Aring -40 -KPX Uring Atilde -40 -KPX Uring comma -40 -KPX Uring period -40 -KPX V A -80 -KPX V Aacute -80 -KPX V Abreve -80 -KPX V Acircumflex -80 -KPX V Adieresis -80 -KPX V Agrave -80 -KPX V Amacron -80 -KPX V Aogonek -80 -KPX V Aring -80 -KPX V Atilde -80 -KPX V G -40 -KPX V Gbreve -40 -KPX V Gcommaaccent -40 -KPX V O -40 -KPX V Oacute -40 -KPX V Ocircumflex -40 -KPX V Odieresis -40 -KPX V Ograve -40 -KPX V Ohungarumlaut -40 -KPX V Omacron -40 -KPX V Oslash -40 -KPX V Otilde -40 -KPX V a -70 -KPX V aacute -70 -KPX V abreve -70 -KPX V acircumflex -70 -KPX V adieresis -70 -KPX V agrave -70 -KPX V amacron -70 -KPX V aogonek -70 -KPX V aring -70 -KPX V atilde -70 -KPX V colon -40 -KPX V comma -125 -KPX V e -80 -KPX V eacute -80 -KPX V ecaron -80 -KPX V ecircumflex -80 -KPX V edieresis -80 -KPX V edotaccent -80 -KPX V egrave -80 -KPX V emacron -80 -KPX V eogonek -80 -KPX V hyphen -80 -KPX V o -80 -KPX V oacute -80 -KPX V ocircumflex -80 -KPX V odieresis -80 -KPX V ograve -80 -KPX V ohungarumlaut -80 -KPX V omacron -80 -KPX V oslash -80 -KPX V otilde -80 -KPX V period -125 -KPX V semicolon -40 -KPX V u -70 -KPX V uacute -70 -KPX V ucircumflex -70 -KPX V udieresis -70 -KPX V ugrave -70 -KPX V uhungarumlaut -70 -KPX V umacron -70 -KPX V uogonek -70 -KPX V uring -70 -KPX W A -50 -KPX W Aacute -50 -KPX W Abreve -50 -KPX W Acircumflex -50 -KPX W Adieresis -50 -KPX W Agrave -50 -KPX W Amacron -50 -KPX W Aogonek -50 -KPX W Aring -50 -KPX W Atilde -50 -KPX W O -20 -KPX W Oacute -20 -KPX W Ocircumflex -20 -KPX W Odieresis -20 -KPX W Ograve -20 -KPX W Ohungarumlaut -20 -KPX W Omacron -20 -KPX W Oslash -20 -KPX W Otilde -20 -KPX W a -40 -KPX W aacute -40 -KPX W abreve -40 -KPX W acircumflex -40 -KPX W adieresis -40 -KPX W agrave -40 -KPX W amacron -40 -KPX W aogonek -40 -KPX W aring -40 -KPX W atilde -40 -KPX W comma -80 -KPX W e -30 -KPX W eacute -30 -KPX W ecaron -30 -KPX W ecircumflex -30 -KPX W edieresis -30 -KPX W edotaccent -30 -KPX W egrave -30 -KPX W emacron -30 -KPX W eogonek -30 -KPX W hyphen -40 -KPX W o -30 -KPX W oacute -30 -KPX W ocircumflex -30 -KPX W odieresis -30 -KPX W ograve -30 -KPX W ohungarumlaut -30 -KPX W omacron -30 -KPX W oslash -30 -KPX W otilde -30 -KPX W period -80 -KPX W u -30 -KPX W uacute -30 -KPX W ucircumflex -30 -KPX W udieresis -30 -KPX W ugrave -30 -KPX W uhungarumlaut -30 -KPX W umacron -30 -KPX W uogonek -30 -KPX W uring -30 -KPX W y -20 -KPX W yacute -20 -KPX W ydieresis -20 -KPX Y A -110 -KPX Y Aacute -110 -KPX Y Abreve -110 -KPX Y Acircumflex -110 -KPX Y Adieresis -110 -KPX Y Agrave -110 -KPX Y Amacron -110 -KPX Y Aogonek -110 -KPX Y Aring -110 -KPX Y Atilde -110 -KPX Y O -85 -KPX Y Oacute -85 -KPX Y Ocircumflex -85 -KPX Y Odieresis -85 -KPX Y Ograve -85 -KPX Y Ohungarumlaut -85 -KPX Y Omacron -85 -KPX Y Oslash -85 -KPX Y Otilde -85 -KPX Y a -140 -KPX Y aacute -140 -KPX Y abreve -70 -KPX Y acircumflex -140 -KPX Y adieresis -140 -KPX Y agrave -140 -KPX Y amacron -70 -KPX Y aogonek -140 -KPX Y aring -140 -KPX Y atilde -140 -KPX Y colon -60 -KPX Y comma -140 -KPX Y e -140 -KPX Y eacute -140 -KPX Y ecaron -140 -KPX Y ecircumflex -140 -KPX Y edieresis -140 -KPX Y edotaccent -140 -KPX Y egrave -140 -KPX Y emacron -70 -KPX Y eogonek -140 -KPX Y hyphen -140 -KPX Y i -20 -KPX Y iacute -20 -KPX Y iogonek -20 -KPX Y o -140 -KPX Y oacute -140 -KPX Y ocircumflex -140 -KPX Y odieresis -140 -KPX Y ograve -140 -KPX Y ohungarumlaut -140 -KPX Y omacron -140 -KPX Y oslash -140 -KPX Y otilde -140 -KPX Y period -140 -KPX Y semicolon -60 -KPX Y u -110 -KPX Y uacute -110 -KPX Y ucircumflex -110 -KPX Y udieresis -110 -KPX Y ugrave -110 -KPX Y uhungarumlaut -110 -KPX Y umacron -110 -KPX Y uogonek -110 -KPX Y uring -110 -KPX Yacute A -110 -KPX Yacute Aacute -110 -KPX Yacute Abreve -110 -KPX Yacute Acircumflex -110 -KPX Yacute Adieresis -110 -KPX Yacute Agrave -110 -KPX Yacute Amacron -110 -KPX Yacute Aogonek -110 -KPX Yacute Aring -110 -KPX Yacute Atilde -110 -KPX Yacute O -85 -KPX Yacute Oacute -85 -KPX Yacute Ocircumflex -85 -KPX Yacute Odieresis -85 -KPX Yacute Ograve -85 -KPX Yacute Ohungarumlaut -85 -KPX Yacute Omacron -85 -KPX Yacute Oslash -85 -KPX Yacute Otilde -85 -KPX Yacute a -140 -KPX Yacute aacute -140 -KPX Yacute abreve -70 -KPX Yacute acircumflex -140 -KPX Yacute adieresis -140 -KPX Yacute agrave -140 -KPX Yacute amacron -70 -KPX Yacute aogonek -140 -KPX Yacute aring -140 -KPX Yacute atilde -70 -KPX Yacute colon -60 -KPX Yacute comma -140 -KPX Yacute e -140 -KPX Yacute eacute -140 -KPX Yacute ecaron -140 -KPX Yacute ecircumflex -140 -KPX Yacute edieresis -140 -KPX Yacute edotaccent -140 -KPX Yacute egrave -140 -KPX Yacute emacron -70 -KPX Yacute eogonek -140 -KPX Yacute hyphen -140 -KPX Yacute i -20 -KPX Yacute iacute -20 -KPX Yacute iogonek -20 -KPX Yacute o -140 -KPX Yacute oacute -140 -KPX Yacute ocircumflex -140 -KPX Yacute odieresis -140 -KPX Yacute ograve -140 -KPX Yacute ohungarumlaut -140 -KPX Yacute omacron -70 -KPX Yacute oslash -140 -KPX Yacute otilde -140 -KPX Yacute period -140 -KPX Yacute semicolon -60 -KPX Yacute u -110 -KPX Yacute uacute -110 -KPX Yacute ucircumflex -110 -KPX Yacute udieresis -110 -KPX Yacute ugrave -110 -KPX Yacute uhungarumlaut -110 -KPX Yacute umacron -110 -KPX Yacute uogonek -110 -KPX Yacute uring -110 -KPX Ydieresis A -110 -KPX Ydieresis Aacute -110 -KPX Ydieresis Abreve -110 -KPX Ydieresis Acircumflex -110 -KPX Ydieresis Adieresis -110 -KPX Ydieresis Agrave -110 -KPX Ydieresis Amacron -110 -KPX Ydieresis Aogonek -110 -KPX Ydieresis Aring -110 -KPX Ydieresis Atilde -110 -KPX Ydieresis O -85 -KPX Ydieresis Oacute -85 -KPX Ydieresis Ocircumflex -85 -KPX Ydieresis Odieresis -85 -KPX Ydieresis Ograve -85 -KPX Ydieresis Ohungarumlaut -85 -KPX Ydieresis Omacron -85 -KPX Ydieresis Oslash -85 -KPX Ydieresis Otilde -85 -KPX Ydieresis a -140 -KPX Ydieresis aacute -140 -KPX Ydieresis abreve -70 -KPX Ydieresis acircumflex -140 -KPX Ydieresis adieresis -140 -KPX Ydieresis agrave -140 -KPX Ydieresis amacron -70 -KPX Ydieresis aogonek -140 -KPX Ydieresis aring -140 -KPX Ydieresis atilde -70 -KPX Ydieresis colon -60 -KPX Ydieresis comma -140 -KPX Ydieresis e -140 -KPX Ydieresis eacute -140 -KPX Ydieresis ecaron -140 -KPX Ydieresis ecircumflex -140 -KPX Ydieresis edieresis -140 -KPX Ydieresis edotaccent -140 -KPX Ydieresis egrave -140 -KPX Ydieresis emacron -70 -KPX Ydieresis eogonek -140 -KPX Ydieresis hyphen -140 -KPX Ydieresis i -20 -KPX Ydieresis iacute -20 -KPX Ydieresis iogonek -20 -KPX Ydieresis o -140 -KPX Ydieresis oacute -140 -KPX Ydieresis ocircumflex -140 -KPX Ydieresis odieresis -140 -KPX Ydieresis ograve -140 -KPX Ydieresis ohungarumlaut -140 -KPX Ydieresis omacron -140 -KPX Ydieresis oslash -140 -KPX Ydieresis otilde -140 -KPX Ydieresis period -140 -KPX Ydieresis semicolon -60 -KPX Ydieresis u -110 -KPX Ydieresis uacute -110 -KPX Ydieresis ucircumflex -110 -KPX Ydieresis udieresis -110 -KPX Ydieresis ugrave -110 -KPX Ydieresis uhungarumlaut -110 -KPX Ydieresis umacron -110 -KPX Ydieresis uogonek -110 -KPX Ydieresis uring -110 -KPX a v -20 -KPX a w -20 -KPX a y -30 -KPX a yacute -30 -KPX a ydieresis -30 -KPX aacute v -20 -KPX aacute w -20 -KPX aacute y -30 -KPX aacute yacute -30 -KPX aacute ydieresis -30 -KPX abreve v -20 -KPX abreve w -20 -KPX abreve y -30 -KPX abreve yacute -30 -KPX abreve ydieresis -30 -KPX acircumflex v -20 -KPX acircumflex w -20 -KPX acircumflex y -30 -KPX acircumflex yacute -30 -KPX acircumflex ydieresis -30 -KPX adieresis v -20 -KPX adieresis w -20 -KPX adieresis y -30 -KPX adieresis yacute -30 -KPX adieresis ydieresis -30 -KPX agrave v -20 -KPX agrave w -20 -KPX agrave y -30 -KPX agrave yacute -30 -KPX agrave ydieresis -30 -KPX amacron v -20 -KPX amacron w -20 -KPX amacron y -30 -KPX amacron yacute -30 -KPX amacron ydieresis -30 -KPX aogonek v -20 -KPX aogonek w -20 -KPX aogonek y -30 -KPX aogonek yacute -30 -KPX aogonek ydieresis -30 -KPX aring v -20 -KPX aring w -20 -KPX aring y -30 -KPX aring yacute -30 -KPX aring ydieresis -30 -KPX atilde v -20 -KPX atilde w -20 -KPX atilde y -30 -KPX atilde yacute -30 -KPX atilde ydieresis -30 -KPX b b -10 -KPX b comma -40 -KPX b l -20 -KPX b lacute -20 -KPX b lcommaaccent -20 -KPX b lslash -20 -KPX b period -40 -KPX b u -20 -KPX b uacute -20 -KPX b ucircumflex -20 -KPX b udieresis -20 -KPX b ugrave -20 -KPX b uhungarumlaut -20 -KPX b umacron -20 -KPX b uogonek -20 -KPX b uring -20 -KPX b v -20 -KPX b y -20 -KPX b yacute -20 -KPX b ydieresis -20 -KPX c comma -15 -KPX c k -20 -KPX c kcommaaccent -20 -KPX cacute comma -15 -KPX cacute k -20 -KPX cacute kcommaaccent -20 -KPX ccaron comma -15 -KPX ccaron k -20 -KPX ccaron kcommaaccent -20 -KPX ccedilla comma -15 -KPX ccedilla k -20 -KPX ccedilla kcommaaccent -20 -KPX colon space -50 -KPX comma quotedblright -100 -KPX comma quoteright -100 -KPX e comma -15 -KPX e period -15 -KPX e v -30 -KPX e w -20 -KPX e x -30 -KPX e y -20 -KPX e yacute -20 -KPX e ydieresis -20 -KPX eacute comma -15 -KPX eacute period -15 -KPX eacute v -30 -KPX eacute w -20 -KPX eacute x -30 -KPX eacute y -20 -KPX eacute yacute -20 -KPX eacute ydieresis -20 -KPX ecaron comma -15 -KPX ecaron period -15 -KPX ecaron v -30 -KPX ecaron w -20 -KPX ecaron x -30 -KPX ecaron y -20 -KPX ecaron yacute -20 -KPX ecaron ydieresis -20 -KPX ecircumflex comma -15 -KPX ecircumflex period -15 -KPX ecircumflex v -30 -KPX ecircumflex w -20 -KPX ecircumflex x -30 -KPX ecircumflex y -20 -KPX ecircumflex yacute -20 -KPX ecircumflex ydieresis -20 -KPX edieresis comma -15 -KPX edieresis period -15 -KPX edieresis v -30 -KPX edieresis w -20 -KPX edieresis x -30 -KPX edieresis y -20 -KPX edieresis yacute -20 -KPX edieresis ydieresis -20 -KPX edotaccent comma -15 -KPX edotaccent period -15 -KPX edotaccent v -30 -KPX edotaccent w -20 -KPX edotaccent x -30 -KPX edotaccent y -20 -KPX edotaccent yacute -20 -KPX edotaccent ydieresis -20 -KPX egrave comma -15 -KPX egrave period -15 -KPX egrave v -30 -KPX egrave w -20 -KPX egrave x -30 -KPX egrave y -20 -KPX egrave yacute -20 -KPX egrave ydieresis -20 -KPX emacron comma -15 -KPX emacron period -15 -KPX emacron v -30 -KPX emacron w -20 -KPX emacron x -30 -KPX emacron y -20 -KPX emacron yacute -20 -KPX emacron ydieresis -20 -KPX eogonek comma -15 -KPX eogonek period -15 -KPX eogonek v -30 -KPX eogonek w -20 -KPX eogonek x -30 -KPX eogonek y -20 -KPX eogonek yacute -20 -KPX eogonek ydieresis -20 -KPX f a -30 -KPX f aacute -30 -KPX f abreve -30 -KPX f acircumflex -30 -KPX f adieresis -30 -KPX f agrave -30 -KPX f amacron -30 -KPX f aogonek -30 -KPX f aring -30 -KPX f atilde -30 -KPX f comma -30 -KPX f dotlessi -28 -KPX f e -30 -KPX f eacute -30 -KPX f ecaron -30 -KPX f ecircumflex -30 -KPX f edieresis -30 -KPX f edotaccent -30 -KPX f egrave -30 -KPX f emacron -30 -KPX f eogonek -30 -KPX f o -30 -KPX f oacute -30 -KPX f ocircumflex -30 -KPX f odieresis -30 -KPX f ograve -30 -KPX f ohungarumlaut -30 -KPX f omacron -30 -KPX f oslash -30 -KPX f otilde -30 -KPX f period -30 -KPX f quotedblright 60 -KPX f quoteright 50 -KPX g r -10 -KPX g racute -10 -KPX g rcaron -10 -KPX g rcommaaccent -10 -KPX gbreve r -10 -KPX gbreve racute -10 -KPX gbreve rcaron -10 -KPX gbreve rcommaaccent -10 -KPX gcommaaccent r -10 -KPX gcommaaccent racute -10 -KPX gcommaaccent rcaron -10 -KPX gcommaaccent rcommaaccent -10 -KPX h y -30 -KPX h yacute -30 -KPX h ydieresis -30 -KPX k e -20 -KPX k eacute -20 -KPX k ecaron -20 -KPX k ecircumflex -20 -KPX k edieresis -20 -KPX k edotaccent -20 -KPX k egrave -20 -KPX k emacron -20 -KPX k eogonek -20 -KPX k o -20 -KPX k oacute -20 -KPX k ocircumflex -20 -KPX k odieresis -20 -KPX k ograve -20 -KPX k ohungarumlaut -20 -KPX k omacron -20 -KPX k oslash -20 -KPX k otilde -20 -KPX kcommaaccent e -20 -KPX kcommaaccent eacute -20 -KPX kcommaaccent ecaron -20 -KPX kcommaaccent ecircumflex -20 -KPX kcommaaccent edieresis -20 -KPX kcommaaccent edotaccent -20 -KPX kcommaaccent egrave -20 -KPX kcommaaccent emacron -20 -KPX kcommaaccent eogonek -20 -KPX kcommaaccent o -20 -KPX kcommaaccent oacute -20 -KPX kcommaaccent ocircumflex -20 -KPX kcommaaccent odieresis -20 -KPX kcommaaccent ograve -20 -KPX kcommaaccent ohungarumlaut -20 -KPX kcommaaccent omacron -20 -KPX kcommaaccent oslash -20 -KPX kcommaaccent otilde -20 -KPX m u -10 -KPX m uacute -10 -KPX m ucircumflex -10 -KPX m udieresis -10 -KPX m ugrave -10 -KPX m uhungarumlaut -10 -KPX m umacron -10 -KPX m uogonek -10 -KPX m uring -10 -KPX m y -15 -KPX m yacute -15 -KPX m ydieresis -15 -KPX n u -10 -KPX n uacute -10 -KPX n ucircumflex -10 -KPX n udieresis -10 -KPX n ugrave -10 -KPX n uhungarumlaut -10 -KPX n umacron -10 -KPX n uogonek -10 -KPX n uring -10 -KPX n v -20 -KPX n y -15 -KPX n yacute -15 -KPX n ydieresis -15 -KPX nacute u -10 -KPX nacute uacute -10 -KPX nacute ucircumflex -10 -KPX nacute udieresis -10 -KPX nacute ugrave -10 -KPX nacute uhungarumlaut -10 -KPX nacute umacron -10 -KPX nacute uogonek -10 -KPX nacute uring -10 -KPX nacute v -20 -KPX nacute y -15 -KPX nacute yacute -15 -KPX nacute ydieresis -15 -KPX ncaron u -10 -KPX ncaron uacute -10 -KPX ncaron ucircumflex -10 -KPX ncaron udieresis -10 -KPX ncaron ugrave -10 -KPX ncaron uhungarumlaut -10 -KPX ncaron umacron -10 -KPX ncaron uogonek -10 -KPX ncaron uring -10 -KPX ncaron v -20 -KPX ncaron y -15 -KPX ncaron yacute -15 -KPX ncaron ydieresis -15 -KPX ncommaaccent u -10 -KPX ncommaaccent uacute -10 -KPX ncommaaccent ucircumflex -10 -KPX ncommaaccent udieresis -10 -KPX ncommaaccent ugrave -10 -KPX ncommaaccent uhungarumlaut -10 -KPX ncommaaccent umacron -10 -KPX ncommaaccent uogonek -10 -KPX ncommaaccent uring -10 -KPX ncommaaccent v -20 -KPX ncommaaccent y -15 -KPX ncommaaccent yacute -15 -KPX ncommaaccent ydieresis -15 -KPX ntilde u -10 -KPX ntilde uacute -10 -KPX ntilde ucircumflex -10 -KPX ntilde udieresis -10 -KPX ntilde ugrave -10 -KPX ntilde uhungarumlaut -10 -KPX ntilde umacron -10 -KPX ntilde uogonek -10 -KPX ntilde uring -10 -KPX ntilde v -20 -KPX ntilde y -15 -KPX ntilde yacute -15 -KPX ntilde ydieresis -15 -KPX o comma -40 -KPX o period -40 -KPX o v -15 -KPX o w -15 -KPX o x -30 -KPX o y -30 -KPX o yacute -30 -KPX o ydieresis -30 -KPX oacute comma -40 -KPX oacute period -40 -KPX oacute v -15 -KPX oacute w -15 -KPX oacute x -30 -KPX oacute y -30 -KPX oacute yacute -30 -KPX oacute ydieresis -30 -KPX ocircumflex comma -40 -KPX ocircumflex period -40 -KPX ocircumflex v -15 -KPX ocircumflex w -15 -KPX ocircumflex x -30 -KPX ocircumflex y -30 -KPX ocircumflex yacute -30 -KPX ocircumflex ydieresis -30 -KPX odieresis comma -40 -KPX odieresis period -40 -KPX odieresis v -15 -KPX odieresis w -15 -KPX odieresis x -30 -KPX odieresis y -30 -KPX odieresis yacute -30 -KPX odieresis ydieresis -30 -KPX ograve comma -40 -KPX ograve period -40 -KPX ograve v -15 -KPX ograve w -15 -KPX ograve x -30 -KPX ograve y -30 -KPX ograve yacute -30 -KPX ograve ydieresis -30 -KPX ohungarumlaut comma -40 -KPX ohungarumlaut period -40 -KPX ohungarumlaut v -15 -KPX ohungarumlaut w -15 -KPX ohungarumlaut x -30 -KPX ohungarumlaut y -30 -KPX ohungarumlaut yacute -30 -KPX ohungarumlaut ydieresis -30 -KPX omacron comma -40 -KPX omacron period -40 -KPX omacron v -15 -KPX omacron w -15 -KPX omacron x -30 -KPX omacron y -30 -KPX omacron yacute -30 -KPX omacron ydieresis -30 -KPX oslash a -55 -KPX oslash aacute -55 -KPX oslash abreve -55 -KPX oslash acircumflex -55 -KPX oslash adieresis -55 -KPX oslash agrave -55 -KPX oslash amacron -55 -KPX oslash aogonek -55 -KPX oslash aring -55 -KPX oslash atilde -55 -KPX oslash b -55 -KPX oslash c -55 -KPX oslash cacute -55 -KPX oslash ccaron -55 -KPX oslash ccedilla -55 -KPX oslash comma -95 -KPX oslash d -55 -KPX oslash dcroat -55 -KPX oslash e -55 -KPX oslash eacute -55 -KPX oslash ecaron -55 -KPX oslash ecircumflex -55 -KPX oslash edieresis -55 -KPX oslash edotaccent -55 -KPX oslash egrave -55 -KPX oslash emacron -55 -KPX oslash eogonek -55 -KPX oslash f -55 -KPX oslash g -55 -KPX oslash gbreve -55 -KPX oslash gcommaaccent -55 -KPX oslash h -55 -KPX oslash i -55 -KPX oslash iacute -55 -KPX oslash icircumflex -55 -KPX oslash idieresis -55 -KPX oslash igrave -55 -KPX oslash imacron -55 -KPX oslash iogonek -55 -KPX oslash j -55 -KPX oslash k -55 -KPX oslash kcommaaccent -55 -KPX oslash l -55 -KPX oslash lacute -55 -KPX oslash lcommaaccent -55 -KPX oslash lslash -55 -KPX oslash m -55 -KPX oslash n -55 -KPX oslash nacute -55 -KPX oslash ncaron -55 -KPX oslash ncommaaccent -55 -KPX oslash ntilde -55 -KPX oslash o -55 -KPX oslash oacute -55 -KPX oslash ocircumflex -55 -KPX oslash odieresis -55 -KPX oslash ograve -55 -KPX oslash ohungarumlaut -55 -KPX oslash omacron -55 -KPX oslash oslash -55 -KPX oslash otilde -55 -KPX oslash p -55 -KPX oslash period -95 -KPX oslash q -55 -KPX oslash r -55 -KPX oslash racute -55 -KPX oslash rcaron -55 -KPX oslash rcommaaccent -55 -KPX oslash s -55 -KPX oslash sacute -55 -KPX oslash scaron -55 -KPX oslash scedilla -55 -KPX oslash scommaaccent -55 -KPX oslash t -55 -KPX oslash tcommaaccent -55 -KPX oslash u -55 -KPX oslash uacute -55 -KPX oslash ucircumflex -55 -KPX oslash udieresis -55 -KPX oslash ugrave -55 -KPX oslash uhungarumlaut -55 -KPX oslash umacron -55 -KPX oslash uogonek -55 -KPX oslash uring -55 -KPX oslash v -70 -KPX oslash w -70 -KPX oslash x -85 -KPX oslash y -70 -KPX oslash yacute -70 -KPX oslash ydieresis -70 -KPX oslash z -55 -KPX oslash zacute -55 -KPX oslash zcaron -55 -KPX oslash zdotaccent -55 -KPX otilde comma -40 -KPX otilde period -40 -KPX otilde v -15 -KPX otilde w -15 -KPX otilde x -30 -KPX otilde y -30 -KPX otilde yacute -30 -KPX otilde ydieresis -30 -KPX p comma -35 -KPX p period -35 -KPX p y -30 -KPX p yacute -30 -KPX p ydieresis -30 -KPX period quotedblright -100 -KPX period quoteright -100 -KPX period space -60 -KPX quotedblright space -40 -KPX quoteleft quoteleft -57 -KPX quoteright d -50 -KPX quoteright dcroat -50 -KPX quoteright quoteright -57 -KPX quoteright r -50 -KPX quoteright racute -50 -KPX quoteright rcaron -50 -KPX quoteright rcommaaccent -50 -KPX quoteright s -50 -KPX quoteright sacute -50 -KPX quoteright scaron -50 -KPX quoteright scedilla -50 -KPX quoteright scommaaccent -50 -KPX quoteright space -70 -KPX r a -10 -KPX r aacute -10 -KPX r abreve -10 -KPX r acircumflex -10 -KPX r adieresis -10 -KPX r agrave -10 -KPX r amacron -10 -KPX r aogonek -10 -KPX r aring -10 -KPX r atilde -10 -KPX r colon 30 -KPX r comma -50 -KPX r i 15 -KPX r iacute 15 -KPX r icircumflex 15 -KPX r idieresis 15 -KPX r igrave 15 -KPX r imacron 15 -KPX r iogonek 15 -KPX r k 15 -KPX r kcommaaccent 15 -KPX r l 15 -KPX r lacute 15 -KPX r lcommaaccent 15 -KPX r lslash 15 -KPX r m 25 -KPX r n 25 -KPX r nacute 25 -KPX r ncaron 25 -KPX r ncommaaccent 25 -KPX r ntilde 25 -KPX r p 30 -KPX r period -50 -KPX r semicolon 30 -KPX r t 40 -KPX r tcommaaccent 40 -KPX r u 15 -KPX r uacute 15 -KPX r ucircumflex 15 -KPX r udieresis 15 -KPX r ugrave 15 -KPX r uhungarumlaut 15 -KPX r umacron 15 -KPX r uogonek 15 -KPX r uring 15 -KPX r v 30 -KPX r y 30 -KPX r yacute 30 -KPX r ydieresis 30 -KPX racute a -10 -KPX racute aacute -10 -KPX racute abreve -10 -KPX racute acircumflex -10 -KPX racute adieresis -10 -KPX racute agrave -10 -KPX racute amacron -10 -KPX racute aogonek -10 -KPX racute aring -10 -KPX racute atilde -10 -KPX racute colon 30 -KPX racute comma -50 -KPX racute i 15 -KPX racute iacute 15 -KPX racute icircumflex 15 -KPX racute idieresis 15 -KPX racute igrave 15 -KPX racute imacron 15 -KPX racute iogonek 15 -KPX racute k 15 -KPX racute kcommaaccent 15 -KPX racute l 15 -KPX racute lacute 15 -KPX racute lcommaaccent 15 -KPX racute lslash 15 -KPX racute m 25 -KPX racute n 25 -KPX racute nacute 25 -KPX racute ncaron 25 -KPX racute ncommaaccent 25 -KPX racute ntilde 25 -KPX racute p 30 -KPX racute period -50 -KPX racute semicolon 30 -KPX racute t 40 -KPX racute tcommaaccent 40 -KPX racute u 15 -KPX racute uacute 15 -KPX racute ucircumflex 15 -KPX racute udieresis 15 -KPX racute ugrave 15 -KPX racute uhungarumlaut 15 -KPX racute umacron 15 -KPX racute uogonek 15 -KPX racute uring 15 -KPX racute v 30 -KPX racute y 30 -KPX racute yacute 30 -KPX racute ydieresis 30 -KPX rcaron a -10 -KPX rcaron aacute -10 -KPX rcaron abreve -10 -KPX rcaron acircumflex -10 -KPX rcaron adieresis -10 -KPX rcaron agrave -10 -KPX rcaron amacron -10 -KPX rcaron aogonek -10 -KPX rcaron aring -10 -KPX rcaron atilde -10 -KPX rcaron colon 30 -KPX rcaron comma -50 -KPX rcaron i 15 -KPX rcaron iacute 15 -KPX rcaron icircumflex 15 -KPX rcaron idieresis 15 -KPX rcaron igrave 15 -KPX rcaron imacron 15 -KPX rcaron iogonek 15 -KPX rcaron k 15 -KPX rcaron kcommaaccent 15 -KPX rcaron l 15 -KPX rcaron lacute 15 -KPX rcaron lcommaaccent 15 -KPX rcaron lslash 15 -KPX rcaron m 25 -KPX rcaron n 25 -KPX rcaron nacute 25 -KPX rcaron ncaron 25 -KPX rcaron ncommaaccent 25 -KPX rcaron ntilde 25 -KPX rcaron p 30 -KPX rcaron period -50 -KPX rcaron semicolon 30 -KPX rcaron t 40 -KPX rcaron tcommaaccent 40 -KPX rcaron u 15 -KPX rcaron uacute 15 -KPX rcaron ucircumflex 15 -KPX rcaron udieresis 15 -KPX rcaron ugrave 15 -KPX rcaron uhungarumlaut 15 -KPX rcaron umacron 15 -KPX rcaron uogonek 15 -KPX rcaron uring 15 -KPX rcaron v 30 -KPX rcaron y 30 -KPX rcaron yacute 30 -KPX rcaron ydieresis 30 -KPX rcommaaccent a -10 -KPX rcommaaccent aacute -10 -KPX rcommaaccent abreve -10 -KPX rcommaaccent acircumflex -10 -KPX rcommaaccent adieresis -10 -KPX rcommaaccent agrave -10 -KPX rcommaaccent amacron -10 -KPX rcommaaccent aogonek -10 -KPX rcommaaccent aring -10 -KPX rcommaaccent atilde -10 -KPX rcommaaccent colon 30 -KPX rcommaaccent comma -50 -KPX rcommaaccent i 15 -KPX rcommaaccent iacute 15 -KPX rcommaaccent icircumflex 15 -KPX rcommaaccent idieresis 15 -KPX rcommaaccent igrave 15 -KPX rcommaaccent imacron 15 -KPX rcommaaccent iogonek 15 -KPX rcommaaccent k 15 -KPX rcommaaccent kcommaaccent 15 -KPX rcommaaccent l 15 -KPX rcommaaccent lacute 15 -KPX rcommaaccent lcommaaccent 15 -KPX rcommaaccent lslash 15 -KPX rcommaaccent m 25 -KPX rcommaaccent n 25 -KPX rcommaaccent nacute 25 -KPX rcommaaccent ncaron 25 -KPX rcommaaccent ncommaaccent 25 -KPX rcommaaccent ntilde 25 -KPX rcommaaccent p 30 -KPX rcommaaccent period -50 -KPX rcommaaccent semicolon 30 -KPX rcommaaccent t 40 -KPX rcommaaccent tcommaaccent 40 -KPX rcommaaccent u 15 -KPX rcommaaccent uacute 15 -KPX rcommaaccent ucircumflex 15 -KPX rcommaaccent udieresis 15 -KPX rcommaaccent ugrave 15 -KPX rcommaaccent uhungarumlaut 15 -KPX rcommaaccent umacron 15 -KPX rcommaaccent uogonek 15 -KPX rcommaaccent uring 15 -KPX rcommaaccent v 30 -KPX rcommaaccent y 30 -KPX rcommaaccent yacute 30 -KPX rcommaaccent ydieresis 30 -KPX s comma -15 -KPX s period -15 -KPX s w -30 -KPX sacute comma -15 -KPX sacute period -15 -KPX sacute w -30 -KPX scaron comma -15 -KPX scaron period -15 -KPX scaron w -30 -KPX scedilla comma -15 -KPX scedilla period -15 -KPX scedilla w -30 -KPX scommaaccent comma -15 -KPX scommaaccent period -15 -KPX scommaaccent w -30 -KPX semicolon space -50 -KPX space T -50 -KPX space Tcaron -50 -KPX space Tcommaaccent -50 -KPX space V -50 -KPX space W -40 -KPX space Y -90 -KPX space Yacute -90 -KPX space Ydieresis -90 -KPX space quotedblleft -30 -KPX space quoteleft -60 -KPX v a -25 -KPX v aacute -25 -KPX v abreve -25 -KPX v acircumflex -25 -KPX v adieresis -25 -KPX v agrave -25 -KPX v amacron -25 -KPX v aogonek -25 -KPX v aring -25 -KPX v atilde -25 -KPX v comma -80 -KPX v e -25 -KPX v eacute -25 -KPX v ecaron -25 -KPX v ecircumflex -25 -KPX v edieresis -25 -KPX v edotaccent -25 -KPX v egrave -25 -KPX v emacron -25 -KPX v eogonek -25 -KPX v o -25 -KPX v oacute -25 -KPX v ocircumflex -25 -KPX v odieresis -25 -KPX v ograve -25 -KPX v ohungarumlaut -25 -KPX v omacron -25 -KPX v oslash -25 -KPX v otilde -25 -KPX v period -80 -KPX w a -15 -KPX w aacute -15 -KPX w abreve -15 -KPX w acircumflex -15 -KPX w adieresis -15 -KPX w agrave -15 -KPX w amacron -15 -KPX w aogonek -15 -KPX w aring -15 -KPX w atilde -15 -KPX w comma -60 -KPX w e -10 -KPX w eacute -10 -KPX w ecaron -10 -KPX w ecircumflex -10 -KPX w edieresis -10 -KPX w edotaccent -10 -KPX w egrave -10 -KPX w emacron -10 -KPX w eogonek -10 -KPX w o -10 -KPX w oacute -10 -KPX w ocircumflex -10 -KPX w odieresis -10 -KPX w ograve -10 -KPX w ohungarumlaut -10 -KPX w omacron -10 -KPX w oslash -10 -KPX w otilde -10 -KPX w period -60 -KPX x e -30 -KPX x eacute -30 -KPX x ecaron -30 -KPX x ecircumflex -30 -KPX x edieresis -30 -KPX x edotaccent -30 -KPX x egrave -30 -KPX x emacron -30 -KPX x eogonek -30 -KPX y a -20 -KPX y aacute -20 -KPX y abreve -20 -KPX y acircumflex -20 -KPX y adieresis -20 -KPX y agrave -20 -KPX y amacron -20 -KPX y aogonek -20 -KPX y aring -20 -KPX y atilde -20 -KPX y comma -100 -KPX y e -20 -KPX y eacute -20 -KPX y ecaron -20 -KPX y ecircumflex -20 -KPX y edieresis -20 -KPX y edotaccent -20 -KPX y egrave -20 -KPX y emacron -20 -KPX y eogonek -20 -KPX y o -20 -KPX y oacute -20 -KPX y ocircumflex -20 -KPX y odieresis -20 -KPX y ograve -20 -KPX y ohungarumlaut -20 -KPX y omacron -20 -KPX y oslash -20 -KPX y otilde -20 -KPX y period -100 -KPX yacute a -20 -KPX yacute aacute -20 -KPX yacute abreve -20 -KPX yacute acircumflex -20 -KPX yacute adieresis -20 -KPX yacute agrave -20 -KPX yacute amacron -20 -KPX yacute aogonek -20 -KPX yacute aring -20 -KPX yacute atilde -20 -KPX yacute comma -100 -KPX yacute e -20 -KPX yacute eacute -20 -KPX yacute ecaron -20 -KPX yacute ecircumflex -20 -KPX yacute edieresis -20 -KPX yacute edotaccent -20 -KPX yacute egrave -20 -KPX yacute emacron -20 -KPX yacute eogonek -20 -KPX yacute o -20 -KPX yacute oacute -20 -KPX yacute ocircumflex -20 -KPX yacute odieresis -20 -KPX yacute ograve -20 -KPX yacute ohungarumlaut -20 -KPX yacute omacron -20 -KPX yacute oslash -20 -KPX yacute otilde -20 -KPX yacute period -100 -KPX ydieresis a -20 -KPX ydieresis aacute -20 -KPX ydieresis abreve -20 -KPX ydieresis acircumflex -20 -KPX ydieresis adieresis -20 -KPX ydieresis agrave -20 -KPX ydieresis amacron -20 -KPX ydieresis aogonek -20 -KPX ydieresis aring -20 -KPX ydieresis atilde -20 -KPX ydieresis comma -100 -KPX ydieresis e -20 -KPX ydieresis eacute -20 -KPX ydieresis ecaron -20 -KPX ydieresis ecircumflex -20 -KPX ydieresis edieresis -20 -KPX ydieresis edotaccent -20 -KPX ydieresis egrave -20 -KPX ydieresis emacron -20 -KPX ydieresis eogonek -20 -KPX ydieresis o -20 -KPX ydieresis oacute -20 -KPX ydieresis ocircumflex -20 -KPX ydieresis odieresis -20 -KPX ydieresis ograve -20 -KPX ydieresis ohungarumlaut -20 -KPX ydieresis omacron -20 -KPX ydieresis oslash -20 -KPX ydieresis otilde -20 -KPX ydieresis period -100 -KPX z e -15 -KPX z eacute -15 -KPX z ecaron -15 -KPX z ecircumflex -15 -KPX z edieresis -15 -KPX z edotaccent -15 -KPX z egrave -15 -KPX z emacron -15 -KPX z eogonek -15 -KPX z o -15 -KPX z oacute -15 -KPX z ocircumflex -15 -KPX z odieresis -15 -KPX z ograve -15 -KPX z ohungarumlaut -15 -KPX z omacron -15 -KPX z oslash -15 -KPX z otilde -15 -KPX zacute e -15 -KPX zacute eacute -15 -KPX zacute ecaron -15 -KPX zacute ecircumflex -15 -KPX zacute edieresis -15 -KPX zacute edotaccent -15 -KPX zacute egrave -15 -KPX zacute emacron -15 -KPX zacute eogonek -15 -KPX zacute o -15 -KPX zacute oacute -15 -KPX zacute ocircumflex -15 -KPX zacute odieresis -15 -KPX zacute ograve -15 -KPX zacute ohungarumlaut -15 -KPX zacute omacron -15 -KPX zacute oslash -15 -KPX zacute otilde -15 -KPX zcaron e -15 -KPX zcaron eacute -15 -KPX zcaron ecaron -15 -KPX zcaron ecircumflex -15 -KPX zcaron edieresis -15 -KPX zcaron edotaccent -15 -KPX zcaron egrave -15 -KPX zcaron emacron -15 -KPX zcaron eogonek -15 -KPX zcaron o -15 -KPX zcaron oacute -15 -KPX zcaron ocircumflex -15 -KPX zcaron odieresis -15 -KPX zcaron ograve -15 -KPX zcaron ohungarumlaut -15 -KPX zcaron omacron -15 -KPX zcaron oslash -15 -KPX zcaron otilde -15 -KPX zdotaccent e -15 -KPX zdotaccent eacute -15 -KPX zdotaccent ecaron -15 -KPX zdotaccent ecircumflex -15 -KPX zdotaccent edieresis -15 -KPX zdotaccent edotaccent -15 -KPX zdotaccent egrave -15 -KPX zdotaccent emacron -15 -KPX zdotaccent eogonek -15 -KPX zdotaccent o -15 -KPX zdotaccent oacute -15 -KPX zdotaccent ocircumflex -15 -KPX zdotaccent odieresis -15 -KPX zdotaccent ograve -15 -KPX zdotaccent ohungarumlaut -15 -KPX zdotaccent omacron -15 -KPX zdotaccent oslash -15 -KPX zdotaccent otilde -15 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/reporting/fonts/helvetica.php b/reporting/fonts/helvetica.php new file mode 100644 index 00000000..23bc9b00 --- /dev/null +++ b/reporting/fonts/helvetica.php @@ -0,0 +1,5 @@ +278,1=>278,2=>278,3=>278,4=>278,5=>278,6=>278,7=>278,8=>278,9=>278,10=>278,11=>278,12=>278,13=>278,14=>278,15=>278,16=>278,17=>278,18=>278,19=>278,20=>278,21=>278,22=>278,23=>278,24=>278,25=>278,26=>278,27=>278,28=>278,29=>278,30=>278,31=>278,32=>278,33=>278,34=>355,35=>556,36=>556,37=>889,38=>667,39=>191,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>278,59=>278,60=>584,61=>584,62=>584,63=>556,64=>1015,65=>667,66=>667,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>500,75=>667,76=>556,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>278,92=>278,93=>278,94=>469,95=>556,96=>333,97=>556,98=>556,99=>500,100=>556,101=>556,102=>278,103=>556,104=>556,105=>222,106=>222,107=>500,108=>222,109=>833,110=>556,111=>556,112=>556,113=>556,114=>333,115=>500,116=>278,117=>556,118=>500,119=>722,120=>500,121=>500,122=>500,123=>334,124=>260,125=>334,126=>584,127=>350,128=>556,129=>350,130=>222,131=>556,132=>333,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>333,140=>1000,141=>350,142=>611,143=>350,144=>350,145=>222,146=>222,147=>333,148=>333,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>500,155=>333,156=>944,157=>350,158=>500,159=>667,160=>278,161=>333,162=>556,163=>556,164=>556,165=>556,166=>260,167=>556,168=>333,169=>737,170=>370,171=>556,172=>584,173=>333,174=>737,175=>333,176=>400,177=>584,178=>333,179=>333,180=>333,181=>556,182=>537,183=>278,184=>333,185=>333,186=>365,187=>556,188=>834,189=>834,190=>834,191=>611,192=>667,193=>667,194=>667,195=>667,196=>667,197=>667,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>667,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>889,231=>500,232=>556,233=>556,234=>556,235=>556,236=>278,237=>278,238=>278,239=>278,240=>556,241=>556,242=>556,243=>556,244=>556,245=>556,246=>556,247=>584,248=>611,249=>556,250=>556,251=>556,252=>556,253=>500,254=>556,255=>500); +?> \ No newline at end of file diff --git a/reporting/fonts/helveticab.php b/reporting/fonts/helveticab.php new file mode 100644 index 00000000..6a08a763 --- /dev/null +++ b/reporting/fonts/helveticab.php @@ -0,0 +1,5 @@ +278,1=>278,2=>278,3=>278,4=>278,5=>278,6=>278,7=>278,8=>278,9=>278,10=>278,11=>278,12=>278,13=>278,14=>278,15=>278,16=>278,17=>278,18=>278,19=>278,20=>278,21=>278,22=>278,23=>278,24=>278,25=>278,26=>278,27=>278,28=>278,29=>278,30=>278,31=>278,32=>278,33=>333,34=>474,35=>556,36=>556,37=>889,38=>722,39=>238,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>333,59=>333,60=>584,61=>584,62=>584,63=>611,64=>975,65=>722,66=>722,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>556,75=>722,76=>611,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>333,92=>278,93=>333,94=>584,95=>556,96=>333,97=>556,98=>611,99=>556,100=>611,101=>556,102=>333,103=>611,104=>611,105=>278,106=>278,107=>556,108=>278,109=>889,110=>611,111=>611,112=>611,113=>611,114=>389,115=>556,116=>333,117=>611,118=>556,119=>778,120=>556,121=>556,122=>500,123=>389,124=>280,125=>389,126=>584,127=>350,128=>556,129=>350,130=>278,131=>556,132=>500,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>333,140=>1000,141=>350,142=>611,143=>350,144=>350,145=>278,146=>278,147=>500,148=>500,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>556,155=>333,156=>944,157=>350,158=>500,159=>667,160=>278,161=>333,162=>556,163=>556,164=>556,165=>556,166=>280,167=>556,168=>333,169=>737,170=>370,171=>556,172=>584,173=>333,174=>737,175=>333,176=>400,177=>584,178=>333,179=>333,180=>333,181=>611,182=>556,183=>278,184=>333,185=>333,186=>365,187=>556,188=>834,189=>834,190=>834,191=>611,192=>722,193=>722,194=>722,195=>722,196=>722,197=>722,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>667,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>889,231=>556,232=>556,233=>556,234=>556,235=>556,236=>278,237=>278,238=>278,239=>278,240=>611,241=>611,242=>611,243=>611,244=>611,245=>611,246=>611,247=>584,248=>611,249=>611,250=>611,251=>611,252=>611,253=>556,254=>611,255=>556); +?> \ No newline at end of file diff --git a/reporting/fonts/helveticabi.php b/reporting/fonts/helveticabi.php new file mode 100644 index 00000000..6a08a763 --- /dev/null +++ b/reporting/fonts/helveticabi.php @@ -0,0 +1,5 @@ +278,1=>278,2=>278,3=>278,4=>278,5=>278,6=>278,7=>278,8=>278,9=>278,10=>278,11=>278,12=>278,13=>278,14=>278,15=>278,16=>278,17=>278,18=>278,19=>278,20=>278,21=>278,22=>278,23=>278,24=>278,25=>278,26=>278,27=>278,28=>278,29=>278,30=>278,31=>278,32=>278,33=>333,34=>474,35=>556,36=>556,37=>889,38=>722,39=>238,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>333,59=>333,60=>584,61=>584,62=>584,63=>611,64=>975,65=>722,66=>722,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>556,75=>722,76=>611,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>333,92=>278,93=>333,94=>584,95=>556,96=>333,97=>556,98=>611,99=>556,100=>611,101=>556,102=>333,103=>611,104=>611,105=>278,106=>278,107=>556,108=>278,109=>889,110=>611,111=>611,112=>611,113=>611,114=>389,115=>556,116=>333,117=>611,118=>556,119=>778,120=>556,121=>556,122=>500,123=>389,124=>280,125=>389,126=>584,127=>350,128=>556,129=>350,130=>278,131=>556,132=>500,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>333,140=>1000,141=>350,142=>611,143=>350,144=>350,145=>278,146=>278,147=>500,148=>500,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>556,155=>333,156=>944,157=>350,158=>500,159=>667,160=>278,161=>333,162=>556,163=>556,164=>556,165=>556,166=>280,167=>556,168=>333,169=>737,170=>370,171=>556,172=>584,173=>333,174=>737,175=>333,176=>400,177=>584,178=>333,179=>333,180=>333,181=>611,182=>556,183=>278,184=>333,185=>333,186=>365,187=>556,188=>834,189=>834,190=>834,191=>611,192=>722,193=>722,194=>722,195=>722,196=>722,197=>722,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>667,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>889,231=>556,232=>556,233=>556,234=>556,235=>556,236=>278,237=>278,238=>278,239=>278,240=>611,241=>611,242=>611,243=>611,244=>611,245=>611,246=>611,247=>584,248=>611,249=>611,250=>611,251=>611,252=>611,253=>556,254=>611,255=>556); +?> \ No newline at end of file diff --git a/reporting/fonts/helveticai.php b/reporting/fonts/helveticai.php new file mode 100644 index 00000000..23bc9b00 --- /dev/null +++ b/reporting/fonts/helveticai.php @@ -0,0 +1,5 @@ +278,1=>278,2=>278,3=>278,4=>278,5=>278,6=>278,7=>278,8=>278,9=>278,10=>278,11=>278,12=>278,13=>278,14=>278,15=>278,16=>278,17=>278,18=>278,19=>278,20=>278,21=>278,22=>278,23=>278,24=>278,25=>278,26=>278,27=>278,28=>278,29=>278,30=>278,31=>278,32=>278,33=>278,34=>355,35=>556,36=>556,37=>889,38=>667,39=>191,40=>333,41=>333,42=>389,43=>584,44=>278,45=>333,46=>278,47=>278,48=>556,49=>556,50=>556,51=>556,52=>556,53=>556,54=>556,55=>556,56=>556,57=>556,58=>278,59=>278,60=>584,61=>584,62=>584,63=>556,64=>1015,65=>667,66=>667,67=>722,68=>722,69=>667,70=>611,71=>778,72=>722,73=>278,74=>500,75=>667,76=>556,77=>833,78=>722,79=>778,80=>667,81=>778,82=>722,83=>667,84=>611,85=>722,86=>667,87=>944,88=>667,89=>667,90=>611,91=>278,92=>278,93=>278,94=>469,95=>556,96=>333,97=>556,98=>556,99=>500,100=>556,101=>556,102=>278,103=>556,104=>556,105=>222,106=>222,107=>500,108=>222,109=>833,110=>556,111=>556,112=>556,113=>556,114=>333,115=>500,116=>278,117=>556,118=>500,119=>722,120=>500,121=>500,122=>500,123=>334,124=>260,125=>334,126=>584,127=>350,128=>556,129=>350,130=>222,131=>556,132=>333,133=>1000,134=>556,135=>556,136=>333,137=>1000,138=>667,139=>333,140=>1000,141=>350,142=>611,143=>350,144=>350,145=>222,146=>222,147=>333,148=>333,149=>350,150=>556,151=>1000,152=>333,153=>1000,154=>500,155=>333,156=>944,157=>350,158=>500,159=>667,160=>278,161=>333,162=>556,163=>556,164=>556,165=>556,166=>260,167=>556,168=>333,169=>737,170=>370,171=>556,172=>584,173=>333,174=>737,175=>333,176=>400,177=>584,178=>333,179=>333,180=>333,181=>556,182=>537,183=>278,184=>333,185=>333,186=>365,187=>556,188=>834,189=>834,190=>834,191=>611,192=>667,193=>667,194=>667,195=>667,196=>667,197=>667,198=>1000,199=>722,200=>667,201=>667,202=>667,203=>667,204=>278,205=>278,206=>278,207=>278,208=>722,209=>722,210=>778,211=>778,212=>778,213=>778,214=>778,215=>584,216=>778,217=>722,218=>722,219=>722,220=>722,221=>667,222=>667,223=>611,224=>556,225=>556,226=>556,227=>556,228=>556,229=>556,230=>889,231=>500,232=>556,233=>556,234=>556,235=>556,236=>278,237=>278,238=>278,239=>278,240=>556,241=>556,242=>556,243=>556,244=>556,245=>556,246=>556,247=>584,248=>611,249=>556,250=>556,251=>556,252=>556,253=>500,254=>556,255=>500); +?> \ No newline at end of file diff --git a/reporting/fonts/iqraa.afm b/reporting/fonts/iqraa.afm deleted file mode 100644 index e4d5973d..00000000 --- a/reporting/fonts/iqraa.afm +++ /dev/null @@ -1,238 +0,0 @@ -StartFontMetrics 2.0 -Comment Panose 0 0 0 0 0 0 0 0 0 0 -FullName Iqraa -FontName Iqraa -FamilyName Iqraa -Weight Thin -Notice Copyright(c) 1999 ICB Fonts. -IsFixedPitch false -ItalicAngle 0.00 -FontBBox -17 -512 1132 1131 -Ascender 713 -Descender 389 -XHeight 559 -CapHeight 858 -UnderlinePosition -176 -UnderlineThickness 20 -EncodingScheme FontSpecific -StartCharMetrics 218 -C 32 ; WX 500 ; N space ; B 0 0 0 0 ; -C 33 ; WX 333 ; N exclam ; B 111 -13 222 678 ; -C 34 ; WX 408 ; N quotedbl ; B 64 392 342 678 ; -C 35 ; WX 500 ; N numbersign ; B 18 -13 482 678 ; -C 36 ; WX 500 ; N dollar ; B 52 -77 450 718 ; -C 37 ; WX 526 ; N percent ; B 64 4 463 698 ; -C 38 ; WX 778 ; N ampersand ; B 37 -16 748 678 ; -C 39 ; WX 626 ; N quotesingle ; B -11 63 660 713 ; -C 40 ; WX 718 ; N parenleft ; B 116 -296 613 739 ; -C 41 ; WX 723 ; N parenright ; B 118 -307 616 728 ; -C 42 ; WX 500 ; N asterisk ; B 71 122 430 527 ; -C 43 ; WX 526 ; N plus ; B 44 129 486 571 ; -C 44 ; WX 432 ; N comma ; B 59 -157 467 304 ; -C 45 ; WX 526 ; N hyphen ; B 44 322 486 373 ; -C 46 ; WX 489 ; N period ; B 70 -171 523 559 ; -C 47 ; WX 626 ; N slash ; B -11 63 660 713 ; -C 48 ; WX 427 ; N zero ; B 124 93 307 360 ; -C 49 ; WX 449 ; N one ; B 126 -71 331 588 ; -C 50 ; WX 604 ; N two ; B 124 -82 472 583 ; -C 51 ; WX 694 ; N three ; B 118 -82 587 583 ; -C 52 ; WX 536 ; N four ; B 113 -82 402 572 ; -C 53 ; WX 651 ; N five ; B 128 24 526 456 ; -C 54 ; WX 611 ; N six ; B 120 -79 493 558 ; -C 55 ; WX 690 ; N seven ; B 118 -71 572 580 ; -C 56 ; WX 698 ; N eight ; B 120 -77 577 577 ; -C 57 ; WX 604 ; N nine ; B 122 -82 474 586 ; -C 58 ; WX 601 ; N colon ; B 57 63 636 694 ; -C 59 ; WX 461 ; N semicolon ; B -11 63 503 687 ; -C 60 ; WX 564 ; N less ; B 19 91 544 572 ; -C 61 ; WX 526 ; N equal ; B 44 269 487 428 ; -C 62 ; WX 564 ; N greater ; B 18 91 543 572 ; -C 63 ; WX 357 ; N question ; B 32 57 327 631 ; -C 64 ; WX 921 ; N at ; B 48 -216 897 694 ; -C 65 ; WX 821 ; N A ; B 64 -152 856 636 ; -C 66 ; WX 637 ; N B ; B 104 -1 581 858 ; -C 67 ; WX 637 ; N C ; B 114 -191 581 644 ; -C 68 ; WX 638 ; N D ; B 44 -288 626 382 ; -C 69 ; WX 713 ; N E ; B 62 63 748 636 ; -C 70 ; WX 713 ; N F ; B 62 -127 748 389 ; -C 71 ; WX 507 ; N G ; B 69 -73 540 694 ; -C 72 ; WX 349 ; N H ; B 169 50 306 822 ; -C 73 ; WX 376 ; N I ; B 30 63 429 502 ; -C 74 ; WX 713 ; N J ; B 62 63 748 548 ; -C 75 ; WX 526 ; N K ; B 68 -152 560 478 ; -C 76 ; WX 338 ; N L ; B 51 -292 372 277 ; -C 77 ; WX 376 ; N M ; B 30 63 429 688 ; -C 78 ; WX 349 ; N N ; B 153 50 352 858 ; -C 79 ; WX 563 ; N O ; B 27 -292 516 559 ; -C 80 ; WX 563 ; N P ; B 27 -292 516 352 ; -C 81 ; WX 1098 ; N Q ; B 64 -152 1132 510 ; -C 82 ; WX 581 ; N R ; B 69 -154 616 603 ; -C 83 ; WX 821 ; N S ; B 64 -152 856 338 ; -C 84 ; WX 789 ; N T ; B 53 63 822 601 ; -C 85 ; WX 544 ; N U ; B 20 -292 516 454 ; -C 86 ; WX 637 ; N V ; B 87 -1 590 811 ; -C 87 ; WX 1098 ; N W ; B 64 -152 1132 338 ; -C 88 ; WX 541 ; N X ; B 21 194 542 331 ; -C 89 ; WX 544 ; N Y ; B 20 -292 516 657 ; -C 90 ; WX 638 ; N Z ; B 34 -123 616 556 ; -C 91 ; WX 574 ; N bracketleft ; B -11 -113 609 347 ; -C 92 ; WX 319 ; N backslash ; B 3 -263 320 704 ; -C 93 ; WX 436 ; N bracketright ; B 158 63 471 472 ; -C 94 ; WX 469 ; N asciicircum ; B 18 326 451 676 ; -C 95 ; WX 480 ; N underscore ; B -16 -216 501 -176 ; -C 96 ; WX 436 ; N grave ; B 158 63 471 679 ; -C 97 ; WX 598 ; N a ; B -11 63 631 636 ; -C 98 ; WX 637 ; N b ; B 124 -1 590 644 ; -C 99 ; WX 432 ; N c ; B 59 -157 467 511 ; -C 100 ; WX 311 ; N d ; B -11 -149 344 376 ; -C 101 ; WX 311 ; N e ; B -11 63 344 674 ; -C 102 ; WX 311 ; N f ; B -11 -127 344 376 ; -C 103 ; WX 322 ; N g ; B -11 63 358 694 ; -C 104 ; WX 349 ; N h ; B 219 50 312 660 ; -C 105 ; WX 566 ; N i ; B -11 44 524 474 ; -C 106 ; WX 311 ; N j ; B -11 63 344 587 ; -C 107 ; WX 311 ; N k ; B -11 63 344 556 ; -C 108 ; WX 461 ; N l ; B -11 63 494 331 ; -C 109 ; WX 282 ; N m ; B 0 50 271 560 ; -C 110 ; WX 638 ; N n ; B 24 -123 606 382 ; -C 111 ; WX 597 ; N o ; B -11 63 629 559 ; -C 112 ; WX 597 ; N p ; B -17 63 631 347 ; -C 113 ; WX 891 ; N q ; B -11 63 924 510 ; -C 114 ; WX 383 ; N r ; B -12 63 418 660 ; -C 115 ; WX 598 ; N s ; B -11 63 631 321 ; -C 116 ; WX 383 ; N t ; B -10 63 418 646 ; -C 117 ; WX 641 ; N u ; B -11 63 610 392 ; -C 118 ; WX 489 ; N v ; B 70 -171 523 350 ; -C 119 ; WX 891 ; N w ; B -11 63 924 326 ; -C 120 ; WX 412 ; N x ; B 108 -8 412 320 ; -C 121 ; WX 641 ; N y ; B -11 63 610 559 ; -C 122 ; WX 311 ; N z ; B -11 63 344 600 ; -C 123 ; WX 563 ; N braceleft ; B 27 -292 516 352 ; -C 124 ; WX 200 ; N bar ; B 79 -216 119 694 ; -C 125 ; WX 480 ; N braceright ; B 87 -216 359 694 ; -C 126 ; WX 480 ; N asciitilde ; B 138 -216 411 694 ; -C 130 ; WX 319 ; N quotesinglbase ; B 3 -263 314 699 ; -C 131 ; WX 367 ; N florin ; B 180 63 400 660 ; -C 132 ; WX 367 ; N quotedblbase ; B 157 63 400 822 ; -C 133 ; WX 367 ; N ellipsis ; B 153 63 400 858 ; -C 134 ; WX 349 ; N dagger ; B 160 -173 302 660 ; -C 135 ; WX 367 ; N daggerdbl ; B 180 -173 400 660 ; -C 136 ; WX 526 ; N circumflex ; B 27 -287 560 351 ; -C 137 ; WX 526 ; N perthousand ; B 27 -287 560 351 ; -C 138 ; WX 526 ; N Scaron ; B 27 -287 560 564 ; -C 139 ; WX 510 ; N guilsinglleft ; B -10 63 542 338 ; -C 140 ; WX 450 ; N OE ; B 27 -292 486 351 ; -C 145 ; WX 510 ; N quoteleft ; B -11 63 543 559 ; -C 146 ; WX 450 ; N quoteright ; B 27 -292 486 559 ; -C 147 ; WX 378 ; N quotedblleft ; B 0 0 0 0 ; -C 148 ; WX 378 ; N quotedblright ; B 0 0 0 0 ; -C 149 ; WX 378 ; N bullet ; B -11 63 411 627 ; -C 150 ; WX 378 ; N endash ; B -11 63 409 647 ; -C 151 ; WX 510 ; N emdash ; B -13 -137 543 354 ; -C 152 ; WX 282 ; N tilde ; B 27 50 262 350 ; -C 153 ; WX 589 ; N trademark ; B 52 -190 622 172 ; -C 154 ; WX 589 ; N scaron ; B 52 -309 622 178 ; -C 155 ; WX 589 ; N guilsinglright ; B 52 -190 622 444 ; -C 156 ; WX 693 ; N oe ; B 129 38 727 653 ; -C 159 ; WX 693 ; N Ydieresis ; B 121 38 728 800 ; -C 160 ; WX 556 ; N nbspace ; B 0 0 0 0 ; -C 161 ; WX 693 ; N exclamdown ; B 130 38 729 858 ; -C 162 ; WX 693 ; N cent ; B 129 -191 727 653 ; -C 163 ; WX 500 ; N sterling ; B 36 -12 464 676 ; -C 164 ; WX 500 ; N currency ; B 117 0 378 676 ; -C 165 ; WX 500 ; N yen ; B 21 0 458 676 ; -C 166 ; WX 500 ; N brokenbar ; B 41 -12 417 676 ; -C 167 ; WX 500 ; N section ; B 16 0 466 676 ; -C 168 ; WX 500 ; N dieresis ; B 48 -12 434 662 ; -C 169 ; WX 500 ; N copyright ; B 43 -12 461 676 ; -C 170 ; WX 500 ; N ordfeminine ; B 37 -14 456 662 ; -C 171 ; WX 500 ; N guillemotleft ; B 61 -12 442 676 ; -C 172 ; WX 500 ; N logicalnot ; B 40 -14 457 676 ; -C 173 ; WX 722 ; N minus ; B 8 0 711 677 ; -C 174 ; WX 667 ; N registered ; B 17 0 612 662 ; -C 175 ; WX 667 ; N overscore ; B 36 -16 632 677 ; -C 176 ; WX 722 ; N degree ; B 17 0 684 662 ; -C 177 ; WX 611 ; N plusminus ; B 21 0 588 662 ; -C 178 ; WX 556 ; N twosuperior ; B 16 0 516 662 ; -C 179 ; WX 722 ; N threesuperior ; B 36 -16 708 677 ; -C 180 ; WX 722 ; N acute ; B 17 0 702 662 ; -C 181 ; WX 333 ; N mu ; B 26 0 309 662 ; -C 182 ; WX 389 ; N paragraph ; B 21 -16 383 662 ; -C 183 ; WX 722 ; N middot ; B 17 0 730 662 ; -C 184 ; WX 611 ; N cedilla ; B 20 0 589 662 ; -C 185 ; WX 889 ; N onesuperior ; B 17 0 868 662 ; -C 186 ; WX 722 ; N ordmasculine ; B -13 -11 708 662 ; -C 187 ; WX 722 ; N guillemotright ; B 36 -16 684 677 ; -C 188 ; WX 556 ; N onequarter ; B 17 0 521 662 ; -C 189 ; WX 722 ; N onehalf ; B 36 -196 684 677 ; -C 190 ; WX 667 ; N threequarters ; B 17 0 676 662 ; -C 191 ; WX 556 ; N questiondown ; B 63 -16 502 677 ; -C 192 ; WX 611 ; N Agrave ; B 30 0 586 662 ; -C 193 ; WX 722 ; N Aacute ; B 6 -16 711 662 ; -C 194 ; WX 722 ; N Acircumflex ; B 9 -16 710 662 ; -C 195 ; WX 944 ; N Atilde ; B 13 -16 936 662 ; -C 196 ; WX 722 ; N Adieresis ; B 7 0 710 662 ; -C 197 ; WX 722 ; N Aring ; B 9 0 708 662 ; -C 198 ; WX 611 ; N AE ; B 13 0 583 662 ; -C 199 ; WX 833 ; N Ccedilla ; B 36 -28 798 677 ; -C 200 ; WX 500 ; N Egrave ; B 71 8 430 413 ; -C 201 ; WX 526 ; N Eacute ; B 61 148 466 552 ; -C 202 ; WX 526 ; N Ecircumflex ; B 44 129 486 566 ; -C 203 ; WX 319 ; N Edieresis ; B 97 1 226 407 ; -C 204 ; WX 207 ; N Igrave ; B 0 63 241 148 ; -C 205 ; WX 278 ; N Iacute ; B 69 -167 214 461 ; -C 206 ; WX 319 ; N Icircumflex ; B 78 56 236 529 ; -C 207 ; WX 319 ; N Idieresis ; B 83 57 241 363 ; -C 208 ; WX 319 ; N Eth ; B 97 57 226 187 ; -C 209 ; WX 319 ; N Ntilde ; B 94 -57 230 187 ; -C 210 ; WX 443 ; N Ograve ; B 44 -13 403 678 ; -C 211 ; WX 333 ; N Oacute ; B 41 -213 310 694 ; -C 212 ; WX 333 ; N Ocircumflex ; B 22 -213 292 694 ; -C 213 ; WX 319 ; N Otilde ; B 59 -288 299 698 ; -C 214 ; WX 319 ; N Odieresis ; B 22 -288 262 698 ; -C 215 ; WX 469 ; N multiply ; B 44 6 428 397 ; -C 216 ; WX 469 ; N Oslash ; B 44 6 428 397 ; -C 217 ; WX 338 ; N Ugrave ; B 117 439 257 686 ; -C 218 ; WX 338 ; N Uacute ; B 80 439 221 686 ; -C 219 ; WX 180 ; N Ucircumflex ; B 40 392 138 678 ; -C 220 ; WX 0 ; N Udieresis ; B 70 812 238 913 ; -C 221 ; WX 0 ; N Yacute ; B 49 826 223 1038 ; -C 222 ; WX 0 ; N Thorn ; B 70 814 201 966 ; -C 223 ; WX 0 ; N germandbls ; B 64 826 232 1000 ; -C 224 ; WX 0 ; N agrave ; B 44 826 247 1014 ; -C 225 ; WX 0 ; N aacute ; B 56 811 233 969 ; -C 226 ; WX 0 ; N acircumflex ; B 26 -379 192 -278 ; -C 227 ; WX 0 ; N atilde ; B 26 -452 192 -278 ; -C 228 ; WX 0 ; N adieresis ; B 67 809 244 1044 ; -C 229 ; WX 0 ; N aring ; B 59 809 240 1101 ; -C 230 ; WX 0 ; N ae ; B 62 809 240 1121 ; -C 231 ; WX 0 ; N ccedilla ; B 47 809 248 1131 ; -C 232 ; WX 0 ; N egrave ; B 58 809 234 1057 ; -C 233 ; WX 0 ; N eacute ; B 58 809 234 1108 ; -C 234 ; WX 0 ; N ecircumflex ; B 56 814 254 869 ; -C 235 ; WX 0 ; N edieresis ; B 367 812 533 913 ; -C 236 ; WX 0 ; N igrave ; B 376 814 543 989 ; -C 237 ; WX 0 ; N iacute ; B 371 819 501 971 ; -C 238 ; WX 0 ; N icircumflex ; B 361 812 539 1047 ; -C 239 ; WX 0 ; N idieresis ; B 367 810 543 1122 ; -C 240 ; WX 0 ; N eth ; B 503 -246 670 -144 ; -C 241 ; WX 0 ; N ntilde ; B 500 814 699 869 ; -C 242 ; WX 0 ; N ograve ; B 40 327 109 604 ; -C 243 ; WX 0 ; N oacute ; B 71 613 231 899 ; -C 244 ; WX 1120 ; N ocircumflex ; B 0 -400 1120 856 ; -C 245 ; WX 971 ; N otilde ; B 4 -400 967 866 ; -C 246 ; WX 513 ; N odieresis ; B 0 453 513 782 ; -C 247 ; WX 363 ; N divide ; B 0 472 361 791 ; -C 248 ; WX 341 ; N oslash ; B 0 459 344 779 ; -C 249 ; WX 417 ; N ugrave ; B 0 504 417 781 ; -C 250 ; WX 227 ; N uacute ; B 0 477 230 790 ; -C 251 ; WX 234 ; N ucircumflex ; B 3 554 239 781 ; -C 252 ; WX 1027 ; N udieresis ; B 24 -512 1009 849 ; -C 253 ; WX 617 ; N yacute ; B 10 63 603 686 ; -C 254 ; WX 617 ; N thorn ; B 10 63 603 686 ; -C 255 ; WX 617 ; N ydieresis ; B 10 63 603 686 ; -C -1 ; WX 500 ; N CR ; B 0 0 0 0 ; -C -1 ; WX 0 ; N NULL ; B 0 0 0 0 ; -C -1 ; WX 638 ; N c158 ; B 0 0 0 0 ; -EndCharMetrics -EndFontMetrics diff --git a/reporting/fonts/iqraa.ttf b/reporting/fonts/iqraa.ttf deleted file mode 100644 index e15a89549df8e05f6cbd27d4740a49e8057ca18c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59840 zcmb@v37jL>Sua|rs-#k>N~%qzD((ByTDv8+)Vnm@(>+VojAysU_Shb;<7I5eTbz)6 zB{5{VSx7=|Ai+RFAR!6KO9+c!7G5Bi5D3pKfqQv89uO|~{Vv=P;F0Nh|5K8>dnV(A z*vxcSS68dmb-weh|8FUVFbtzGvkb>PbKS{y=Y3y(Xxs?PvZMm z;rsp_7tcT3IDFka!+hg0hT&dy#}kibdoOREW|%*{4L|?--4EY$@jW;H*@y76*Wvp+ z?|I-Qci;TKeYMCizF%XQuiSm%&WlfG^YtIc`+b&S!hs8Soxk%B|LmTB#cRKd&;A8m zVE)bjAj6OzzAs+5_}G(;qZePoFwcG)@A<$358ZK|Ir09#VwkVtJ-LT3o`3RT-X%YW z*WZBGXCFL&@vh9VV;sJJl4023!w)_B*xg@$=P8Ey{deNppFjM_T@QcrZ|k?}|IyEB`dPZ)U;&j;C0S9IJI~181(pdgBPNLRU-bSi{i`Nn$1lclfk{rz30`$}a?Ubg z=Dx`}$LP$fC+9p~^Pb7Mk6B`Vb8_y-_3fQ|q3=ll4n6vqQz>CSIR6N9g1HOt@;LJV zE<#pd3Jbr? zmgo!aS~%MrgTPxo6Rqwdw9f#geN8b59?|j`m zZg^Mrd%v~mUD@)^4|vCe-tmxk{V+YpZteYmilbVC{2col$fUrmjuHazGJc;+e7wW4 zg5MzwOZ*&D#uh)(9@xxqWw=7xE0&hjIzNh*ueM_73 z)dvNx((89SDI##4s2TAW@|E&@um1tH!X={}b}n2&ek@KI9+Uc}bY`*$6GueJP97)9AkH4>8 z{xxx}}62ITVtU@kD0l1(~$2 z`F%cDRb(mP6Sh*xh{5|fHy(?ctdE34K~7{6w#6}^B9;LXwk=9YoZh!QE`A07#$W#a-7t7e`|{_>yVy4{ z9cBQF_KMNQsMn3zy5(cseG83>&#h(LNLXh|)@rQp1V;%xH#y?F7GI7UtVrxnj)w&4_^)_UC(T(vFm4hwjK(vz7fxEy#zo zQ(93njhS|$x-vg=ELk=ru~d8i^^ayGalW|!9SbEpOvuV?zP(b*iPb7$i7)-SVI>q0 z#s8LxW)??Vjcj;vk>yx6ppkRGD;-|hJ}+=WcC}K3)5O6L@Z^K+V@!zAU|}~$8C7$X za9B~?biy?`H^?}G?dV!KNX#-(C(MoYllGJCLS%aD^^i6EVG~~nM?0sFI@T^JD0c2QXco2 zyZn#r2f_D?%mL;M^N!KMd3QMpkpL@4C^D8#!^@jf~vN zBI^>yUSu4Ww4C%&C%J#a$*wrH3S&nqB)Ox6y!Aj@@t-Q9Ar5qDIJEJFZu8CuvwPNR zkrq~cebQGaT{Dk;4HF@1MY|nrsYSKRM8gayJFIb7zqk7t9{XJ>w~6gQr&NDe#_DdyAJw5f;G^nC|Up1)<-?0lxU5VYf#GIL}u;$}oGnLQFB zi4R|l7^!TF=jGG+gfVyDa4r^7!YX-{=Hn#aXRTUPSCoSMk~3#=<&{V8IyrlI#xINf z@?5{J*B7*Cy>au<(Dt%Uq-#WL?W#*k8Q%zT#!b~;8m7PL3B=K_GPnZ%Rd+6{sPYCe`=-EF5$RvK-Qt3JF!$_K3fTglz?Jeislm*1)FDUqq$lx9IX$epum#-i^Nc5 zju#Xy9AW&-h3)UKRrbB`njdA}z`Tq31?GPz>!V-z=&No_*%tHBr*1ruk`JZi;5!1t z)*Fj~z>56yit<)dO(foGepdgLk6*a+mW#LDa`%VbFMP)Rg5rMRHScf(EAEk$D<^*b zwXW*SJ?Y+e_t5vB-Fp(gXMXcHxR1Mm&HHbE{p+4s`Prv`>I3}Gy!(BbcVE2zQ19i( z7mmEuF+cf6r}cT~J;B?ZkGwzo3FkF0Kh7QdpkqGf9B5s1diQZ5W1CFrR^PaRSPNG0T1x^MIYpVs6nGo;pHzlq^H4zA%XD}Dvi+#N*OYS1V*+uh2|t6F*% zqUD=w`MJ>Y3>N`Q$E2{Tch<{lfCTJpE@j09zt1uvajWSM3S1}{4mRv&&#bdTS#GK+ zE7@3WCwud}AVMD~Vnhrj0x?~X6S6v(k+OzSHzOG-Ref&jdeHS0N|IRynx4S3oSBKv4)Q^UxPrub+Ui2Qv8kC(g(sj=`*+oZ*#g9< zTuBqFpl}(skJrFvPGm2`Mg%H)oF{s1vRC#X=@7KMDL~F5R>T?-t4;g`eB%4=ME3nc zAI@Z-t+j}clWp5dS@q@O;uF=dDA>hRE)v(^miYW~I@0jVezskYL6mc5gY#E>0YQsc zmTilyWR&M>wr$uqtytDkq7yeP8CP*@8|Iv@G5s+5%yYFMgz za!69X*Qx;#u8yV|rdfDZ%qP!8BdLHM5CSv7ROI8axTZ+D7)}^r#m{m|)aX2NxDu8A zk4Vyndf=dfl6Ff_xsTtR2?o=(&dQyD9J4|qH}t-9Q_{lD!}&$a1I^wAAyla*@h(GQbUOmF;CKgF}DF0!@Jr z{vdfR`BQ)o?;9Q7KX6T3V0;3T6sp; zRwLO&D;!qkfRJAa>m>v9HUpyU*D8KZBwb54xy-BuU#1qx%!EwcoDYa<#0vW*QI|te zIqYj0pn8>gjC>kcio_flmEo0eeisoT$5?*&e+&tVEQdflVt2TUnAn4Erdsats8nei*B3eMwdjYZ>V}{bAt>EA9~2< zy{G}(BESGs^GlxYFJD(NMfN93RJdugUOG7~DG4g&vMb2GM+23mG5IADgJ%jEg9>ZLKid73nXu!sni zfk9O%T^~=^w?^iB<;oyxl6U0~hZ@z^2q2cyzxdwpi5 zTF#1`FJ$Rh*!n#)_L;=yegMhbj!(`33q8QRXw=_~$85h3n^P%qq||QL)V0kmVbkRo zodv#;uRE1yqrlaiimoXC|rpCL6?13pw8DOy1A@r>Z#)P-|A*8`K$w;eva8{Wh; z`sQq5uu3XDiU@!qU@7s3YQ!Jb5TtN^#jJ_5v!!r&*5LosM)}^Yuv9eUWU6~`s17gA z8rF3$Yv3$;r^#1(H3T^-quBQ;`ePD&v z1a>i^@YINAd;*T;N{h5vdM7lLg@q*_@rklxnlW8d?&6(_tId4Cu%%X3R!EJ~>AuUKVO891i&-4mrKlca z^4UP9=J&fZwPvHl72$u=JNED=NYq$?PeKCRb2~%tc`Q!wxVa1uDta-sM?-qw-AIPR z(PC9Uuh^Z1n378BT0)Y29PbMnvOg^P)#z4n!8s6D4OI%wDk>p=8jIVJLMfq2EW41e zHRsnlgL4PEiIkCU-Sgs`?ygy3jy;v8Yq%Q}zYjLA&eTV0wUD+=9VjGYv*%bcrnbjJ z)SaULaMullF(rZeMCJLx{7|6AWJstdgV=(4PSnAoXXL)zLRec#&k&v$1CpeUuJ63$ zj9O+3&GLaFmmd|jT8X;|ERSxc!=e}phr?224Svo3i(9wJtZHduEG}zGVWS+?qarle zqfC_i33(qfI60;^(qe*{P9?d7%P9^c8{DRcnNqb3#E;S$x0|P|zXRvc&?-tJ?P)Ny zOid^Glb77FT&m3$YqN{5ELSuAmYq&$uQozq#aj5*ZI4E+cKNC0l@~v3Rbuf-vs66F za)JWtJ#hJRRQhl*ng9fypG|l4OT`L#%1N$4`q%B6hbV9MllQHgb>j3P(% zVu(jb5uhJ>3el(}%JDHDKLc|b1bS8) zg;d6hx@nCO&I$gpv_smcB^Z;FqGQ->3KA746)7JKq8ZMEeEKZMZ_b%%#jp7kL`7=< zsP6Q2tLh8-gL-6^4ZeNz!RE_v-YOK!(Mb00%@1DxP<`d~!$xx0yGZZkfyNt_t)=FCMU^Zf^|XB5(!)U6vDPk7uod=2 z(6k4c|2#UpF-ImW0FCVKFIv%Iph?BkbYx4OLKRwIV) z7VM+aB!D>-;m?4>|mPm8QBlBPv8r4AoBJ>-_ehBK`*z$Qu>uzv2Ar^#U44h5P zGst$RIo6PM02|b*P#|Nz2L_}*)j(lAQgwliSWzSA$qZ*H97Q;C$dU{!kX2zT2KmWS zrmv+#$#fuAZ_JcqS|)y^CdMO)fa(v}k|}<0`|~%{);XVSD`Jo*-QrjRU+q}3b6oh=qVKd6cN_VP@qNqgSn-Wfzx1UuLhh`#)u4t!pZ6>ae$EEHfpOCdi zToJZE4DP004*4>BAH1*4Q7Rpksp|%?+R$|)z=~{|V_gOiH&Dijl^sKh>a$aH+T*6N z7S4<@#ay|~c^a5nIM74z3@_BguWv7scV;TBWG>uGl;SskEch$+g5Mu4CQ{3T?4sMw z7j-jSjVMkdS3Y`XL(`;S6a-mX9YPK@<^=gWSOsJ&M>fwnK0lVpIt(EU=lB`Ip7TvT z44V03#y9x6FW(&dS;idiPgJbqThn!Lyo00>VpL@C7(&q)(7+E>_hGI-lTjtGS~qt>eeCmZ`~nI;I!N zSM4@Xy+lzEH6de%XV#m8YK+L1URbEibJA+g;DSP zT8?pY%$j>=*1huvcOtR33FMGE;aLF&N+HwWD?zNhAiQfG}&9SbW$FM>1! z5CoU$@8Smoz^5=Bp6k->0Ii|#SZ43<%>?{LyIrz!oE*vi=!pkDeAlTn$Im_a*|~V- z8?U|dT&|rTaC0l%Sc|Q^EK2WT;ikrR4ilUs(<(t(w8&XU=l?tl~-AOTEKK(q=EWa`@tJKXCg8JGECn_T;-~^;&NBri)Mf)+6sYeC*7|sY5Ht zaP;N-$_J0FE|pei1BK?zqjHpwXc1dAaakr`X@q(@>-GH)8KukQ;6 z{5;DXTarX11`pI~Tl(UbzPY7ex212n`rP5QRo9A!IJwku^Uao195}1i5$7b}|8w~o zDNc3-c8v-*{qXYIG^Snw627ai_o(ct(jIH4Q$@N-m4Ss%g&?+~@i3@NU37x4&{Wt8 zU=b5--SMbS!v;XptJH0`(gZFAGEBI}z6r7A2k@E79msyYkklhVDQudhKChSyL8I1C zvY*TIqN&+xfNfWYjlaa@=eEgd@Gg>BR_gGb$$c1}L zlX?u57x)}2D_+{k+YKD{eyA%HOWJWqs0%+;pOB^7&wATrQNsb#!I^@o@YI{{1Dz~a zC?e{E_;}DKH{>T46<$iOqWEZ3#Zlctu){+_;}lkk#%Z#O^<%KpYx}7E< zqKF|&hGCdI$|u4~dG=H@V#<;xa4{ojCeHGz01G53p^}|?gKU8Su-3=wrh+pPw0?$j#Mwfiny%A2Ot*>CZP`cQ9W~rq@OX!o3Ek z%i--qvLIVQ(F8EX`Prwl;6dIO6##$G5V-QKnVM zMJL;N>$yAcJbw26+i&-F^X}Upxc|O;`HKt3-G`32?w#1jbMBqZYi#5ye|nzOc6Hs} zZQMyNLBe)WZx7tw6}4-_+Yi-V;06jn40~Q?7rGFY9OVKMKYVx4`48L5N;q+%k+x%z zD2K$ZW(0kz0Wekw{s(XAZ%TnsQrBfe$i++`kuop(WRZo(g59ldUt+tcXB;vcz?UwJ zX1DgQj|LelxG&AD`VW{J?!k&{F2LVd?RC0t2#DmYqZS-{HLzKIl33$?n>hMZ8`1=# z=hJ$Y>e;bv-VrV8nH;pRH42UBkQ+BMKtVgZCI}J+Kmsi2CFAIK2wPyY_ZX%q{5nr} zvRw|SdQ=J)Pl~w%(&BB!r$$eMZRJQ(&xsP>Dy=N8r-ED^4gJM zX-I9%0%C;^?%0?j3Y%-SfPh($so7f3RiiUNz0t~oYiO6TGW z6YOk!_cZ&9&~Cc7*x3}Suu9jyRchG^Vc(X3PEAajb(kwwg`_7yI04*knLTQub{4tJ0g~LM|jYK^32FXkqnP#dU zm`|l+sRs$dC_a>^F5K|4HwEYWLEaw_LqSUtc+CpLvugNV2e4o7VVcBX{|c32bIe;t z`wFJ$=fRGOY}i~rpDxMiQah$;IJTU|Y}={V8jV^aW^-{9iDOr$q?-dil$OPOgYZ*2 zdFb$p7frNRkZklw<;A2s#2TAT&!A3V#y$Jr;lZ|^-t^pRFGElDCI~bnhDlW_>|xsv zo5&Ji`o|k`FfeO|5y}Kmg%`ARCFBdTK}ip=_{ReQiy2W(_p$F6B{>;31woVh0)k2< z#EX8^c@VO#hfKw=vwS+bsn%Pv^_5!fO+T|iJ@5pg%GZ!DA^IpYOCvj_Dj|`{KpvS= z(G`N}TtwatDM=fpUtS`1FGp8s*1~g`J+};=aht*uY=)zdQ@0J5je2I}HOH;2q^H_X zY_ylK8bEeDFNLLmtRDYpV67;Ib;Vrlna~*wk_M zyymIU;ZBRe@tx8X%9ZZ#IF9l1D5rCq*>AaPFaFhCkG3*u6~4 z;v44go;s>aDO>QX#r5kKZ`_B%cEYr_|CL;a`tmAho2sUxVVNN*cZP9i;t4m8_}Ve@ zs#+z+u0+6?QLRBE&b^E=V|a`K`z6pEI{1BvUJdo0fxlB`2y%~UBFkA(vH#Y|RFlz_OAO{XJ)z@dBh-&Qd4et{#oP%@T{M5XW? zwKg6Zd@r(Jcl)&ZM!sSL!Qc>d;gFBuz4;Ga%|UR8>1( z*6mhM_61PQ!s~%zJo1riYA9A6d)gsE3ZtCI3$xit9%Ge>n8n3dYK@sjqq$8=%k@m_NkT2Keqs^5kF zqDhKz{nIkBgfVh5AT!u$xf@f1awnuK1^303Ttq9WN00sK9XI^=G477|Z*Mgo8Yk-h z7i?RAYeaHD-#PAZIJ*CJH}q$GTc-zSUVaX8H(u8&@SmfjT#`v3l9Pd}p`0=wcS``Z zTq)}0C0{y)4DNJ66gsA&_r1%3lEYd`c~s>7;C1|;KWGVm_kC|3(ngVleKd!rnkZ|M!&Y3W1F=ivaDSQB%%CI^6_EfpfzHralYJJkKe>46JIcn&!`F`X0~tdK zS((n!Orex};y@y$>e*l*C`l3B9DVg>@^dugfAG#;?YV+{>}o(N%kdpR-XAmUe^ z_0il_9(rl*^5dw{%6NLIhYFGVN1b_#S}nonTdtGVaBZRJ?yI6;+ifLL=U8`^;|V96 z&!I>g`IvKZjfD47ibfFBVcV@D@Tw3!p59Bcec@fjHL)B+9zi*UPG}4cxP&O2e+>80 zTmqoK0;-vSeGduw=fZ(p5-k1~C%0bn`(QyfAVd|^mHOFF-@196<0HWOa?AZnHzOfS zw57@h3Z<2V5hDLOoS-E2)9sme_GKZEOe|P|!CWzUF;iHz4KYBW?^>;K_g1o4EFa11 z!B{{MSRb`P9xg>@5p6v@LaF2a=8}IoonG=UF8Mc>kRe@?f~f3p*E(~FvK!6i9lP$# zN&B1wOv`sJS|j!qq}l^Qfov8f+Kyry2g;Pkz+VS#&tSa(u!&<|5Wuwff*>WdUm(`{ zD>el#qxC3vj9Ms%k&$1^8zgU}+)~DkN{Cl{CC%XtCy&Y$J`r{(f1v_m8VZah(JONG z5-_xWb*BP+9IH;03!(sO6pa!EN}=+>HZv3Cn6gr(=W&w7{&?{~@dKCsPXDo}t;c;N zK=$9WSgzP2$B||Qo34|8-d7oIC;h(EgZ0_@;A-xX)I#;nULuhz_)m&4MFUUhp5A{i znzs&)GW}{w4KUSyuj{h?-n`2;bB+{@*anLt&*?%|#_yPI)L$|5vBMU3kRSC$6dci7ITEkpI3Z)ma zPjzP&PS*zd>$VdrqqBFMI&o;-FnDPDHI*keQXpn}wigM{D)pznu51fLU7GE88DsiF;7kZ{%S#Ra3#PX2JX+&J5eL_!o7j7P?}U_gw<<#4EM zrM~_Hz@(RTJMmQ1{{z6m%A0q2@gp$xbU@Wa|g?%!U3NnCuM z#t^b>Fdrv>i!vCC#+)G%6#M}vVi=LA%WH5_RVyU(i!}91i(hv8Yr-mgu1ZDjU+j|v@me}OACvxf35^4+UA&ZeqWWyQ;8XeXt2N&*9-T# zi}85cWm!hn5~`8>5E|y2#r*}c^h0VHG-8xS-~IOU(lv0LFTb6wk#BbHJ zU+yKv(Q@Lbd*V9Or7rkJ_{iF4ufO3KeCmZj5jdwTh1|LJ?A*y?u6x3D`KF^}9ouE2 z3p;j~x~1c^50uF`gFmFz4U}c4ZugD}-s9s@6>=ktum^nt&)k7N6(3Fbd>_yg`AO92 zD1f7B_Mx{1z`?XoGD$lTh6Jt`pU4KK$}tZFeWV%Bb=RM6CG~;;2(-M?c035Q$*ICU zkz{uLm|fofs9((9rA83{iUGSI$5=j;jYxj8qzDug&G{#o=#z^matm;;zW(fdV3gbg ziP|ARqRB{k@ulU5@Mn}(K#c?gfk-GGmtsL7ND&%=u;9hZ-?{ugwn!GduEzbNY&x0n z()+R$4Dcen#zY*o{uE{e&Xd}=ryz)W$)2JfYhaJ}vXkU~+h0HpIKbgfhDN6zx>&sQ z2jso3YLv6OVMV2A*oauOOL8i2Hxu!{$R5luy8U2K1@g_=N!0zZ^`MoCRzklx^l(P* zvO%)!OCdAGQHUU=PZ1dwolV_wihYV3VjJQ6)_n!8OS1jHng1W$J&^jh0Bia%`N$Zx ziTP0v;pVcc;xZ_ybFxe(9-&avZYAc9m`&wutnKjTIaFPiXq6u7oj6*sV|C}p)q?|k z1K{k#e_~oD{8cVUG+Fx%bUN{Vb4ysC5o8~`$Vp)!kVxJ5Odl)dR4FZo`>`{bv-(o2 zL;X*cl*qf;+q?>f_$1{&Eo4ADFQzBJ+b7Fjd+1a_eeSeA93=04vLG`woVI=$MG+G;ECSa zl|0b202t5n=B}ixSCcuRYPYbJ{S8W4cq&|wRY6&lcKFOK|KWU?M@i%=y#7ni?vPh7 zd~7WR;&zi~il=gQ5SRC=br*K>0sEQvj*hI&SIebhCOysx484>Xq}+1NCfn9hxirm`RAa zM~F6oZcu9M%|Wv$uxz86u1@A@=rmuM2hd52>^i7jou_GM*dW@*Isglr>! zQw*40e0hIcMcm~V<1?q@zGwD%GAzL|9O%xMz$E>-X5auk_^0awBk|g`MQ1Ve}s28$q4?3IB_)VH?HjeFUa>~ zk@uGZbx#t z1-GL)DfCt|9hs}`#3mEcLJ&QNn_5Tea*xg9j%mcnZm3GX8GGEI_{ht^P`nMD0;F?| zK7qk=n?v&Sqese7uY+Lrj-xy614;?)1LAX=y_3$n#*GESjpMF@{BYb=@SX2x-cX-^ z`K6>!PIx`mCb}fj5nY8JZ=z64apAaA!^Sx%*bD^D8MWQ~8T6EwKLcIR8oLu?L?`x* z*5N|Z5Uovc+5Yx3BrAg^=^ziZb%NS2x~-gn05onzH@-N*T7eXM^>lsqR_rv2-kBK9 zBpB%Z_kiLEEqzhKuBjX#@sThAuXpU3@vsD`CzJn(o=VY@i}44dV1(Zzp}d- ziUZIxrPbb=&0V;Kx_Z;wn^s$*gaGB1>)XFVvOUZ6ry7J6%^tdur`3>JAX=v7kc9a% zknk9L0+GboQPIa60`4n}x-usuODF`#JO~420uE!S%sIYs6?W#~r7PpQ!!M0n_c6C& zn(Oq??Feu)wEpeM#l_^^lpBYF1WogQBv-gPsW$TZQL5yR$wyJwJr6AOHKVnR5>Dk? zdQTkn#C}iAubASB*>dwL_&*#f?cZ?unVu{5J9Q+iot3`B)SZ>3eB>H;PSr5b-f6Ca z%Etuzy;@gLfdP%TyoHQ=ihyg3ZC8alPAptQ+R}yM8xO1j?&ksAeRMCP`;ex0sqakw zIIJ1bX4ELwbLrCC-yU7EFrcHs@qR%3k;qIpT9Z*u^KLy7vi14uy|!Vnet%?M4{`q2 zCK4q}3YvB}=!P^gB>4qbMD4K|2<3|P)#Qqn)68`FJcSGR4dx-YtO+jA4NWpcwwT=lM{%qXRm2 zwWilwh6<4ip!10XGvu-JCcJ1UQg3Vn`SoV}aLp(r+fTh|vlW|B)u5Fy(fHg!r?Utn zEu}XX?F`CE09C``^ofmXG^!hD#uSa1KW=0dnuBAIcl$Q^7jMs^<9tSV40RLTNN7gF za1&V+d{`EsNA{fDApR>r4zCt|2c+HIN^o<@KUT8dMotr<*i?A^!298#0n|p!^R)?X z{f$)i&=Do+Pq;>}JR6CH#ZW68Rbu2DC{S@JnZI=?TkOZ1o9y9gsB}omNg-9rwNW1f z9TP=#oI~Bu3Ug*u=_Z14X33|9+XdG|EWCs=A9uFZp5q&insKb9fVnU&^`WzOy!dw< z`g(h@<2y~{a&=nagD@9jcSVWM_eQ$#F1_j=T3iQ+GRo#y-Yx{CVxuDF4hEObS6;LA zbUR_tlAh)yo>jWDoE$(rn@cE>Dr$NrVQXW?rnNk`Z=#mx^iAVBp2ftZjt4&y5ws@u zqnEy1_G}O^<-V71%P{MsbO!Tw5dEN)Mn!^(5BW1`+G=?P^Mm_nU`pF)rrDcuWI7Q5 z+FE#3bc%692XZ8S=^66T=L%1!{chI`P!Y9V{s-LYf)_~=cA^opyrvx;=zs@cY|}8 zbc#c$hA%GWp(Hh4b^R@;$s;p{GEPKRRGUmA8LCcb5JUAnrc2O{kzJ3FdLs~zg-J~m z$yHFb4Fx`tbgw8j+8u_yv>1#04sv2NcS&x&^gp8kMU9s7to6n>A|yfNujh_bgT8>3 zG4<$NGMlIQutGXEv+s_bJQ#FdhbY956fUIt7NxHOIT{s~e4 zld#m(&q~84-Z5&9RXAKMp%e)Ps})x*xb_y+=b2K(DM?N`6@b@;`i<`mU10!etBf~O z13WfKcum<1G^l@%uBXOt2i)grSvT#ZMQ>D}+&57apWl8tY5@unH6Jmf@p7XQKzZmv ze^@mV6-f-S&57f5smFj(E1Kr9zo-G8{KMfp{_& z!;llc5I;H`EET?ROo`Eys;i+nXs#xqDh>^+1Hlh4fn{aUuFa$FJxI~5aVPgO_M|@2 zELn9EAvY0m;*9M(=fA3l8%&0qO#sfG*85%Ey8TDjZrfgbu7+*Tmw{$1VRmGfIX9Y} z(=}N#qyCm01>l~D$2dTO_~J61IhZ5aWoyn1Q-L1|SkgCkalG*PnhJ3&6}aafiUmsl z4n4??en=I#`0rMJp!NC7|4JSuS$IK%k)2gT0uzg-P|v}*rGi^ZxzVWQr^EWNmhpe8 z)OXfULcb(s65A~Y z@6Lrou2d@Kxq=&;tvQ-b{kEXwarxBSr9+QASH~L>H`U0LedfSE6ifr*egMCdi#e1{ zG5=nsAG-u!{dcnd#D8a#Kq4B)6O*sr3IeWi#op zr0j`ZrFBvz>?#V+e_)-|snTYC@Pmqs8XMK&`@V0X5n&EoUSsYDF2OOGkwh4byM*Os zN!@em#x>WtHJW@dw1Rejk$us3f0yf0t#=eS`v!hj`n*L}F_Mex z9X)sspmEl2v{Es&I0v|H*}VgmG+Z^gHr(*}&{uT3BHq5HMGvIPaZ}L!sbo5&XhyNJ zK3m2Fn(O39shpdyr{d=IP4wxTrL03&^fIjI5v-_3>(Se-VlrWfNX4Wb^gLF9rzHrf zlhDMS*jdfWp2c7-^MI{B?ccDw<;oaJF1fIpFcnN$B}jGfV!Dr(F92V1R9#)PBlT7)`9wSrFc2e%!ksT8Tbj?jE%UoqDC5jE>9ERXKv%^J1w~Y(x^VxIXB+$*AtiTEvxQF_rY9 z6?&VK59poUj^3*R0Lr1b{e>$l%+bAw!W`O<{Od$rkkvYnA6}3ON3nd&~p-lR0L_t&Vr6pyqSMVk6y1 z7S(_tB#W(Nv63w2lEp%@h{9DPqU)Id>N07!k#vd`j)INTMnmdl(Pp;kR$kQ~K33AZ zoorqK>r`QbT5U8NUTd>=n$z~wvR=Lanvb3AfBkzaTCZY>{psX{CD;eAE@}mjyzTOx zD3zr=JIB0jv{5kqd{{Qnrr@GrLJNTBV5eWf zGtT20-!Ys%?)aNB(Upx0pw&*}m?sXP5A9d*U85`q{R-W|)%^+*?N^}fS|)rE+O1$3 zs$a0KQ38D1xLF~rA(s_Jo{#n_pv{O7<(h@SpwNdvp|MmC(5E_@%V)>TQ>(V;o6TfV zn=;Qt*5{f?(d|pR3t$}ZOVzEndte@je|9h(zAzqFxjW9hby8FP(sHjGtO)aYZ5jJeiEtDF|jhKQ1H4mF?T!_dNIvJmz5|e~TLD5;`I= zb~j=OekNpdS)0?{GUwW*Vj;i_E@Q`he%}<@p8}TM{6w*6NjW{N3#J&;%dxrajM@l9Vu5{&%ge6l^XnD{ zsm>ZeY|uw-L}ri*AY=LXSIm%GLERXt3#yfzRZKVabkmAP(@lV|O*g&ZvNKh;qLmYi zF57j2Qko9t;82}A?Q;T#ISHvel$^#HlO=gJ2!b*-LCffTLa8oh#(PD&NLNcRiar8{S2LMRcvi-+WhtJ+TN33>i_C(@q6FIfY`#i3I@V zUIV`0voyM}@yG7&Pdx}MvU(+oKV2vVzph;Ax$>agD)dXgxcvq)=dCs#uN1RJl@ml| zXSw<1;_})`ad|sDU2?BnU+gYiv1ab_w=cgQQaofb$WwID#ndQe(m(~6wk$ydyP0&D z3ne`3Fp$wxaRrF5>EHK-|AdLr z#S9*ip_$!6yFVXaE$mP9i;aWXBbd6Y^dh;89VsTn{NV~$TSsO`(*8DCG3D;MXUCDP z{d=;ExH!!WNAZ9ZGUbqIx}l`Y+wcaNkdM|OOq(jkmfC}dc9fM@F_8hFJ@8Vp6sJU| z=QJrhcKVQ){d+TgDzC+rl#nOyCS8}tGl1wy^hOJ4(!!!+>&=pM! zp_&cUzkHgVWquOY=E>30QqsqCgq9+-B&AkVIxVF`r<%Gb*G`m61+M5C&6W!{WV7Qa zHAg{eHW4)DuS(70)+bhn4r)gc#aPnD47t~`V!xJ=sfAg^&LC%msilagcbCapba@$$ zdakHE=BNdtQwX>&JNxc@C`_to!fXV6B7bu6;)(vDq*m0j@x}G(Eq=q7?1)0NluJuo zARFn1jna`t9~TT0;3wz_t|nr+gG-&vqPWn?wTp%yRhK@|me42?Ad!9{8o@YYTB+9F z{yWg;r_ocei3cbB^yv6O45-+b;+e3&8w|I*wOY8p8SZa{`}NvPiEnfcZAQ>Z38G={ zAS_aeFS`-L#OMl;jq|tqPPpxaQPZ6a9@xNm?nyV*6T=m6R2>bqX$}p}c>Xc39Pkmwua&QsJo-pkI7UNgfS+gc1{v2SK$$Z|LtYlbvZ6vquiC zc@zzZyl^5_ulIIon$1@?v>-}Re92`>)_4rnU>XXzjj(m(E!9qSrrMoZ)f7T}eqx?& z27^8p6keXoEQyPaLc2gOAR53RcNv{YA$3p?WsJ4px$W1NGBX8yQhD*Xk-QDucovgh zPN8Ogv`m?Dv^*}Fzlu3&>Ab`w+#6{>0pidJkAl)}vo$H9-{Dl(xE7~UTi{JVhkG!k zH%!Bo)q)eIopA8pU<_ox@%gdv_p7LXKHRa|=pp%o0whTb=FlNfA=Fp$X?2Fy83NuQ3_8K*O7@dD-SacsN8!jy;CYlu2b z3aP=|Vm>x-Las;660JO^DxLOJh6!dN!B0gX)W+ixXazos)XA^1oZ49|_)+{H&*>T*rLQsr^wc7e}N9)A8C1=q%#?1cx5V6qqawHLBE?@g4II34E| z%+YaP@yH9=l?nE$W9}Lq-37UL470nYdg4~*7e*(q-y;^DvN(41G`8X9lhx|_;hQ#t z*q77mhpRJ3Ye%m?dG6+$Zsc!SSa)w5@61v6baQ7{4nwnS?GEl5yG|348E*)Ed<8X} z(B%_{cnmo1;?-Af%hZRw?fL7VYk|4m(5@GxoVMRJ1u(Ck)b#>(>z|&pl@fM1d-pVO>r!EbWrq2U9;Jh`D$(dV84LJ#c_f3P0f?bv)8BNbCwjgF&bQn z8!;=LrK9W0cf6~d+&c5FwY-fH0s-aV#$DIn|074&@mM9Z=e+q=2M;tzl#k97sDFDe z4yUk^1g4ds*DHn?TNd3Q>WxwHfMK~va|+iNCq%#kJu*x&-xFHr&ZF45pWhp$f-?b0+Z| z?x=-?Y)QzCE#jD{)OHreRWHuOU2?`?|5CuII=`*m?*~!l}z(hD#z&- zrF02A^J1)H6_n1mTeiroCfv1Um&@kdNUQ0#eG86Ia#Y0dm8si1DdwCEKDugMYw%|c zTDU_O;5~0CjfU}QArcB%x^D{)zlg>facB9kqH2K% zvZP^+BgJAfTd*;U1aNpDDB4;k*IYP6{njuD@H1F@5Y-RYp%RNQA=wcENWDlwj&Uhk zLBMkWrJNu-^I4QP@tn7(;I(lSOP&7l#48?;Jfuz$wl+*rM|1p;4AMo?og+VU{NQ(q z**^IDf42644-Cjt+b<*4?LP+n>!AM|*;A0%l~KGE!u9K2>>aKSBsD z6iH-_a4Z>$OI^&xHjGR*AG1QbT-jPl<(48ue#B)(@+ z&_ok_XN>Mp*b9W5jZ=F|<4ib@@EM_)C{w|d()b7+t=`k|yb-ln8^njaBW5SH@uddRg}n_myFq=U9kEyNxSjJy53D;gM_+N| zZ7-^B|L#h$d`HeaxZyk)q7st3{J+TiutO4qXDCP{$or`F;ZX35AA%uJs|4jkH-%=& zd>9Ysfp)lkuuk2`nMlWbv2x`mGW@O1C!cP{GszHpO1<=PHXhO&K3LoV==K)SEr%TN zkhyu(VDfD}-_Gky8y{|-J`88UP3R8Obux8_FVRjvJVPf@xnkBa)#&v99$Hd22A}xA z4UI75*nq|ZTY!?DfI^4EN8f>7z%Sk-NI**r|IJWtnhpVm#J0#Up$Fr}!`VTqVf(U) zJX(mf-0jZkcDemy^NG23bHRwk$|{}=l%AVi(&QD=Xthhl-i^9h?#63k%Cr*ksL|{U z&(1eGr9*ek4)X18r)bseAITOA^>{s+n=fbL`V!@)A}Ifp9yiT1hekP+KCmsl<0>^b ziYNx`gfS=amZL|(ZSISZo$?T&j)S4eqU zHk!vn4`LX^%H#@o&Zedp3yz9M$||a=6!VCfZ7YChG>AnpfC(R(%AoUs6QP%ABs?~P zU;qqtfqy$?$=2uoW_>v*O&-hox!Bv5ev$U#;;F5ZKn~nd3Q|;OykYAbE4Ql5%G&p;-m4mV zqcdq5XxTv;0f9k41!WLf8bm~J8^L8<5FHl~TxMMG;tnq0f`|^xpyTx$#~H_Ot_$Pb z>)6%b??h%+Hw=v5_dU=3<37)1_o>W?jEp$%Iq!MTyT8J=nrq6%9>_9@@JD1C&C9?@x zS^ar-AZI#$Evu+o%BHhrcQLd2z2t;TPr74Yg#@S)kLA2xz`SO}Ao)86rJ}gjaqwHUt&Su2 zG%67fX4^5H(8i4TkKEhZ6dt+14Z*unYf3T=z3G~p?eP@D-K{Mo{xLT@l#JU!HT&C} zZ`s#*!M*#}HTUnTG;Y3dV#3S2Gs=M(JP0GkU z=3(RQ;R4p7pSna!iI-B~3^~Cbm)hII!x`IvCvUVLXRd3{i;j!R8IRY39zIPvuhyXCOJZx{%IL(@D32dRlozr_OUS zpBYx?{@KmUe7EdcZt|g_AQp}3*+ejXyJzZNVobSVeZu!{sCWYemB~F&a!QXfMl<53 zm2IQ7)~FGK$x+5eJE$Jz$jpdNt60ctnNDuF*=e$@w^HXQThPT5 z7<=M_78oGO;5P^Fzqm1Ad!AzG^?{2O9p|acA(1I(EhQ#DD-Y-%++#jDtIqvmVBz7S zX}hTh8kAs*X&wrv1?9kCA}J4UXylMV@7%$&qOmB(89mF0N$PMVShStk z@so&mP(*2Y%SOV+;xVIRPEC%DmIn&4e5W{2Vnb85Y#!If#HNjt+QeM3z?Kqh-_{rc zo95>R>l%4p+o@!*d6T7?Vq%=(ZLU>IVIvHOH5}J2YDx4u+`|2_uQ~>$c2E~3sNtL% zBGW=G96?v58MuEWC)aVv*c+Yb9+7AL$uX@ zrXXPdKvzSo>tCj<+-)@tE8}_bSR&h4y_O=UL5O#s{`3r?09_Qkeu7#mNT%J37*8p{ zWf;%0IDUl^G9FO^K4s?+T@db6%k8b3)oWz` z>1%N4H_EB>b&yJr%hy61ir! zqKw%{w$xPKHj&Un8=J(|H`C)C;w>wCw`^Xr^=QHkOPzqTW23`5bPkf2iAIf%?sjG= z5el-3F6kQ`$z{RR%Iu8qMcj6^vU$^pCW#-`q{H;DkEgw%?_#K2_K4Q~`H&o3MCP0h z6d*2N zpo|p16Vk-=DpP630wb{aNE}2gy6O6ook}I1A`^VUGb^VmyPsSaxG~AySwZDnUtXh; znF-~8MF6P9RxoaZuKb!`W(TQ_-G{vf(-o1+Ly^3f^{+LM9T=_IAlWuRx9~$pC@46xEWE zuxcbRyE>a~dLgf%B&x}QL@efJrpJ!nkjngpc9)k=%qiDPX2DYu$x?ImbwgB;P$cIW z(l8C-jfz$uUpd9kDR{`pDn4YUoSm7OEp+CTPOdzVrLNUjYnYmwgma0p(P<*tMp^?} zsh-P1+T5AqbbGK4Pw#sP4Kr_EBN@i%2pJ$@iu$=}de|Y&ijtK-f`El6(nXN&R?%hi z?=Sq~pnBK?PL%n)y^;xfCDAQp;Ih0 zn+@ACqA6`5`sK7p}ePsO&0!1YG!`}U%a0f`MQ``2?`xO*%6htmTALT>BDO- zL0zS6$j#HiLFw=#H69SRZdyj{=-I|1seG=ye#dR6A6waU%p2dlcjHk5mu-DVdz0)LR8IK;^HD+b zuzzJnjCa!Y4%;w}En2h_BX1H#l|?#5V*kW2(sosHy>5bfOGd1@<^pkq6xJhRzz}XH zjJ=dgfMyDBh@k7pdgR_BNm9tp5F!#P zQkWp^@T^FAaZ*uk9bP})S$x~N!E8Reab$7hJ+Hpvo-6M=W@*co***JaHr3Ln=|@ji z?8MY?I!NVm<e=u8 zW&?)PuV)X5KGl8l%<1tJFR1Rls_74JSUuG>kA30J^|=Xtsob~d9yy<`-JUCsrJK2X zrh>e!)OT$}R+f9odN_&)SyQ{EzN|4sAe5?9>@AH>yV7Y-bqYqjbJTo0Yqz)TK58rU z0$yAz3@clDliZ`OYg&U);)GcCWatp;_7)akdJqu{gpz>Ef9O+z6lB%vgcdJ^#m%Ko zJG6`-x2awI8vM3Ar@YJ4sc@PpB_=inxrpsUDHYp2gT9M zq+he$Tv<6me^kr=b}gUr zxLJ&9FayI_0W$j8(Cm5vRd}(0F(yU&tHa5)yZWVWO|`zj(&tp&>e=TMoJu{TsJTkoLL>;x=FrHxGlx)BNG7zLnEB24j{MXyTQ|*~{fpUQ zgeZS{_1~NGwSqn1M5gzh^&9A#gxCP$Yk_!(iaX;2St8_J*bf~Z1NH-w7A1;Sx;wJB zpfXg%5d1&eOElC__dxCO`I2Es{NeumMGqa_Wf(a4`NI!>#X5q|49m%+(Uxh0VG&}W z9+vE*T;-{3QC5zWbZ|kvwp!0V>iu1kP;lHpEUev#85oovk(17+YNk6;@*|c?0AmCyoI)9+ZMAI#;TRz z3ghO~G@1lGR_v_9dAN~I`7uzrHN4ntq=KbI;9eST21&AJlPeN8sWr0RTk#<~)i)AK zzMwZ2=?lMl-`ZHDTVH+0+QB~$fA#9MgJ1lQufDlIO5n#jSq7myCYnrWsIf70g{AHw zN!N@}S`TqZ5)nCYa(i3QcIUFmc=AKZ*S^;KMBZQzd&*2@^wbqEN+#lnyO{R>(MuPC zm%lWnN6Q7qF;Vc=uU3>-uil{iYQ;|Q6Y>zvtbS4{&9>6Xc!XL|uu1ua)d!SaOKI0g z$WbLXV~91|#J9*RxOs7UbcE!9XmBH>)SYcK+jByhomJ-M+uNw`;)~?AZOP@0CCPknyj zBHo4;9$7Ed&Loz)fAC`u|EN2t_djvVw;AmFpSbbc@3JIT4u4^G%zAM0{^1K|Un(!} zi9THcNU{>!OOm`uLvAPmNsT=@2J!Qi)EVYNYRgFF6pnH&v>(aj?N}IDnal$@@WE>3 z((C4z8izzOMT+rg?z~sy1aBMh(&LS!S#YfCZLb*HIi>`4l-cPsF3dzt+pInw#9Z|J z%I+`h9fxwOacX|+wRhZ^N+b=Jv;xTHI^t7e=#wAaI*Z0T?wUidyQvbyy$DmI#NyQ% zxsI6;$pg!{wxhtgGov~yb;d{nm=9ex^EFW+ zOo`veYH1#*gtkOEy2`zek~lPzv}$j%35N&;f)5Ojncg9XY+%J#Us0eMT^`I;;o$7q zpWfb=25$ZRQh^b%;(?eFPa=pDogWI^2vG(Va*-A~lo#yq zHIU%u3X6f0?{OzPQg?Ie9`W^TT^eJ%f>%gJAua@*}x zqJy3Fg@yLUVmrOuhV5_H2rUy+szT6^Qr+F4TrQ3i?_4=% z+frv^I;V?>E=qc<+M1r7m}pH;n-O6~Mq8)`BBC|a+1u*qM=f=x3uN~>W;s&LnG+6f zrDl6>HlpXIo67QGPQ0rc?&9>?WW%iW;s9hhM#;6&`mS5OGi$bxz00^^hYpF@vG8iq zW0?P>{S)80-bhOM3bdAt9i@<$BjAbDC*f!@Akg5j- zGl-r{injVm@pvLXou{s%n+S&0xUFir^mGoWw4udfA$>~H^S#1E@;iAiwP6YeXi9xm zrxJ-|Bk;W%H56^#A11tcE}Kki6>$;-r)51;pu8HbGQE64!7msZ9oq`jU8! z@_yylSf&4JWhtt+Eknd&0>qQ{X^UL6rbag6?pd{COq+s=P*JNLjmOk8HD&qAempEb z%+ifnhBNjCc{xPM`ycz_V_$?SKlb^@KF{04)`_i>7R$|&uQ-rjO~5_eKmPP%FY8nF ziLLTSy^D_cJ#=UM>4`Ulb$@N*XUUR4o&-`uvNVBp`?YO z-)f)1XPs3ED}JGDPweYtX* z@~B%Sp`zvIwfyQA+zQ|D{lKM@$Z97uH;*WnK*@4qd?hL3m_$6S6L&;A(BqZ|)#`Q) zTt+YkSLqL#pT`2(gRW)10&cAxWF8sJWho7wPC3!;CmeC+bA$DKuI{H+f0Jz0bNPBh z@`nN&)|28jjM|ZTlZzqr;U3DPWZq;MU-9IVPp*fcQibIr@nz+`jBgzqdo`VpSm}sW z?&OD2zZ9id*|t!;h#;|aWnWE!*Irjq!5$;``{jNT;ZV+(T8kj`{t4F*Ye$o&Wby_e zFUdONp%cf|X~(T%+fEFOj^+lmSd0>cQ$y*}r1DNBC{B15i{%^dqdhJ;^*HM&!t@Jef-78`<#b z=^)3`FU|YO=167ZIv$x$V~dFSvI@w_Jm(SdVK6Sc5)@JZ*;Ubqby*f)=@D~6a& z*hE(^hLkC%l>Wt_?%~3&$jmd^kv>F=-v}ZRT|YiQFr8oTIPtg-+Z>&r+H~r8R##u+ zI0SToi$T(NO1GsPJD177duF!Y94L8Nb^=y+P?{gBF0|75ZEqWBq>rm4tz3d6X=&`? z(z|X&$*M2Kr+IQENjgg5CE8J^9W`Vgl73PzIaM$(-6SMTS&?YAXc}HsZaXrO3hMoe zj&!MHmzHk4=JE^cd z!SSjc6PW1#*qsB2olpDa6Sv;_#OlEzZ7R$a-x5*fdgVO$J4>9mGHg-_GiHQZHCQ_- zY^rT`OZ)}VuUR}s>dyKBUq`5pUORdJ4^Ex>Y$&$;V1DZM-ro24>%XV1NiIw&wm@8K zhLj&TW-r6}c^*isZpBw$ld++^Anp_#r>J?$R5Rw?uu5PtO6j!mf(A#m# z#3#`*VyH8ouUDfV>h)^$>8V%rdNp>%bMy*+czBNTZTwZPzq7XgoVtD2;Q9NjpOsyr zF$WhauNOa8FC-pr+e*nyxFVVm(YT1>6Cv7^(22&CGu7EOeC|4Rv$GERym8+D2 z@WJgM6>fBr*0DmdUH^Q3s5z2r#5+!Uz4FER+2+{zKr%T+c5sOSyLkH7d3sV1o28qU zaPZfR3dicWPFomIDJ43)rq}E)rssNeAhS`2?BB4|T)^jrAu3-Vsd1^9 zKQ>XZB0djSw26gc=p#F%>=#!=cO1IH{T>~x`6JRo6NR{vJ~P+J7+@+%}cYNMoxc9Sl{S}{Bb)?pv#mwuSNE~PCd zGjquRycoy5@|)TRp(73P+Lh&aMa_8{o@1Vt^0c(46+Nx)X%*sQ6sw_FD8HnGw54@C zr=7OQW2Y3`LE0OL8&hlMrEajfbiG)cDlgk(r{#pLO)^$>>b|wGOc3|K>Qv?Fk* zAI1@W(aVDiyz?ngsVnTt&3afLM4dC}Qfe&3C=hB9eO?&e6r*}tjKI<#D-q2iS3q-Y zR}l4Magvn9^h`WK@Mol+OT@KCW&lnC?1>N>dIi%GbG*2fa|h;YnPOBAQkGAhKD47j zJjK429$PFrx~b#e%^IDh(%56#1#p*CruBs$3`A14Jpf-ECn;^Z6R(xyBi({Czz?b& z0b`#R8I+#Cl9imIXHXi7|B{p+E+>3F*C4nxLJU;IPTIOuMLBq_ z<8FR*!_R3(PB*5kxawLF+wqNjDyJ1=dNZX-88EwgkGS`cj)pH-iO5RM;qsJZmT-)* zF8bV?oo@%fPo+{72no2HUA?gP8(SQ`Qiw#rTQr2aE;&a~I7Xi5#F^&iXXEZO(6vX* zowcX%EM{`1>gFsqc_q=T4=_lA4vG{FalXdScT)gAjew{b$7t|`-9ANsn>;L zjhq(2cC0 zQUj!{1)zFD`#U7P%|sc$YGuP%vmrK(RfOrOwxfTef)W(Vm*$HDK%-m{=Ov z)frGb-cqMZd6LfH){f^@2S;GX0JaNmUohqn@f=7KxU8Rd2+-G>Ww-x^pBkl}TbH&OVErXH(Dwrb7yuM@|T~Barkvnd<_G{dK`@Q{5r= zYLVwd5UUT(&&R6mSamj5-JzwoYJ`NRQ>Jfs@+Y=C^UHfW3o|=9>jp6-=1)8I zl#?PScZRigx{lLh+|Z*KhVk%nhevAbMh@>Np+0nzjHL;;Y-x;^4lUB%g-tssX|mEnO%=v)qfx_hoJ*l>$ci9(MpkNvmB}ti zUIzL-TxWgsC#y$Nq;(-&KWdhGx_n7UR zkRkg1q^x>wq#M|d<3MjFW!3Ed=tUv{jPsk1m7`(klaA$>kvyiEoQH>KcPuV5jZDZv zX}xjy85Y%1IQl16&hsNdMHPb$Sp1T(E5au5(9C9qJw1xD#U2#)ZLuV!L@w4ge&__l0)vhwWr zKTdm&SPZ>km2V*dl9`6PgBlHoRFeCU*2v8<98-4g?*82!*(iw^!m)+sXy}|JYHDtX znvv{v!HqQSOM4_ekCG{F(srZ|K_U)z=ip8xNeAC92vSHcN}_;mCFH4oBz~qPkRaLp zJwhy_hLKPc!Y~CcZ-$36kuY#1C!$64#B3>Bttl3Pru)B(F<}k@h^sHRK2~QKSS_oz z%r5;b*UBYjA@v~F4UJY0c5_SO^x2JXR+Qc9-zq=(BT|?WG8M{C;AZ+_80M!F)E_DT zq+Rv@NfH=5(_G_co^xiOb9#YJN&?+(bXhs&pVmZytDYeWsLCGozbjwWE<%@)lm2Dd z4z9ok3cMf`j;5YVIN||$1fx(59tuXXUPx2g$fTW#^g3T18JMb-l35I%cHD|3oK!(; z<)-FJ8`9~ac+DhA(n2~?wlkVP)9wp-yIm_~B9|n0XFr3pTVw1(?dLPM+1_3mvNIvZ zN}jF{cgR8?=ILVT!vrBD!^)4d*QQ?Aa^?KFX~!8$4o83QlYz4ESRXU<|QkVd0tlJxv0Yb4|e1*O_2GjnfZlhp%z@p z5j&mA(5hWdac!^Dvf)|?nUh<|H5Be)31ltu{`UFkaKwo&h{_TF%^G_G33vv3VyU4p z1Aij-r;wdy;PIk;=+K~g`k`x(XUZ#baHL!!Ix*0tzi#Nd6m6oYaiLo3=`rux-~etA zQcI#JUr~RgUh%(&%19pI2r8pq@yE!FB8HTvI7h9bc^zD_aULf#Q6hP!y0I@=9Y%Qk zWTdpXtjLO;k@=-cgF!r#OhH^OIxr3~(0i}XRR%k~iz^@*Y z>U<2I+M|W$0IAay71jm@-*ydxIxStthhC36#1}cHuYOZQqK=`hiPk*VHI1PKVplCR zJ&GIkAraJAK#PX5YW3~fuZWX>iMUz3OMFy(QG84MSp17PqrQ=ygv>w5T%X-BiENW?Pc3FvG?WR~7j(BMAaaNFY ztm~8&4ZXgj(vBO-M#~xj{}4D?%Zyo-YIdo()9@F;KqdWkV$z#FAWQGEingH{WM`L} zgRx4~jYQ}0B4MRSG0P>#x+2rOr?RuzSQe(RQPD~AwTuhvl%mjII87I&oc1dtm+%UM z>kXr{VXuiTCxO`HB@#w{tl6R{w_Y!oUx6E-(OfK*%aO9}73}dLgYuzlt#_yJ^CPjG znJUz<{w!w9Dy32x)}&@Q$)ROe_sq#m zA?ldvhcbKS7mm$Dot!~1k6|0$!Ea^eN1MjvqHU^r*0_oZgIfmuOLT*m5%@6DXCny}R~g^u$rsQ4)@wxH=U%;RI5TCCp@wyT{^>Gxr+h+|cx#ldwITapJ+BqmTwM?N0>a@U~NQL8|S0YwUExH z#XMdnoA9gHB|73A;_HycK{q-#rE0#U(&)k@RbHf4Srmr_JSqJKeo+6R)nlAx>*ue= zm1Jy}D@=w#@S6rpA&PH1OM*mW8uWg4IX=H6om-{*kBqA)S%#}tlp46M`rtiEa~2ls zgQSYeXOq4aGt(o#FE)lAJ^@zHi5JZ67dQ!O-C5?Qt>d-1CRtS5t6x@%t3P{I`+%QU zew*`G-=`Fh^Sr5+>zuqa;+R&{_0dz+9V1sTqPlVLVoJGM4k0scspMG0@hAw8H|HCZ z23a9eh%&^DW!#vnkJXFA+2fZB#mPUjSQ9Gyw-y-DT)C7a4|X;;vgAc6TU1s47AmI6 z8qfN{5w(t7U9M%#);t;J98cGWhcjL!HRY$`%E2G+8y`Pyc=&~*qh~Z4_YV)BQ;)~< z@h=Y#D-ZfkIist!ndu-^Nllb9p2^g&?z4 zsicx+jDwyL6pI-n&@;1@$#g#NkJN%pYj)3SD?u26Bn0(@r#yjzD%F}E&H71iAgVh- zjg%tb!rPVas9z#O(wXAG%GT3P9LG`2b;RBsTb*^qg@yHtClzacEn~9bShZTGb;jw( zXs2~Rc7*VlUG0ptc5K|xUR>{oEu`ozox*zpI2w*npziHi zUB%N`rn+m_lvgcSai!G1o!?7Zra3}*@8a0nrF059w!&@fqTVRaSSwH5Hjs?q!hSZxV z_~_p))kwR3Av?})G*E;mbxnIBW{s#R9XlwhdAW13l`?|S2u`R@#db$)zUfgV7%`j5 z41rYu2-l4dTy7chEnaiXO+e~(BTh+j$0Jpc*E584LXSeHe9%F-S!RVZr;ov`6>lshG0N@yZ4}zM&m^@%UJ~HQU}kHku#U zc{tyL)SXCgGAVF}6D4O)`m=VkH*!|0rw&WqeHrl?dieeoJq|IPWT`F*CmI&vBAGD) zw+*)8DOB=!QEC;9O-~j$kr@i5-5+{H1__xQ2&)>qwzRWQAOhM1_YS>ct28PqNeorY zm=aY|*>#iYe7OZ3il4dl^n_2T^@NUAF&16Oxe;ewsUM^wc=+c(f!s_&2JhGU{pG&G%D`lv{#&Z+;JEXP{9 zK=uVYmB^eOPb()LJ*(>|u?$^P28~fPI8nT^9Qy^Uk7-ntMSWo=o6W6DkDcKRlh`pDH3u5AW3xsw zTPfn}0QptNiW_Qd2W-W-pAyTPiYQ;P9m-A-Y%tUAD7X@0($iax0b6KC?SkbegQUyWybaUBV(x3|1J#jF^K;T*+ zolxk*A-y=@D0LSDQDku$RuOp>NWeuvd1YKn7)jjh$^UPd$#}xc1sP`1_Vd@}>{!D0 ziC8ZraHVTeFq}Q#_tXQn>yqxt_pJhjn~187V+n}FNx-^-wl2foZ%{r=H@xX63UM`J zNX?m0?iJrvzfKJEZh^n!Xff~pUxMDCbGZZVM? z%I4axLoYXP+R+vy(AUAB?lyfan;xj-PH9YV8rb9r4|Uv0EAGZEU?{ zFg=6t5q3&Ou)Ci40GdsXFlOD9RUjHehD+_@Fcxj;h{t-0J^Q9=H--{W_;0s zCC~Wd`AK)#< z!!i(sG9=mLuUz-65>(ZyOo%NnX7zBE$Xk`$NdNgTB~C>NmEH?{>qER_3vAWhY;dSu zmMSoXkOFRFNH!GCu@VjWP#igyqYF!$p*L`d!!g)O!cd|VP@}1ld*Kj&YZF5BQf#?Z*UX1uR=rLPkxb9YIcDA!K|1uEQ_&N1~sll zz|N$f4f1G?VAD)29^>P&2stUAAibWJVs~<@o~h~B-mD-NJ zw~$H3DZ}ap$zt5JJqE-}`|+Wp!`lvFsNw(=Pm)JI8cC$dB0?-ANm$CR>v;Bf_4}G?4G;>5B#5S6 zOHe3`g3F16CnqqTdc;qVn2^2INe{%Lf09e34#2OZwG;fJ9lyTyP9x*TE2&6YPYtwE znbhOs&5Tz^w20UxxF3SHWei{(Um7yBg^X|{k|-sWWVKXl`h~?E2r5lK)~F980#dxX zu7xi`BpzSA{wMLIQ!gjnYJi!=bW03~XXOS|cEh}rj2gL#ggNIMHYv%O%xFASYcw;X zCtg$_pNa=tmO;KA!rLcstOACZlon4}MheG7*FwN6%sNiaL%$U>jcmM*9ZZh~Ub0+H zI!-d7JmlIA7Z`95apWnY7^4PC3GLuTreU_={1kR+{5z`t=8XO>SQQF_yLi|Gtn4DPdROCtJT=!HjW-`96i)Hde3p~T}N+gAG3ScuH7f@^rt#!jdsr3wYhUj zXKSbBcgVhSMyEx3r(JHRmO1&fokzDDC+=xCbY*6|)mTdx6IM_SS;Hw=@Lr~g2qUa} z=2B@e4Rxjep^8-T$U^Buw z9Ugy}(@psYDIkK)bP1+{P@C`*!T_J}UE*AHm{NII6ZXcVC{Yl*Jbho>PA8LosiCSE zG!gi8E#o@Y0XKSPtGcl`ml&D3_~>M{P>yOf@;J^`N_nG(lGk3BwDM8460rtXKWJ<( zrG|1Uan21=MOM;dL3tqF7*D!-BU4jTnm(niUR@is78V97n+nZMINP{^pPV}Llt$yq zsr2~VF`aEgR}LhL&HVTWlGC{{Vv7H3cK>U3|7-33AGvl95&ROq&gJis?Z-%LXW{tv zG6ahISmGz)am%?_Lz~$e+rTNd(!ZoA_NJFMe!2a!$OqS2{AA(MERpaRJp$Pv=D=j!NGep?%%vz zh~b-sXwjdMvxOK<(!M0b*fm0opCQBq=O($wv+Znq=OAl39+$2dr*i?)3ghO*jyE2%Z)-Te?y3^JYy@@AJw6KO^Bn<7h)TI z-oA&%Z+9>*J2~D-|93qq#4*6P+Yq8npWD9|;#iyZH$v>WONis@LhMb@J}boW?-JsK z145k07@zodA@*G)C~8jQ+(|t1WSo?_XY`{X&S#zaYdF^!F9(gm@+ISJJ0Hr9XelcUQefh*y0@h^v1n#5INx*PbH8 zbrIU9g*af+=+}+F{Th|VeQ!D-aK0Ae=97eY9iMOE{q?(qxV0t3ZPy6#M#kz*qcooR z<{u03XZwVB>n7SSg}9wQ-p)PlV7%}6oe*z3i}nE_-p+5{&iKCLYT8eQcqiAt^Q}Vs zIrsVVFA4FkEi~TWO@H2flo0QcjpO&y*E{bM;(ffo?^Yr1QfW^J@quX}{^BMfKJ*qL zKKxE0?&kd6Z=yXc#69QG=+{U2-F@`=KKgVYefijFLVR2o;xFq$e5xbFrymvKvp*E# zbDaC!w}g0Loe-ZN65=a-e(-J~zIL+^-#B0DLgeevX)+x5IbMIuIoybm<0IJ8bz(yd zxF_Nek#-$23cASkM4PkBQp8AQ$Yz$Ks#1YCzmgarr&$H>q#9nhgK%06ES$qcM~sM3 zJV?jU226@6EG09?y~f zwP|BjIacf;UUjcH9zFVrVxM>cyxhs+6zZ3pCQcV;z}KCHkKEZ}zj#o5P&_2=5eLLq z#1rCc;_t;5#K*;_#b=PwKP6r(J}Lf^n7doW&#-5HLQ%zk!?O8)aU)T9pBHzCe-t-~ zH;C7ZcZ-jR4~YLkt=GR1H;6wIzY)Ks2JYLignktp=&!|lkoo^rJS~1F?h^NkZ({Sg z58d*M#G9aHkBIZcH^jq4XMIb2TYN|SlQ>^|Upy+lCq5=#EPf^4EPf~+7e5deh<_IU zw|Jen2%YqwU}e2nTq5oimx`B)%f!pX%f%Jqa`6iBO7RPErMOD`sdyE-hO5PA#rwpy z;u>+CxL*7cYwYJDFPd3k!sQE1w|pr>%%gmjIKwB7g;a!hPx3CW>tRE9o&3X>2o8D- zk;<|iQUjtEOr@OioSD%+AddceHN(hK-vxZ&_a1 zdeqU|w(r=v>zLi`&ar!r+k5;8C+>T}NhhCj>S?E+apqYsJbOP6Ip;;^o_GF>FSzic zKe<>w^Cg#Ddf7`~_VUZGc*QHP6n}cvtFC_aHP>Eu{ec^9e9cX-z4>*wy#ChP-tfjZ zz4l^%GD24Nr`y zXYjWvs^GZJD85G=QchI%D_1ISQNN}>RZUe3)pE67ZC0nN8*24>{*c_Ls$6%ca)NU9 z+I2xSS1nbm;dSfRuH(`_@=|#APsLA_JC(bX53K$BpmMizpYqA@-(M+z#XbJdUV{=> zuLfJM0aGQO9$*d06?PNr?`AOm7FO7;tfx1KH?m^hEZ)KjdnY(x!)*CP0yKP*Yt6VBJaO}~hlqZQx zc|g?EIWnrPy5$#MfQScbDJ;I;Xss>;EA9@b`bH++; zY05Xm7G;BYyF#Vr@c2owS(zq6fMd?zqWrta$)-KU?=7(c2a!>O73cBB$#T%3l^8AmJ=ZVj10XR1UhlDN1HT_oS^9J#da`1?Az#vv3N?Sxm z&GWnbpFDRtGo~I|E6x`o$(3Jzg+AOkL5k-E3|#5@^P_;c6Hd7-Qq4~x44aV z3(tBJ?{_gixwZDlp?_0u=lBtRFW=euyN%<0v_}p-O@DGK$=ui4W#V%BC)CTtOO&U> z_bd2(IdfR0T}TUP4O)UWMjNKpXiKyq^%fCRPZ2Jy%4e6k47g8%&*8B$F0#s5BItdW z)T&%_%b};`_gu$kuH*N7Ue9lf97kz}b^=bXw+LN+=De-`OV}TYS4$yIRM;s$2V(x7 zd9R2av^MQz+6$C7f_vlid0bGEhIy*+{z1;kHVsVE?7?@jpTm^W#(VD@c!wWhFNdk_ zHTWQQbr@V4ybybQw{Z=lFTgILz)LCHd&dv)&PoaIy`udJl6R4aDBt1iPTCypm3#{a z!`jrecYzmUBEHs6RWDWkmlh*(cu~Dxb*Me^6K42a<(t~fAzl4~_+RQ<)iRd%dk&q0 z4?$hIN_|*Kl7V5ncDMFo?H28)+SA%+w5#x4qrZoqUj29VZw|fk(6Sgm^jT3?e@6V^ z3Cima1&6+LXrFl5q4N*DNqp?k&y}IodsZ)8{b%u-L$5jX&O_hE`>iE1$~%>Nl&^{3 zD8GgK>A;sLP_+9PuWQ)xPl7si#O;c#On4#u&jvV|YoT55g7)1H*YXfN*5z-+Qof>8;j=%i zen!3Gn3uk6|9)}bgKvDvzg_ZAw;SpqUduGjpD;aru>TW}pZ!Ee$>G%=iAK?&>oF9e z(FnG8s`#Rv)8!%Gq9hNGh`U2?h~dzTlJrc+vzy}xFG55(&o>wxxh9G;6OQt@NolBm zyI=9E@aEmi_$+TPpU{8F$D_uVzQDS{?K#j1sfcmJC81w|ygM&>N0rV$=Sxq;L!Y%kt_D4}YI`{%n$=;0!`! zH%U{3u$>S-2?isW=io zdB^94&#@(ZnnpOEgwJsam8X+(&;dc>1ztutxbST07RWSGlMQpX{1Rn6mvU{wAb%|u zA_<@D9oI<^qB2ekW4J-s1@Q3~ha7qn0>zEw&E@BqyoTYV|MG12g_#(TLih}uFZjQKd9*-4fvBO?8Q00ZQbt2Kl#4*rt&oT++l_)KgV@`3%Aj0na70is1hD;~`O z&vY;m%ch?uZyn zF;T~G*riMbF4k-C@dU;yBq(t?2DSwZJh1=j!v|e9fvN|eM<*nzg&Q$<2NS>_wxwsG z<=SE3(?#GT{hfp_nOcJ{VaY5itZA^6*ejkd(F8Olc{K3xCBfJ<;7ggf-&ok%DKjY- zVK}!Ea!Gup?Urg&cHCnHnxLXw+~EjH_(F7+*KmJEun!%>i}#L&!Ip8O_p~FAA#*Q@TD>mJ`fT&CC< za=B5LnDKIefdTEm`tb1(8>o8l1$4q^?ZXerm)yX3BJ^|(A)oajLq%J*<0$Ul5OO6v5 zn2pUK?!;{1lf)|q4$GT|@L3W**KzSOlV`gxH^K8b!$X{aP#HI2^UM^!020-t6C|(h z^aH{3!k5FCj!8e7p&P)L$@k#{DP*A~07}G7o}J+C5h&$km4 z98bvX5X`v5U4|`$kBLYDU&2bo6TnB`LK4Z1!1ZuLu;duvDfr?*4!jBS zdC`BK+k5%0>n9w%3FAJ+<$cF@$=2YL>oO5=MISye0ZfNWeHL1-9TqZda?o*7MM?N_ z#SlJ8O#&P$Y)Q9V6X#RM;}Cy2&@`R_OXQb4+5x@Pd_-69@EGvn z-$JZ-ntdWcp*|=Ol#?j~*Ci(eL&C#-o*@Uc|ME#G>vrLD(-J<`i|=RY1inO6eF;Yi V$RO_j8GOa84Hp#E^K=>b{vYQ=l(GN- diff --git a/reporting/includes/barcodes.php b/reporting/includes/barcodes.php new file mode 100644 index 00000000..fdc78eba --- /dev/null +++ b/reporting/includes/barcodes.php @@ -0,0 +1,808 @@ +. +// +// See LICENSE.TXT file for more information. +// ---------------------------------------------------------------------------- +// +// Description : PHP class to creates array representations for +// common 1D barcodes to be used with TCPDF. +// +// Author: Nicola Asuni +// +// (c) Copyright: +// Nicola Asuni +// Tecnick.com S.r.l. +// Via della Pace, 11 +// 09044 Quartucciu (CA) +// ITALY +// www.tecnick.com +// info@tecnick.com +//============================================================+ + +/** + * PHP class to creates array representations for common 1D barcodes to be used with TCPDF. + * @package com.tecnick.tcpdf + * @abstract Functions for generating string representation of common 1D barcodes. + * @author Nicola Asuni + * @copyright 2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com + * @link http://www.tcpdf.org + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @version 1.0.001 + */ + + /** + * PHP class to creates array representations for common 1D barcodes to be used with TCPDF (http://www.tcpdf.org).
+ * @name TCPDFBarcode + * @package com.tecnick.tcpdf + * @version 1.0.001 + * @author Nicola Asuni + * @link http://www.tcpdf.org + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ +class TCPDFBarcode { + + /** + * @var array representation of barcode. + * @access protected + */ + var $barcode_array; + + /** + * This is the class constructor. + * Return an array representations for common 1D barcodes:
    + *
  • $arrcode["code"] code to be printed on text label
  • + *
  • $arrcode["maxh"] max bar height
  • + *
  • $arrcode["maxw"] max bar width
  • + *
  • $arrcode["bcode"][$k] single bar or space in $k position
  • + *
  • $arrcode["bcode"][$k]["t"] bar type: true = bar, false = space.
  • + *
  • $arrcode["bcode"][$k]["w"] bar width in units.
  • + *
  • $arrcode["bcode"][$k]["h"] bar height in units.
  • + *
  • $arrcode["bcode"][$k]["p"] bar top position (0 = top, 1 = middle)
+ * @param string $code code to print + * @param string $type type of barcode:
  • C39 : CODE 39
  • C39+ : CODE 39 with checksum
  • C39E : CODE 39 EXTENDED
  • C39E+ : CODE 39 EXTENDED with checksum
  • I25 : Interleaved 2 of 5
  • C128A : CODE 128 A
  • C128B : CODE 128 B
  • C128C : CODE 128 C
  • EAN13 : EAN 13
  • UPCA : UPC-A
  • POSTNET : POSTNET
  • CODABAR : CODABAR
+ */ + function TCPDFBarcode($code, $type) { + $this->setBarcode($code, $type); + } + + /** + * Return an array representations of barcode. + * @return array + */ + function getBarcodeArray() { + return $this->barcode_array; + } + + /** + * Set the barcode. + * @param string $code code to print + * @param string $type type of barcode:
  • C39 : CODE 39
  • C39+ : CODE 39 with checksum
  • C39E : CODE 39 EXTENDED
  • C39E+ : CODE 39 EXTENDED with checksum
  • I25 : Interleaved 2 of 5
  • C128A : CODE 128 A
  • C128B : CODE 128 B
  • C128C : CODE 128 C
  • EAN13 : EAN 13
  • UPCA : UPC-A
  • POSTNET : POSTNET
  • CODABAR : CODABAR
+ * @return array + */ + function setBarcode($code, $type) { + switch (strtoupper($type)) { + case "C39": { // CODE 39 + $arrcode = $this->barcode_code39($code, false, false); + break; + } + case "C39+": { // CODE 39 with checksum + $arrcode = $this->barcode_code39($code, false, true); + break; + } + case "C39E": { // CODE 39 EXTENDED + $arrcode = $this->barcode_code39($code, true, false); + break; + } + case "C39E+": { // CODE 39 EXTENDED with checksum + $arrcode = $this->barcode_code39($code, true, true); + break; + } + case "I25": { // Interleaved 2 of 5 + $arrcode = $this->barcode_i25($code); + break; + } + case "C128A": { // CODE 128 A + $arrcode = $this->barcode_c128($code, "A"); + break; + } + case "C128B": { // CODE 128 B + $arrcode = $this->barcode_c128($code, "B"); + break; + } + case "C128C": { // CODE 128 C + $arrcode = $this->barcode_c128($code, "C"); + break; + } + case "EAN13": { // EAN 13 + $arrcode = $this->barcode_ean13($code, 13); + break; + } + case "UPCA": { // UPC-A + $arrcode = $this->barcode_ean13($code, 12); + break; + } + case "POSTNET": { // POSTNET + $arrcode = $this->barcode_postnet($code); + break; + } + case "CODABAR": { // CODABAR + $arrcode = $this->barcode_codabar($code); + break; + } + default: { + $this->barcode_array = false; + } + } + $this->barcode_array = $arrcode; + } + + /** + * CODE 39 + * @param string $code code to represent. + * @param boolean $checksum if true add a checksum to the code + * @return array barcode representation. + * @access protected + */ + function barcode_code39($code, $extended=false, $checksum=false) { + $chr['0'] = '111221211'; + $chr['1'] = '211211112'; + $chr['2'] = '112211112'; + $chr['3'] = '212211111'; + $chr['4'] = '111221112'; + $chr['5'] = '211221111'; + $chr['6'] = '112221111'; + $chr['7'] = '111211212'; + $chr['8'] = '211211211'; + $chr['9'] = '112211211'; + $chr['A'] = '211112112'; + $chr['B'] = '112112112'; + $chr['C'] = '212112111'; + $chr['D'] = '111122112'; + $chr['E'] = '211122111'; + $chr['F'] = '112122111'; + $chr['G'] = '111112212'; + $chr['H'] = '211112211'; + $chr['I'] = '112112211'; + $chr['J'] = '111122211'; + $chr['K'] = '211111122'; + $chr['L'] = '112111122'; + $chr['M'] = '212111121'; + $chr['N'] = '111121122'; + $chr['O'] = '211121121'; + $chr['P'] = '112121121'; + $chr['Q'] = '111111222'; + $chr['R'] = '211111221'; + $chr['S'] = '112111221'; + $chr['T'] = '111121221'; + $chr['U'] = '221111112'; + $chr['V'] = '122111112'; + $chr['W'] = '222111111'; + $chr['X'] = '121121112'; + $chr['Y'] = '221121111'; + $chr['Z'] = '122121111'; + $chr['-'] = '121111212'; + $chr['.'] = '221111211'; + $chr[' '] = '122111211'; + $chr['*'] = '121121211'; + $chr['$'] = '121212111'; + $chr['/'] = '121211121'; + $chr['+'] = '121112121'; + $chr['%'] = '111212121'; + + $code = strtoupper($code); + if ($extended) { + // extended mode + $code = $this->encode_code39_ext($code); + } + if ($code === false) { + return false; + } + if ($checksum) { + // checksum + $code .= $this->checksum_code39($code); + } + // add start and stop codes + $code = "*".$code."*"; + + $bararray = array("code" => $code, "maxw" => 0, "maxh" => 1, "bcode" => array()); + $k = 0; + for($i=0; $i < strlen($code); $i++) { + $char = $code{$i}; + if(!isset($chr[$char])) { + // invalid character + return false; + } + for($j=0; $j < 9; $j++) { + if (($j % 2) == 0) { + $t = true; // bar + } else { + $t = false; // space + } + $w = $chr[$char]{$j}; + $bararray["bcode"][$k] = array("t" => $t, "w" => $w, "h" => 1, "p" => 0); + $bararray["maxw"] += $w; + $k++; + } + $bararray["bcode"][$k] = array("t" => false, "w" => 1, "h" => 1, "p" => 0); + $bararray["maxw"] += 1; + $k++; + } + return $bararray; + } + + /** + * Encode a string to be used for CODE 39 Extended mode. + * @param string $code code to represent. + * @return encoded string. + * @access protected + */ + function encode_code39_ext($code) { + $encode = array( + chr(0) => '%U', chr(1) => '$A', chr(2) => '$B', chr(3) => '$C', + chr(4) => '$D', chr(5) => '$E', chr(6) => '$F', chr(7) => '$G', + chr(8) => '$H', chr(9) => '$I', chr(10) => '$J', chr(11) => '£K', + chr(12) => '$L', chr(13) => '$M', chr(14) => '$N', chr(15) => '$O', + chr(16) => '$P', chr(17) => '$Q', chr(18) => '$R', chr(19) => '$S', + chr(20) => '$T', chr(21) => '$U', chr(22) => '$V', chr(23) => '$W', + chr(24) => '$X', chr(25) => '$Y', chr(26) => '$Z', chr(27) => '%A', + chr(28) => '%B', chr(29) => '%C', chr(30) => '%D', chr(31) => '%E', + chr(32) => ' ', chr(33) => '/A', chr(34) => '/B', chr(35) => '/C', + chr(36) => '/D', chr(37) => '/E', chr(38) => '/F', chr(39) => '/G', + chr(40) => '/H', chr(41) => '/I', chr(42) => '/J', chr(43) => '/K', + chr(44) => '/L', chr(45) => '-', chr(46) => '.', chr(47) => '/O', + chr(48) => '0', chr(49) => '1', chr(50) => '2', chr(51) => '3', + chr(52) => '4', chr(53) => '5', chr(54) => '6', chr(55) => '7', + chr(56) => '8', chr(57) => '9', chr(58) => '/Z', chr(59) => '%F', + chr(60) => '%G', chr(61) => '%H', chr(62) => '%I', chr(63) => '%J', + chr(64) => '%V', chr(65) => 'A', chr(66) => 'B', chr(67) => 'C', + chr(68) => 'D', chr(69) => 'E', chr(70) => 'F', chr(71) => 'G', + chr(72) => 'H', chr(73) => 'I', chr(74) => 'J', chr(75) => 'K', + chr(76) => 'L', chr(77) => 'M', chr(78) => 'N', chr(79) => 'O', + chr(80) => 'P', chr(81) => 'Q', chr(82) => 'R', chr(83) => 'S', + chr(84) => 'T', chr(85) => 'U', chr(86) => 'V', chr(87) => 'W', + chr(88) => 'X', chr(89) => 'Y', chr(90) => 'Z', chr(91) => '%K', + chr(92) => '%L', chr(93) => '%M', chr(94) => '%N', chr(95) => '%O', + chr(96) => '%W', chr(97) => '+A', chr(98) => '+B', chr(99) => '+C', + chr(100) => '+D', chr(101) => '+E', chr(102) => '+F', chr(103) => '+G', + chr(104) => '+H', chr(105) => '+I', chr(106) => '+J', chr(107) => '+K', + chr(108) => '+L', chr(109) => '+M', chr(110) => '+N', chr(111) => '+O', + chr(112) => '+P', chr(113) => '+Q', chr(114) => '+R', chr(115) => '+S', + chr(116) => '+T', chr(117) => '+U', chr(118) => '+V', chr(119) => '+W', + chr(120) => '+X', chr(121) => '+Y', chr(122) => '+Z', chr(123) => '%P', + chr(124) => '%Q', chr(125) => '%R', chr(126) => '%S', chr(127) => '%T'); + $code_ext = ''; + for ($i = 0 ; $i < strlen($code); $i++) { + if (ord($code{$i}) > 127) { + return false; + } + $code_ext .= $encode[$code{$i}]; + } + return $code_ext; + } + + /** + * Calculate CODE 39 checksum (modulo 43). + * @param string $code code to represent. + * @return char checksum. + * @access protected + */ + function checksum_code39($code) { + $chars = array( + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', + 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', + 'W', 'X', 'Y', 'Z', '-', '.', ' ', '$', '/', '+', '%'); + $sum = 0; + for ($i=0 ; $i < strlen($code); $i++) { + $k = array_keys($chars, $code{$i}); + $sum += $k[0]; + } + $j = ($sum % 43); + return $chars[$j]; + } + + /** + * Interleaved 2 of 5 barcodes. + * Contains digits (0 to 9) and encodes the data in the width of both bars and spaces. + * @param string $code code to represent. + * @param boolean $checksum if true add a checksum to the code + * @return array barcode representation. + * @access protected + */ + function barcode_i25($code) { + $chr['0'] = '11221'; + $chr['1'] = '21112'; + $chr['2'] = '12112'; + $chr['3'] = '22111'; + $chr['4'] = '11212'; + $chr['5'] = '21211'; + $chr['6'] = '12211'; + $chr['7'] = '11122'; + $chr['8'] = '21121'; + $chr['9'] = '12121'; + $chr['A'] = '11'; + $chr['Z'] = '21'; + + if((strlen($code) % 2) != 0) { + // add leading zero if code-length is odd + $code = '0'.$code; + } + // add start and stop codes + $code = 'AA'.strtolower($code).'ZA'; + + $bararray = array("code" => $code, "maxw" => 0, "maxh" => 1, "bcode" => array()); + $k = 0; + for($i=0; $i < strlen($code); $i=$i+2) { + $char_bar = $code{$i}; + $char_space = $code{$i+1}; + if((!isset($chr[$char_bar])) OR (!isset($chr[$char_space]))) { + // invalid character + return false; + } + // create a bar-space sequence + $seq = ""; + for($s=0; $s < strlen($chr[$char_bar]); $s++){ + $seq .= $chr[$char_bar]{$s} . $chr[$char_space]{$s}; + } + for($j=0; $j < strlen($seq); $j++) { + if (($j % 2) == 0) { + $t = true; // bar + } else { + $t = false; // space + } + $w = $seq{$j}; + $bararray["bcode"][$k] = array("t" => $t, "w" => $w, "h" => 1, "p" => 0); + $bararray["maxw"] += $w; + $k++; + } + } + return $bararray; + } + + /** + * C128 barcodes. + * + * @param string $code code to represent. + * @param string $type barcode type: A, B or C + * @return array barcode representation. + * @access protected + */ + function barcode_c128($code, $type="B") { + $chr = array( + '212222', /* 00 */ + '222122', /* 01 */ + '222221', /* 02 */ + '121223', /* 03 */ + '121322', /* 04 */ + '131222', /* 05 */ + '122213', /* 06 */ + '122312', /* 07 */ + '132212', /* 08 */ + '221213', /* 09 */ + '221312', /* 10 */ + '231212', /* 11 */ + '112232', /* 12 */ + '122132', /* 13 */ + '122231', /* 14 */ + '113222', /* 15 */ + '123122', /* 16 */ + '123221', /* 17 */ + '223211', /* 18 */ + '221132', /* 19 */ + '221231', /* 20 */ + '213212', /* 21 */ + '223112', /* 22 */ + '312131', /* 23 */ + '311222', /* 24 */ + '321122', /* 25 */ + '321221', /* 26 */ + '312212', /* 27 */ + '322112', /* 28 */ + '322211', /* 29 */ + '212123', /* 30 */ + '212321', /* 31 */ + '232121', /* 32 */ + '111323', /* 33 */ + '131123', /* 34 */ + '131321', /* 35 */ + '112313', /* 36 */ + '132113', /* 37 */ + '132311', /* 38 */ + '211313', /* 39 */ + '231113', /* 40 */ + '231311', /* 41 */ + '112133', /* 42 */ + '112331', /* 43 */ + '132131', /* 44 */ + '113123', /* 45 */ + '113321', /* 46 */ + '133121', /* 47 */ + '313121', /* 48 */ + '211331', /* 49 */ + '231131', /* 50 */ + '213113', /* 51 */ + '213311', /* 52 */ + '213131', /* 53 */ + '311123', /* 54 */ + '311321', /* 55 */ + '331121', /* 56 */ + '312113', /* 57 */ + '312311', /* 58 */ + '332111', /* 59 */ + '314111', /* 60 */ + '221411', /* 61 */ + '431111', /* 62 */ + '111224', /* 63 */ + '111422', /* 64 */ + '121124', /* 65 */ + '121421', /* 66 */ + '141122', /* 67 */ + '141221', /* 68 */ + '112214', /* 69 */ + '112412', /* 70 */ + '122114', /* 71 */ + '122411', /* 72 */ + '142112', /* 73 */ + '142211', /* 74 */ + '241211', /* 75 */ + '221114', /* 76 */ + '413111', /* 77 */ + '241112', /* 78 */ + '134111', /* 79 */ + '111242', /* 80 */ + '121142', /* 81 */ + '121241', /* 82 */ + '114212', /* 83 */ + '124112', /* 84 */ + '124211', /* 85 */ + '411212', /* 86 */ + '421112', /* 87 */ + '421211', /* 88 */ + '212141', /* 89 */ + '214121', /* 90 */ + '412121', /* 91 */ + '111143', /* 92 */ + '111341', /* 93 */ + '131141', /* 94 */ + '114113', /* 95 */ + '114311', /* 96 */ + '411113', /* 97 */ + '411311', /* 98 */ + '113141', /* 99 */ + '114131', /* 100 */ + '311141', /* 101 */ + '411131', /* 102 */ + '211412', /* 103 START A */ + '211214', /* 104 START B */ + '211232', /* 105 START C */ + '233111', /* STOP */ + '200000' /* END */ + ); + $keys = ""; + switch(strtoupper($type)) { + case "A": { + $startid = 103; + $keys = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_'; + for($i = 0; $i < 32; $i++) { + $keys .= chr($i); + } + break; + } + case "B": { + $startid = 104; + $keys = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'.chr(127); + break; + } + case "C": { + $startid = 105; + $keys = ""; + if ((strlen($code) % 2) != 0) { + //echo "The length of barcode value must be even ($code). You must pad the number with zeros.\n"; + return false; + } + for($i = 0; $i <= 99; $i++) { + $keys .= chr($i); + } + $new_code = ""; + for ($i=0; $i < (strlen($code) / 2); $i++) { + $new_code .= chr(intval($code{(2 * $i)}.$code{(2 * $i + 1)})); + } + $code = $new_code; + break; + } + default: { + return false; + } + } + // calculate check character + $sum = $startid; + for ($i=0; $i < strlen($code); $i++) { + $sum += (strpos($keys, $code{$i}) * ($i+1)); + } + $check = ($sum % 103); + + // add start, check and stop codes + $code = chr($startid).$code.chr($check).chr(106).chr(107); + $bararray = array("code" => $code, "maxw" => 0, "maxh" => 1, "bcode" => array()); + $k = 0; + $len = strlen($code); + for($i=0; $i < $len; $i++) { + $ck = strpos($keys, $code{$i}); + if (($i == 0) OR ($i > ($len-4))) { + $seq = $chr[ord($code{$i})]; + } elseif(($ck >= 0) AND isset($chr[$ck])) { + $seq = $chr[$ck]; + } else { + // invalid character + return false; + } + for($j=0; $j < 6; $j++) { + if (($j % 2) == 0) { + $t = true; // bar + } else { + $t = false; // space + } + $w = $seq{$j}; + $bararray["bcode"][$k] = array("t" => $t, "w" => $w, "h" => 1, "p" => 0); + $bararray["maxw"] += $w; + $k++; + } + } + return $bararray; + } + + /** + * EAN13 and UPC-A barcodes. + * @param string $code code to represent. + * @param string $len barcode type: 13 = EAN13, 12 = UPC-A + * @return array barcode representation. + * @access protected + */ + function barcode_ean13($code, $len=13) { + //Padding + $code = str_pad($code, $len-1, '0', STR_PAD_LEFT); + if($len == 12) { + $code = '0'.$code; + } + // add check digit + if(strlen($code) == 12) { + $sum=0; + for($i=1;$i<=11;$i+=2) { + $sum += (3 * $code{$i}); + } + for($i=0; $i <= 10; $i+=2) { + $sum += ($code{$i}); + } + $r = $sum % 10; + if($r > 0) { + $r = (10 - $r); + } + $code .= $r; + } else { // test checkdigit + $sum = 0; + for($i=1; $i <= 11; $i+=2) { + $sum += (3 * $code{$i}); + } + for($i=0; $i <= 10; $i+=2) { + $sum += $code{$i}; + } + if ((($sum + $code{12}) % 10) != 0) { + return false; + } + } + //Convert digits to bars + $codes = array( + 'A'=>array( + '0'=>'0001101', + '1'=>'0011001', + '2'=>'0010011', + '3'=>'0111101', + '4'=>'0100011', + '5'=>'0110001', + '6'=>'0101111', + '7'=>'0111011', + '8'=>'0110111', + '9'=>'0001011'), + 'B'=>array( + '0'=>'0100111', + '1'=>'0110011', + '2'=>'0011011', + '3'=>'0100001', + '4'=>'0011101', + '5'=>'0111001', + '6'=>'0000101', + '7'=>'0010001', + '8'=>'0001001', + '9'=>'0010111'), + 'C'=>array( + '0'=>'1110010', + '1'=>'1100110', + '2'=>'1101100', + '3'=>'1000010', + '4'=>'1011100', + '5'=>'1001110', + '6'=>'1010000', + '7'=>'1000100', + '8'=>'1001000', + '9'=>'1110100') + ); + $parities = array( + '0'=>array('A','A','A','A','A','A'), + '1'=>array('A','A','B','A','B','B'), + '2'=>array('A','A','B','B','A','B'), + '3'=>array('A','A','B','B','B','A'), + '4'=>array('A','B','A','A','B','B'), + '5'=>array('A','B','B','A','A','B'), + '6'=>array('A','B','B','B','A','A'), + '7'=>array('A','B','A','B','A','B'), + '8'=>array('A','B','A','B','B','A'), + '9'=>array('A','B','B','A','B','A') + ); + + $bararray = array("code" => $code, "maxw" => 0, "maxh" => 1, "bcode" => array()); + $k = 0; + $seq = '101'; + $p = $parities[$code{0}]; + for($i=1; $i < 7; $i++) { + $seq .= $codes[$p[$i-1]][$code{$i}]; + } + $seq .= '01010'; + for($i=7; $i < 13; $i++) { + $seq .= $codes['C'][$code{$i}]; + } + $seq .= '101'; + $len = strlen($seq); + $w = 0; + for($i=0; $i < $len; $i++) { + $w += 1; + if (($i == ($len - 1)) OR (($i < ($len - 1)) AND ($seq{$i} != $seq{($i+1)}))) { + if ($seq{$i} == '1') { + $t = true; // bar + } else { + $t = false; // space + } + $bararray["bcode"][$k] = array("t" => $t, "w" => $w, "h" => 1, "p" => 0); + $bararray["maxw"] += $w; + $k++; + $w = 0; + } + } + return $bararray; + } + + /** + * POSTNET barcodes. + * @param string $code zip code to represent. Must be a string containing a zip code of the form DDDDD or DDDDD-DDDD. + * @return array barcode representation. + * @access protected + */ + function barcode_postnet($code) { + // bar lenght + $barlen = Array( + 0 => Array(2,2,1,1,1), + 1 => Array(1,1,1,2,2), + 2 => Array(1,1,2,1,2), + 3 => Array(1,1,2,2,1), + 4 => Array(1,2,1,1,2), + 5 => Array(1,2,1,2,1), + 6 => Array(1,2,2,1,1), + 7 => Array(2,1,1,1,2), + 8 => Array(2,1,1,2,1), + 9 => Array(2,1,2,1,1) + ); + $bararray = array("code" => $code, "maxw" => 0, "maxh" => 2, "bcode" => array()); + $k = 0; + $code = str_replace("-", "", $code); + $code = str_replace(" ", "", $code); + $len = strlen($code); + // calculate checksum + $sum = 0; + for($i=0; $i < $len; $i++) { + $sum += intval($code{$i}); + } + if(($sum % 10) == 0) { + return false; + } + $code .= "".(10 - ($sum % 10)).""; + $len = strlen($code); + // start bar + $bararray["bcode"][$k++] = array("t" => 1, "w" => 1, "h" => 2, "p" => 0); + $bararray["bcode"][$k++] = array("t" => 0, "w" => 1, "h" => 2, "p" => 0); + $bararray["maxw"] += 2; + for ($i=0; $i < $len; $i++) { + for ($j=0; $j < 5; $j++) { + $h = $barlen[$code{$i}][$j]; + $p = floor(1 / $h); + $bararray["bcode"][$k++] = array("t" => 1, "w" => 1, "h" => $h, "p" => $p); + $bararray["bcode"][$k++] = array("t" => 0, "w" => 1, "h" => 2, "p" => 0); + $bararray["maxw"] += 2; + } + } + // end bar + $bararray["bcode"][$k++] = array("t" => 1, "w" => 1, "h" => 2, "p" => 0); + $bararray["maxw"] += 1; + return $bararray; + } + + /** + * CODABAR barcodes. + * @param string $code code to represent. + * @return array barcode representation. + * @access protected + */ + function barcode_codabar($code) { + $chr = array( + '0' => '11111221', + '1' => '11112211', + '2' => '11121121', + '3' => '22111111', + '4' => '11211211', + '5' => '21111211', + '6' => '12111121', + '7' => '12112111', + '8' => '12211111', + '9' => '21121111', + '-' => '11122111', + '$' => '11221111', + ':' => '21112121', + '/' => '21211121', + '.' => '21212111', + '+' => '11222221', + 'A' => '11221211', + 'B' => '12121121', + 'C' => '11121221', + 'D' => '11122211' + ); + + $bararray = array("code" => $code, "maxw" => 0, "maxh" => 1, "bcode" => array()); + $k = 0; + $w = 0; + $seq = ""; + $code = "A".strtoupper($code)."A"; + $len = strlen($code); + for($i=0; $i < $len; $i++) { + if (!isset($chr[$code{$i}])) { + return false; + } + $seq = $chr[$code{$i}]; + for($j=0; $j < 8; $j++) { + if (($j % 2) == 0) { + $t = true; // bar + } else { + $t = false; // space + } + $w = $seq{$j}; + $bararray["bcode"][$k] = array("t" => $t, "w" => $w, "h" => 1, "p" => 0); + $bararray["maxw"] += $w; + $k++; + } + } + return $bararray; + } + +} // end of class + +//============================================================+ +// END OF FILE +//============================================================+ +?> diff --git a/reporting/includes/class.pdf.inc b/reporting/includes/class.pdf.inc index a20148b0..7c182017 100644 --- a/reporting/includes/class.pdf.inc +++ b/reporting/includes/class.pdf.inc @@ -1,1779 +1,270 @@ -* @version 009 -* @package Cpdf -*/ -class Cpdf { - -/** -* the current number of pdf objects in the document -*/ -var $numObj=0; -/** -* this array contains all of the pdf objects, ready for final assembly -*/ -var $objects = array(); -/** -* the objectId (number within the objects array) of the document catalog -*/ -var $catalogId; -/** -* array carrying information about the fonts that the system currently knows about -* used to ensure that a font is not loaded twice, among other things -*/ -var $fonts=array(); -/** -* a record of the current font -*/ -var $currentFont=''; -/** -* the current base font -*/ -var $currentBaseFont=''; -/** -* the number of the current font within the font array -*/ -var $currentFontNum=0; -/** -* -*/ -var $currentNode; -/** -* object number of the current page -*/ -var $currentPage; -/** -* object number of the currently active contents block -*/ -var $currentContents; -/** -* number of fonts within the system -*/ -var $numFonts=0; -/** -* current colour for fill operations, defaults to inactive value, all three components should be between 0 and 1 inclusive when active -*/ -var $currentColour=array('r'=>-1,'g'=>-1,'b'=>-1); -/** -* current colour for stroke operations (lines etc.) -*/ -var $currentStrokeColour=array('r'=>-1,'g'=>-1,'b'=>-1); -/** -* current style that lines are drawn in -*/ -var $currentLineStyle=''; -/** -* an array which is used to save the state of the document, mainly the colours and styles -* it is used to temporarily change to another state, the change back to what it was before -*/ -var $stateStack = array(); -/** -* number of elements within the state stack -*/ -var $nStateStack = 0; -/** -* number of page objects within the document -*/ -var $numPages=0; -/** -* object Id storage stack -*/ -var $stack=array(); -/** -* number of elements within the object Id storage stack -*/ -var $nStack=0; -/** -* an array which contains information about the objects which are not firmly attached to pages -* these have been added with the addObject function -*/ -var $looseObjects=array(); -/** -* array contains infomation about how the loose objects are to be added to the document -*/ -var $addLooseObjects=array(); -/** -* the objectId of the information object for the document -* this contains authorship, title etc. -*/ -var $infoObject=0; -/** -* number of images being tracked within the document -*/ -var $numImages=0; -/** -* an array containing options about the document -* it defaults to turning on the compression of the objects -*/ -var $options=array('compression'=>1); -/** -* the objectId of the first page of the document -*/ -var $firstPageId; -/** -* used to track the last used value of the inter-word spacing, this is so that it is known -* when the spacing is changed. -*/ -var $wordSpaceAdjust=0; -/** -* the object Id of the procset object -*/ -var $procsetObjectId; -/** -* store the information about the relationship between font families -* this used so that the code knows which font is the bold version of another font, etc. -* the value of this array is initialised in the constuctor function. -*/ -var $fontFamilies = array(); -/** -* track if the current font is bolded or italicised -*/ -var $currentTextState = ''; -/** -* messages are stored here during processing, these can be selected afterwards to give some useful debug information -*/ -var $messages=''; -/** -* the ancryption array for the document encryption is stored here -*/ -var $arc4=''; -/** -* the object Id of the encryption information -*/ -var $arc4_objnum=0; -/** -* the file identifier, used to uniquely identify a pdf document -*/ -var $fileIdentifier=''; -/** -* a flag to say if a document is to be encrypted or not -*/ -var $encrypted=0; -/** -* the ancryption key for the encryption of all the document content (structure is not encrypted) -*/ -var $encryptionKey=''; -/** -* array which forms a stack to keep track of nested callback functions -*/ -var $callback = array(); -/** -* the number of callback functions in the callback array -*/ -var $nCallback = 0; -/** -* store label->id pairs for named destinations, these will be used to replace internal links -* done this way so that destinations can be defined after the location that links to them -*/ -var $destinations = array(); -/** -* store the stack for the transaction commands, each item in here is a record of the values of all the -* variables within the class, so that the user can rollback at will (from each 'start' command) -* note that this includes the objects array, so these can be large. -*/ -var $checkpoint = ''; -/** -* class constructor -* this will start a new document -* @var array array of 4 numbers, defining the bottom left and upper right corner of the page. first two are normally zero. -*/ -function Cpdf ($pageSize=array(0,0,612,792)){ - $this->newDocument($pageSize); - - // also initialize the font families that are known about already - $this->setFontFamily('init'); -// $this->fileIdentifier = md5('xxxxxxxx'.time()); - -} - -/** -* Document object methods (internal use only) -* -* There is about one object method for each type of object in the pdf document -* Each function has the same call list ($id,$action,$options). -* $id = the object id of the object, or what it is to be if it is being created -* $action = a string specifying the action to be performed, though ALL must support: -* 'new' - create the object with the id $id -* 'out' - produce the output for the pdf object -* $options = optional, a string or array containing the various parameters for the object -* -* These, in conjunction with the output function are the ONLY way for output to be produced -* within the pdf 'file'. -*/ - -/** -*destination object, used to specify the location for the user to jump to, presently on opening -*/ -function o_destination($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch($action){ - case 'new': - $this->objects[$id]=array('t'=>'destination','info'=>array()); - $tmp = ''; - switch ($options['type']){ - case 'XYZ': - case 'FitR': - $tmp = ' '.$options['p3'].$tmp; - case 'FitH': - case 'FitV': - case 'FitBH': - case 'FitBV': - $tmp = ' '.$options['p1'].' '.$options['p2'].$tmp; - case 'Fit': - case 'FitB': - $tmp = $options['type'].$tmp; - $this->objects[$id]['info']['string']=$tmp; - $this->objects[$id]['info']['page']=$options['page']; - } - break; - case 'out': - $tmp = $o['info']; - $res="\n".$id." 0 obj\n".'['.$tmp['page'].' 0 R /'.$tmp['string']."]\nendobj\n"; - return $res; - break; - } -} - -/** -* set the viewer preferences -*/ -function o_viewerPreferences($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->objects[$id]=array('t'=>'viewerPreferences','info'=>array()); - break; - case 'add': - foreach($options as $k=>$v){ - switch ($k){ - case 'HideToolbar': - case 'HideMenubar': - case 'HideWindowUI': - case 'FitWindow': - case 'CenterWindow': - case 'NonFullScreenPageMode': - case 'Direction': - $o['info'][$k]=$v; - break; - } - } - break; - case 'out': - - $res="\n".$id." 0 obj\n".'<< '; - foreach($o['info'] as $k=>$v){ - $res.="\n/".$k.' '.$v; - } - $res.="\n>>\n"; - return $res; - break; - } -} - -/** -* define the document catalog, the overall controller for the document -*/ -function o_catalog($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->objects[$id]=array('t'=>'catalog','info'=>array()); - $this->catalogId=$id; - break; - case 'outlines': - case 'pages': - case 'openHere': - $o['info'][$action]=$options; - break; - case 'viewerPreferences': - if (!isset($o['info']['viewerPreferences'])){ - $this->numObj++; - $this->o_viewerPreferences($this->numObj,'new'); - $o['info']['viewerPreferences']=$this->numObj; - } - $vp = $o['info']['viewerPreferences']; - $this->o_viewerPreferences($vp,'add',$options); - break; - case 'out': - $res="\n".$id." 0 obj\n".'<< /Type /Catalog'; - foreach($o['info'] as $k=>$v){ - switch($k){ - case 'outlines': - $res.="\n".'/Outlines '.$v.' 0 R'; - break; - case 'pages': - $res.="\n".'/Pages '.$v.' 0 R'; - break; - case 'viewerPreferences': - $res.="\n".'/ViewerPreferences '.$o['info']['viewerPreferences'].' 0 R'; - break; - case 'openHere': - $res.="\n".'/OpenAction '.$o['info']['openHere'].' 0 R'; - break; - } - } - $res.=" >>\nendobj"; - return $res; - break; - } -} - -/** -* object which is a parent to the pages in the document -*/ -function o_pages($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->objects[$id]=array('t'=>'pages','info'=>array()); - $this->o_catalog($this->catalogId,'pages',$id); - break; - case 'page': - if (!is_array($options)){ - // then it will just be the id of the new page - $o['info']['pages'][]=$options; - } else { - // then it should be an array having 'id','rid','pos', where rid=the page to which this one will be placed relative - // and pos is either 'before' or 'after', saying where this page will fit. - if (isset($options['id']) && isset($options['rid']) && isset($options['pos'])){ - $i = array_search($options['rid'],$o['info']['pages']); - if (isset($o['info']['pages'][$i]) && $o['info']['pages'][$i]==$options['rid']){ - // then there is a match - // make a space - switch ($options['pos']){ - case 'before': - $k = $i; - break; - case 'after': - $k=$i+1; - break; - default: - $k=-1; - break; - } - if ($k>=0){ - for ($j=count($o['info']['pages'])-1;$j>=$k;$j--){ - $o['info']['pages'][$j+1]=$o['info']['pages'][$j]; - } - $o['info']['pages'][$k]=$options['id']; - } - } - } - } - break; - case 'procset': - $o['info']['procset']=$options; - break; - case 'mediaBox': - $o['info']['mediaBox']=$options; // which should be an array of 4 numbers - break; - case 'font': - $o['info']['fonts'][]=array('objNum'=>$options['objNum'],'fontNum'=>$options['fontNum']); - break; - case 'xObject': - $o['info']['xObjects'][]=array('objNum'=>$options['objNum'],'label'=>$options['label']); - break; - case 'out': - if (count($o['info']['pages'])){ - $res="\n".$id." 0 obj\n<< /Type /Pages\n/Kids ["; - foreach($o['info']['pages'] as $k=>$v){ - $res.=$v." 0 R\n"; - } - $res.="]\n/Count ".count($this->objects[$id]['info']['pages']); - if ((isset($o['info']['fonts']) && count($o['info']['fonts'])) || isset($o['info']['procset'])){ - $res.="\n/Resources <<"; - if (isset($o['info']['procset'])){ - $res.="\n/ProcSet ".$o['info']['procset']." 0 R"; - } - if (isset($o['info']['fonts']) && count($o['info']['fonts'])){ - $res.="\n/Font << "; - foreach($o['info']['fonts'] as $finfo){ - $res.="\n/F".$finfo['fontNum']." ".$finfo['objNum']." 0 R"; - } - $res.=" >>"; - } - if (isset($o['info']['xObjects']) && count($o['info']['xObjects'])){ - $res.="\n/XObject << "; - foreach($o['info']['xObjects'] as $finfo){ - $res.="\n/".$finfo['label']." ".$finfo['objNum']." 0 R"; - } - $res.=" >>"; - } - $res.="\n>>"; - if (isset($o['info']['mediaBox'])){ - $tmp=$o['info']['mediaBox']; - $res.="\n/MediaBox [".sprintf('%.3f',$tmp[0]).' '.sprintf('%.3f',$tmp[1]).' '.sprintf('%.3f',$tmp[2]).' '.sprintf('%.3f',$tmp[3]).']'; - } - } - $res.="\n >>\nendobj"; - } else { - $res="\n".$id." 0 obj\n<< /Type /Pages\n/Count 0\n>>\nendobj"; - } - return $res; - break; - } -} - -/** -* define the outlines in the doc, empty for now -*/ -function o_outlines($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->objects[$id]=array('t'=>'outlines','info'=>array('outlines'=>array())); - $this->o_catalog($this->catalogId,'outlines',$id); - break; - case 'outline': - $o['info']['outlines'][]=$options; - break; - case 'out': - if (count($o['info']['outlines'])){ - $res="\n".$id." 0 obj\n<< /Type /Outlines /Kids ["; - foreach($o['info']['outlines'] as $k=>$v){ - $res.=$v." 0 R "; - } - $res.="] /Count ".count($o['info']['outlines'])." >>\nendobj"; - } else { - $res="\n".$id." 0 obj\n<< /Type /Outlines /Count 0 >>\nendobj"; - } - return $res; - break; - } -} - -/** -* an object to hold the font description -*/ -function o_font($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->objects[$id]=array('t'=>'font','info'=>array('name'=>$options['name'],'SubType'=>'Type1')); - $fontNum=$this->numFonts; - $this->objects[$id]['info']['fontNum']=$fontNum; - // deal with the encoding and the differences - if (isset($options['differences'])){ - // then we'll need an encoding dictionary - $this->numObj++; - $this->o_fontEncoding($this->numObj,'new',$options); - $this->objects[$id]['info']['encodingDictionary']=$this->numObj; - } else if (isset($options['encoding'])){ - // we can specify encoding here - switch($options['encoding']){ - case 'WinAnsiEncoding': - case 'MacRomanEncoding': - case 'MacExpertEncoding': - $this->objects[$id]['info']['encoding']=$options['encoding']; - break; - case 'none': - break; - default: - $this->objects[$id]['info']['encoding']='WinAnsiEncoding'; - break; - } - } else { - $this->objects[$id]['info']['encoding']='WinAnsiEncoding'; - } - // also tell the pages node about the new font - $this->o_pages($this->currentNode,'font',array('fontNum'=>$fontNum,'objNum'=>$id)); - break; - case 'add': - foreach ($options as $k=>$v){ - switch ($k){ - case 'BaseFont': - $o['info']['name'] = $v; - break; - case 'FirstChar': - case 'LastChar': - case 'Widths': - case 'FontDescriptor': - case 'SubType': - $this->addMessage('o_font '.$k." : ".$v); - $o['info'][$k] = $v; - break; - } - } - break; - case 'out': - $res="\n".$id." 0 obj\n<< /Type /Font\n/Subtype /".$o['info']['SubType']."\n"; - $res.="/Name /F".$o['info']['fontNum']."\n"; - $res.="/BaseFont /".$o['info']['name']."\n"; - if (isset($o['info']['encodingDictionary'])){ - // then place a reference to the dictionary - $res.="/Encoding ".$o['info']['encodingDictionary']." 0 R\n"; - } else if (isset($o['info']['encoding'])){ - // use the specified encoding - $res.="/Encoding /".$o['info']['encoding']."\n"; - } - if (isset($o['info']['FirstChar'])){ - $res.="/FirstChar ".$o['info']['FirstChar']."\n"; - } - if (isset($o['info']['LastChar'])){ - $res.="/LastChar ".$o['info']['LastChar']."\n"; - } - if (isset($o['info']['Widths'])){ - $res.="/Widths ".$o['info']['Widths']." 0 R\n"; - } - if (isset($o['info']['FontDescriptor'])){ - $res.="/FontDescriptor ".$o['info']['FontDescriptor']." 0 R\n"; - } - $res.=">>\nendobj"; - return $res; - break; - } -} - -/** -* a font descriptor, needed for including additional fonts -*/ -function o_fontDescriptor($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->objects[$id]=array('t'=>'fontDescriptor','info'=>$options); - break; - case 'out': - $res="\n".$id." 0 obj\n<< /Type /FontDescriptor\n"; - foreach ($o['info'] as $label => $value){ - switch ($label){ - case 'Ascent': - case 'CapHeight': - case 'Descent': - case 'Flags': - case 'ItalicAngle': - case 'StemV': - case 'AvgWidth': - case 'Leading': - case 'MaxWidth': - case 'MissingWidth': - case 'StemH': - case 'XHeight': - case 'CharSet': - if (strlen($value)){ - $res.='/'.$label.' '.$value."\n"; - } - break; - case 'FontFile': - case 'FontFile2': - case 'FontFile3': - $res.='/'.$label.' '.$value." 0 R\n"; - break; - case 'FontBBox': - $res.='/'.$label.' ['.$value[0].' '.$value[1].' '.$value[2].' '.$value[3]."]\n"; - break; - case 'FontName': - $res.='/'.$label.' /'.$value."\n"; - break; - } - } - $res.=">>\nendobj"; - return $res; - break; - } -} - -/** -* the font encoding -*/ -function o_fontEncoding($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - // the options array should contain 'differences' and maybe 'encoding' - $this->objects[$id]=array('t'=>'fontEncoding','info'=>$options); - break; - case 'out': - $res="\n".$id." 0 obj\n<< /Type /Encoding\n"; - if (!isset($o['info']['encoding'])){ - $o['info']['encoding']='WinAnsiEncoding'; - } - if ($o['info']['encoding']!='none'){ - $res.="/BaseEncoding /".$o['info']['encoding']."\n"; - } - $res.="/Differences \n["; - $onum=-100; - foreach($o['info']['differences'] as $num=>$label){ - if ($num!=$onum+1){ - // we cannot make use of consecutive numbering - $res.= "\n".$num." /".$label; - } else { - $res.= " /".$label; - } - $onum=$num; - } - $res.="\n]\n>>\nendobj"; - return $res; - break; - } -} - -/** -* the document procset, solves some problems with printing to old PS printers -*/ -function o_procset($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->objects[$id]=array('t'=>'procset','info'=>array('PDF'=>1,'Text'=>1)); - $this->o_pages($this->currentNode,'procset',$id); - $this->procsetObjectId=$id; - break; - case 'add': - // this is to add new items to the procset list, despite the fact that this is considered - // obselete, the items are required for printing to some postscript printers - switch ($options) { - case 'ImageB': - case 'ImageC': - case 'ImageI': - $o['info'][$options]=1; - break; - } - break; - case 'out': - $res="\n".$id." 0 obj\n["; - foreach ($o['info'] as $label=>$val){ - $res.='/'.$label.' '; - } - $res.="]\nendobj"; - return $res; - break; - } -} - -/** -* define the document information -*/ -function o_info($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->infoObject=$id; - $date='D:'.date('Ymd'); - $this->objects[$id]=array('t'=>'info','info'=>array('Creator'=>'R and OS php pdf writer, http://www.ros.co.nz','CreationDate'=>$date)); - break; - case 'Title': - case 'Author': - case 'Subject': - case 'Keywords': - case 'Creator': - case 'Producer': - case 'CreationDate': - case 'ModDate': - case 'Trapped': - $o['info'][$action]=$options; - break; - case 'out': - if ($this->encrypted){ - $this->encryptInit($id); - } - $res="\n".$id." 0 obj\n<<\n"; - foreach ($o['info'] as $k=>$v){ - $res.='/'.$k.' ('; - if ($this->encrypted){ - $res.=$this->filterText($this->ARC4($v)); - } else { - $res.=$this->filterText($v); - } - $res.=")\n"; - } - $res.=">>\nendobj"; - return $res; - break; - } -} - -/** -* an action object, used to link to URLS initially -*/ -function o_action($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - if (is_array($options)){ - $this->objects[$id]=array('t'=>'action','info'=>$options,'type'=>$options['type']); - } else { - // then assume a URI action - $this->objects[$id]=array('t'=>'action','info'=>$options,'type'=>'URI'); - } - break; - case 'out': - if ($this->encrypted){ - $this->encryptInit($id); - } - $res="\n".$id." 0 obj\n<< /Type /Action"; - switch($o['type']){ - case 'ilink': - // there will be an 'label' setting, this is the name of the destination - $res.="\n/S /GoTo\n/D ".$this->destinations[(string)$o['info']['label']]." 0 R"; - break; - case 'URI': - $res.="\n/S /URI\n/URI ("; - if ($this->encrypted){ - $res.=$this->filterText($this->ARC4($o['info'])); - } else { - $res.=$this->filterText($o['info']); - } - $res.=")"; - break; - } - $res.="\n>>\nendobj"; - return $res; - break; - } -} - -/** -* an annotation object, this will add an annotation to the current page. -* initially will support just link annotations -*/ -function o_annotation($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - // add the annotation to the current page - $pageId = $this->currentPage; - $this->o_page($pageId,'annot',$id); - // and add the action object which is going to be required - switch($options['type']){ - case 'link': - $this->objects[$id]=array('t'=>'annotation','info'=>$options); - $this->numObj++; - $this->o_action($this->numObj,'new',$options['url']); - $this->objects[$id]['info']['actionId']=$this->numObj; - break; - case 'ilink': - // this is to a named internal link - $label = $options['label']; - $this->objects[$id]=array('t'=>'annotation','info'=>$options); - $this->numObj++; - $this->o_action($this->numObj,'new',array('type'=>'ilink','label'=>$label)); - $this->objects[$id]['info']['actionId']=$this->numObj; - break; - } - break; - case 'out': - $res="\n".$id." 0 obj\n<< /Type /Annot"; - switch($o['info']['type']){ - case 'link': - case 'ilink': - $res.= "\n/Subtype /Link"; - break; - } - $res.="\n/A ".$o['info']['actionId']." 0 R"; - $res.="\n/Border [0 0 0]"; - $res.="\n/H /I"; - $res.="\n/Rect [ "; - foreach($o['info']['rect'] as $v){ - $res.= sprintf("%.4f ",$v); - } - $res.="]"; - $res.="\n>>\nendobj"; - return $res; - break; - } -} - -/** -* a page object, it also creates a contents object to hold its contents -*/ -function o_page($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->numPages++; - $this->objects[$id]=array('t'=>'page','info'=>array('parent'=>$this->currentNode,'pageNum'=>$this->numPages)); - if (is_array($options)){ - // then this must be a page insertion, array shoudl contain 'rid','pos'=[before|after] - $options['id']=$id; - $this->o_pages($this->currentNode,'page',$options); - } else { - $this->o_pages($this->currentNode,'page',$id); - } - $this->currentPage=$id; - //make a contents object to go with this page - $this->numObj++; - $this->o_contents($this->numObj,'new',$id); - $this->currentContents=$this->numObj; - $this->objects[$id]['info']['contents']=array(); - $this->objects[$id]['info']['contents'][]=$this->numObj; - $match = ($this->numPages%2 ? 'odd' : 'even'); - foreach($this->addLooseObjects as $oId=>$target){ - if ($target=='all' || $match==$target){ - $this->objects[$id]['info']['contents'][]=$oId; - } - } - break; - case 'content': - $o['info']['contents'][]=$options; - break; - case 'annot': - // add an annotation to this page - if (!isset($o['info']['annot'])){ - $o['info']['annot']=array(); - } - // $options should contain the id of the annotation dictionary - $o['info']['annot'][]=$options; - break; - case 'out': - $res="\n".$id." 0 obj\n<< /Type /Page"; - $res.="\n/Parent ".$o['info']['parent']." 0 R"; - if (isset($o['info']['annot'])){ - $res.="\n/Annots ["; - foreach($o['info']['annot'] as $aId){ - $res.=" ".$aId." 0 R"; - } - $res.=" ]"; - } - $count = count($o['info']['contents']); - if ($count==1){ - $res.="\n/Contents ".$o['info']['contents'][0]." 0 R"; - } else if ($count>1){ - $res.="\n/Contents [\n"; - foreach ($o['info']['contents'] as $cId){ - $res.=$cId." 0 R\n"; - } - $res.="]"; - } - $res.="\n>>\nendobj"; - return $res; - break; - } -} - -/** -* the contents objects hold all of the content which appears on pages -*/ -function o_contents($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch ($action){ - case 'new': - $this->objects[$id]=array('t'=>'contents','c'=>'','info'=>array()); - if (strlen($options) && intval($options)){ - // then this contents is the primary for a page - $this->objects[$id]['onPage']=$options; - } else if ($options=='raw'){ - // then this page contains some other type of system object - $this->objects[$id]['raw']=1; - } - break; - case 'add': - // add more options to the decleration - foreach ($options as $k=>$v){ - $o['info'][$k]=$v; - } - case 'out': - $tmp=$o['c']; - $res= "\n".$id." 0 obj\n"; - if (isset($this->objects[$id]['raw'])){ - $res.=$tmp; - } else { - $res.= "<<"; - if (function_exists('gzcompress') && $this->options['compression']){ - // then implement ZLIB based compression on this content stream - $res.=" /Filter /FlateDecode"; - $tmp = gzcompress($tmp); - } - if ($this->encrypted){ - $this->encryptInit($id); - $tmp = $this->ARC4($tmp); - } - foreach($o['info'] as $k=>$v){ - $res .= "\n/".$k.' '.$v; - } - $res.="\n/Length ".strlen($tmp)." >>\nstream\n".$tmp."\nendstream"; - } - $res.="\nendobj\n"; - return $res; - break; - } -} - -/** -* an image object, will be an XObject in the document, includes description and data -*/ -function o_image($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch($action){ - case 'new': - // make the new object - $this->objects[$id]=array('t'=>'image','data'=>$options['data'],'info'=>array()); - $this->objects[$id]['info']['Type']='/XObject'; - $this->objects[$id]['info']['Subtype']='/Image'; - $this->objects[$id]['info']['Width']=$options['iw']; - $this->objects[$id]['info']['Height']=$options['ih']; - if (!isset($options['type']) || $options['type']=='jpg'){ - if (!isset($options['channels'])){ - $options['channels']=3; - } - switch($options['channels']){ - case 1: - $this->objects[$id]['info']['ColorSpace']='/DeviceGray'; - break; - default: - $this->objects[$id]['info']['ColorSpace']='/DeviceRGB'; - break; - } - $this->objects[$id]['info']['Filter']='/DCTDecode'; - $this->objects[$id]['info']['BitsPerComponent']=8; - } else if ($options['type']=='png'){ - $this->objects[$id]['info']['Filter']='/FlateDecode'; - $this->objects[$id]['info']['DecodeParms']='<< /Predictor 15 /Colors '.$options['ncolor'].' /Columns '.$options['iw'].' /BitsPerComponent '.$options['bitsPerComponent'].'>>'; - if (strlen($options['pdata'])){ - $tmp = ' [ /Indexed /DeviceRGB '.(strlen($options['pdata'])/3-1).' '; - $this->numObj++; - $this->o_contents($this->numObj,'new'); - $this->objects[$this->numObj]['c']=$options['pdata']; - $tmp.=$this->numObj.' 0 R'; - $tmp .=' ]'; - $this->objects[$id]['info']['ColorSpace'] = $tmp; - if (isset($options['transparency'])){ - switch($options['transparency']['type']){ - case 'indexed': - $tmp=' [ '.$options['transparency']['data'].' '.$options['transparency']['data'].'] '; - $this->objects[$id]['info']['Mask'] = $tmp; - break; - } - } - } else { - $this->objects[$id]['info']['ColorSpace']='/'.$options['color']; - } - $this->objects[$id]['info']['BitsPerComponent']=$options['bitsPerComponent']; - } - // assign it a place in the named resource dictionary as an external object, according to - // the label passed in with it. - $this->o_pages($this->currentNode,'xObject',array('label'=>$options['label'],'objNum'=>$id)); - // also make sure that we have the right procset object for it. - $this->o_procset($this->procsetObjectId,'add','ImageC'); - break; - case 'out': - $tmp=$o['data']; - $res= "\n".$id." 0 obj\n<<"; - foreach($o['info'] as $k=>$v){ - $res.="\n/".$k.' '.$v; - } - if ($this->encrypted){ - $this->encryptInit($id); - $tmp = $this->ARC4($tmp); - } - $res.="\n/Length ".strlen($tmp)." >>\nstream\n".$tmp."\nendstream\nendobj\n"; - return $res; - break; - } -} - -/** -* encryption object. -*/ -function o_encryption($id,$action,$options=''){ - if ($action!='new'){ - $o =& $this->objects[$id]; - } - switch($action){ - case 'new': - // make the new object - $this->objects[$id]=array('t'=>'encryption','info'=>$options); - $this->arc4_objnum=$id; - // figure out the additional paramaters required - $pad = chr(0x28).chr(0xBF).chr(0x4E).chr(0x5E).chr(0x4E).chr(0x75).chr(0x8A).chr(0x41).chr(0x64).chr(0x00).chr(0x4E).chr(0x56).chr(0xFF).chr(0xFA).chr(0x01).chr(0x08).chr(0x2E).chr(0x2E).chr(0x00).chr(0xB6).chr(0xD0).chr(0x68).chr(0x3E).chr(0x80).chr(0x2F).chr(0x0C).chr(0xA9).chr(0xFE).chr(0x64).chr(0x53).chr(0x69).chr(0x7A); - $len = strlen($options['owner']); - if ($len>32){ - $owner = substr($options['owner'],0,32); - } else if ($len<32){ - $owner = $options['owner'].substr($pad,0,32-$len); - } else { - $owner = $options['owner']; - } - $len = strlen($options['user']); - if ($len>32){ - $user = substr($options['user'],0,32); - } else if ($len<32){ - $user = $options['user'].substr($pad,0,32-$len); - } else { - $user = $options['user']; - } - $tmp = $this->md5_16($owner); - $okey = substr($tmp,0,5); - $this->ARC4_init($okey); - $ovalue=$this->ARC4($user); - $this->objects[$id]['info']['O']=$ovalue; - // now make the u value, phew. - $tmp = $this->md5_16($user.$ovalue.chr($options['p']).chr(255).chr(255).chr(255).$this->fileIdentifier); - $ukey = substr($tmp,0,5); - - $this->ARC4_init($ukey); - $this->encryptionKey = $ukey; - $this->encrypted=1; - $uvalue=$this->ARC4($pad); - - $this->objects[$id]['info']['U']=$uvalue; - $this->encryptionKey=$ukey; - - // initialize the arc4 array - break; - case 'out': - $res= "\n".$id." 0 obj\n<<"; - $res.="\n/Filter /Standard"; - $res.="\n/V 1"; - $res.="\n/R 2"; - $res.="\n/O (".$this->filterText($o['info']['O']).')'; - $res.="\n/U (".$this->filterText($o['info']['U']).')'; - // and the p-value needs to be converted to account for the twos-complement approach - $o['info']['p'] = (($o['info']['p']^255)+1)*-1; - $res.="\n/P ".($o['info']['p']); - $res.="\n>>\nendobj\n"; - - return $res; - break; - } -} - -/** -* ARC4 functions -* A series of function to implement ARC4 encoding in PHP -*/ - -/** -* calculate the 16 byte version of the 128 bit md5 digest of the string -*/ -function md5_16($string){ - $tmp = md5($string); - $out=''; - for ($i=0;$i<=30;$i=$i+2){ - $out.=chr(hexdec(substr($tmp,$i,2))); - } - return $out; -} - -/** -* initialize the encryption for processing a particular object -*/ -function encryptInit($id){ - $tmp = $this->encryptionKey; - $hex = dechex($id); - if (strlen($hex)<6){ - $hex = substr('000000',0,6-strlen($hex)).$hex; - } - $tmp.= chr(hexdec(substr($hex,4,2))).chr(hexdec(substr($hex,2,2))).chr(hexdec(substr($hex,0,2))).chr(0).chr(0); - $key = $this->md5_16($tmp); - $this->ARC4_init(substr($key,0,10)); -} - -/** -* initialize the ARC4 encryption -*/ -function ARC4_init($key=''){ - $this->arc4 = ''; - // setup the control array - if (strlen($key)==0){ - return; - } - $k = ''; - while(strlen($k)<256){ - $k.=$key; - } - $k=substr($k,0,256); - for ($i=0;$i<256;$i++){ - $this->arc4 .= chr($i); - } - $j=0; - for ($i=0;$i<256;$i++){ - $t = $this->arc4[$i]; - $j = ($j + ord($t) + ord($k[$i]))%256; - $this->arc4[$i]=$this->arc4[$j]; - $this->arc4[$j]=$t; - } -} - -/** -* ARC4 encrypt a text string -*/ -function ARC4($text){ - $len=strlen($text); - $a=0; - $b=0; - $c = $this->arc4; - $out=''; - for ($i=0;$i<$len;$i++){ - $a = ($a+1)%256; - $t= $c[$a]; - $b = ($b+ord($t))%256; - $c[$a]=$c[$b]; - $c[$b]=$t; - $k = ord($c[(ord($c[$a])+ord($c[$b]))%256]); - $out.=chr(ord($text[$i]) ^ $k); - } - - return $out; -} - -/** -* functions which can be called to adjust or add to the document -*/ - -/** -* add a link in the document to an external URL -*/ -function addLink($url,$x0,$y0,$x1,$y1){ - $this->numObj++; - $info = array('type'=>'link','url'=>$url,'rect'=>array($x0,$y0,$x1,$y1)); - $this->o_annotation($this->numObj,'new',$info); -} - -/** -* add a link in the document to an internal destination (ie. within the document) -*/ -function addInternalLink($label,$x0,$y0,$x1,$y1){ - $this->numObj++; - $info = array('type'=>'ilink','label'=>$label,'rect'=>array($x0,$y0,$x1,$y1)); - $this->o_annotation($this->numObj,'new',$info); -} - -/** -* set the encryption of the document -* can be used to turn it on and/or set the passwords which it will have. -* also the functions that the user will have are set here, such as print, modify, add -*/ -function setEncryption($userPass='',$ownerPass='',$pc=array()){ - $p=bindec(11000000); - - $options = array( - 'print'=>4 - ,'modify'=>8 - ,'copy'=>16 - ,'add'=>32 - ); - foreach($pc as $k=>$v){ - if ($v && isset($options[$k])){ - $p+=$options[$k]; - } else if (isset($options[$v])){ - $p+=$options[$v]; - } - } - // implement encryption on the document - if ($this->arc4_objnum == 0){ - // then the block does not exist already, add it. - $this->numObj++; - if (strlen($ownerPass)==0){ - $ownerPass=$userPass; - } - $this->o_encryption($this->numObj,'new',array('user'=>$userPass,'owner'=>$ownerPass,'p'=>$p)); - } -} - -/** -* should be used for internal checks, not implemented as yet -*/ -function checkAllHere(){ -} - -/** -* return the pdf stream as a string returned from the function -*/ -function output($debug=0){ - - if ($debug){ - // turn compression off - $this->options['compression']=0; - } - - if ($this->arc4_objnum){ - $this->ARC4_init($this->encryptionKey); - } - - $this->checkAllHere(); - - $xref=array(); - $content="%PDF-1.3\n%âãÏÓ\n"; -// $content="%PDF-1.3\n"; - $pos=strlen($content); - foreach($this->objects as $k=>$v){ - $tmp='o_'.$v['t']; - $cont=$this->$tmp($k,'out'); - $content.=$cont; - $xref[]=$pos; - $pos+=strlen($cont); - } - $content.="\nxref\n0 ".(count($xref)+1)."\n0000000000 65535 f \n"; - foreach($xref as $p){ - $content.=substr('0000000000',0,10-strlen($p)).$p." 00000 n \n"; - } - $content.="\ntrailer\n << /Size ".(count($xref)+1)."\n /Root 1 0 R\n /Info ".$this->infoObject." 0 R\n"; - // if encryption has been applied to this document then add the marker for this dictionary - if ($this->arc4_objnum > 0){ - $content .= "/Encrypt ".$this->arc4_objnum." 0 R\n"; - } - if (strlen($this->fileIdentifier)){ - $content .= "/ID[<".$this->fileIdentifier."><".$this->fileIdentifier.">]\n"; - } - $content .= " >>\nstartxref\n".$pos."\n%%EOF\n"; - return $content; -} - -/** -* intialize a new document -* if this is called on an existing document results may be unpredictable, but the existing document would be lost at minimum -* this function is called automatically by the constructor function -* -* @access private -*/ -function newDocument($pageSize=array(0,0,612,792)){ - $this->numObj=0; - $this->objects = array(); - - $this->numObj++; - $this->o_catalog($this->numObj,'new'); - - $this->numObj++; - $this->o_outlines($this->numObj,'new'); - - $this->numObj++; - $this->o_pages($this->numObj,'new'); - - $this->o_pages($this->numObj,'mediaBox',$pageSize); - $this->currentNode = 3; - - $this->numObj++; - $this->o_procset($this->numObj,'new'); - - $this->numObj++; - $this->o_info($this->numObj,'new'); - - $this->numObj++; - $this->o_page($this->numObj,'new'); - - // need to store the first page id as there is no way to get it to the user during - // startup - $this->firstPageId = $this->currentContents; -} - -/** -* open the font file and return a php structure containing it. -* first check if this one has been done before and saved in a form more suited to php -* note that if a php serialized version does not exist it will try and make one, but will -* require write access to the directory to do it... it is MUCH faster to have these serialized -* files. -* -* @access private -*/ -function openFont($font){ - // assume that $font contains both the path and perhaps the extension to the file, split them - $pos=strrpos($font,'/'); - if ($pos===false){ - $dir = './'; - $name = $font; - } else { - $dir=substr($font,0,$pos+1); - $name=substr($font,$pos+1); - } - - if (substr($name,-4)=='.afm'){ - $name=substr($name,0,strlen($name)-4); - } - $this->addMessage('openFont: '.$font.' - '.$name); - if (file_exists($dir.'php_'.$name.'.afm')){ - $this->addMessage('openFont: php file exists '.$dir.'php_'.$name.'.afm'); - $tmp = file($dir.'php_'.$name.'.afm'); - $this->fonts[$font]=unserialize($tmp[0]); - if (!isset($this->fonts[$font]['_version_']) || $this->fonts[$font]['_version_']<1){ - // if the font file is old, then clear it out and prepare for re-creation - $this->addMessage('openFont: clear out, make way for new version.'); - unset($this->fonts[$font]); - } - } - if (!isset($this->fonts[$font]) && file_exists($dir.$name.'.afm')){ - // then rebuild the php_.afm file from the .afm file - $this->addMessage('openFont: build php file from '.$dir.$name.'.afm'); - $data = array(); - $file = file($dir.$name.'.afm'); - foreach ($file as $rowA){ - $row=trim($rowA); - $pos=strpos($row,' '); - if ($pos){ - // then there must be some keyword - $key = substr($row,0,$pos); - switch ($key){ - case 'FontName': - case 'FullName': - case 'FamilyName': - case 'Weight': - case 'ItalicAngle': - case 'IsFixedPitch': - case 'CharacterSet': - case 'UnderlinePosition': - case 'UnderlineThickness': - case 'Version': - case 'EncodingScheme': - case 'CapHeight': - case 'XHeight': - case 'Ascender': - case 'Descender': - case 'StdHW': - case 'StdVW': - case 'StartCharMetrics': - $data[$key]=trim(substr($row,$pos)); - break; - case 'FontBBox': - $data[$key]=explode(' ',trim(substr($row,$pos))); - break; - case 'C': - //C 39 ; WX 222 ; N quoteright ; B 53 463 157 718 ; - $bits=explode(';',trim($row)); - $dtmp=array(); - foreach($bits as $bit){ - $bits2 = explode(' ',trim($bit)); - if (strlen($bits2[0])){ - if (count($bits2)>2){ - $dtmp[$bits2[0]]=array(); - for ($i=1;$i=0){ - $data['C'][$dtmp['C']]=$dtmp; - $data['C'][$dtmp['N']]=$dtmp; - } else { - $data['C'][$dtmp['N']]=$dtmp; - } - break; - case 'KPX': - //KPX Adieresis yacute -40 - $bits=explode(' ',trim($row)); - $data['KPX'][$bits[1]][$bits[2]]=$bits[3]; - break; - } - } - } - $data['_version_']=1; - $this->fonts[$font]=$data; - $fp = fopen($dir.'php_'.$name.'.afm','w'); - fwrite($fp,serialize($data)); - fclose($fp); - } else if (!isset($this->fonts[$font])){ - $this->addMessage('openFont: no font file found'); -// echo 'Font not Found '.$font; - } -} - -/** -* if the font is not loaded then load it and make the required object -* else just make it the current font -* the encoding array can contain 'encoding'=> 'none','WinAnsiEncoding','MacRomanEncoding' or 'MacExpertEncoding' -* note that encoding='none' will need to be used for symbolic fonts -* and 'differences' => an array of mappings between numbers 0->255 and character names. -* -*/ -function selectFont($fontName,$encoding='',$set=1){ - if (!isset($this->fonts[$fontName])){ - // load the file - $this->openFont($fontName); - if (isset($this->fonts[$fontName])){ - $this->numObj++; - $this->numFonts++; - $pos=strrpos($fontName,'/'); -// $dir=substr($fontName,0,$pos+1); - $name=substr($fontName,$pos+1); - if (substr($name,-4)=='.afm'){ - $name=substr($name,0,strlen($name)-4); - } - $options=array('name'=>$name); - if (is_array($encoding)){ - // then encoding and differences might be set - if (isset($encoding['encoding'])){ - $options['encoding']=$encoding['encoding']; - } - if (isset($encoding['differences'])){ - $options['differences']=$encoding['differences']; - } - } else if (strlen($encoding)){ - // then perhaps only the encoding has been set - $options['encoding']=$encoding; - } - $fontObj = $this->numObj; - $this->o_font($this->numObj,'new',$options); - $this->fonts[$fontName]['fontNum']=$this->numFonts; - // if this is a '.afm' font, and there is a '.pfa' file to go with it ( as there - // should be for all non-basic fonts), then load it into an object and put the - // references into the font object - $basefile = substr($fontName,0,strlen($fontName)-4); - if (file_exists($basefile.'.pfb')){ - $fbtype = 'pfb'; - } else if (file_exists($basefile.'.ttf')){ - $fbtype = 'ttf'; - } else { - $fbtype=''; - } - $fbfile = $basefile.'.'.$fbtype; - -// $pfbfile = substr($fontName,0,strlen($fontName)-4).'.pfb'; -// $ttffile = substr($fontName,0,strlen($fontName)-4).'.ttf'; - $this->addMessage('selectFont: checking for - '.$fbfile); - if (substr($fontName,-4)=='.afm' && strlen($fbtype) ){ - $adobeFontName = $this->fonts[$fontName]['FontName']; -// $fontObj = $this->numObj; - $this->addMessage('selectFont: adding font file - '.$fbfile.' - '.$adobeFontName); - // find the array of fond widths, and put that into an object. - $firstChar = -1; - $lastChar = 0; - $widths = array(); - foreach ($this->fonts[$fontName]['C'] as $num=>$d){ - if (intval($num)>0 || $num=='0'){ - if ($lastChar>0 && $num>$lastChar+1){ - for($i=$lastChar+1;$i<$num;$i++){ - $widths[] = 0; - } - } - $widths[] = $d['WX']; - if ($firstChar==-1){ - $firstChar = $num; - } - $lastChar = $num; - } - } - // also need to adjust the widths for the differences array - if (isset($options['differences'])){ - foreach($options['differences'] as $charNum=>$charName){ - if ($charNum>$lastChar){ - for($i=$lastChar+1;$i<=$charNum;$i++){ - $widths[]=0; - } - $lastChar=$charNum; - } - if (isset($this->fonts[$fontName]['C'][$charName])){ - $widths[$charNum-$firstChar]=$this->fonts[$fontName]['C'][$charName]['WX']; - } - } - } - $this->addMessage('selectFont: FirstChar='.$firstChar); - $this->addMessage('selectFont: LastChar='.$lastChar); - $this->numObj++; - $this->o_contents($this->numObj,'new','raw'); - $this->objects[$this->numObj]['c'].='['; - foreach($widths as $width){ - $this->objects[$this->numObj]['c'].=' '.$width; - } - $this->objects[$this->numObj]['c'].=' ]'; - $widthid = $this->numObj; - - // load the pfb file, and put that into an object too. - // note that pdf supports only binary format type 1 font files, though there is a - // simple utility to convert them from pfa to pfb. - $fp = fopen($fbfile,'rb'); - $tmp = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - $data = fread($fp,filesize($fbfile)); - set_magic_quotes_runtime($tmp); - fclose($fp); - - // create the font descriptor - $this->numObj++; - $fontDescriptorId = $this->numObj; - $this->numObj++; - $pfbid = $this->numObj; - // determine flags (more than a little flakey, hopefully will not matter much) - $flags=0; - if ($this->fonts[$fontName]['ItalicAngle']!=0){ $flags+=pow(2,6); } - if ($this->fonts[$fontName]['IsFixedPitch']=='true'){ $flags+=1; } - $flags+=pow(2,5); // assume non-sybolic - - $list = array('Ascent'=>'Ascender','CapHeight'=>'CapHeight','Descent'=>'Descender','FontBBox'=>'FontBBox','ItalicAngle'=>'ItalicAngle'); - $fdopt = array( - 'Flags'=>$flags - ,'FontName'=>$adobeFontName - ,'StemV'=>100 // don't know what the value for this should be! - ); - foreach($list as $k=>$v){ - if (isset($this->fonts[$fontName][$v])){ - $fdopt[$k]=$this->fonts[$fontName][$v]; - } - } - - if ($fbtype=='pfb'){ - $fdopt['FontFile']=$pfbid; - } else if ($fbtype=='ttf'){ - $fdopt['FontFile2']=$pfbid; - } - $this->o_fontDescriptor($fontDescriptorId,'new',$fdopt); - - // embed the font program - $this->o_contents($this->numObj,'new'); - $this->objects[$pfbid]['c'].=$data; - // determine the cruicial lengths within this file - if ($fbtype=='pfb'){ - $l1 = strpos($data,'eexec')+6; - $l2 = strpos($data,'00000000')-$l1; - $l3 = strlen($data)-$l2-$l1; - $this->o_contents($this->numObj,'add',array('Length1'=>$l1,'Length2'=>$l2,'Length3'=>$l3)); - } else if ($fbtype=='ttf'){ - $l1 = strlen($data); - $this->o_contents($this->numObj,'add',array('Length1'=>$l1)); - } - - - // tell the font object about all this new stuff - $tmp = array('BaseFont'=>$adobeFontName,'Widths'=>$widthid - ,'FirstChar'=>$firstChar,'LastChar'=>$lastChar - ,'FontDescriptor'=>$fontDescriptorId); - if ($fbtype=='ttf'){ - $tmp['SubType']='TrueType'; - } - $this->addMessage('adding extra info to font.('.$fontObj.')'); - foreach($tmp as $fk=>$fv){ - $this->addMessage($fk." : ".$fv); - } - $this->o_font($fontObj,'add',$tmp); - - } else { - $this->addMessage('selectFont: pfb or ttf file not found, ok if this is one of the 14 standard fonts'); - } - - - // also set the differences here, note that this means that these will take effect only the - //first time that a font is selected, else they are ignored - if (isset($options['differences'])){ - $this->fonts[$fontName]['differences']=$options['differences']; - } - } - } - if ($set && isset($this->fonts[$fontName])){ - // so if for some reason the font was not set in the last one then it will not be selected - $this->currentBaseFont=$fontName; - // the next line means that if a new font is selected, then the current text state will be - // applied to it as well. - $this->setCurrentFont(); - } - return $this->currentFontNum; -} - -/** -* sets up the current font, based on the font families, and the current text state -* note that this system is quite flexible, a font can be completely different to a -* font, and even will have to be defined within the family to have meaning -* This function is to be called whenever the currentTextState is changed, it will update -* the currentFont setting to whatever the appropriatte family one is. -* If the user calls selectFont themselves then that will reset the currentBaseFont, and the currentFont -* This function will change the currentFont to whatever it should be, but will not change the -* currentBaseFont. -* -* @access private -*/ -function setCurrentFont(){ - if (strlen($this->currentBaseFont)==0){ - // then assume an initial font - $this->selectFont('./fonts/Helvetica.afm'); - } - $cf = substr($this->currentBaseFont,strrpos($this->currentBaseFont,'/')+1); - if (strlen($this->currentTextState) - && isset($this->fontFamilies[$cf]) - && isset($this->fontFamilies[$cf][$this->currentTextState])){ - // then we are in some state or another - // and this font has a family, and the current setting exists within it - // select the font, then return it - $nf = substr($this->currentBaseFont,0,strrpos($this->currentBaseFont,'/')+1).$this->fontFamilies[$cf][$this->currentTextState]; - $this->selectFont($nf,'',0); - $this->currentFont = $nf; - $this->currentFontNum = $this->fonts[$nf]['fontNum']; - } else { - // the this font must not have the right family member for the current state - // simply assume the base font - $this->currentFont = $this->currentBaseFont; - $this->currentFontNum = $this->fonts[$this->currentFont]['fontNum']; - } -} - -/** -* function for the user to find out what the id is of the first page that was created during -* startup - useful if they wish to add something to it later. -*/ -function getFirstPageId(){ - return $this->firstPageId; -} - -/** -* add content to the currently active object -* -* @access private -*/ -function addContent($content){ - $this->objects[$this->currentContents]['c'].=$content; -} - -/** -* sets the colour for fill operations -*/ -function setColor($r,$g,$b,$force=0){ - if ($r>=0 && ($force || $r!=$this->currentColour['r'] || $g!=$this->currentColour['g'] || $b!=$this->currentColour['b'])){ - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$r).' '.sprintf('%.3f',$g).' '.sprintf('%.3f',$b).' rg'; - $this->currentColour=array('r'=>$r,'g'=>$g,'b'=>$b); - } -} - +/* + This class is an extension to the tcpdf class using a syntax that the original reports were written in + (the R &OS pdf.php class) - due to easily portation this wrapper class + was written to allow the same code base to use the more functional tcpdf.class by Nicola Asuni + +* Wrapper for use R&OSpdf API with tcpdf.org class +* Joe Hunt and Janusz Dobrowolski +*/ + +define("K_RE_PATTERN_RTL", "/( + \xD6\xBE # R + | \xD7[\x80\x83\x86\x90-\xAA\xB0-\xB4] # R + | \xDF[\x80-\xAA\xB4\xB5\xBA] # R + | \xE2\x80\x8F # R + | \xEF\xAC[\x9D\x9F\xA0-\xA8\xAA-\xB6\xB8-\xBC\xBE] # R + | \xEF\xAD[\x80\x81\x83\x84\x86-\x8F] # R + | \xF0\x90\xA0[\x80-\x85\x88\x8A-\xB5\xB7\xB8\xBC\xBF] # R + | \xF0\x90\xA4[\x80-\x99] # R + | \xF0\x90\xA8[\x80\x90-\x93\x95-\x97\x99-\xB3] # R + | \xF0\x90\xA9[\x80-\x87\x90-\x98] # R + | \xE2\x80[\xAB\xAE] # RLE & RLO + )/x"); + +/* + * Pattern to test Arabic strings using regular expressions. + * source: http://www.w3.org/International/questions/qa-forms-utf-8 + */ +define("K_RE_PATTERN_ARABIC", "/( + \xD8[\x80-\x83\x8B\x8D\x9B\x9E\x9F\xA1-\xBA] # AL + | \xD9[\x80-\x8A\xAD-\xAF\xB1-\xBF] # AL + | \xDA[\x80-\xBF] # AL + | \xDB[\x80-\x95\x9D\xA5\xA6\xAE\xAF\xBA-\xBF] # AL + | \xDC[\x80-\x8D\x90\x92-\xAF] # AL + | \xDD[\x8D-\xAD] # AL + | \xDE[\x80-\xA5\xB1] # AL + | \xEF\xAD[\x90-\xBF] # AL + | \xEF\xAE[\x80-\xB1] # AL + | \xEF\xAF[\x93-\xBF] # AL + | \xEF[\xB0-\xB3][\x80-\xBF] # AL + | \xEF\xB4[\x80-\xBD] # AL + | \xEF\xB5[\x90-\xBF] # AL + | \xEF\xB6[\x80-\x8F\x92-\xBF] # AL + | \xEF\xB7[\x80-\x87\xB0-\xBC] # AL + | \xEF\xB9[\xB0-\xB4\xB6-\xBF] # AL + | \xEF\xBA[\x80-\xBF] # AL + | \xEF\xBB[\x80-\xBC] # AL + | \xD9[\xA0-\xA9\xAB\xAC] # AN + )/x"); + +include_once (dirname(__FILE__).'/tcpdf.php'); + +class Cpdf extends TCPDF { + + function Cpdf($pageSize='A4', $l=array()) + { + if (!isset($l['a_meta_charset'])) + $l = array('a_meta_charset' => 'ISO-8859-1', 'a_meta_dir' => 'ltr', 'a_meta_language' => 'en_GB', 'w_page' => 'page'); + $enc = $l['a_meta_charset']; + $uni = ($enc == 'UTF-8' || $enc == 'GB2312' ? true : false); + if ($enc == "GB2312") + ini_set("memory_limit", "25M"); + $this->TCPDF('P', 'pt', $pageSize, $uni, $enc); + $this->setLanguageArray($l); + $this->setPrintHeader(false); + $this->setPrintFooter(false); + $this->setPDFVersion("1.3"); + $this->setAutoPageBreak(0); + $this->AddPage(); + + $this->SetLineWidth(1); + $this->cMargin = 0; + } + + function selectFont($fontname, $style='') + { + if ($fontname != '') + $fontname = basename($fontname); + if ($style == 'italic') + $type = 'i'; + elseif ($style == 'bold') + $type = 'b'; + else + $type = ''; + if ($fontname == '') + { + if ($this->isunicode) + { + switch ($this->l['a_meta_language']) + { + case "ar_EG" : $fontname = "ae_tholoth"; break; + case "zh_CN" : $fontname = "gbsn00lp"; break; + default : $fontname = "dejavu"; break; + } + } + elseif ($this->encoding === "ISO-8859-2") + { + switch ($this->l['a_meta_language']) + { + default : $fontname = "freesans"; break; + } + } + elseif ($this->encoding === "ISO-8859-5") + { + switch ($this->l['a_meta_language']) + { + default : $fontname = "freesans5"; break; + } + } + // else use built-in adobe fonts helvetica. + } + $this->SetFont($fontname, $type); + } + + function Header1() + { + } + + function Footer() + { + } + + function newPage() + { + TCPDF::AddPage(); + } + + function line($x1,$y1,$x2,$y2) + { + TCPDF::line($x1, $this->h-$y1, $x2, $this->h-$y2); + } + + function rectangle($x, $y, $w, $h, $style='', $border_style=array(), $fill_color=array()) + { + TCPDF::Rect($x, $this->h-$y, $w, $h, $style, $border_style, $fill_color); + } + + + function addText($xb,$yb,$size,$txt)//,$angle=0,$wordSpaceAdjust=0) + { + if ($this->isunicode && $this->encoding != "UTF-8") + $txt = iconv($this->encoding, "UTF-8", $txt); + $this->SetFontSize($size); + $this->Text($xb, $this->h-$yb, $txt); + } + + function addInfo($label,$value) + { + if($label=='Title') + { + $this->SetTitle($value); + } + if ($label=='Subject') + { + $this->SetSubject($value); + } + if($label=='Creator') + { + // The Creator info in source is not exactly it should be ;) + $value = str_replace( "ros.co.nz", "tcpdf.org", $value ); + $value = str_replace( "R&OS", "", $value ); + $this->SetCreator( $value ); + } + if($label=='Author') + { + $this->SetAuthor($value); + } + } + + function addJpegFromFile($img,$x,$y,$w=0,$h=0) + { + $this->Image($img, $x, $this->h-$y-$h, $w, $h); + } + + function addPngFromFile($img,$x,$y,$w=0,$h=0) + { + $this->Image($img, $x, $this->h-$y-$h, $w, $h); + } + /* + * Next Two functions are adopted from R&OS pdf class + */ + + /** + * draw a part of an ellipse + */ + function partEllipse($x0,$y0,$astart,$afinish,$r1,$r2=0,$angle=0,$nSeg=8) + { + $this->ellipse($x0,$y0,$r1,$r2,$angle,$nSeg,$astart,$afinish,0); + } + + /** + * draw an ellipse + * note that the part and filled ellipse are just special cases of this function + * + * draws an ellipse in the current line style + * centered at $x0,$y0, radii $r1,$r2 + * if $r2 is not set, then a circle is drawn + * nSeg is not allowed to be less than 2, as this will simply draw a line (and will even draw a + * pretty crappy shape at 2, as we are approximating with bezier curves. + */ + function ellipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360,$close=1,$fill=0) + { + TCPDF::Ellipse($x0, $y0, $r1, $r2, $angle, $astart. $afinish, ($close?'C':''), "", "", $nSeg); + } + function Stream() + { + TCPDF::Output('', 'I'); + } + + function Output() + { + return TCPDF::Output('','S'); + } + + function calcTextWrap($txt, $width, $spacebreak=false) + { + $ret = ""; + $txt2 = $txt; + $w = $this->GetStringWidth($txt); + if ($w > $width && $w > 0 && $width != 0) + { + $n = strlen($txt); + $k = intval($n * $width / $w); + if ($k > 0 && $k < $n) + { + $txt2 = substr($txt, 0, $k); + if ($spacebreak && (($pos = strrpos($txt2, " ")) !== false)) + { + $txt2 = substr($txt2, 0, $pos); + $ret = substr($txt, $pos+1); + } + else + $ret = substr($txt, $k); + } + } + return array($txt2, $ret); + } + + function addTextWrap($xb, $yb, $w, $h, $txt, $align='left', $border=0, $fill=0, $spacebreak=false) + { + $ret = ""; + if (!$this->rtl) + { + if ($align == 'right') + $align = 'R'; + elseif ($align == 'left') + $align = 'L'; + } + else + $align = 'R'; + $txt = $this->calcTextWrap($txt, $w, $spacebreak); + $ret = $txt[1]; + $txt = $txt[0]; + $this->SetXY($xb, $this->h - $yb - $h); + $txt = TCPDF::unhtmlentities($txt); + if ($this->isunicode && $this->encoding != "UTF-8") + $txt = iconv($this->encoding, "UTF-8", $txt); + $this->Cell($w, $h, $txt, $border, 0, $align, $fill); + return $ret; + } /** * sets the colour for stroke operations */ -function setStrokeColor($r,$g,$b,$force=0){ - if ($r>=0 && ($force || $r!=$this->currentStrokeColour['r'] || $g!=$this->currentStrokeColour['g'] || $b!=$this->currentStrokeColour['b'])){ - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$r).' '.sprintf('%.3f',$g).' '.sprintf('%.3f',$b).' RG'; - $this->currentStrokeColour=array('r'=>$r,'g'=>$g,'b'=>$b); - } -} - -/** -* draw a line from one set of coordinates to another -*/ -function line($x1,$y1,$x2,$y2){ - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' m '.sprintf('%.3f',$x2).' '.sprintf('%.3f',$y2).' l S'; -} - -/** -* draw a bezier curve based on 4 control points -*/ -function curve($x0,$y0,$x1,$y1,$x2,$y2,$x3,$y3){ - // in the current line style, draw a bezier curve from (x0,y0) to (x3,y3) using the other two points - // as the control points for the curve. - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x0).' '.sprintf('%.3f',$y0).' m '.sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1); - $this->objects[$this->currentContents]['c'].= ' '.sprintf('%.3f',$x2).' '.sprintf('%.3f',$y2).' '.sprintf('%.3f',$x3).' '.sprintf('%.3f',$y3).' c S'; -} - -/** -* draw a part of an ellipse -*/ -function partEllipse($x0,$y0,$astart,$afinish,$r1,$r2=0,$angle=0,$nSeg=8){ - $this->ellipse($x0,$y0,$r1,$r2,$angle,$nSeg,$astart,$afinish,0); -} - -/** -* draw a filled ellipse -*/ -function filledEllipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360){ - return $this->ellipse($x0,$y0,$r1,$r2=0,$angle,$nSeg,$astart,$afinish,1,1); -} - -/** -* draw an ellipse -* note that the part and filled ellipse are just special cases of this function -* -* draws an ellipse in the current line style -* centered at $x0,$y0, radii $r1,$r2 -* if $r2 is not set, then a circle is drawn -* nSeg is not allowed to be less than 2, as this will simply draw a line (and will even draw a -* pretty crappy shape at 2, as we are approximating with bezier curves. -*/ -function ellipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360,$close=1,$fill=0){ - if ($r1==0){ - return; - } - if ($r2==0){ - $r2=$r1; - } - if ($nSeg<2){ - $nSeg=2; - } - - $astart = deg2rad((float)$astart); - $afinish = deg2rad((float)$afinish); - $totalAngle =$afinish-$astart; - - $dt = $totalAngle/$nSeg; - $dtm = $dt/3; - - if ($angle != 0){ - $a = -1*deg2rad((float)$angle); - $tmp = "\n q "; - $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' '; - $tmp .= sprintf('%.3f',$x0).' '.sprintf('%.3f',$y0).' cm'; - $this->objects[$this->currentContents]['c'].= $tmp; - $x0=0; - $y0=0; - } - - $t1 = $astart; - $a0 = $x0+$r1*cos($t1); - $b0 = $y0+$r2*sin($t1); - $c0 = -$r1*sin($t1); - $d0 = $r2*cos($t1); - - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$a0).' '.sprintf('%.3f',$b0).' m '; - for ($i=1;$i<=$nSeg;$i++){ - // draw this bit of the total curve - $t1 = $i*$dt+$astart; - $a1 = $x0+$r1*cos($t1); - $b1 = $y0+$r2*sin($t1); - $c1 = -$r1*sin($t1); - $d1 = $r2*cos($t1); - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',($a0+$c0*$dtm)).' '.sprintf('%.3f',($b0+$d0*$dtm)); - $this->objects[$this->currentContents]['c'].= ' '.sprintf('%.3f',($a1-$c1*$dtm)).' '.sprintf('%.3f',($b1-$d1*$dtm)).' '.sprintf('%.3f',$a1).' '.sprintf('%.3f',$b1).' c'; - $a0=$a1; - $b0=$b1; - $c0=$c1; - $d0=$d1; - } - if ($fill){ - $this->objects[$this->currentContents]['c'].=' f'; - } else { - if ($close){ - $this->objects[$this->currentContents]['c'].=' s'; // small 's' signifies closing the path as well - } else { - $this->objects[$this->currentContents]['c'].=' S'; + function setStrokeColor($r,$g,$b,$force=0) + { + TCPDF::SetDrawColor($r,$g,$b); } - } - if ($angle !=0){ - $this->objects[$this->currentContents]['c'].=' Q'; - } -} - /** * this sets the line drawing style. * width, is the thickness of the line in user units @@ -1785,1291 +276,17 @@ function ellipse($x0,$y0,$r1,$r2=0,$angle=0,$nSeg=8,$astart=0,$afinish=360,$clos * on and off dashes. * (2) represents 2 on, 2 off, 2 on , 2 off ... * (2,1) is 2 on, 1 off, 2 on, 1 off.. etc -* phase is a modifier on the dash pattern which is used to shift the point at which the pattern starts. -*/ -function setLineStyle($width=1,$cap='',$join='',$dash='',$phase=0){ - - // this is quite inefficient in that it sets all the parameters whenever 1 is changed, but will fix another day - $string = ''; - if ($width>0){ - $string.= $width.' w'; - } - $ca = array('butt'=>0,'round'=>1,'square'=>2); - if (isset($ca[$cap])){ - $string.= ' '.$ca[$cap].' J'; - } - $ja = array('miter'=>0,'round'=>1,'bevel'=>2); - if (isset($ja[$join])){ - $string.= ' '.$ja[$join].' j'; - } - if (is_array($dash)){ - $string.= ' ['; - foreach ($dash as $len){ - $string.=' '.$len; - } - $string.= ' ] '.$phase.' d'; - } - $this->currentLineStyle = $string; - $this->objects[$this->currentContents]['c'].="\n".$string; -} - -/** -* draw a polygon, the syntax for this is similar to the GD polygon command -*/ -function polygon($p,$np,$f=0){ - $this->objects[$this->currentContents]['c'].="\n"; - $this->objects[$this->currentContents]['c'].=sprintf('%.3f',$p[0]).' '.sprintf('%.3f',$p[1]).' m '; - for ($i=2;$i<$np*2;$i=$i+2){ - $this->objects[$this->currentContents]['c'].= sprintf('%.3f',$p[$i]).' '.sprintf('%.3f',$p[$i+1]).' l '; - } - if ($f==1){ - $this->objects[$this->currentContents]['c'].=' f'; - } else { - $this->objects[$this->currentContents]['c'].=' S'; - } -} - -/** -* a filled rectangle, note that it is the width and height of the rectangle which are the secondary paramaters, not -* the coordinates of the upper-right corner -*/ -function filledRectangle($x1,$y1,$width,$height){ - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' '.sprintf('%.3f',$width).' '.sprintf('%.3f',$height).' re f'; -} - -/** -* draw a rectangle, note that it is the width and height of the rectangle which are the secondary paramaters, not -* the coordinates of the upper-right corner -*/ -function rectangle($x1,$y1,$width,$height){ - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$x1).' '.sprintf('%.3f',$y1).' '.sprintf('%.3f',$width).' '.sprintf('%.3f',$height).' re S'; -} - -/** -* add a new page to the document -* this also makes the new page the current active object -*/ -function newPage($insert=0,$id=0,$pos='after'){ - - // if there is a state saved, then go up the stack closing them - // then on the new page, re-open them with the right setings - - if ($this->nStateStack){ - for ($i=$this->nStateStack;$i>=1;$i--){ - $this->restoreState($i); - } - } - - $this->numObj++; - if ($insert){ - // the id from the ezPdf class is the od of the contents of the page, not the page object itself - // query that object to find the parent - $rid = $this->objects[$id]['onPage']; - $opt= array('rid'=>$rid,'pos'=>$pos); - $this->o_page($this->numObj,'new',$opt); - } else { - $this->o_page($this->numObj,'new'); - } - // if there is a stack saved, then put that onto the page - if ($this->nStateStack){ - for ($i=1;$i<=$this->nStateStack;$i++){ - $this->saveState($i); - } - } - // and if there has been a stroke or fill colour set, then transfer them - if ($this->currentColour['r']>=0){ - $this->setColor($this->currentColour['r'],$this->currentColour['g'],$this->currentColour['b'],1); - } - if ($this->currentStrokeColour['r']>=0){ - $this->setStrokeColor($this->currentStrokeColour['r'],$this->currentStrokeColour['g'],$this->currentStrokeColour['b'],1); - } - - // if there is a line style set, then put this in too - if (strlen($this->currentLineStyle)){ - $this->objects[$this->currentContents]['c'].="\n".$this->currentLineStyle; - } - - // the call to the o_page object set currentContents to the present page, so this can be returned as the page id - return $this->currentContents; -} - -/** -* output the pdf code, streaming it to the browser -* the relevant headers are set so that hopefully the browser will recognise it -*/ -function stream($options=''){ - // setting the options allows the adjustment of the headers - // values at the moment are: - // 'Content-Disposition'=>'filename' - sets the filename, though not too sure how well this will - // work as in my trial the browser seems to use the filename of the php file with .pdf on the end - // 'Accept-Ranges'=>1 or 0 - if this is not set to 1, then this header is not included, off by default - // this header seems to have caused some problems despite tha fact that it is supposed to solve - // them, so I am leaving it off by default. - // 'compress'=> 1 or 0 - apply content stream compression, this is on (1) by default - if (!is_array($options)){ - $options=array(); - } - if ( isset($options['compress']) && $options['compress']==0){ - $tmp = $this->output(1); - } else { - $tmp = $this->output(); - } - header("Content-type: application/pdf"); - header("Content-Length: ".strlen(ltrim($tmp))); - $fileName = (isset($options['Content-Disposition'])?$options['Content-Disposition']:'file.pdf'); - header("Content-Disposition: inline; filename=".$fileName); - if (isset($options['Accept-Ranges']) && $options['Accept-Ranges']==1){ - header("Accept-Ranges: ".strlen(ltrim($tmp))); - } - echo ltrim($tmp); -} - -/** -* return the height in units of the current font in the given size -*/ -function getFontHeight($size){ - if (!$this->numFonts){ - $this->selectFont('./fonts/Helvetica'); - } - // for the current font, and the given size, what is the height of the font in user units - $h = $this->fonts[$this->currentFont]['FontBBox'][3]-$this->fonts[$this->currentFont]['FontBBox'][1]; - return $size*$h/1000; -} - -/** -* return the font decender, this will normally return a negative number -* if you add this number to the baseline, you get the level of the bottom of the font -* it is in the pdf user units -*/ -function getFontDecender($size){ - // note that this will most likely return a negative value - if (!$this->numFonts){ - $this->selectFont('./fonts/Helvetica'); - } - $h = $this->fonts[$this->currentFont]['FontBBox'][1]; - return $size*$h/1000; -} - -/** -* filter the text, this is applied to all text just before being inserted into the pdf document -* it escapes the various things that need to be escaped, and so on -* -* @access private -*/ -function filterText($text){ - $text = str_replace('\\','\\\\',$text); - $text = str_replace('(','\(',$text); - $text = str_replace(')','\)',$text); - $text = str_replace('<','<',$text); - $text = str_replace('>','>',$text); - $text = str_replace(''','\'',$text); - $text = str_replace('"','"',$text); - $text = str_replace('&','&',$text); - - return $text; -} - -/** -* given a start position and information about how text is to be laid out, calculate where -* on the page the text will end -* -* @access private -*/ -function PRVTgetTextPosition($x,$y,$angle,$size,$wa,$text){ - // given this information return an array containing x and y for the end position as elements 0 and 1 - $w = $this->getTextWidth($size,$text); - // need to adjust for the number of spaces in this text - $words = explode(' ',$text); - $nspaces=count($words)-1; - $w += $wa*$nspaces; - $a = deg2rad((float)$angle); - return array(cos($a)*$w+$x,-sin($a)*$w+$y); -} - -/** -* wrapper function for PRVTcheckTextDirective1 -* -* @access private -*/ -function PRVTcheckTextDirective(&$text,$i,&$f){ - $x=0; - $y=0; - return $this->PRVTcheckTextDirective1($text,$i,$f,0,$x,$y); -} - -/** -* checks if the text stream contains a control directive -* if so then makes some changes and returns the number of characters involved in the directive -* this has been re-worked to include everything neccesary to fins the current writing point, so that -* the location can be sent to the callback function if required -* if the directive does not require a font change, then $f should be set to 0 -* -* @access private -*/ -function PRVTcheckTextDirective1(&$text,$i,&$f,$final,&$x,&$y,$size=0,$angle=0,$wordSpaceAdjust=0){ - $directive = 0; - $j=$i; - if ($text[$j]=='<'){ - $j++; - switch($text[$j]){ - case '/': - $j++; - if (strlen($text) <= $j){ - return $directive; - } - switch($text[$j]){ - case 'b': - case 'i': - $j++; - if ($text[$j]=='>'){ - $p = strrpos($this->currentTextState,$text[$j-1]); - if ($p !== false){ - // then there is one to remove - $this->currentTextState = substr($this->currentTextState,0,$p).substr($this->currentTextState,$p+1); - } - $directive=$j-$i+1; - } - break; - case 'c': - // this this might be a callback function - $j++; - $k = strpos($text,'>',$j); - if ($k!==false && $text[$j]==':'){ - // then this will be treated as a callback directive - $directive = $k-$i+1; - $f=0; - // split the remainder on colons to get the function name and the paramater - $tmp = substr($text,$j+1,$k-$j-1); - $b1 = strpos($tmp,':'); - if ($b1!==false){ - $func = substr($tmp,0,$b1); - $parm = substr($tmp,$b1+1); - } else { - $func=$tmp; - $parm=''; - } - if (!isset($func) || !strlen(trim($func))){ - $directive=0; - } else { - // only call the function if this is the final call - if ($final){ - // need to assess the text position, calculate the text width to this point - // can use getTextWidth to find the text width I think - $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,substr($text,0,$i)); - $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'end','p'=>$parm,'nCallback'=>$this->nCallback); - $x=$tmp[0]; - $y=$tmp[1]; - $ret = $this->$func($info); - if (is_array($ret)){ - // then the return from the callback function could set the position, to start with, later will do font colour, and font - foreach($ret as $rk=>$rv){ - switch($rk){ - case 'x': - case 'y': - $$rk=$rv; - break; - } - } - } - // also remove from to the stack - // for simplicity, just take from the end, fix this another day - $this->nCallback--; - if ($this->nCallback<0){ - $this->nCallBack=0; - } - } - } - } - break; - } - break; - case 'b': - case 'i': - $j++; - if ($text[$j]=='>'){ - $this->currentTextState.=$text[$j-1]; - $directive=$j-$i+1; - } - break; - case 'C': - $noClose=1; - case 'c': - // this this might be a callback function - $j++; - $k = strpos($text,'>',$j); - if ($k!==false && $text[$j]==':'){ - // then this will be treated as a callback directive - $directive = $k-$i+1; - $f=0; - // split the remainder on colons to get the function name and the paramater -// $bits = explode(':',substr($text,$j+1,$k-$j-1)); - $tmp = substr($text,$j+1,$k-$j-1); - $b1 = strpos($tmp,':'); - if ($b1!==false){ - $func = substr($tmp,0,$b1); - $parm = substr($tmp,$b1+1); - } else { - $func=$tmp; - $parm=''; - } - if (!isset($func) || !strlen(trim($func))){ - $directive=0; - } else { - // only call the function if this is the final call, ie, the one actually doing printing, not measurement - if ($final){ - // need to assess the text position, calculate the text width to this point - // can use getTextWidth to find the text width I think - // also add the text height and decender - $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,substr($text,0,$i)); - $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'start','p'=>$parm,'f'=>$func,'height'=>$this->getFontHeight($size),'decender'=>$this->getFontDecender($size)); - $x=$tmp[0]; - $y=$tmp[1]; - if (!isset($noClose) || !$noClose){ - // only add to the stack if this is a small 'c', therefore is a start-stop pair - $this->nCallback++; - $info['nCallback']=$this->nCallback; - $this->callback[$this->nCallback]=$info; - } - $ret = $this->$func($info); - if (is_array($ret)){ - // then the return from the callback function could set the position, to start with, later will do font colour, and font - foreach($ret as $rk=>$rv){ - switch($rk){ - case 'x': - case 'y': - $$rk=$rv; - break; - } - } - } - } - } - } - break; - } - } - return $directive; -} - -/** -* add text to the document, at a specified location, size and angle on the page -*/ -function addText($x,$y,$size,$text,$angle=0,$wordSpaceAdjust=0){ - if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');} - - // if there are any open callbacks, then they should be called, to show the start of the line - if ($this->nCallback>0){ - for ($i=$this->nCallback;$i>0;$i--){ - // call each function - $info = array('x'=>$x,'y'=>$y,'angle'=>$angle,'status'=>'sol','p'=>$this->callback[$i]['p'],'nCallback'=>$this->callback[$i]['nCallback'],'height'=>$this->callback[$i]['height'],'decender'=>$this->callback[$i]['decender']); - $func = $this->callback[$i]['f']; - $this->$func($info); - } - } - if ($angle==0){ - $this->objects[$this->currentContents]['c'].="\n".'BT '.sprintf('%.3f',$x).' '.sprintf('%.3f',$y).' Td'; - } else { - $a = deg2rad((float)$angle); - $tmp = "\n".'BT '; - $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' '; - $tmp .= sprintf('%.3f',$x).' '.sprintf('%.3f',$y).' Tm'; - $this->objects[$this->currentContents]['c'] .= $tmp; - } - if ($wordSpaceAdjust!=0 || $wordSpaceAdjust != $this->wordSpaceAdjust){ - $this->wordSpaceAdjust=$wordSpaceAdjust; - $this->objects[$this->currentContents]['c'].=' '.sprintf('%.3f',$wordSpaceAdjust).' Tw'; - } - $len=strlen($text); - $start=0; - for ($i=0;$i<$len;$i++){ - $f=1; - $directive = $this->PRVTcheckTextDirective($text,$i,$f); - if ($directive){ - // then we should write what we need to - if ($i>$start){ - $part = substr($text,$start,$i-$start); - $this->objects[$this->currentContents]['c'].=' /F'.$this->currentFontNum.' '.sprintf('%.1f',$size).' Tf '; - $this->objects[$this->currentContents]['c'].=' ('.$this->filterText($part).') Tj'; - } - if ($f){ - // then there was nothing drastic done here, restore the contents - $this->setCurrentFont(); - } else { - $this->objects[$this->currentContents]['c'] .= ' ET'; - $f=1; - $xp=$x; - $yp=$y; - $directive = $this->PRVTcheckTextDirective1($text,$i,$f,1,$xp,$yp,$size,$angle,$wordSpaceAdjust); - - // restart the text object - if ($angle==0){ - $this->objects[$this->currentContents]['c'].="\n".'BT '.sprintf('%.3f',$xp).' '.sprintf('%.3f',$yp).' Td'; - } else { - $a = deg2rad((float)$angle); - $tmp = "\n".'BT '; - $tmp .= sprintf('%.3f',cos($a)).' '.sprintf('%.3f',(-1.0*sin($a))).' '.sprintf('%.3f',sin($a)).' '.sprintf('%.3f',cos($a)).' '; - $tmp .= sprintf('%.3f',$xp).' '.sprintf('%.3f',$yp).' Tm'; - $this->objects[$this->currentContents]['c'] .= $tmp; - } - if ($wordSpaceAdjust!=0 || $wordSpaceAdjust != $this->wordSpaceAdjust){ - $this->wordSpaceAdjust=$wordSpaceAdjust; - $this->objects[$this->currentContents]['c'].=' '.sprintf('%.3f',$wordSpaceAdjust).' Tw'; - } - } - // and move the writing point to the next piece of text - $i=$i+$directive-1; - $start=$i+1; - } - - } - if ($start<$len){ - $part = substr($text,$start); - $this->objects[$this->currentContents]['c'].=' /F'.$this->currentFontNum.' '.sprintf('%.1f',$size).' Tf '; - $this->objects[$this->currentContents]['c'].=' ('.$this->filterText($part).') Tj'; - } - $this->objects[$this->currentContents]['c'].=' ET'; - - // if there are any open callbacks, then they should be called, to show the end of the line - if ($this->nCallback>0){ - for ($i=$this->nCallback;$i>0;$i--){ - // call each function - $tmp = $this->PRVTgetTextPosition($x,$y,$angle,$size,$wordSpaceAdjust,$text); - $info = array('x'=>$tmp[0],'y'=>$tmp[1],'angle'=>$angle,'status'=>'eol','p'=>$this->callback[$i]['p'],'nCallback'=>$this->callback[$i]['nCallback'],'height'=>$this->callback[$i]['height'],'decender'=>$this->callback[$i]['decender']); - $func = $this->callback[$i]['f']; - $this->$func($info); - } - } - -} - -/** -* calculate how wide a given text string will be on a page, at a given size. -* this can be called externally, but is alse used by the other class functions -*/ -function getTextWidth($size,$text){ - // this function should not change any of the settings, though it will need to - // track any directives which change during calculation, so copy them at the start - // and put them back at the end. - $store_currentTextState = $this->currentTextState; - - if (!$this->numFonts){ - $this->selectFont('./fonts/Helvetica'); - } - - // converts a number or a float to a string so it can get the width - $text = "$text"; - - // hmm, this is where it all starts to get tricky - use the font information to - // calculate the width of each character, add them up and convert to user units - $w=0; - $len=strlen($text); - $cf = $this->currentFont; - for ($i=0;$i<$len;$i++){ - $f=1; - $directive = $this->PRVTcheckTextDirective($text,$i,$f); - if ($directive){ - if ($f){ - $this->setCurrentFont(); - $cf = $this->currentFont; - } - $i=$i+$directive-1; - } else { - $char=ord($text[$i]); - if (isset($this->fonts[$cf]['differences'][$char])){ - // then this character is being replaced by another - $name = $this->fonts[$cf]['differences'][$char]; - if (isset($this->fonts[$cf]['C'][$name]['WX'])){ - $w+=$this->fonts[$cf]['C'][$name]['WX']; - } - } else if (isset($this->fonts[$cf]['C'][$char]['WX'])){ - $w+=$this->fonts[$cf]['C'][$char]['WX']; - } - } - } - - $this->currentTextState = $store_currentTextState; - $this->setCurrentFont(); - - return $w*$size/1000; -} - -/** -* do a part of the calculation for sorting out the justification of the text -* -* @access private -*/ -function PRVTadjustWrapText($text,$actual,$width,&$x,&$adjust,$justification){ - switch ($justification){ - case 'left': - return; - break; - case 'right': - $x+=$width-$actual; - break; - case 'center': - case 'centre': - $x+=($width-$actual)/2; - break; - case 'full': - // count the number of words - $words = explode(' ',$text); - $nspaces=count($words)-1; - if ($nspaces>0){ - $adjust = ($width-$actual)/$nspaces; - } else { - $adjust=0; - } - break; - } -} - -/** -* add text to the page, but ensure that it fits within a certain width -* if it does not fit then put in as much as possible, splitting at word boundaries -* and return the remainder. -* justification and angle can also be specified for the text -*/ -function addTextWrap($x,$y,$width,$size,$text,$justification='left',$angle=0,$test=0){ - // this will display the text, and if it goes beyond the width $width, will backtrack to the - // previous space or hyphen, and return the remainder of the text. - - // $justification can be set to 'left','right','center','centre','full' - - // need to store the initial text state, as this will change during the width calculation - // but will need to be re-set before printing, so that the chars work out right - $store_currentTextState = $this->currentTextState; - - if (!$this->numFonts){$this->selectFont('./fonts/Helvetica');} - if ($width<=0){ - // error, pretend it printed ok, otherwise risking a loop - return ''; - } - $w=0; - $break=0; - $breakWidth=0; - $len=strlen($text); - $cf = $this->currentFont; - $tw = $width/$size*1000; - for ($i=0;$i<$len;$i++){ - $f=1; - $directive = $this->PRVTcheckTextDirective($text,$i,$f); - if ($directive){ - if ($f){ - $this->setCurrentFont(); - $cf = $this->currentFont; - } - $i=$i+$directive-1; - } else { - $cOrd = ord($text[$i]); - if (isset($this->fonts[$cf]['differences'][$cOrd])){ - // then this character is being replaced by another - $cOrd2 = $this->fonts[$cf]['differences'][$cOrd]; - } else { - $cOrd2 = $cOrd; - } - - if (isset($this->fonts[$cf]['C'][$cOrd2]['WX'])){ - $w+=$this->fonts[$cf]['C'][$cOrd2]['WX']; - } - if ($w>$tw){ - // then we need to truncate this line - if ($break>0){ - // then we have somewhere that we can split :) - if ($text[$break]==' '){ - $tmp = substr($text,0,$break); - } else { - $tmp = substr($text,0,$break+1); - } - $adjust=0; - $this->PRVTadjustWrapText($tmp,$breakWidth,$width,$x,$adjust,$justification); - - // reset the text state - $this->currentTextState = $store_currentTextState; - $this->setCurrentFont(); - if (!$test){ - $this->addText($x,$y,$size,$tmp,$angle,$adjust); - } - return substr($text,$break+1); - } else { - // just split before the current character - $tmp = substr($text,0,$i); - $adjust=0; - $ctmp=ord($text[$i]); - if (isset($this->fonts[$cf]['differences'][$ctmp])){ - $ctmp=$this->fonts[$cf]['differences'][$ctmp]; - } - $tmpw=($w-$this->fonts[$cf]['C'][$ctmp]['WX'])*$size/1000; - $this->PRVTadjustWrapText($tmp,$tmpw,$width,$x,$adjust,$justification); - // reset the text state - $this->currentTextState = $store_currentTextState; - $this->setCurrentFont(); - if (!$test){ - $this->addText($x,$y,$size,$tmp,$angle,$adjust); - } - return substr($text,$i); - } - } - if ($text[$i]=='-'){ - $break=$i; - $breakWidth = $w*$size/1000; - } - if ($text[$i]==' '){ - $break=$i; - $ctmp=ord($text[$i]); - if (isset($this->fonts[$cf]['differences'][$ctmp])){ - $ctmp=$this->fonts[$cf]['differences'][$ctmp]; - } - $breakWidth = ($w-$this->fonts[$cf]['C'][$ctmp]['WX'])*$size/1000; - } - } - } - // then there was no need to break this line - if ($justification=='full'){ - $justification='left'; - } - $adjust=0; - $tmpw=$w*$size/1000; - $this->PRVTadjustWrapText($text,$tmpw,$width,$x,$adjust,$justification); - // reset the text state - $this->currentTextState = $store_currentTextState; - $this->setCurrentFont(); - if (!$test){ - $this->addText($x,$y,$size,$text,$angle,$adjust,$angle); - } - return ''; -} - -/** -* this will be called at a new page to return the state to what it was on the -* end of the previous page, before the stack was closed down -* This is to get around not being able to have open 'q' across pages -* -*/ -function saveState($pageEnd=0){ - if ($pageEnd){ - // this will be called at a new page to return the state to what it was on the - // end of the previous page, before the stack was closed down - // This is to get around not being able to have open 'q' across pages - $opt = $this->stateStack[$pageEnd]; // ok to use this as stack starts numbering at 1 - $this->setColor($opt['col']['r'],$opt['col']['g'],$opt['col']['b'],1); - $this->setStrokeColor($opt['str']['r'],$opt['str']['g'],$opt['str']['b'],1); - $this->objects[$this->currentContents]['c'].="\n".$opt['lin']; -// $this->currentLineStyle = $opt['lin']; - } else { - $this->nStateStack++; - $this->stateStack[$this->nStateStack]=array( - 'col'=>$this->currentColour - ,'str'=>$this->currentStrokeColour - ,'lin'=>$this->currentLineStyle - ); - } - $this->objects[$this->currentContents]['c'].="\nq"; -} - -/** -* restore a previously saved state -*/ -function restoreState($pageEnd=0){ - if (!$pageEnd){ - $n = $this->nStateStack; - $this->currentColour = $this->stateStack[$n]['col']; - $this->currentStrokeColour = $this->stateStack[$n]['str']; - $this->objects[$this->currentContents]['c'].="\n".$this->stateStack[$n]['lin']; - $this->currentLineStyle = $this->stateStack[$n]['lin']; - unset($this->stateStack[$n]); - $this->nStateStack--; - } - $this->objects[$this->currentContents]['c'].="\nQ"; -} - -/** -* make a loose object, the output will go into this object, until it is closed, then will revert to -* the current one. -* this object will not appear until it is included within a page. -* the function will return the object number -*/ -function openObject(){ - $this->nStack++; - $this->stack[$this->nStack]=array('c'=>$this->currentContents,'p'=>$this->currentPage); - // add a new object of the content type, to hold the data flow - $this->numObj++; - $this->o_contents($this->numObj,'new'); - $this->currentContents=$this->numObj; - $this->looseObjects[$this->numObj]=1; - - return $this->numObj; -} - -/** -* open an existing object for editing -*/ -function reopenObject($id){ - $this->nStack++; - $this->stack[$this->nStack]=array('c'=>$this->currentContents,'p'=>$this->currentPage); - $this->currentContents=$id; - // also if this object is the primary contents for a page, then set the current page to its parent - if (isset($this->objects[$id]['onPage'])){ - $this->currentPage = $this->objects[$id]['onPage']; - } -} - -/** -* close an object -*/ -function closeObject(){ - // close the object, as long as there was one open in the first place, which will be indicated by - // an objectId on the stack. - if ($this->nStack>0){ - $this->currentContents=$this->stack[$this->nStack]['c']; - $this->currentPage=$this->stack[$this->nStack]['p']; - $this->nStack--; - // easier to probably not worry about removing the old entries, they will be overwritten - // if there are new ones. - } -} - -/** -* stop an object from appearing on pages from this point on -*/ -function stopObject($id){ - // if an object has been appearing on pages up to now, then stop it, this page will - // be the last one that could contian it. - if (isset($this->addLooseObjects[$id])){ - $this->addLooseObjects[$id]=''; - } -} - -/** -* after an object has been created, it wil only show if it has been added, using this function. -*/ -function addObject($id,$options='add'){ - // add the specified object to the page - if (isset($this->looseObjects[$id]) && $this->currentContents!=$id){ - // then it is a valid object, and it is not being added to itself - switch($options){ - case 'all': - // then this object is to be added to this page (done in the next block) and - // all future new pages. - $this->addLooseObjects[$id]='all'; - case 'add': - if (isset($this->objects[$this->currentContents]['onPage'])){ - // then the destination contents is the primary for the page - // (though this object is actually added to that page) - $this->o_page($this->objects[$this->currentContents]['onPage'],'content',$id); - } - break; - case 'even': - $this->addLooseObjects[$id]='even'; - $pageObjectId=$this->objects[$this->currentContents]['onPage']; - if ($this->objects[$pageObjectId]['info']['pageNum']%2==0){ - $this->addObject($id); // hacky huh :) - } - break; - case 'odd': - $this->addLooseObjects[$id]='odd'; - $pageObjectId=$this->objects[$this->currentContents]['onPage']; - if ($this->objects[$pageObjectId]['info']['pageNum']%2==1){ - $this->addObject($id); // hacky huh :) - } - break; - case 'next': - $this->addLooseObjects[$id]='all'; - break; - case 'nexteven': - $this->addLooseObjects[$id]='even'; - break; - case 'nextodd': - $this->addLooseObjects[$id]='odd'; - break; - } - } -} - -/** -* add content to the documents info object -*/ -function addInfo($label,$value=0){ - // this will only work if the label is one of the valid ones. - // modify this so that arrays can be passed as well. - // if $label is an array then assume that it is key=>value pairs - // else assume that they are both scalar, anything else will probably error - if (is_array($label)){ - foreach ($label as $l=>$v){ - $this->o_info($this->infoObject,$l,$v); - } - } else { - $this->o_info($this->infoObject,$label,$value); - } -} - -/** -* set the viewer preferences of the document, it is up to the browser to obey these. -*/ -function setPreferences($label,$value=0){ - // this will only work if the label is one of the valid ones. - if (is_array($label)){ - foreach ($label as $l=>$v){ - $this->o_catalog($this->catalogId,'viewerPreferences',array($l=>$v)); - } - } else { - $this->o_catalog($this->catalogId,'viewerPreferences',array($label=>$value)); - } -} - -/** -* extract an integer from a position in a byte stream -* -* @access private -*/ -function PRVT_getBytes(&$data,$pos,$num){ - // return the integer represented by $num bytes from $pos within $data - $ret=0; - for ($i=0;$i<$num;$i++){ - $ret=$ret*256; - $ret+=ord($data[$pos+$i]); - } - return $ret; -} - -/** -* add a PNG image into the document, from a file -* this should work with remote files -*/ -function addPngFromFile($file,$x,$y,$w=0,$h=0){ - // read in a png file, interpret it, then add to the system - $error=0; - $tmp = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - $fp = @fopen($file,'rb'); - if ($fp){ - $data=''; - while(!feof($fp)){ - $data .= fread($fp,1024); - } - fclose($fp); - } else { - $error = 1; - $errormsg = 'trouble opening file: '.$file; - } - set_magic_quotes_runtime($tmp); - - if (!$error){ - $header = chr(137).chr(80).chr(78).chr(71).chr(13).chr(10).chr(26).chr(10); - if (substr($data,0,8)!=$header){ - $error=1; - $errormsg = 'this file does not have a valid header'; - } - } - - if (!$error){ - // set pointer - $p = 8; - $len = strlen($data); - // cycle through the file, identifying chunks - $haveHeader=0; - $info=array(); - $idata=''; - $pdata=''; - while ($p<$len){ - $chunkLen = $this->PRVT_getBytes($data,$p,4); - $chunkType = substr($data,$p+4,4); -// echo $chunkType.' - '.$chunkLen.'
'; - - switch($chunkType){ - case 'IHDR': - // this is where all the file information comes from - $info['width']=$this->PRVT_getBytes($data,$p+8,4); - $info['height']=$this->PRVT_getBytes($data,$p+12,4); - $info['bitDepth']=ord($data[$p+16]); - $info['colorType']=ord($data[$p+17]); - $info['compressionMethod']=ord($data[$p+18]); - $info['filterMethod']=ord($data[$p+19]); - $info['interlaceMethod']=ord($data[$p+20]); -//print_r($info); - $haveHeader=1; - if ($info['compressionMethod']!=0){ - $error=1; - $errormsg = 'unsupported compression method'; - } - if ($info['filterMethod']!=0){ - $error=1; - $errormsg = 'unsupported filter method'; - } - break; - case 'PLTE': - $pdata.=substr($data,$p+8,$chunkLen); - break; - case 'IDAT': - $idata.=substr($data,$p+8,$chunkLen); - break; - case 'tRNS': - //this chunk can only occur once and it must occur after the PLTE chunk and before IDAT chunk - //print "tRNS found, color type = ".$info['colorType']."
"; - $transparency = array(); - if ($info['colorType'] == 3) { // indexed color, rbg - /* corresponding to entries in the plte chunk - Alpha for palette index 0: 1 byte - Alpha for palette index 1: 1 byte - ...etc... - */ - // there will be one entry for each palette entry. up until the last non-opaque entry. - // set up an array, stretching over all palette entries which will be o (opaque) or 1 (transparent) - $transparency['type']='indexed'; - $numPalette = strlen($pdata)/3; - $trans=0; - for ($i=$chunkLen;$i>=0;$i--){ - if (ord($data[$p+8+$i])==0){ - $trans=$i; - } - } - $transparency['data'] = $trans; - - } elseif($info['colorType'] == 0) { // grayscale - /* corresponding to entries in the plte chunk - Gray: 2 bytes, range 0 .. (2^bitdepth)-1 - */ -// $transparency['grayscale']=$this->PRVT_getBytes($data,$p+8,2); // g = grayscale - $transparency['type']='indexed'; - $transparency['data'] = ord($data[$p+8+1]); - - } elseif($info['colorType'] == 2) { // truecolor - /* corresponding to entries in the plte chunk - Red: 2 bytes, range 0 .. (2^bitdepth)-1 - Green: 2 bytes, range 0 .. (2^bitdepth)-1 - Blue: 2 bytes, range 0 .. (2^bitdepth)-1 - */ - $transparency['r']=$this->PRVT_getBytes($data,$p+8,2); // r from truecolor - $transparency['g']=$this->PRVT_getBytes($data,$p+10,2); // g from truecolor - $transparency['b']=$this->PRVT_getBytes($data,$p+12,2); // b from truecolor - - } else { - //unsupported transparency type - } - // KS End new code - break; - default: - break; - } - - $p += $chunkLen+12; - } - - if(!$haveHeader){ - $error = 1; - $errormsg = 'information header is missing'; - } - if (isset($info['interlaceMethod']) && $info['interlaceMethod']){ - $error = 1; - $errormsg = 'There appears to be no support for interlaced images in pdf.'; - } - } - - if (!$error && $info['bitDepth'] > 8){ - $error = 1; - $errormsg = 'only bit depth of 8 or less is supported'; - } - - if (!$error){ - if ($info['colorType']!=2 && $info['colorType']!=0 && $info['colorType']!=3){ - $error = 1; - $errormsg = 'transparancey alpha channel not supported, transparency only supported for palette images.'; - } else { - switch ($info['colorType']){ - case 3: - $color = 'DeviceRGB'; - $ncolor=1; - break; - case 2: - $color = 'DeviceRGB'; - $ncolor=3; - break; - case 0: - $color = 'DeviceGray'; - $ncolor=1; - break; - } - } - } - if ($error){ - $this->addMessage('PNG error - ('.$file.') '.$errormsg); - return; - } - if ($w==0){ - $w=$h/$info['height']*$info['width']; - } - if ($h==0){ - $h=$w*$info['height']/$info['width']; - } -//print_r($info); - // so this image is ok... add it in. - $this->numImages++; - $im=$this->numImages; - $label='I'.$im; - $this->numObj++; -// $this->o_image($this->numObj,'new',array('label'=>$label,'data'=>$idata,'iw'=>$w,'ih'=>$h,'type'=>'png','ic'=>$info['width'])); - $options = array('label'=>$label,'data'=>$idata,'bitsPerComponent'=>$info['bitDepth'],'pdata'=>$pdata - ,'iw'=>$info['width'],'ih'=>$info['height'],'type'=>'png','color'=>$color,'ncolor'=>$ncolor); - if (isset($transparency)){ - $options['transparency']=$transparency; - } - $this->o_image($this->numObj,'new',$options); - - $this->objects[$this->currentContents]['c'].="\nq"; - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$w)." 0 0 ".sprintf('%.3f',$h)." ".sprintf('%.3f',$x)." ".sprintf('%.3f',$y)." cm"; - $this->objects[$this->currentContents]['c'].="\n/".$label.' Do'; - $this->objects[$this->currentContents]['c'].="\nQ"; -} - -/** -* add a JPEG image into the document, from a file -*/ -function addJpegFromFile($img,$x,$y,$w=0,$h=0){ - // attempt to add a jpeg image straight from a file, using no GD commands - // note that this function is unable to operate on a remote file. - - if (!file_exists($img)){ - return; - } - - $tmp=getimagesize($img); - $imageWidth=$tmp[0]; - $imageHeight=$tmp[1]; - - if (isset($tmp['channels'])){ - $channels = $tmp['channels']; - } else { - $channels = 3; - } - - if ($w<=0 && $h<=0){ - $w=$imageWidth; - } - if ($w==0){ - $w=$h/$imageHeight*$imageWidth; - } - if ($h==0){ - $h=$w*$imageHeight/$imageWidth; - } - - $fp=fopen($img,'rb'); - - $tmp = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - $data = fread($fp,filesize($img)); - set_magic_quotes_runtime($tmp); - - fclose($fp); - - $this->addJpegImage_common($data,$x,$y,$w,$h,$imageWidth,$imageHeight,$channels); -} - -/** -* add an image into the document, from a GD object -* this function is not all that reliable, and I would probably encourage people to use -* the file based functions -*/ -function addImage(&$img,$x,$y,$w=0,$h=0,$quality=75){ - // add a new image into the current location, as an external object - // add the image at $x,$y, and with width and height as defined by $w & $h - - // note that this will only work with full colour images and makes them jpg images for display - // later versions could present lossless image formats if there is interest. - - // there seems to be some problem here in that images that have quality set above 75 do not appear - // not too sure why this is, but in the meantime I have restricted this to 75. - if ($quality>75){ - $quality=75; - } - - // if the width or height are set to zero, then set the other one based on keeping the image - // height/width ratio the same, if they are both zero, then give up :) - $imageWidth=imagesx($img); - $imageHeight=imagesy($img); - - if ($w<=0 && $h<=0){ - return; - } - if ($w==0){ - $w=$h/$imageHeight*$imageWidth; - } - if ($h==0){ - $h=$w*$imageHeight/$imageWidth; - } - - // gotta get the data out of the img.. - - // so I write to a temp file, and then read it back.. soo ugly, my apologies. - $tmpDir='/tmp'; - $tmpName=tempnam($tmpDir,'img'); - imagejpeg($img,$tmpName,$quality); - $fp=fopen($tmpName,'rb'); - - $tmp = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - $fp = @fopen($tmpName,'rb'); - if ($fp){ - $data=''; - while(!feof($fp)){ - $data .= fread($fp,1024); - } - fclose($fp); - } else { - $error = 1; - $errormsg = 'trouble opening file'; - } -// $data = fread($fp,filesize($tmpName)); - set_magic_quotes_runtime($tmp); -// fclose($fp); - unlink($tmpName); - $this->addJpegImage_common($data,$x,$y,$w,$h,$imageWidth,$imageHeight); -} - -/** -* common code used by the two JPEG adding functions -* -* @access private -*/ -function addJpegImage_common(&$data,$x,$y,$w=0,$h=0,$imageWidth,$imageHeight,$channels=3){ - // note that this function is not to be called externally - // it is just the common code between the GD and the file options - $this->numImages++; - $im=$this->numImages; - $label='I'.$im; - $this->numObj++; - $this->o_image($this->numObj,'new',array('label'=>$label,'data'=>$data,'iw'=>$imageWidth,'ih'=>$imageHeight,'channels'=>$channels)); - - $this->objects[$this->currentContents]['c'].="\nq"; - $this->objects[$this->currentContents]['c'].="\n".sprintf('%.3f',$w)." 0 0 ".sprintf('%.3f',$h)." ".sprintf('%.3f',$x)." ".sprintf('%.3f',$y)." cm"; - $this->objects[$this->currentContents]['c'].="\n/".$label.' Do'; - $this->objects[$this->currentContents]['c'].="\nQ"; -} - -/** -* specify where the document should open when it first starts -*/ -function openHere($style,$a=0,$b=0,$c=0){ - // this function will open the document at a specified page, in a specified style - // the values for style, and the required paramters are: - // 'XYZ' left, top, zoom - // 'Fit' - // 'FitH' top - // 'FitV' left - // 'FitR' left,bottom,right - // 'FitB' - // 'FitBH' top - // 'FitBV' left - $this->numObj++; - $this->o_destination($this->numObj,'new',array('page'=>$this->currentPage,'type'=>$style,'p1'=>$a,'p2'=>$b,'p3'=>$c)); - $id = $this->catalogId; - $this->o_catalog($id,'openHere',$this->numObj); -} - -/** -* create a labelled destination within the document -*/ -function addDestination($label,$style,$a=0,$b=0,$c=0){ - // associates the given label with the destination, it is done this way so that a destination can be specified after - // it has been linked to - // styles are the same as the 'openHere' function - $this->numObj++; - $this->o_destination($this->numObj,'new',array('page'=>$this->currentPage,'type'=>$style,'p1'=>$a,'p2'=>$b,'p3'=>$c)); - $id = $this->numObj; - // store the label->idf relationship, note that this means that labels can be used only once - $this->destinations["$label"]=$id; -} - -/** -* define font families, this is used to initialize the font families for the default fonts -* and for the user to add new ones for their fonts. The default bahavious can be overridden should -* that be desired. -*/ -function setFontFamily($family,$options=''){ - if (!is_array($options)){ - if ($family=='init'){ - // set the known family groups - // these font families will be used to enable bold and italic markers to be included - // within text streams. html forms will be used... - $this->fontFamilies['Helvetica.afm']=array( - 'b'=>'Helvetica-Bold.afm' - ,'i'=>'Helvetica-Oblique.afm' - ,'bi'=>'Helvetica-BoldOblique.afm' - ,'ib'=>'Helvetica-BoldOblique.afm' - ); - $this->fontFamilies['Courier.afm']=array( - 'b'=>'Courier-Bold.afm' - ,'i'=>'Courier-Oblique.afm' - ,'bi'=>'Courier-BoldOblique.afm' - ,'ib'=>'Courier-BoldOblique.afm' - ); - $this->fontFamilies['Times-Roman.afm']=array( - 'b'=>'Times-Bold.afm' - ,'i'=>'Times-Italic.afm' - ,'bi'=>'Times-BoldItalic.afm' - ,'ib'=>'Times-BoldItalic.afm' - ); - } - } else { - // the user is trying to set a font family - // note that this can also be used to set the base ones to something else - if (strlen($family)){ - $this->fontFamilies[$family] = $options; - } - } -} - -/** -* used to add messages for use in debugging -*/ -function addMessage($message){ - $this->messages.=$message."\n"; -} - -/** -* a few functions which should allow the document to be treated transactionally. +* phase is a modifier on the dash pattern which is used to shift the point at which the pattern starts. */ -function transaction($action){ - switch ($action){ - case 'start': - // store all the data away into the checkpoint variable - $data = get_object_vars($this); - $this->checkpoint = $data; - unset($data); - break; - case 'commit': - if (is_array($this->checkpoint) && isset($this->checkpoint['checkpoint'])){ - $tmp = $this->checkpoint['checkpoint']; - $this->checkpoint = $tmp; - unset($tmp); - } else { - $this->checkpoint=''; - } - break; - case 'rewind': - // do not destroy the current checkpoint, but move us back to the state then, so that we can try again - if (is_array($this->checkpoint)){ - // can only abort if were inside a checkpoint - $tmp = $this->checkpoint; - foreach ($tmp as $k=>$v){ - if ($k != 'checkpoint'){ - $this->$k=$v; - } - } - unset($tmp); - } - break; - case 'abort': - if (is_array($this->checkpoint)){ - // can only abort if were inside a checkpoint - $tmp = $this->checkpoint; - foreach ($tmp as $k=>$v){ - $this->$k=$v; - } - unset($tmp); - } - break; - } + function setLineStyle($width=1,$cap='',$join='',$dash='',$phase=0) + { + $this->SetLineWidth($width); + } -} + function Text($x, $y, $txt, $stroke=0, $clip=false) + { + TCPDF::Text($x,$y, TCPDF::unhtmlentities($txt), $stroke, $clip); + } } // end of class diff --git a/reporting/includes/doctext.inc b/reporting/includes/doctext.inc index 8ef084b4..5753447d 100644 --- a/reporting/includes/doctext.inc +++ b/reporting/includes/doctext.inc @@ -8,44 +8,53 @@ if (isset($header2type)) $doc_Shipping_Company = _("Shipping Company"); if ($doctype == 9) $doc_Due_Date = _("Delivery Date"); - else + else $doc_Due_Date = _("Due Date"); $doc_Your_Ref = _("Your Ref"); $doc_Our_Ref = _("Our Ref."); $doc_Your_VAT_no = _("Your VAT no."); $doc_Our_VAT_no = _("Our VAT No."); $doc_Payment_Terms = _("Payment Terms"); + $doc_Customers_Ref = _("Customers Reference:"); $doc_Our_Order_No = _("Our Order No"); $doc_Domicile = _("Domicile"); - $doc_Please_Quote = _("Please quote Invoice no. when paying. All amounts stated in"); + if($doctype == 13) { + $doc_Bank_Account = ''; + $doc_Please_Quote = _("All amounts stated in"); + } else { + $doc_Bank_Account = _("Bank Account"); + $doc_Please_Quote = _("Please quote Invoice no. when paying. All amounts stated in"); + } $doc_Address = _("Address"); $doc_Phone_Fax_Email = _("Phone/Fax/Email"); $doc_Bank = _("Bank"); $doc_Bank_Account = _("Bank Account"); $doc_Payment_Link = _("You can pay through"); - if ($doctype == 8 || $doctype == 9 || $doctype == 10 || $doctype == 11) + if ($doctype == 8 || $doctype == 9 || $doctype == 10 || $doctype == 11 || $doctype == 13) { if ($doctype == 8) $this->title = _("PURCHASE ORDER"); + else if ($doctype == 13) + $this->title = _("DELIVERY NOTE"); else if ($doctype == 9) $this->title = ($print_as_quote==1 ? _("QUOTE") : _("SALES ORDER")); else if ($doctype == 10) $this->title = _("INVOICE"); else $this->title = _("CREDIT NOTE"); - if ($doctype == 8) - $this->headers = array(_("Item Code"), _("Item Description"), - _("Delivery Date"), _("Quantity"), _("Unit"), _("Price"), _("Total")); - else - $this->headers = array(_("Item Code"), _("Item Description"), _("Quantity"), - _("Unit"), _("Price"), _("Discount %"), _("Total")); - } + if ($doctype == 8) + $this->headers = array(_("Item Code"), _("Item Description"), + _("Delivery Date"), _("Quantity"), _("Unit"), _("Price"), _("Total")); + else + $this->headers = array(_("Item Code"), _("Item Description"), _("Quantity"), + _("Unit"), _("Price"), _("Discount %"), _("Total")); + } else if ($doctype == 12) { $this->title = _("STATEMENT"); $this->headers = array(_("Trans Type"), _("#"), _("Date"), _("DueDate"), _("Charges"), _("Credits"), _("Allocated"), _("Outstanding")); - } + } } if (isset($emailtype)) { @@ -56,12 +65,13 @@ if (isset($emailtype)) } if (isset($header2type) || isset($linetype)) { - $doc_Invoice_no = _("Invoice no."); + $doc_Invoice_no = $doctype==13 ? _("Delivery Note No.") : _("Invoice No."); + $doc_Delivery_no = "Delivery Note No."; $doc_Order_no = _("Order no."); -} +} if (isset($linetype)) { - if ($doctype == 8 || $doctype == 9 || $doctype == 10 || $doctype == 11) + if ($doctype == 8 || $doctype == 9 || $doctype == 10 || $doctype == 11 || $doctype == 13) { $doc_Sub_total = _("Sub-total"); $doc_Shipping = _("Shipping"); @@ -70,6 +80,7 @@ if (isset($linetype)) $doc_TOTAL_INVOICE = _("TOTAL INVOICE"); $doc_TOTAL_ORDER = _("TOTAL ORDER EX VAT"); $doc_TOTAL_PO = _("TOTAL PO EX VAT"); + $doc_TOTAL_DELIVERY = _("TOTAL DELIVERY INCL. VAT"); } else if ($doctype == 12) { @@ -80,6 +91,6 @@ if (isset($linetype)) $doc_as_of = _("as of"); $doc_Days = _("Days"); $doc_Over = _("Over"); - } + } } ?> \ No newline at end of file diff --git a/reporting/includes/doctext2.inc b/reporting/includes/doctext2.inc index f509b5d7..0bbe57e7 100644 --- a/reporting/includes/doctext2.inc +++ b/reporting/includes/doctext2.inc @@ -8,22 +8,29 @@ if (isset($header2type)) $doc_Shipping_Company = "Shipping Company"; if ($doctype == 9) $doc_Due_Date = "Delivery Date"; - else + else $doc_Due_Date = "Due Date"; $doc_Your_Ref = "Your Ref"; $doc_Our_Ref = "Our Ref."; $doc_Your_VAT_no = "Your VAT No."; $doc_Our_VAT_no = "Our VAT No."; $doc_Payment_Terms = "Payment Terms"; + $doc_Customers_Ref = "Customers Reference:"; $doc_Our_Order_No = "Our Order No"; $doc_Domicile = "Domicile"; - $doc_Please_Quote = "Please quote Invoice no. when paying. All amounts stated in"; + if($doctype == 13) { + $doc_Bank_Account = ''; + $doc_Please_Quote = "All amounts stated in"; + } else { + $doc_Please_Quote = "Please quote Invoice no. when paying. All amounts stated in"; + $doc_Bank_Account = "Bank Account"; + } $doc_Address = "Address"; $doc_Phone_Fax_Email = "Phone/Fax/Email"; $doc_Bank = "Bank"; $doc_Bank_Account = "Bank Account"; $doc_Payment_Link = "You can pay through"; - if ($doctype == 8 || $doctype == 9 || $doctype == 10 || $doctype == 11) + if ($doctype == 8 || $doctype == 9 || $doctype == 10 || $doctype == 11 || $doctype == 13) { if ($doctype == 8) $this->title = "PURCHASE ORDER"; @@ -31,21 +38,23 @@ if (isset($header2type)) $this->title = ($print_as_quote==1 ? _("QUOTE") : _("SALES ORDER")); else if ($doctype == 10) $this->title = "INVOICE"; + else if ($doctype == 13) + $this->title = _("DELIVERY NOTE"); else $this->title = "CREDIT NOTE"; - if ($doctype == 8) - $this->headers = array('Item Code', 'Item Description', 'Delivery Date', - 'Quantity', 'Unit', 'Price', 'Total'); - else + if ($doctype == 8) + $this->headers = array('Item Code', 'Item Description', 'Delivery Date', + 'Quantity', 'Unit', 'Price', 'Total'); + else $this->headers = array('Item Code', 'Item Description', 'Quantity', 'Unit', - 'Price', 'Discount %', 'Total'); - } + 'Price', 'Discount %', 'Total'); + } else if ($doctype == 12) { $this->title = "STATEMENT"; $this->headers = array('Trans Type', '#', 'Date', 'Due Date', 'Charges', 'Credits', 'Allocated', 'Outstanding'); - } + } } if (isset($emailtype)) { @@ -56,12 +65,12 @@ if (isset($emailtype)) } if (isset($header2type) || isset($linetype)) { - $doc_Invoice_no = "Invoice No."; + $doc_Invoice_no = $doctype==13 ? "Delivery Note No." : "Invoice No."; $doc_Order_no = "Order no."; -} +} if (isset($linetype)) { - if ($doctype == 8 || $doctype == 9 || $doctype == 10 || $doctype == 11) + if ($doctype == 8 || $doctype == 9 || $doctype == 10 || $doctype == 11 || $doctype == 13) { $doc_Sub_total = "Sub-total"; $doc_Shipping = "Shipping"; @@ -70,6 +79,7 @@ if (isset($linetype)) $doc_TOTAL_INVOICE = "TOTAL INVOICE"; $doc_TOTAL_ORDER = "TOTAL ORDER EX VAT"; $doc_TOTAL_PO = "TOTAL PO EX VAT"; + $doc_TOTAL_DELIVERY = "TOTAL DELIVERY INCL. VAT"; } else if ($doctype == 12) { @@ -80,6 +90,6 @@ if (isset($linetype)) $doc_as_of = "as of"; $doc_Days = "Days"; $doc_Over = "Over"; - } + } } ?> \ No newline at end of file diff --git a/reporting/includes/form_types.inc b/reporting/includes/form_types.inc deleted file mode 100644 index c70ee0ca..00000000 --- a/reporting/includes/form_types.inc +++ /dev/null @@ -1,134 +0,0 @@ - array('code' => 'si', 'name' => _("Sales Invoice")), - 11=> array('code' => 'si', 'name' => _("Sales Credit Note")), - 30=> array('code' => 'so', 'name' => _("Sales Order")), - - 18=> array('code' => 'po', 'name' => _("Purchase Order")), - - 26=> array('code' => 'wo', 'name' => _("Work Order")), - 28=> array('code' => 'wo', 'name' => _("Work Order Issue")), - 29=> array('code' => 'wo', 'name' => _("Work Order Production")), - - 40=> array('code' => 'qw', 'name' => _("Cheque Withdrawal")), - 41=> array('code' => 'qd', 'name' => _("Cheque Deposit")), - - 50=> array('code' => 'cw', 'name' => _("Cash Withdrawal")), - 51=> array('code' => 'cd', 'name' => _("Cash Deposit")), - - 60=> array('code' => 'ir', 'name' => _("Inventory Release")), - 61=> array('code' => 'ia', 'name' => _("Inventory Add")), - 62=> array('code' => 'it', 'name' => _("Inventory Return")) - ); - -function getFormTypeName($type) -{ - global $form_types; - return $form_types[$type]['name']; -} - -function add_forms_for_sys_type($trans_type, $trans_id, $ParamFrom=null, $ParamTo=null) -{ - switch ($trans_type) { - case 1 : // bank payment - case 22 : // payment to supplier - add_form_entry(50, $trans_type, $trans_id, $ParamFrom, $ParamTo); - break; - - case 12: // payment from customer - case 2 : // bank deposit - add_form_entry(51, $trans_type, $trans_id, $ParamFrom, $ParamTo); - break; - - case 4 : // bank transfer - withdraw and deposit - add_form_entry(50, $trans_type, $trans_id, $ParamFrom, $ParamTo); - add_form_entry(51, $trans_type, $trans_id, $ParamTo, $ParamFrom); - break; - - case 10 : // sales invoice - inventory release and invoice forms - add_form_entry(60, $trans_type, $trans_id, $ParamFrom); - add_form_entry(10, $trans_type, $trans_id); - break; - - case 11 : // sales credit - inventory return and credit note forms - add_form_entry(62, $trans_type, $trans_id, $ParamFrom); - add_form_entry(11, $trans_type, $trans_id); - break; - - case 16 : // location transfer - add_form_entry(60, $trans_type, $trans_id, $ParamFrom); - add_form_entry(61, $trans_type, $trans_id, $ParamTo); - break; - - case systypes::inventory_adjustment() : // inventory adjustment - - // $ParamFrom : if 1 inventory add, 0 inventory release - if ($ParamFrom) - add_form_entry(61, $trans_type, $trans_id, $ParamTo); - else - add_form_entry(60, $trans_type, $trans_id, $ParamTo); - break; - - case systypes::po() : // purchase order - add_form_entry(18, $trans_type, $trans_id); - break; - - case 25 : // purchase order delivery - add_form_entry(61, $trans_type, $trans_id, $ParamFrom); - break; - - case systypes::work_order() : // work order - add_form_entry(26, $trans_type, $trans_id); - break; - - case 28 : // work order issue - // $ParamFrom : if 1 inventory add, 0 inventory release - if ($ParamFrom) - add_form_entry(61, $trans_type, $trans_id, $ParamTo); - else - add_form_entry(60, $trans_type, $trans_id, $ParamTo); - break; - - case 29 : // work order production - // $ParamFrom is the quantity - if +ve inventory add, -ve inventory release - if ($ParamFrom >= 0) - add_form_entry(61, $trans_type, $trans_id, $ParamTo); - else - add_form_entry(60, $trans_type, $trans_id, $ParamTo); - break; - - case 30 : // sales order - sales order form - add_form_entry(30, $trans_type, $trans_id); - break; - } -} - -function add_form_entry($form_type, $trans_type, $trans_id, $param1=null, $param2=null) -{ - $sql = "SELECT max(form_id) FROM ".TB_PREF."form_items WHERE form_type=$form_type"; - $result = db_query($sql, "could not get next form_id"); - $row = db_fetch_row($result); - $form_id = $row[0] + 1; - - $sql = "INSERT INTO ".TB_PREF."form_items (form_id, form_type, trans_type, trans_id, param1, param2) - VALUES ($form_id, $form_type, $trans_type, $trans_id, '$param1', '$param2')"; - $result = db_query($sql, "could not add form entry for $trans_type, $trans_id"); -} - -function delete_forms_for_systype($trans_type, $trans_id) -{ - $sql = "DELETE FROM ".TB_PREF."form_items WHERE trans_type=$trans_type AND trans_id=$trans_id"; - $result = db_query($sql, "could not delete form entry for $trans_type, $trans_id"); -} - -function get_form_entries($trans_type, $trans_id) -{ - $sql = "SELECT * FROM ".TB_PREF."form_items WHERE trans_type=$trans_type AND trans_id=$trans_id"; - $result = db_query($sql, "could not query form entry for $trans_type, $trans_id"); - - return $result; -} - -?> \ No newline at end of file diff --git a/reporting/includes/header2.inc b/reporting/includes/header2.inc new file mode 100644 index 00000000..84d93e1e --- /dev/null +++ b/reporting/includes/header2.inc @@ -0,0 +1,225 @@ +row = $this->pageHeight - $this->topMargin; + + $upper = $this->row - 2 * $this->lineHeight; + $lower = $this->bottomMargin + 6 * $this->lineHeight; + $iline1 = $upper - 4 * $this->lineHeight; + $iline2 = $iline1 - 8 * $this->lineHeight; + $iline3 = $iline2 - 8 * $this->lineHeight; + $iline4 = $iline3 - 2 * $this->lineHeight; + $iline5 = $lower + 4 * $this->lineHeight; + $icol = $this->pageWidth / 2; + $ccol = $this->cols[0] + 4; + $ccol2 = $icol / 2; + $mcol = $icol + 8; + $mcol2 = $this->pageWidth - $ccol2; + + $this->SetDrawColor(128, 128, 128); + $this->LineTo($this->pageWidth - $this->rightMargin, $upper ,$this->leftMargin, $upper); + $this->LineTo($this->leftMargin, $upper ,$this->leftMargin, $lower); + $this->LineTo($this->pageWidth - $this->rightMargin, $lower ,$this->leftMargin, $lower); + $this->LineTo($this->pageWidth - $this->rightMargin, $lower ,$this->pageWidth - $this->rightMargin, $upper); + $this->Line($iline1); + $this->Line($iline2); + $this->Line($iline3); + $this->Line($iline4); + $this->Line($iline5); + $this->LineTo($icol, $upper ,$icol, $iline1); + $this->NewLine(); + + $this->fontSize += 4; + $this->Font('bold'); + $this->Text($mcol, $this->title); + $this->Font(); + $this->fontSize -= 4; + if ($this->pageNumber > 1 && !strstr($this->filename, "Bulk")) + $this->Text($this->endLine - 35, _("Page") . ' ' . $this->pageNumber); + $this->fontSize -= 4; + $this->row = $upper - 5; + + $this->Text($mcol, $doc_Invoice_no, $mcol + 90); + $this->Text($mcol + 90, $doc_Cust_no, $mcol + 180); + $this->Text($mcol + 180, $doc_Date); + $this->fontSize += 4; + + $this->row = $upper - 2 * $this->lineHeight - 2; + if ($this->company['coy_logo'] != '') + { + $logo = $comp_path .'/'. user_company() . "/images/" . $this->company['coy_logo']; + $this->AddImage($logo, $ccol, $iline1 + 5, 0, 40); + } + else + { + $this->fontSize += 4; + $this->Font('bold'); + $this->Text($ccol, $this->company['coy_name'], $icol); + $this->Font(); + $this->fontSize -= 4; + } + if ($doctype == 8 || $doctype == 9) // PO or SO + $this->Text($mcol, $myrow['order_no'], $mcol + 90); + else if (isset($myrow['trans_no']) && isset($myrow['reference'])) // INV/CRE/STA + { + if ($print_invoice_no == 1) + $this->Text($mcol, $myrow['trans_no'], $mcol + 90); + else + $this->Text($mcol, $myrow['reference'], $mcol + 90); + } + if (isset($myrow['debtor_no'])) + $this->Text($mcol + 90, $myrow['debtor_no'], $mcol + 180); + if ($doctype == 8 || $doctype == 9) + $this->Text($mcol + 180, sql2date($myrow['ord_date'])); + else + $this->Text($mcol + 180, sql2date($myrow['tran_date'])); + + $this->fontSize -= 4; + $this->row = $iline1 - 5; + $this->Text($ccol, $doc_Charge_To, $icol); + $this->Text($mcol, $doc_Delivered_To); + $this->fontSize += 4; + + $this->NewLine(2); + $temp = $this->row; + if ($doctype == 9) + { + $this->Text($ccol, $myrow['name'], $icol); + } + else + { + if ($doctype == 8) + $this->Text($ccol, $myrow['supp_name'], $icol); + else + $this->Text($ccol, $myrow['DebtorName'], $icol); + $this->NewLine(); + $this->TextWrapLines($ccol, $icol - $ccol, $myrow['address']); + } + if ($sales_order != NULL) + { + $this->row = $temp; + if ($doctype == 8) + $this->Text($mcol, $this->company['coy_name']); + else + $this->Text($mcol, $sales_order['deliver_to']); + $this->NewLine(); + $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $sales_order['delivery_address']); + } + $this->row = $iline2 - 2 * $this->lineHeight; + $this->Text($ccol, $doc_Shipping_Company . ":", $ccol2); + if ($doctype != 8 && isset($myrow['shipper_name'])) + $this->Text($ccol2, $myrow['shipper_name'], $mcol); + $this->Text($mcol, $doc_Due_Date . ":", $mcol2); + if ($doctype == 9) + $this->Text($mcol2, sql2date($myrow['delivery_date'])); + else if ($doctype != 8 && isset($myrow['due_date'])) + $this->Text($mcol2, sql2date($myrow['due_date'])); + if ($branch != null) + { + $this->NewLine(); + $this->Text($ccol, $doc_Your_Ref . ":", $ccol2); + $this->Text($ccol2, $branch['contact_name'], $mcol); + $this->Text($mcol, $doc_Our_Ref . ":", $mcol2); + + $id = $branch['salesman']; + $sql = "SELECT salesman_name FROM ".TB_PREF."salesman WHERE salesman_code='$id'"; + $result = db_query($sql,"could not get sales person"); + $row = db_fetch($result); + + $this->Text($mcol2, $row['salesman_name']); + } + $this->NewLine(); + $this->Text($ccol, $doc_Your_VAT_no . ":", $ccol2); + if ($doctype != 8 && isset($myrow['tax_id'])) + $this->Text($ccol2, $myrow['tax_id'], $mcol); + $this->Text($mcol, $doc_Our_VAT_no . ":", $mcol2); + $this->Text($mcol2, $this->company['gst_no']); + $this->NewLine(); + $this->Text($ccol, $doc_Payment_Terms . ":", $ccol2); + + $id = $myrow['payment_terms']; + $sql = "SELECT terms FROM ".TB_PREF."payment_terms WHERE terms_indicator='$id'"; + $result = db_query($sql,"could not get paymentterms"); + $row = db_fetch($result); + + $this->Text($ccol2, $row["terms"], $mcol); + $this->Text($mcol, $doc_Our_Order_No . ":", $mcol2); + if (isset($myrow['order_'])) + $this->Text($mcol2, $myrow['order_']); + // 2008-06-16. Added customer's reference + $this->NewLine(); + $this->Text($ccol, $doc_Customers_Ref, $ccol2); + if ($sales_order != NULL) + $this->Text($ccol2, $sales_order["customer_ref"], $mcol); + $locale = $path_to_root . "lang/" . $_SESSION['language']->code . "/locale.inc"; + if (file_exists($locale)) + { + $header2include = true; + include($locale); + } + $this->row = $iline3 - $this->lineHeight - 2; + $this->Font('bold'); + $count = count($this->headers); + for ($i = 0; $i < $count; $i++) + $this->TextCol($i, $i + 1, $this->headers[$i], -2); + $this->Font(); + $temp = $this->row - 2 * $this->lineHeight; + $this->row = $iline5 - $this->lineHeight - 6; + $this->Text($ccol, $doc_Please_Quote . " - " . $myrow['curr_code']); + $this->NewLine(); + if ($doctype == 10 && $branch['disable_branch'] > 0) // payment links + { + if ($branch['disable_branch'] == 1) + { + $amt = number_format($myrow["ov_freight"] + $myrow["ov_gst"] + $myrow["ov_amount"], user_price_dec()); + $txt = $doc_Payment_Link . " PayPal: "; + $name = urlencode($this->title . " " . $myrow['reference']); + $url = "https://www.paypal.com/xclick/business=" . $this->company['email'] . "&item_name=" . + $name . "&amount=" . $amt . "¤cy_code=" . $myrow['curr_code']; + $this->fontSize -= 2; + $this->Text($ccol, $txt); + $this->NewLine(); + $this->SetTextColor(0, 0, 255); + $this->Text($ccol, $url); + $this->SetTextColor(0, 0, 0); + $this->addLink($url, $ccol, $this->row, $this->pageWidth - $this->rightMargin, $this->row + $this->lineHeight); + $this->fontSize += 2; + } + } + if ($this->params['comments'] != '') + { + $this->NewLine(); + $this->Font('bold'); + $this->Text($ccol, $this->params['comments']); + $this->Font(); + } + + $this->row = $lower - 5; + $this->fontSize -= 4; + + $this->Text($ccol, $doc_Address, $ccol2 + 40); + $this->Text($ccol2 + 30, $doc_Phone_Fax_Email, $mcol); + $this->Text($mcol , $doc_Bank, $mcol2); + $this->Text($mcol2, $doc_Bank_Account); + $this->fontSize += 4; + $this->NewLine(); + $adrline = $this->row; + $this->TextWrapLines($ccol, $ccol2 + 40 - $ccol, $this->company['postal_address']); + $this->row = $adrline; + $this->Text($ccol2 + 30, $this->company['phone'], $mcol); + $this->NewLine(); + $this->Text($ccol2 + 30, $this->company['fax'], $mcol); + $this->NewLine(); + $this->Text($ccol2 + 30, $this->company['email'], $mcol); + // fetch this later + $this->row = $adrline; + if (isset($bankaccount['bank_name'])) + $this->Text($mcol, $bankaccount['bank_name'], $mcol2); + $this->NewLine(); + $this->TextWrapLines($mcol, $mcol2 - $mcol, $bankaccount['bank_address']); + $this->row = $adrline; + if (isset($bankaccount['bank_account_name'])) + $this->Text($mcol2, $bankaccount['bank_account_name']); + $this->NewLine(); + if (isset($bankaccount['bank_account_number'])) + $this->Text($mcol2, $bankaccount['bank_account_number']); +?> \ No newline at end of file diff --git a/reporting/includes/html_entity_decode_php4.php b/reporting/includes/html_entity_decode_php4.php new file mode 100644 index 00000000..1ecad710 --- /dev/null +++ b/reporting/includes/html_entity_decode_php4.php @@ -0,0 +1,343 @@ +. +// +// See LICENSE.TXT file for more information. +// ---------------------------------------------------------------------------- +// +// +// Description : This is a PHP4 function that redefine the +// standard html_entity_decode function to support +// UTF-8 encoding. +// +// +// Author: Nicola Asuni +// +// (c) Copyright: +// Nicola Asuni +// Tecnick.com S.r.l. +// Via della Pace, 11 +// 09044 Quartucciu (CA) +// ITALY +// www.tecnick.com +// info@tecnick.com +//============================================================+ + +/** + * This is a PHP4 function that redefine the standard + * html_entity_decode function to support UTF-8 encoding. + * @package com.tecnick.tcpdf + * @author Nicola Asuni + * @copyright 2004-2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com + * @link http://www.tcpdf.org + * @license http://www.gnu.org/copyleft/lesser.html LGPL + */ + +/** + * Returns the UTF-8 string corresponding to unicode value. + * @param $num unicode value to convert. + * @return string converted + */ +function code_to_utf8($num) { + if ($num <= 0x7F) { + return chr($num); + } elseif ($num <= 0x7FF) { + return chr(($num >> 0x06) + 0xC0).chr(($num & 0x3F) + 128); + } elseif ($num <= 0xFFFF) { + return chr(($num >> 0x0C) + 0xE0).chr((($num >> 0x06) & 0x3F) + 0x80).chr(($num & 0x3F) + 0x80); + } elseif ($num <= 0x1FFFFF) { + return chr(($num >> 0x12) + 0xF0).chr((($num >> 0x0C) & 0x3F) + 0x80).chr((($num >> 0x06) & 0x3F) + 0x80).chr(($num & 0x3F) + 0x80); + } + return ' '; // default value +} + +/** + * Reverse function for htmlentities. + * Convert entities in UTF-8. + * @param $text_to_convert Text to convert. + * @return string converted + */ +function html_entity_decode_php4($text_to_convert) { + $htmlentities_table = array ( + "Á" => "".chr(195).chr(129)."", + "á" => "".chr(195).chr(161)."", + "Â" => "".chr(195).chr(130)."", + "â" => "".chr(195).chr(162)."", + "´" => "".chr(194).chr(180)."", + "Æ" => "".chr(195).chr(134)."", + "æ" => "".chr(195).chr(166)."", + "À" => "".chr(195).chr(128)."", + "à" => "".chr(195).chr(160)."", + "ℵ" => "".chr(226).chr(132).chr(181)."", + "Α" => "".chr(206).chr(145)."", + "α" => "".chr(206).chr(177)."", + "&" => "".chr(38)."", + "∧" => "".chr(226).chr(136).chr(167)."", + "∠" => "".chr(226).chr(136).chr(160)."", + "Å" => "".chr(195).chr(133)."", + "å" => "".chr(195).chr(165)."", + "≈" => "".chr(226).chr(137).chr(136)."", + "Ã" => "".chr(195).chr(131)."", + "ã" => "".chr(195).chr(163)."", + "Ä" => "".chr(195).chr(132)."", + "ä" => "".chr(195).chr(164)."", + "„" => "".chr(226).chr(128).chr(158)."", + "Β" => "".chr(206).chr(146)."", + "β" => "".chr(206).chr(178)."", + "¦" => "".chr(194).chr(166)."", + "•" => "".chr(226).chr(128).chr(162)."", + "∩" => "".chr(226).chr(136).chr(169)."", + "Ç" => "".chr(195).chr(135)."", + "ç" => "".chr(195).chr(167)."", + "¸" => "".chr(194).chr(184)."", + "¢" => "".chr(194).chr(162)."", + "Χ" => "".chr(206).chr(167)."", + "χ" => "".chr(207).chr(135)."", + "ˆ" => "".chr(203).chr(134)."", + "♣" => "".chr(226).chr(153).chr(163)."", + "≅" => "".chr(226).chr(137).chr(133)."", + "©" => "".chr(194).chr(169)."", + "↵" => "".chr(226).chr(134).chr(181)."", + "∪" => "".chr(226).chr(136).chr(170)."", + "¤" => "".chr(194).chr(164)."", + "†" => "".chr(226).chr(128).chr(160)."", + "‡" => "".chr(226).chr(128).chr(161)."", + "↓" => "".chr(226).chr(134).chr(147)."", + "⇓" => "".chr(226).chr(135).chr(147)."", + "°" => "".chr(194).chr(176)."", + "Δ" => "".chr(206).chr(148)."", + "δ" => "".chr(206).chr(180)."", + "♦" => "".chr(226).chr(153).chr(166)."", + "÷" => "".chr(195).chr(183)."", + "É" => "".chr(195).chr(137)."", + "é" => "".chr(195).chr(169)."", + "Ê" => "".chr(195).chr(138)."", + "ê" => "".chr(195).chr(170)."", + "È" => "".chr(195).chr(136)."", + "è" => "".chr(195).chr(168)."", + "∅" => "".chr(226).chr(136).chr(133)."", + " " => "".chr(226).chr(128).chr(131)."", + " " => "".chr(226).chr(128).chr(130)."", + "Ε" => "".chr(206).chr(149)."", + "ε" => "".chr(206).chr(181)."", + "≡" => "".chr(226).chr(137).chr(161)."", + "Η" => "".chr(206).chr(151)."", + "η" => "".chr(206).chr(183)."", + "Ð" => "".chr(195).chr(144)."", + "ð" => "".chr(195).chr(176)."", + "Ë" => "".chr(195).chr(139)."", + "ë" => "".chr(195).chr(171)."", + "€" => "".chr(226).chr(130).chr(172)."", + "∃" => "".chr(226).chr(136).chr(131)."", + "ƒ" => "".chr(198).chr(146)."", + "∀" => "".chr(226).chr(136).chr(128)."", + "½" => "".chr(194).chr(189)."", + "¼" => "".chr(194).chr(188)."", + "¾" => "".chr(194).chr(190)."", + "⁄" => "".chr(226).chr(129).chr(132)."", + "Γ" => "".chr(206).chr(147)."", + "γ" => "".chr(206).chr(179)."", + "≥" => "".chr(226).chr(137).chr(165)."", + "↔" => "".chr(226).chr(134).chr(148)."", + "⇔" => "".chr(226).chr(135).chr(148)."", + "♥" => "".chr(226).chr(153).chr(165)."", + "…" => "".chr(226).chr(128).chr(166)."", + "Í" => "".chr(195).chr(141)."", + "í" => "".chr(195).chr(173)."", + "Î" => "".chr(195).chr(142)."", + "î" => "".chr(195).chr(174)."", + "¡" => "".chr(194).chr(161)."", + "Ì" => "".chr(195).chr(140)."", + "ì" => "".chr(195).chr(172)."", + "ℑ" => "".chr(226).chr(132).chr(145)."", + "∞" => "".chr(226).chr(136).chr(158)."", + "∫" => "".chr(226).chr(136).chr(171)."", + "Ι" => "".chr(206).chr(153)."", + "ι" => "".chr(206).chr(185)."", + "¿" => "".chr(194).chr(191)."", + "∈" => "".chr(226).chr(136).chr(136)."", + "Ï" => "".chr(195).chr(143)."", + "ï" => "".chr(195).chr(175)."", + "Κ" => "".chr(206).chr(154)."", + "κ" => "".chr(206).chr(186)."", + "Λ" => "".chr(206).chr(155)."", + "λ" => "".chr(206).chr(187)."", + "⟨" => "".chr(226).chr(140).chr(169)."", + "«" => "".chr(194).chr(171)."", + "←" => "".chr(226).chr(134).chr(144)."", + "⇐" => "".chr(226).chr(135).chr(144)."", + "⌈" => "".chr(226).chr(140).chr(136)."", + "“" => "".chr(226).chr(128).chr(156)."", + "≤" => "".chr(226).chr(137).chr(164)."", + "⌊" => "".chr(226).chr(140).chr(138)."", + "∗" => "".chr(226).chr(136).chr(151)."", + "◊" => "".chr(226).chr(151).chr(138)."", + "‎" => "".chr(226).chr(128).chr(142)."", + "‹" => "".chr(226).chr(128).chr(185)."", + "‘" => "".chr(226).chr(128).chr(152)."", + "¯" => "".chr(194).chr(175)."", + "—" => "".chr(226).chr(128).chr(148)."", + "µ" => "".chr(194).chr(181)."", + "·" => "".chr(194).chr(183)."", + "−" => "".chr(226).chr(136).chr(146)."", + "Μ" => "".chr(206).chr(156)."", + "μ" => "".chr(206).chr(188)."", + "∇" => "".chr(226).chr(136).chr(135)."", + " " => "".chr(194).chr(160)."", + "–" => "".chr(226).chr(128).chr(147)."", + "≠" => "".chr(226).chr(137).chr(160)."", + "∋" => "".chr(226).chr(136).chr(139)."", + "¬" => "".chr(194).chr(172)."", + "∉" => "".chr(226).chr(136).chr(137)."", + "⊄" => "".chr(226).chr(138).chr(132)."", + "Ñ" => "".chr(195).chr(145)."", + "ñ" => "".chr(195).chr(177)."", + "Ν" => "".chr(206).chr(157)."", + "ν" => "".chr(206).chr(189)."", + "Ó" => "".chr(195).chr(147)."", + "ó" => "".chr(195).chr(179)."", + "Ô" => "".chr(195).chr(148)."", + "ô" => "".chr(195).chr(180)."", + "Œ" => "".chr(197).chr(146)."", + "œ" => "".chr(197).chr(147)."", + "Ò" => "".chr(195).chr(146)."", + "ò" => "".chr(195).chr(178)."", + "‾" => "".chr(226).chr(128).chr(190)."", + "Ω" => "".chr(206).chr(169)."", + "ω" => "".chr(207).chr(137)."", + "Ο" => "".chr(206).chr(159)."", + "ο" => "".chr(206).chr(191)."", + "⊕" => "".chr(226).chr(138).chr(149)."", + "∨" => "".chr(226).chr(136).chr(168)."", + "ª" => "".chr(194).chr(170)."", + "º" => "".chr(194).chr(186)."", + "Ø" => "".chr(195).chr(152)."", + "ø" => "".chr(195).chr(184)."", + "Õ" => "".chr(195).chr(149)."", + "õ" => "".chr(195).chr(181)."", + "⊗" => "".chr(226).chr(138).chr(151)."", + "Ö" => "".chr(195).chr(150)."", + "ö" => "".chr(195).chr(182)."", + "¶" => "".chr(194).chr(182)."", + "∂" => "".chr(226).chr(136).chr(130)."", + "‰" => "".chr(226).chr(128).chr(176)."", + "⊥" => "".chr(226).chr(138).chr(165)."", + "Φ" => "".chr(206).chr(166)."", + "φ" => "".chr(207).chr(134)."", + "Π" => "".chr(206).chr(160)."", + "π" => "".chr(207).chr(128)."", + "ϖ" => "".chr(207).chr(150)."", + "±" => "".chr(194).chr(177)."", + "£" => "".chr(194).chr(163)."", + "′" => "".chr(226).chr(128).chr(178)."", + "″" => "".chr(226).chr(128).chr(179)."", + "∏" => "".chr(226).chr(136).chr(143)."", + "∝" => "".chr(226).chr(136).chr(157)."", + "Ψ" => "".chr(206).chr(168)."", + "ψ" => "".chr(207).chr(136)."", + "√" => "".chr(226).chr(136).chr(154)."", + "⟩" => "".chr(226).chr(140).chr(170)."", + "»" => "".chr(194).chr(187)."", + "→" => "".chr(226).chr(134).chr(146)."", + "⇒" => "".chr(226).chr(135).chr(146)."", + "⌉" => "".chr(226).chr(140).chr(137)."", + "”" => "".chr(226).chr(128).chr(157)."", + "ℜ" => "".chr(226).chr(132).chr(156)."", + "®" => "".chr(194).chr(174)."", + "⌋" => "".chr(226).chr(140).chr(139)."", + "Ρ" => "".chr(206).chr(161)."", + "ρ" => "".chr(207).chr(129)."", + "‏" => "".chr(226).chr(128).chr(143)."", + "›" => "".chr(226).chr(128).chr(186)."", + "’" => "".chr(226).chr(128).chr(153)."", + "‚" => "".chr(226).chr(128).chr(154)."", + "Š" => "".chr(197).chr(160)."", + "š" => "".chr(197).chr(161)."", + "⋅" => "".chr(226).chr(139).chr(133)."", + "§" => "".chr(194).chr(167)."", + "­" => "".chr(194).chr(173)."", + "Σ" => "".chr(206).chr(163)."", + "σ" => "".chr(207).chr(131)."", + "ς" => "".chr(207).chr(130)."", + "∼" => "".chr(226).chr(136).chr(188)."", + "♠" => "".chr(226).chr(153).chr(160)."", + "⊂" => "".chr(226).chr(138).chr(130)."", + "⊆" => "".chr(226).chr(138).chr(134)."", + "∑" => "".chr(226).chr(136).chr(145)."", + "¹" => "".chr(194).chr(185)."", + "²" => "".chr(194).chr(178)."", + "³" => "".chr(194).chr(179)."", + "⊃" => "".chr(226).chr(138).chr(131)."", + "⊇" => "".chr(226).chr(138).chr(135)."", + "ß" => "".chr(195).chr(159)."", + "Τ" => "".chr(206).chr(164)."", + "τ" => "".chr(207).chr(132)."", + "∴" => "".chr(226).chr(136).chr(180)."", + "Θ" => "".chr(206).chr(152)."", + "θ" => "".chr(206).chr(184)."", + "ϑ" => "".chr(207).chr(145)."", + " " => "".chr(226).chr(128).chr(137)."", + "Þ" => "".chr(195).chr(158)."", + "þ" => "".chr(195).chr(190)."", + "˜" => "".chr(203).chr(156)."", + "×" => "".chr(195).chr(151)."", + "™" => "".chr(226).chr(132).chr(162)."", + "Ú" => "".chr(195).chr(154)."", + "ú" => "".chr(195).chr(186)."", + "↑" => "".chr(226).chr(134).chr(145)."", + "⇑" => "".chr(226).chr(135).chr(145)."", + "Û" => "".chr(195).chr(155)."", + "û" => "".chr(195).chr(187)."", + "Ù" => "".chr(195).chr(153)."", + "ù" => "".chr(195).chr(185)."", + "¨" => "".chr(194).chr(168)."", + "ϒ" => "".chr(207).chr(146)."", + "Υ" => "".chr(206).chr(165)."", + "υ" => "".chr(207).chr(133)."", + "Ü" => "".chr(195).chr(156)."", + "ü" => "".chr(195).chr(188)."", + "℘" => "".chr(226).chr(132).chr(152)."", + "Ξ" => "".chr(206).chr(158)."", + "ξ" => "".chr(206).chr(190)."", + "Ý" => "".chr(195).chr(157)."", + "ý" => "".chr(195).chr(189)."", + "¥" => "".chr(194).chr(165)."", + "ÿ" => "".chr(195).chr(191)."", + "Ÿ" => "".chr(197).chr(184)."", + "Ζ" => "".chr(206).chr(150)."", + "ζ" => "".chr(206).chr(182)."", + "‍" => "".chr(226).chr(128).chr(141)."", + "‌" => "".chr(226).chr(128).chr(140)."", + ">" => ">", + "<" => "<" + ); + $return_text = strtr($text_to_convert, $htmlentities_table); + $return_text = preg_replace('~&#x([0-9a-f]+);~ei', 'code_to_utf8(hexdec("\\1"))', $return_text); + $return_text = preg_replace('~&#([0-9]+);~e', 'code_to_utf8(\\1)', $return_text); + return $return_text; +} + +//============================================================+ +// END OF FILE +//============================================================+ +?> \ No newline at end of file diff --git a/reporting/includes/htmlcolors.php b/reporting/includes/htmlcolors.php new file mode 100644 index 00000000..69c5defe --- /dev/null +++ b/reporting/includes/htmlcolors.php @@ -0,0 +1,207 @@ +. +// +// See LICENSE.TXT file for more information. +// ---------------------------------------------------------------------------- +// +// Description : Array of WEB safe colors +// +// Author: Nicola Asuni +// +// (c) Copyright: +// Nicola Asuni +// Tecnick.com S.r.l. +// Via della Pace, 11 +// 09044 Quartucciu (CA) +// ITALY +// www.tecnick.com +// info@tecnick.com +//============================================================+ + +/** + * Array of WEB safe colors. + * @author Nicola Asuni + * @copyright 2004-2008 Nicola Asuni - Tecnick.com S.r.l (www.tecnick.com) Via Della Pace, 11 - 09044 - Quartucciu (CA) - ITALY - www.tecnick.com - info@tecnick.com + * @package com.tecnick.tcpdf + * @link http://www.tcpdf.org + * @license http://www.gnu.org/copyleft/lesser.html LGPL + * @since 2.9.000 (2008-03-26) +*/ + +/** + * Array of WEB safe colors + */ +$webcolor = array ( +"aliceblue" => "f0f8ff", +"antiquewhite" => "faebd7", +"aqua" => "00ffff", +"aquamarine" => "7fffd4", +"azure" => "f0ffff", +"beige" => "f5f5dc", +"bisque" => "ffe4c4", +"black" => "000000", +"blanchedalmond" => "ffebcd", +"blue" => "0000ff", +"blueviolet" => "8a2be2", +"brown" => "a52a2a", +"burlywood" => "deb887", +"cadetblue" => "5f9ea0", +"chartreuse" => "7fff00", +"chocolate" => "d2691e", +"coral" => "ff7f50", +"cornflowerblue" => "6495ed", +"cornsilk" => "fff8dc", +"crimson" => "dc143c", +"cyan" => "00ffff", +"darkblue" => "00008b", +"darkcyan" => "008b8b", +"darkgoldenrod" => "b8860b", +"darkgray" => "a9a9a9", +"darkgrey" => "a9a9a9", +"darkgreen" => "006400", +"darkkhaki" => "bdb76b", +"darkmagenta" => "8b008b", +"darkolivegreen" => "556b2f", +"darkorange" => "ff8c00", +"darkorchid" => "9932cc", +"darkred" => "8b0000", +"darksalmon" => "e9967a", +"darkseagreen" => "8fbc8f", +"darkslateblue" => "483d8b", +"darkslategray" => "2f4f4f", +"darkslategrey" => "2f4f4f", +"darkturquoise" => "00ced1", +"darkviolet" => "9400d3", +"deeppink" => "ff1493", +"deepskyblue" => "00bfff", +"dimgray" => "696969", +"dimgrey" => "696969", +"dodgerblue" => "1e90ff", +"firebrick" => "b22222", +"floralwhite" => "fffaf0", +"forestgreen" => "228b22", +"fuchsia" => "ff00ff", +"gainsboro" => "dcdcdc", +"ghostwhite" => "f8f8ff", +"gold" => "ffd700", +"goldenrod" => "daa520", +"gray" => "808080", +"grey" => "808080", +"green" => "008000", +"greenyellow" => "adff2f", +"honeydew" => "f0fff0", +"hotpink" => "ff69b4", +"indianred " => "cd5c5c", +"indigo " => "4b0082", +"ivory" => "fffff0", +"khaki" => "f0e68c", +"lavender" => "e6e6fa", +"lavenderblush" => "fff0f5", +"lawngreen" => "7cfc00", +"lemonchiffon" => "fffacd", +"lightblue" => "add8e6", +"lightcoral" => "f08080", +"lightcyan" => "e0ffff", +"lightgoldenrodyellow" => "fafad2", +"lightgray" => "d3d3d3", +"lightgrey" => "d3d3d3", +"lightgreen" => "90ee90", +"lightpink" => "ffb6c1", +"lightsalmon" => "ffa07a", +"lightseagreen" => "20b2aa", +"lightskyblue" => "87cefa", +"lightslategray" => "778899", +"lightslategrey" => "778899", +"lightsteelblue" => "b0c4de", +"lightyellow" => "ffffe0", +"lime" => "00ff00", +"limegreen" => "32cd32", +"linen" => "faf0e6", +"magenta" => "ff00ff", +"maroon" => "800000", +"mediumaquamarine" => "66cdaa", +"mediumblue" => "0000cd", +"mediumorchid" => "ba55d3", +"mediumpurple" => "9370d8", +"mediumseagreen" => "3cb371", +"mediumslateblue" => "7b68ee", +"mediumspringgreen" => "00fa9a", +"mediumturquoise" => "48d1cc", +"mediumvioletred" => "c71585", +"midnightblue" => "191970", +"mintcream" => "f5fffa", +"mistyrose" => "ffe4e1", +"moccasin" => "ffe4b5", +"navajowhite" => "ffdead", +"navy" => "000080", +"oldlace" => "fdf5e6", +"olive" => "808000", +"olivedrab" => "6b8e23", +"orange" => "ffa500", +"orangered" => "ff4500", +"orchid" => "da70d6", +"palegoldenrod" => "eee8aa", +"palegreen" => "98fb98", +"paleturquoise" => "afeeee", +"palevioletred" => "d87093", +"papayawhip" => "ffefd5", +"peachpuff" => "ffdab9", +"peru" => "cd853f", +"pink" => "ffc0cb", +"plum" => "dda0dd", +"powderblue" => "b0e0e6", +"purple" => "800080", +"red" => "ff0000", +"rosybrown" => "bc8f8f", +"royalblue" => "4169e1", +"saddlebrown" => "8b4513", +"salmon" => "fa8072", +"sandybrown" => "f4a460", +"seagreen" => "2e8b57", +"seashell" => "fff5ee", +"sienna" => "a0522d", +"silver" => "c0c0c0", +"skyblue" => "87ceeb", +"slateblue" => "6a5acd", +"slategray" => "708090", +"slategrey" => "708090", +"snow" => "fffafa", +"springgreen" => "00ff7f", +"steelblue" => "4682b4", +"tan" => "d2b48c", +"teal" => "008080", +"thistle" => "d8bfd8", +"tomato" => "ff6347", +"turquoise" => "40e0d0", +"violet" => "ee82ee", +"wheat" => "f5deb3", +"white" => "ffffff", +"whitesmoke" => "f5f5f5", +"yellow" => "ffff00", +"yellowgreen" => "9acd32" +); + +//============================================================+ +// END OF FILE +//============================================================+ +?> diff --git a/reporting/includes/pdf_report.inc b/reporting/includes/pdf_report.inc index 4ccd6b4b..f09ab57f 100644 --- a/reporting/includes/pdf_report.inc +++ b/reporting/includes/pdf_report.inc @@ -1,9 +1,10 @@ titleCol = $this->leftMargin + 100; $this->lineHeight = 12; $this->fontSize = $fontsize; + $this->oldFontSize = 0; + $this->row = $this->pageHeight - $this->topMargin; $this->currency = ''; - $this->rtl = ($_SESSION['language']->dir == 'rtl'); - // for quick testing - //$this->rtl = true; - $this->Cpdf($this->size); + $rtl = ($_SESSION['language']->dir === 'rtl' ? 'rtl' : 'ltr'); + $code = $_SESSION['language']->code; + $enc = strtoupper($_SESSION['language']->encoding); + // for the language array in class.pdf.inc + $l = array('a_meta_charset' => $enc, 'a_meta_dir' => $rtl, 'a_meta_language' => $code, 'w_page' => 'page'); + $this->Cpdf($size, $l); } function Font($style = 'normal') { - global $path_to_root; - $own = false; - $locale = $path_to_root . "lang/" . $_SESSION['language']->code . "/locale.inc"; - if (file_exists($locale)) - { - $fontinclude = true; - include($locale); - } - //if ($this->rtl) // this is good for presentation only - if (!$own) - { - if (user_price_dec() == 3) // only for presentation of farsi - { - $this->rtl = true; - $path = $path_to_root . 'reporting/fonts/farsi_1.afm'; - } - elseif ($style == 'italic') - $path = $path_to_root . 'reporting/fonts/Helvetica-Oblique.afm'; - elseif ($style == 'bold') - $path = $path_to_root . 'reporting/fonts/Helvetica-Bold.afm'; - else // even take misspelled styles - $path = $path_to_root . 'reporting/fonts/Helvetica.afm'; - } - $this->selectFont($path, 'WinAnsiEncoding'); + $this->selectFont("", $style); } function Info($params, $cols, $headers, $aligns, @@ -242,7 +225,7 @@ class FrontReport extends Cpdf $this->Font(); } $str = _("Page") . ' ' . $this->pageNumber; - $this->Text($this->endLine - 35, $str); + $this->Text($this->endLine - 38, $str); $this->Line($this->row - 5, 1); $this->row -= ($this->lineHeight + 6); @@ -265,7 +248,7 @@ class FrontReport extends Cpdf function Header2($myrow, $branch, $sales_order, $bankaccount, $doctype) { - global $path_to_root, $print_as_quote, $print_invoice_no; + global $comp_path, $path_to_root, $print_as_quote, $print_invoice_no; $this->pageNumber++; if ($this->pageNumber > 1) @@ -279,248 +262,14 @@ class FrontReport extends Cpdf { include($path_to_root . "reporting/includes/doctext.inc"); } - $this->row = $this->pageHeight - $this->topMargin; - - $upper = $this->row - 2 * $this->lineHeight; - $lower = $this->bottomMargin + 6 * $this->lineHeight; - $iline1 = $upper - 4 * $this->lineHeight; - $iline2 = $iline1 - 8 * $this->lineHeight; - $iline3 = $iline2 - 8 * $this->lineHeight; - $iline4 = $iline3 - 2 * $this->lineHeight; - $iline5 = $lower + 5 * $this->lineHeight; - $icol = $this->pageWidth / 2; - $ccol = $this->cols[0] + 4; - $ccol2 = $icol / 2; - $mcol = $icol + 8; - $mcol2 = $this->pageWidth - $ccol2; - - $this->SetDrawColor(128, 128, 128); - $this->LineTo($this->pageWidth - $this->rightMargin, $upper ,$this->leftMargin, $upper); - $this->LineTo($this->leftMargin, $upper ,$this->leftMargin, $lower); - $this->LineTo($this->pageWidth - $this->rightMargin, $lower ,$this->leftMargin, $lower); - $this->LineTo($this->pageWidth - $this->rightMargin, $lower ,$this->pageWidth - $this->rightMargin, $upper); - $this->Line($iline1); - $this->Line($iline2); - $this->Line($iline3); - $this->Line($iline4); - $this->Line($iline5); - $this->LineTo($icol, $upper ,$icol, $iline1); - $this->NewLine(); - - $this->fontSize += 4; - $this->Font('bold'); - $this->Text($mcol, $this->title); - $this->Font(); - $this->fontSize -= 4; - if ($this->pageNumber > 1 && !strstr($this->filename, "Bulk")) - $this->Text($this->endLine - 35, _("Page") . ' ' . $this->pageNumber); - $this->fontSize -= 4; - $this->row = $upper - 5; - - $this->Text($mcol, $doc_Invoice_no, $mcol + 90); - $this->Text($mcol + 90, $doc_Cust_no, $mcol + 180); - $this->Text($mcol + 180, $doc_Date); - $this->fontSize += 4; - - $this->row = $upper - 2 * $this->lineHeight - 2; - if ($this->company['coy_logo'] != '') - { - $logo = $path_to_root . "themes/default/images/" . $this->company['coy_logo']; - $this->AddImage($logo, $ccol, $iline1 + 5, 250, 40); - } - else - { - $this->fontSize += 4; - $this->Font('bold'); - $this->Text($ccol, $this->company['coy_name'], $icol); - $this->Font(); - $this->fontSize -= 4; - } - if ($doctype == 8) // PO - $this->Text($mcol, $myrow['order_no'], $mcol + 90); - else if ($doctype == 9) // SO - $this->Text($mcol, $myrow['order_no'] ." ".$myrow['customer_ref'], $mcol + 90); - else // INV/CRE/STA - { - if ($print_invoice_no == 1) - $this->Text($mcol, $myrow['trans_no'], $mcol + 90); - else - $this->Text($mcol, $myrow['reference'], $mcol + 90); - } - $this->Text($mcol + 90, $myrow['debtor_no'], $mcol + 180); - if ($doctype == 8 || $doctype == 9) - $this->Text($mcol + 180, sql2date($myrow['ord_date'])); - else - $this->Text($mcol + 180, sql2date($myrow['tran_date'])); - - $this->fontSize -= 4; - $this->row = $iline1 - 5; - $this->Text($ccol, $doc_Charge_To, $icol); - $this->Text($mcol, $doc_Delivered_To); - $this->fontSize += 4; - - $this->NewLine(2); - $temp = $this->row; - if ($doctype == 9) - { - $this->Text($ccol, $myrow['name'], $icol); - //$adr = ?; - } - else - { - if ($doctype == 8) - $this->Text($ccol, $myrow['supp_name'], $icol); - else - $this->Text($ccol, $myrow['DebtorName'], $icol); - $adr = explode("\n", $myrow['address']); - } - for ($i = 0; $i < count($adr); $i++) - { - $this->NewLine(); - $this->Text($ccol, $adr[$i], $icol); - } - if ($sales_order != NULL) - { - $this->row = $temp; - if ($doctype == 8) - $this->Text($mcol, $this->company['coy_name']); - else - $this->Text($mcol, $sales_order['deliver_to']); - $adr = explode("\n", $sales_order['delivery_address']); - for ($i = 0; $i < count($adr); $i++) - { - $this->NewLine(); - $this->Text($mcol, $adr[$i]); - } - } - $this->row = $iline2 - 2 * $this->lineHeight; - $this->Text($ccol, $doc_Shipping_Company . ":", $ccol2); - if ($doctype != 8) - $this->Text($ccol2, $myrow['shipper_name'], $mcol); - $this->Text($mcol, $doc_Due_Date . ":", $mcol2); - if ($doctype == 9) - $this->Text($mcol2, sql2date($myrow['delivery_date'])); - else if ($doctype != 8) - $this->Text($mcol2, sql2date($myrow['due_date'])); - if ($branch != null) - { - $this->NewLine(); - $this->Text($ccol, $doc_Your_Ref . ":", $ccol2); - $this->Text($ccol2, $branch['contact_name'], $mcol); - $this->Text($mcol, $doc_Our_Ref . ":", $mcol2); - $id = $branch['salesman']; - $sql = "SELECT salesman_name FROM ".TB_PREF."salesman WHERE salesman_code='$id'"; - $result = db_query($sql,"could not get sales person"); - $row = db_fetch($result); + include($path_to_root . "reporting/includes/header2.inc"); - $this->Text($mcol2, $row['salesman_name']); - } - $this->NewLine(); - $this->Text($ccol, $doc_Your_VAT_no . ":", $ccol2); - if ($doctype != 8) - $this->Text($ccol2, $myrow['tax_id'], $mcol); - $this->Text($mcol, $doc_Our_VAT_no . ":", $mcol2); - $this->Text($mcol2, $this->company['gst_no']); - $this->NewLine(); - $this->Text($ccol, $doc_Payment_Terms . ":", $ccol2); - - $id = $myrow['payment_terms']; - $sql = "SELECT terms FROM ".TB_PREF."payment_terms WHERE terms_indicator='$id'"; - $result = db_query($sql,"could not get paymentterms"); - $row = db_fetch($result); - - $this->Text($ccol2, $row["terms"], $mcol); - $this->Text($mcol, $doc_Our_Order_No . ":", $mcol2); - $this->Text($mcol2, $myrow['order_']); - - $locale = $path_to_root . "lang/" . $_SESSION['language']->code . "/locale.inc"; - if (file_exists($locale)) - { - $header2include = true; - include($locale); - } - $this->row = $iline3 - $this->lineHeight - 2; - $this->Font('bold'); - $count = count($this->headers); - for ($i = 0; $i < $count; $i++) - $this->TextCol($i, $i + 1, $this->headers[$i], -2); - $this->Font(); - $temp = $this->row - 2 * $this->lineHeight; - $this->row = $iline5 - $this->lineHeight - 6; - $this->Text($ccol, $doc_Please_Quote . " - " . $myrow['curr_code']); - $this->NewLine(); - if ($branch['disable_branch'] > 0 && $doctype == 10) // payment links - { - if ($branch['disable_branch'] == 1) - { - $amt = number_format($myrow["ov_freight"] + $myrow["ov_gst"] + $myrow["ov_amount"], user_price_dec()); - $txt = $doc_Payment_Link . " PayPal: "; - $name = urlencode($this->title . " " . $myrow['reference']); - $url = "https://www.paypal.com/xclick/business=" . $this->company['email'] . "&item_name=" . - $name . "&amount=" . $amt . "¤cy_code=" . $myrow['curr_code']; - $this->fontSize -= 2; - $this->Text($ccol, $txt); - $this->NewLine(); - $this->SetTextColor(0, 0, 255); - $this->Text($ccol, $url); - $this->SetTextColor(0, 0, 0); - $this->addLink($url, $ccol, $this->row, $this->pageWidth - $this->rightMargin, $this->row + $this->lineHeight); - $this->fontSize += 2; - } - } - if ($this->params['comments'] != '') - { - $this->NewLine(); - $this->Font('bold'); - $this->Text($ccol, $this->params['comments']); - $this->Font(); - } - - $this->row = $lower - 5; - $this->fontSize -= 4; - - $this->Text($ccol, $doc_Address, $ccol2 + 40); - $this->Text($ccol2 + 30, $doc_Phone_Fax_Email, $mcol); - $this->Text($mcol , $doc_Bank, $mcol2); - $this->Text($mcol2, $doc_Bank_Account); - $this->fontSize += 4; - $this->NewLine(); - $adrline = $this->row; - - $adr = explode("\n", $this->company['postal_address']); - for ($i = 0; $i < count($adr); $i++) - { - $this->Text($ccol, $adr[$i], $ccol2 + 40); - $this->NewLine(); - } - $this->row = $adrline; - $this->Text($ccol2 + 30, $this->company['phone'], $mcol); - $this->NewLine(); - $this->Text($ccol2 + 30, $this->company['fax'], $mcol); - $this->NewLine(); - $this->Text($ccol2 + 30, $this->company['email'], $mcol); - // fetch this later - $this->row = $adrline; - $this->Text($mcol, $bankaccount['bank_name'], $mcol2); - $adr = explode("\n", $bankaccount['bank_address']); - for ($i = 0; $i < count($adr); $i++) - { - $this->NewLine(); - $this->Text($mcol, $adr[$i], $mcol2); - } - - $this->row = $adrline; - $this->Text($mcol2, $bankaccount['bank_account_name']); - $this->NewLine(); - $this->Text($mcol2, $bankaccount['bank_account_number']); $this->row = $temp; } function AddImage($logo, $x, $y, $w, $h) { - if ($this->rtl) - $x = $this->pageWidth - $x - $w; if (strpos($logo, ".png") || strpos($logo, ".PNG")) $this->addPngFromFile($logo, $x, $y, $w, $h); else @@ -529,12 +278,12 @@ class FrontReport extends Cpdf function SetDrawColor($r, $g, $b) { - $this->setStrokeColor($r / 255, $g / 255, $b / 255); + $this->setStrokeColor($r, $g, $b); } function SetTextColor($r, $g, $b) { - $this->setColor($r / 255, $g / 255, $b / 255); + TCPDF::SetTextColor($r, $g, $b); } function Text($c, $txt, $n=0, $corr=0, $r=0) @@ -547,14 +296,10 @@ class FrontReport extends Cpdf function TextWrap($xpos, $ypos, $len, $str, $align = 'left') { - if ($this->rtl) + if ($this->fontSize != $this->oldFontSize) { - $str = strrev($str); - $xpos = $this->pageWidth - $xpos - $len; - if ($align == 'left') - $align = 'right'; - elseif ($align == 'right') - $align = 'left'; + $this->SetFontSize($this->fontSize); + $this->oldFontSize = $this->fontSize; } return $this->addTextWrap($xpos, $ypos, $len, $this->fontSize, $str, $align); } @@ -569,7 +314,13 @@ class FrontReport extends Cpdf return $this->TextWrap($this->cols2[$c], $this->row - $r, $this->cols2[$n] - $this->cols2[$c] + $corr, $txt, $this->aligns2[$c]); } - function TextColLines($c, $n, $txt, $corr=0) + function TextColLines($c, $n, $txt, $corr=0, $r=0) + { + $this->row -= $r; + $this->TextWrapLines($this->cols[$c], $this->cols[$n] - $this->cols[$c] + $corr, $txt, $this->aligns[$c]); + } + + function TextWrapLines($c, $width, $txt, $align='left') { $str = Explode("\n", $txt); for ($i = 0; $i < count($str); $i++) @@ -577,7 +328,7 @@ class FrontReport extends Cpdf $l = $str[$i]; do { - $l = $this->TextCol($c, $n, $l, $corr); + $l = $this->TextWrap($c, $this->row , $width, $l, $align); $this->NewLine(); } while ($l != ''); @@ -604,15 +355,11 @@ class FrontReport extends Cpdf function End($email=0, $subject=null, $myrow=null, $doctype = 0) { - global $go_debug, $path_to_root; - - // this is no good in IE so has been replaced, see down under - // but good for debugging purposes in IE - //session_write_close(); + global $go_debug, $path_to_root, $comp_path; if ($go_debug == 1) { - $buf = $this->output(1); + $buf = $this->Output(); $len = strlen($buf); $pdfcode = $buf; $pdfcode = str_replace("\n", "\n
", htmlspecialchars($pdfcode)); @@ -629,9 +376,9 @@ class FrontReport extends Cpdf } else { - $buf = $this->output(); + $buf = $this->Output(); $len = strlen($buf); - $dir = './pdf_files'; + $dir = $comp_path.'/'.user_company(). '/pdf_files'; //save the file if (!file_exists($dir)) { @@ -716,7 +463,7 @@ class FrontReport extends Cpdf header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); - $this->stream(); + $this->Stream(); } // also have a look through the directory, and remove the files that are older than a week diff --git a/reporting/includes/reporting.inc b/reporting/includes/reporting.inc index 15cfee6a..75b8d76f 100644 --- a/reporting/includes/reporting.inc +++ b/reporting/includes/reporting.inc @@ -1,42 +1,104 @@ $_SESSION["wa_current_user"]->company, - 'FORMID' => $form_id, - 'FORMTYPE' => $form_type, - 'TRANSNO' => $trans_no, - 'TRANSTYPE' => $trans_type, - 'REF' => $ref, - 'PARAM1' => $param1, - 'PARAM2' => $param2 - ); - $pdf_href = getPDFOpenScript($link_text, $ar); - return "" . _($link_text) . ""; + +// Put this on the page only once an outside a form, e.g. print_hidden_script(systypes::sales_order()); +// If you have both invoices and credit notes on the same page use 10 or 11. Is doesn't matter which. + +function print_hidden_script($type_no) +{ + global $path_to_root; + include_once($path_to_root . "/includes/types.inc"); + $action = ""; + + switch ($type_no) + { + case systypes::sales_order() : + $action = "$path_to_root/reporting/rep109.php"; + $ar = array( + 'PARAM_0' => 0, // from - these values are updated in print_document_link() + 'PARAM_1' => 0, // to + 'PARAM_2' => "", // currency + 'PARAM_3' => get_first_bank_account(), // bank account + 'PARAM_4' => 0, // email + 'PARAM_5' => 0, // quote + 'PARAM_6' => ""); // comments + break; + case systypes::cust_dispatch() : + $action = "$path_to_root/reporting/rep110.php"; + $ar = array( + 'PARAM_0' => 0, // from - these values are updated in print_document_link() + 'PARAM_1' => 0, // to + 'PARAM_2' => 0, // email + 'PARAM_3' => ""); // comments + break; + case 10 : // Sales Invoice + case 11 : // Customer Credit Note + $action = "$path_to_root/reporting/rep107.php"; + $ar = array( + 'PARAM_0' => 0, // from - these values are updated in print_document_link() + 'PARAM_1' => 0, // to + 'PARAM_2' => "", // currency + 'PARAM_3' => get_first_bank_account(), // bank account + 'PARAM_4' => 0, // email + 'PARAM_5' => "", // paylink + 'PARAM_6' => "", // comments + 'PARAM_7' => 0); // IV or CN + break; + case systypes::po() : + $action = "$path_to_root/reporting/rep209.php"; + $ar = array( + 'PARAM_0' => 0, // from - these values are updated in print_document_link() + 'PARAM_1' => 0, // to + 'PARAM_2' => "", // currency + 'PARAM_3' => get_first_bank_account(), // bank account + 'PARAM_4' => 0, // email + 'PARAM_5' => ""); // comments + break; + } + $st = "
"; + foreach ($ar as $key => $value) + { + $st .= ""; + } + $st .= "
\n"; + $st .= "\n"; -function getHiddenFieldScript() { - $ar = Array('COMPANY','LANG','FORMID','FORMTYPE','TRANSNO','TRANSTYPE','REF','PARAM1','PARAM2'); - foreach ($ar as $value) $st.= ""; - - $st .= " - - "; - - $st = "
" . $st . "
"; - return $st; + echo $st; } -function getPDFOpenScript($link_text, $ar_params) { - $st = "document.pdf_form.LANG.value='" . $_SESSION['language']->code . "';"; - foreach ($ar_params as $key => $value) { - $st .= "document.pdf_form.{$key}.value = '{$value}';"; - } - $st.= "window.open('','REP_WINDOW','toolbar=no,scrollbar=no,resizable=yes,menubar=no');"; - $st.= "document.pdf_form.target='REP_WINDOW';"; - $st.= "document.pdf_form.action= '" . C_JSP_ROOT . "/reporting/gen_pdf_form.jsp';"; - $st.= "document.pdf_form.submit();"; - - return $st; +// Ex. label_cell(print_document_link($myrow['order_no'], _("Print"))); +// or display_note(print_document_link($order_no, _("Print this order"))); +// or if a button +// button("button", _("Print this order"), print_document_link($order_no, "", false))"; +// or if a button inside a TD +// button_cell("button", _("Print this order"), print_document_link($order_no, "", false))"; +// +// You only need full parameter list for invoices/credit notes + +function print_document_link($doc_no, $link_text, $link=true, $type_no=0) +{ + if ($link) + return "$link_text"; + else + return "javascript:printDocument('$doc_no', '$type_no');"; } +function get_first_bank_account() +{ + $sql = "SELECT ".TB_PREF."bank_accounts.account_code FROM ".TB_PREF."bank_accounts, ".TB_PREF."company + WHERE bank_curr_code=curr_default LIMIT 0, 1"; + $result = db_query($sql); + $row = db_fetch_row($result); + return $row[0]; +} ?> \ No newline at end of file diff --git a/reporting/includes/reports_classes.inc b/reporting/includes/reports_classes.inc index badf6308..995a39d7 100644 --- a/reporting/includes/reports_classes.inc +++ b/reporting/includes/reports_classes.inc @@ -85,7 +85,13 @@ class Report } function getDisplay() { - global $path_to_root, $use_date_picker; + global $comp_path, $path_to_root, $use_date_picker; + + $rep_file = $comp_path.'/'.user_company(). + "/reporting/rep".$this->id.".php"; + if (!file_exists($rep_file)) + $rep_file = $path_to_root ."/reporting/rep".$this->id.".php"; + $st = " "; echo $reports->getDisplay(); diff --git a/sales/allocations/customer_allocate.php b/sales/allocations/customer_allocate.php index 15eba74c..d92cf39a 100644 --- a/sales/allocations/customer_allocate.php +++ b/sales/allocations/customer_allocate.php @@ -2,16 +2,20 @@ $path_to_root="../.."; $page_security = 3; + include($path_to_root . "/includes/ui/allocation_cart.inc"); include_once($path_to_root . "/includes/session.inc"); - +include_once($path_to_root . "/includes/data_checks.inc"); include_once($path_to_root . "/sales/includes/sales_ui.inc"); include_once($path_to_root . "/sales/includes/sales_db.inc"); + $js = ""; if ($use_popup_windows) $js .= get_js_open_window(900, 500); -page(_("Allocate Customer Payment or Credit Note"), false, false, "", $js); +add_js_file('allocate.js'); + +page(_("Allocate Customer Payment or Credit Note"), false, false, "", $js); //-------------------------------------------------------------------------------- @@ -22,7 +26,7 @@ function clear_allocations() unset($_SESSION['alloc']->allocs); unset($_SESSION['alloc']); } - session_register("alloc"); + session_register('alloc'); } //-------------------------------------------------------------------------------- @@ -34,31 +38,33 @@ function check_data() for ($counter = 0; $counter < $_POST["TotalNumberOfAllocs"]; $counter++) { - if (!is_numeric($_POST['amount' . $counter])) + if (!check_num('amount' . $counter, 0)) { - display_error(_("The entry for one or more amounts is invalid.")); + display_error(_("The entry for one or more amounts is invalid or negative.")); + set_focus('amount'.$counter); return false; } - if ($_POST['amount' . $counter] < 0) + if (!check_num('amount' . $counter,0)) { display_error(_("The entry for an amount to allocate was negative. A positive allocation amount is expected.")); + set_focus('amount'.$counter); return false; } /*Now check to see that the AllocAmt is no greater than the amount left to be allocated against the transaction under review */ - if ($_POST['amount' . $counter] > $_POST['un_allocated' . $counter]) + if (input_num('amount' . $counter) > $_POST['un_allocated' . $counter]) { //$_POST['amount' . $counter] = $_POST['un_allocated' . $counter]; } - $_SESSION['alloc']->allocs[$counter]->current_allocated = $_POST['amount' . $counter]; + $_SESSION['alloc']->allocs[$counter]->current_allocated = input_num('amount' . $counter); - $total_allocated += $_POST['amount' . $counter]; + $total_allocated += input_num('amount' . $counter); } - if ($total_allocated + $_SESSION['alloc']->amount > sys_prefs::allocation_settled_allowance()) + if ($total_allocated - $_SESSION['alloc']->amount > sys_prefs::allocation_settled_allowance()) { display_error(_("These allocations cannot be processed because the amount allocated is more than the total amount left to allocate.")); //echo _("Total allocated:") . " " . $total_allocated ; @@ -91,6 +97,7 @@ function handle_process() update_debtor_trans_allocation($allocn_item->type, $allocn_item->type_no, $allocn_item->current_allocated); $total_allocated += $allocn_item->current_allocated; + } } /*end of the loop through the array of allocations made */ @@ -102,27 +109,23 @@ function handle_process() clear_allocations(); } - //-------------------------------------------------------------------------------- if (isset($_POST['Process'])) { - if (check_data()) + if (check_data()) { handle_process(); $_POST['Cancel'] = 1; } } - //-------------------------------------------------------------------------------- if (isset($_POST['Cancel'])) { clear_allocations(); meta_forward($path_to_root . "/sales/allocations/customer_allocation_main.php"); - exit; } - //-------------------------------------------------------------------------------- function get_allocations_for_transaction($type, $trans_no) @@ -131,7 +134,7 @@ function get_allocations_for_transaction($type, $trans_no) $debtor = get_customer_trans($trans_no, $type); - $_SESSION['alloc'] = new allocation($trans_no, $type, $debtor["debtor_no"], + $_SESSION['alloc'] = new allocation($trans_no, $type, $debtor["debtor_no"], $debtor["DebtorName"], $debtor["Total"], sql2date($debtor["tran_date"])); /* Now populate the array of possible (and previous actual) allocations for this customer */ @@ -148,7 +151,6 @@ function get_allocations_for_transaction($type, $trans_no) 0); // this allocation } - /* Now get trans that might have previously been allocated to by this trans NB existing entries where still some of the trans outstanding entered from above logic will be overwritten with the prev alloc detail below */ @@ -162,38 +164,37 @@ function get_allocations_for_transaction($type, $trans_no) $myrow["Total"], $myrow["alloc"] - $myrow["amt"], $myrow["amt"]); } } - //-------------------------------------------------------------------------------- function edit_allocations_for_transaction($type, $trans_no) { global $table_style; - start_form(false, true); - - display_heading(_("Allocation of") . " " . systypes::name($_SESSION['alloc']->type) . " # " . $_SESSION['alloc']->trans_no); + display_heading(sprintf(_("Allocation of %s # %d"), systypes::name($_SESSION['alloc']->type),$_SESSION['alloc']->trans_no)); - display_heading($_SESSION['alloc']->person_name); + display_heading($_SESSION['alloc']->person_name); display_heading2(_("Date:") . " " . $_SESSION['alloc']->date_ . ""); - display_heading2(_("Total:") . " " . number_format2(-$_SESSION['alloc']->amount,user_price_dec()) . ""); + display_heading2(_("Total:") . " " . price_format($_SESSION['alloc']->amount) . ""); echo "
"; + start_form(false, true); + div_start('alloc_tbl'); if (count($_SESSION['alloc']->allocs) > 0) { start_table($table_style); - + $th = array(_("Transaction Type"), _("#"), _("Date"), _("Due Date"), _("Amount"), _("Other Allocations"), _("This Allocation"), _("Left to Allocate"), "", ""); - + table_header($th); $k = $counter = $total_allocated = 0; foreach ($_SESSION['alloc']->allocs as $allocn_item) { - alt_table_row_color($k); + alt_table_row_color($k); label_cell(systypes::name($allocn_item->type)); label_cell(get_trans_view_str($allocn_item->type, $allocn_item->type_no)); @@ -202,47 +203,50 @@ function edit_allocations_for_transaction($type, $trans_no) amount_cell($allocn_item->amount); amount_cell($allocn_item->amount_allocated); - if (!isset($_POST['amount' . $counter]) || $_POST['amount' . $counter] == "") - $_POST['amount' . $counter] = $allocn_item->current_allocated; - text_cells(null, "amount" . $counter, $_POST['amount' . $counter], 13, 12); + $_POST['amount' . $counter] = price_format($allocn_item->current_allocated); + amount_cells(null, 'amount' . $counter, price_format('amount' . $counter)); $un_allocated = round($allocn_item->amount - $allocn_item->amount_allocated, 6); - hidden("un_allocated" . $counter, $un_allocated); amount_cell($un_allocated); - label_cell("" . _("All") . ""); - label_cell("" . _("None") . ""); + label_cell("" + . _("All") . ""); + label_cell("" + . _("None") . "".hidden("un_allocated" . $counter, $un_allocated, false)); end_row(); - $total_allocated += $_POST['amount' . $counter]; + $total_allocated += input_num('amount' . $counter); $counter++; } - label_row(_("Total Allocated"), number_format2($total_allocated,user_price_dec()), - "colspan=6 align=right", "nowrap align=right"); - if (-$_SESSION['alloc']->amount - $total_allocated < 0) + label_row(_("Total Allocated"), price_format($total_allocated), + "colspan=6 align=right", "nowrap align=right id='total_allocated'"); + if ($_SESSION['alloc']->amount - $total_allocated < 0) { $font1 = ""; $font2 = ""; } else $font1 = $font2 = ""; - label_row(_("Left to Allocate"), $font1 . number_format2(-$_SESSION['alloc']->amount - - $total_allocated,user_price_dec()) . $font2, "colspan=6 align=right", - "nowrap align=right"); + $left_to_allocate = $_SESSION['alloc']->amount - $total_allocated; + $left_to_allocate = price_format($left_to_allocate); + label_row(_("Left to Allocate"), $font1 . $left_to_allocate . $font2, + "colspan=6 align=right ", "nowrap align=right id='left_to_allocate'"); end_table(1); hidden('TotalNumberOfAllocs', $counter); - submit_center_first('UpdateDisplay', _("Update")); - submit('Process', _("Process")); - } - else + submit_center_first('UpdateDisplay', _("Refresh"), _('Start again allocation of selected amount'), true); + submit('Process', _("Process"), true, _('Process allocations'), true); + submit_center_last('Cancel', _("Back to Allocations"),_('Abandon allocations and return to selection of allocatable amounts'), true); + } + else { display_note(_("There are no unsettled transactions to allocate."), 0, 1); + + submit_center('Cancel', _("Back to Allocations"), true, + _('Abandon allocations and return to selection of allocatable amounts'), true); } - - submit_center_last('Cancel', _("Back to Allocations")); - + div_end(); end_form(); } @@ -252,6 +256,14 @@ if (isset($_GET['trans_no']) && isset($_GET['trans_type'])) { get_allocations_for_transaction($_GET['trans_type'], $_GET['trans_no']); } +if(get_post('UpdateDisplay')) +{ + $trans_no = $_SESSION['alloc']->trans_no; + $type = $_SESSION['alloc']->type; + clear_allocations(); + get_allocations_for_transaction($type, $trans_no); + $Ajax->activate('alloc_tbl'); +} if (isset($_SESSION['alloc'])) { diff --git a/sales/allocations/customer_allocation_main.php b/sales/allocations/customer_allocation_main.php index 20baf5ca..b0c67256 100644 --- a/sales/allocations/customer_allocation_main.php +++ b/sales/allocations/customer_allocation_main.php @@ -24,7 +24,7 @@ function display_allocatable_transactions() { unset($_SESSION['alloc']->allocs); unset($_SESSION['alloc']); - } + } if (!isset($_POST['customer_id'])) $_POST['customer_id'] = get_global_customer(); @@ -36,7 +36,7 @@ function display_allocatable_transactions() set_global_customer($_POST['customer_id']); - if (isset($_POST['customer_id']) && ($_POST['customer_id'] == reserved_words::get_all())) + if (isset($_POST['customer_id']) && ($_POST['customer_id'] == reserved_words::get_all())) { unset($_POST['customer_id']); } @@ -56,12 +56,12 @@ function display_allocatable_transactions() $customer_id = $_POST['customer_id']; $trans_items = get_allocatable_from_cust_transactions($customer_id, $settled); - + div_start('alloc_tbl'); start_table($table_style); if (!isset($_POST['customer_id'])) $th = array(_("Transaction Type"), _("#"), _("Reference"), _("Date"), _("Customer"), _("Currency"), _("Total"), _("Left To Allocate"), ""); - else + else $th = array(_("Transaction Type"), _("#"), _("Reference"), _("Date"), _("Total"), _("Left To Allocate"), ""); table_header($th); @@ -70,12 +70,12 @@ function display_allocatable_transactions() while ($myrow = db_fetch($trans_items)) { - if ($myrow["settled"] == 1) + if ($myrow["settled"] == 1) { start_row("class='settledbg'"); $has_settled_items = true; - } - else + } + else { alt_table_row_color($k); } @@ -90,10 +90,11 @@ function display_allocatable_transactions() label_cell($myrow["DebtorName"]); label_cell($myrow["curr_code"]); } - amount_cell(-$myrow["Total"]); - amount_cell(-$myrow["Total"] - $myrow["alloc"]); - if (-$myrow["Total"] - $myrow["alloc"] != 0.0) - label_cell("" . _("Allocate") . ""); + amount_cell($myrow["Total"]); + amount_cell($myrow["Total"] - $myrow["alloc"]); + if ($myrow["Total"] - $myrow["alloc"] != 0.0) + label_cell("" . _("Allocate") . ""); else label_cell(""); end_row(); @@ -106,12 +107,14 @@ function display_allocatable_transactions() if (db_num_rows($trans_items) == 0) display_note(_("There are no allocations to be done."), 1, 2); - + div_end(); end_form(); } //-------------------------------------------------------------------------------- - +if (get_post('_ShowSettled_update')) { + $Ajax->activate('alloc_tbl'); +} display_allocatable_transactions(); //-------------------------------------------------------------------------------- diff --git a/sales/credit_note_entry.php b/sales/credit_note_entry.php index 98a7442f..9a73d7c2 100644 --- a/sales/credit_note_entry.php +++ b/sales/credit_note_entry.php @@ -1,229 +1,212 @@ activate('items_table'); + set_focus('_stock_id_edit'); +} -//-------------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- function copy_to_cn() { - $_SESSION['credit_items']->memo_ = $_POST['CreditText']; - - $_SESSION['credit_items']->orig_order_date = $_POST['OrderDate']; - $_SESSION['credit_items']->freight_cost = $_POST['ChargeFreightCost']; - - $_SESSION['credit_items']->Location = $_POST["Location"]; - - $_SESSION['credit_items']->default_sales_type = $_POST['sales_type_id']; - $_SESSION['credit_items']->tax_group_id = $_POST["tax_group_id"]; + $_SESSION['Items']->Comments = $_POST['CreditText']; + $_SESSION['Items']->document_date = $_POST['OrderDate']; + $_SESSION['Items']->freight_cost = input_num('ChargeFreightCost'); + $_SESSION['Items']->Location = $_POST["Location"]; + $_SESSION['Items']->sales_type = $_POST['sales_type_id']; + $_SESSION['Items']->reference = $_POST['ref']; + $_SESSION['Items']->ship_via = $_POST['ShipperID']; } -//-------------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- function copy_from_cn() { - $_POST['CreditText'] = $_SESSION['credit_items']->memo_; - - $_POST['OrderDate'] = $_SESSION['credit_items']->orig_order_date; - $_POST['ChargeFreightCost'] = $_SESSION['credit_items']->freight_cost; - - $_POST["Location"] = $_SESSION['credit_items']->Location; - - $_POST['sales_type_id'] = $_SESSION['credit_items']->default_sales_type; - $_POST["tax_group_id"] = $_SESSION['credit_items']->tax_group_id; + $_POST['CreditText'] = $_SESSION['Items']->Comments; + $_POST['OrderDate'] = $_SESSION['Items']->document_date; + $_POST['ChargeFreightCost'] = price_format($_SESSION['Items']->freight_cost); + $_POST['Location'] = $_SESSION['Items']->Location; + $_POST['sales_type_id'] = $_SESSION['Items']->sales_type; + $_POST['ref'] = $_SESSION['Items']->reference; + $_POST['ShipperID'] = $_SESSION['Items']->ship_via; } -//----------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- -function handle_new_order() +function handle_new_credit($trans_no) { - if (isset($_SESSION['credit_items'])) - { - unset ($_SESSION['credit_items']->line_items); - unset ($_SESSION['credit_items']); - } - - session_register("credit_items"); - - $_SESSION['credit_items'] = new cart; - $_POST['OrderDate'] = Today(); - if (!is_date_in_fiscalyear($_POST['OrderDate'])) - $_POST['OrderDate'] = end_fiscalyear(); - $_SESSION['credit_items']->orig_order_date = $_POST['OrderDate']; - + processing_start(); + $_SESSION['Items'] = new Cart(11,$trans_no); + copy_from_cn(); + line_start_focus(); } -//----------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- -if (isset($_POST['ProcessCredit'])) +function can_process() { $input_error = 0; - if (!references::is_valid($_POST['ref'])) - { + if ($_SESSION['Items']->count_items() == 0 && (!check_num('ChargeFreightCost',0))) + return false; + if($_SESSION['Items']->trans_no == 0) { + if (!references::is_valid($_POST['ref'])) { display_error( _("You must enter a reference.")); + set_focus('ref'); $input_error = 1; - } - elseif (!is_new_reference($_POST['ref'], 11)) - { + } elseif (!is_new_reference($_POST['ref'], 11)) { display_error( _("The entered reference is already in use.")); + set_focus('ref'); $input_error = 1; - } - elseif (!is_date($_POST['OrderDate'])) - { + } + } + if (!is_date($_POST['OrderDate'])) { display_error(_("The entered date for the credit note is invalid.")); + set_focus('OrderDate'); $input_error = 1; - } - elseif (!is_date_in_fiscalyear($_POST['OrderDate'])) - { + } elseif (!is_date_in_fiscalyear($_POST['OrderDate'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('OrderDate'); $input_error = 1; } - if ($input_error == 1) - unset($_POST['ProcessCredit']); + return ($input_error == 0); } -//------------------------------------------------------------------------------------ +//----------------------------------------------------------------------------- -if (isset($_POST['ProcessCredit'])) -{ - //alert("WriteOffGLCode = ".$_POST['WriteOffGLCode'].", CreditType = ".$_POST['CreditType']); - if ($_POST['CreditType'] == "WriteOff" && (!isset($_POST['WriteOffGLCode']) || - $_POST['WriteOffGLCode'] == '')) - { +if (isset($_POST['ProcessCredit']) && can_process()) { + if ($_POST['CreditType'] == "WriteOff" && (!isset($_POST['WriteOffGLCode']) || + $_POST['WriteOffGLCode'] == '')) { display_note(_("For credit notes created to write off the stock, a general ledger account is required to be selected."), 1, 0); - display_note(_("Please select an account to write the cost of the stock off to, then click on Process again."), 1, 0); + display_note(_("Please select an account to write the cost of the stock off to, then click on Process again."), 1, 0); exit; + } - if (!isset($_POST['WriteOffGLCode'])) - $_POST['WriteOffGLCode'] = ""; - if (!isset($_POST['ShipperID'])) - $_POST['ShipperID'] = 0; - $credit_no = add_credit_note($_SESSION['credit_items'], $_POST['OrderDate'], - $_POST['CreditType'], $_POST['tax_group_id'], - $_POST['ChargeFreightCost'], $_POST['sales_type_id'], $_POST['ShipperID'], - $_POST['ref'], $_POST['CreditText'], $_POST['WriteOffGLCode']); - - unset($_SESSION['credit_items']->line_items); - unset($_SESSION['credit_items']); - + if (!isset($_POST['WriteOffGLCode'])) { + $_POST['WriteOffGLCode'] = 0; + } + $credit_no = $_SESSION['Items']->write($_POST['WriteOffGLCode']); + processing_end(); meta_forward($_SERVER['PHP_SELF'], "AddedID=$credit_no"); } /*end of process credit note */ -//--------------------------------------------------------------------------------------------------- - -function get_details_from_customer() -{ - return get_customer_details_to_order($_SESSION['credit_items'], $_POST['customer_id'], $_POST['branch_id']); -} - -//----------------------------------------------------------------------------------------------- + //----------------------------------------------------------------------------- function check_item_data() { - if ($_POST['qty'] <= 0) - { + if (!check_num('qty',0)) { display_error(_("The quantity must be greater than zero.")); + set_focus('qty'); return false; } - if (!is_numeric($_POST['price']) || $_POST['price'] < 0) - { + if (!check_num('price',0)) { display_error(_("The entered price is negative or invalid.")); + set_focus('price'); return false; } - if (!is_numeric($_POST['Disc']) || $_POST['Disc'] > 100 || $_POST['Disc'] < 0) - { + if (!check_num('Disc', 0, 100)) { display_error(_("The entered discount percent is negative, greater than 100 or invalid.")); + set_focus('Disc'); return false; } - return true; + return true; } -//----------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- function handle_update_item() { - if($_POST['UpdateItem'] != "" && check_item_data()) - { - $_SESSION['credit_items']->update_cart_item($_POST['stock_id'], $_POST['qty'], - $_POST['price'], ($_POST['Disc'] / 100)); - } + if ($_POST['UpdateItem'] != "" && check_item_data()) { + $_SESSION['Items']->update_cart_item($_POST['line_no'], input_num('qty'), + input_num('price'), input_num('Disc') / 100); + } + line_start_focus(); } -//----------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- -function handle_delete_item() +function handle_delete_item($line_no) { - $_SESSION['credit_items']->remove_from_cart($_GET['Delete']); + $_SESSION['Items']->remove_from_cart($line_no); + line_start_focus(); } -//----------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- function handle_new_item() { + if (!check_item_data()) return; - add_to_order($_SESSION['credit_items'], $_POST['stock_id'], $_POST['qty'], - $_POST['price'], $_POST['Disc'] / 100); + add_to_order($_SESSION['Items'], $_POST['stock_id'], input_num('qty'), + input_num('price'), input_num('Disc') / 100); + line_start_focus(); } - -//----------------------------------------------------------------------------------------------- -if (isset($_GET['Delete']) || isset($_GET['Edit'])) - copy_from_cn(); - -if (isset($_GET['Delete'])) - handle_delete_item(); - -if (isset($_POST['AddItem']) || isset($_POST['UpdateItem'])) - copy_to_cn(); +//----------------------------------------------------------------------------- +$id = find_submit('Delete'); +if ($id!=-1) + handle_delete_item($id); if (isset($_POST['AddItem'])) handle_new_item(); @@ -231,51 +214,36 @@ if (isset($_POST['AddItem'])) if (isset($_POST['UpdateItem'])) handle_update_item(); -//----------------------------------------------------------------------------------------------- +if (isset($_POST['CancelItemChanges'])) + line_start_focus(); -if (isset($_GET['NewCredit']) || !isset($_SESSION['credit_items'])) -{ - handle_new_order(); -} -else -{ - if (!isset($_POST['customer_id'])) - $_POST['customer_id'] = $_SESSION['credit_items']->customer_id; - if (!isset($_POST['branch_id'])) - $_POST['branch_id'] = $_SESSION['credit_items']->Branch; +//----------------------------------------------------------------------------- + +if (!processing_active()) { + handle_new_credit(); } -//----------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- start_form(false, true); -$customer_error = display_credit_header($_SESSION['credit_items']); +$customer_error = display_credit_header($_SESSION['Items']); -if ($customer_error == "") -{ +if ($customer_error == "") { start_table("$table_style width=80%", 10); echo ""; - display_credit_items(_("Credit Note Items"), $_SESSION['credit_items']); - credit_options_controls(); - echo ""; - end_table(); -} -else -{ + display_credit_items(_("Credit Note Items"), $_SESSION['Items']); + credit_options_controls(); + echo ""; + end_table(); +} else { display_error($customer_error); } -if (!isset($_POST['ProcessCredit'])) -{ - echo "
"; - submit_cells('Update', _("Update")); - if ($_SESSION['credit_items']->count_items() >= 1 - /*OR $_POST['ChargeTax'] > 0*/ || (isset($_POST['ChargeFreightCost']) && $_POST['ChargeFreightCost'] > 0)) - { - submit_cells('ProcessCredit', _("Process Credit Note")); - } - echo "
"; -} +echo "
"; +submit_cells('Update', _("Update")); +submit_cells('ProcessCredit', _("Process Credit Note")); +echo "
"; end_form(); end_page(); diff --git a/sales/customer_credit_invoice.php b/sales/customer_credit_invoice.php index 468d4f4a..8ccbb6e9 100644 --- a/sales/customer_credit_invoice.php +++ b/sales/customer_credit_invoice.php @@ -1,240 +1,224 @@ "; display_notification_centered(_("Credit Note has been processed")); - display_note(get_customer_trans_view_str($trans_type, $credit_no, _("View this credit note")), 0, 0); - - display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL Journal Entries for this Credit Note"))); + + display_note(get_customer_trans_view_str($trans_type, $credit_no, _("View This Credit Note")), 0, 0); + + display_note(print_document_link($credit_no, _("Print This Credit Note"), true, 11),1); + + display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL Journal Entries for this Credit Note")),1); display_footer_exit(); -} -//-------------------------------------------------------------------------------------- +} elseif (isset($_GET['UpdatedID'])) { + $credit_no = $_GET['UpdatedID']; + $trans_type = 11; + print_hidden_script(11); -if (!isset($_GET['InvoiceNumber']) && !$_SESSION['InvoiceToCredit']) -{ - /* This page can only be called with an invoice number for crediting*/ - die (_("This page can only be opened if an invoice has been selected for crediting.")); + display_notification_centered(_("Credit Note has been updated")); + + display_note(get_customer_trans_view_str($trans_type, $credit_no, _("View This Credit Note")), 0, 0); + + display_note(print_document_link($credit_no, _("Print This Credit Note"), true, 11),1); + + display_note(get_gl_view_str($trans_type, $credit_no, _("View the GL Journal Entries for this Credit Note")),1); + + display_footer_exit(); } -//-------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- function can_process() { - if (!is_date($_POST['CreditDate'])) - { + if (!is_date($_POST['CreditDate'])) { display_error(_("The entered date is invalid."));; + set_focus('CreditDate'); return false; - } - elseif (!is_date_in_fiscalyear($_POST['CreditDate'])) - { + } elseif (!is_date_in_fiscalyear($_POST['CreditDate'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('CreditDate'); return false; } - if (!references::is_valid($_POST['ref'])) - { - display_error(_("You must enter a reference."));; - return false; - } + if ($_SESSION['Items']->trans_no==0) { + if (!references::is_valid($_POST['ref'])) { + display_error(_("You must enter a reference."));; + set_focus('ref'); + return false; + } - if (!is_new_reference($_POST['ref'], 11)) - { - display_error(_("The entered reference is already in use."));; + if (!is_new_reference($_POST['ref'], 11)) { + display_error(_("The entered reference is already in use."));; + set_focus('ref'); + return false; + } + } + if (!check_num('ChargeFreightCost', 0)) { + display_error(_("The entered shipping cost is invalid or less than zero."));; + set_focus('ChargeFreightCost'); return false; } - - if (!is_numeric($_POST['ChargeFreightCost']) || $_POST['ChargeFreightCost'] < 0) - { - display_error(_("The entered shipping cost is invalid or less than zero."));; + if (!check_quantities()) { + display_error(_("Selected quantity cannot be less than zero nor more than quantity not credited yet.")); return false; } - return true; } -//-------------------------------------------------------------------------------------- - -function clear_globals() -{ - if (isset($_SESSION['Items'])) - { - unset($_SESSION['Items']->line_items); - unset($_SESSION['Items']); - } - unset($_SESSION['InvoiceToCredit']); -} - -//-------------------------------------------------------------------------------------- - -function process_credit() -{ - global $path_to_root; - if (can_process()) - { - $credit_no = credit_invoice($_SESSION['Items'], $_SESSION['InvoiceToCredit'], - $_SESSION['Order'], $_POST['CreditDate'], $_POST['CreditType'], - $_POST['tax_group_id'], $_POST['ChargeFreightCost'], $_POST['ref'], - $_POST['CreditText'], $_POST['WriteOffGLCode']); - - clear_globals(); - - meta_forward($_SERVER['PHP_SELF'], "AddedID=$credit_no"); - } -} - -//-------------------------------------------------------------------------------------- - -if (isset($_GET['InvoiceNumber']) && $_GET['InvoiceNumber'] > 0) -{ - - clear_globals(); - - session_register("Items"); - session_register("InvoiceToCredit"); - session_Register("Order"); - - $_SESSION['InvoiceToCredit'] = $_GET['InvoiceNumber']; - $_SESSION['Items'] = new cart; - - /*read in all the guff from the selected invoice into the Items cart */ - - // we need a distinct here so that it only returns 1 line - becuase there can be mutliple moves - // per item (for assemblies, etc) - $sql = "SELECT DISTINCT ".TB_PREF."debtor_trans.*, - ".TB_PREF."cust_branch.default_location, ".TB_PREF."cust_branch.default_ship_via, - ".TB_PREF."debtors_master.name, ".TB_PREF."debtors_master.curr_code, - ".TB_PREF."tax_groups.name AS tax_group_name, ".TB_PREF."tax_groups.id AS tax_group_id, - ".TB_PREF."sales_orders.from_stk_loc - FROM ".TB_PREF."debtor_trans, ".TB_PREF."debtors_master, ".TB_PREF."cust_branch, ".TB_PREF."tax_groups, ".TB_PREF."sales_orders - WHERE ".TB_PREF."debtor_trans.debtor_no = ".TB_PREF."debtors_master.debtor_no - AND ".TB_PREF."debtor_trans.branch_code = ".TB_PREF."cust_branch.branch_code - AND ".TB_PREF."debtor_trans.debtor_no = ".TB_PREF."cust_branch.debtor_no - AND ".TB_PREF."cust_branch.tax_group_id = ".TB_PREF."tax_groups.id - AND ".TB_PREF."debtor_trans.trans_no = " . $_GET['InvoiceNumber'] . " - AND ".TB_PREF."debtor_trans.type=10 - AND ".TB_PREF."sales_orders.order_no=".TB_PREF."debtor_trans.order_"; +//----------------------------------------------------------------------------- - $result = db_query($sql,"The invoice details cannot be retrieved"); +if (isset($_GET['InvoiceNumber']) && $_GET['InvoiceNumber'] > 0) { - if (db_num_rows($result) == 1) - { - - $myrow = db_fetch($result); - - $_SESSION['Items']->customer_id = $myrow["debtor_no"]; - $_SESSION['Items']->customer_name = $myrow["name"]; - $_SESSION['Items']->cust_ref = $myrow["reference"]; - $_SESSION['Items']->Branch = $myrow["branch_code"]; - $_SESSION['Items']->customer_currency = $myrow["curr_code"]; - - $_SESSION['Items']->Comments = ""; - $_SESSION['Items']->default_sales_type =$myrow["tpe"]; - $_SESSION['Items']->Location = $myrow["from_stk_loc"]; + $ci = new Cart(10, $_GET['InvoiceNumber'], true); - $_SESSION['Items']->tax_group_name = $myrow["tax_group_name"]; - $_SESSION['Items']->tax_group_id = $myrow["tax_group_id"]; - - $_SESSION['Items']->delivery_date = sql2date($myrow["tran_date"]); - $_SESSION['Items']->freight_cost = $myrow["ov_freight"]; - - $_SESSION['Items']->ship_via = $myrow["default_ship_via"]; - - $_SESSION['Order'] = $myrow["order_"]; + if ($ci==null) { + display_error(_("This invoice can not be credited using the automatic facility.")); + display_error("Please report that a duplicate debtor_trans header record was found for invoice " . key($ci->src_docs)); + echo "

"; + processing_end(); + exit; + } + //valid invoice record returned from the entered invoice number - db_free_result($result); + $ci->trans_type = 11; + $ci->src_docs = $ci->trans_no; + $ci->src_date = $ci->document_date; + $ci->trans_no = 0; + $ci->document_date = Today(); + $ci->reference = references::get_next(11); - /*now populate the line items array with the detail records for the invoice*/ + for ($line_no=0; $line_noline_items); $line_no++) { + $ci->line_items[$line_no]->qty_dispatched = '0'; + } - $result = get_customer_trans_details(10, $_GET['InvoiceNumber']); + $_SESSION['Items'] = $ci; + copy_from_cart(); - if (db_num_rows($result) > 0) - { +} elseif ( isset($_GET['ModifyCredit']) && $_GET['ModifyCredit']>0) { - while ($myrow = db_fetch($result)) - { + $_SESSION['Items'] = new Cart(11,$_GET['ModifyCredit']); + copy_from_cart(); - $_SESSION['Items']->add_to_cart($myrow["stock_id"],-$myrow["quantity"], - $myrow["FullUnitPrice"],$myrow["discount_percent"]); +} elseif (!processing_active()) { + /* This page can only be called with an invoice number for crediting*/ + die (_("This page can only be opened if an invoice has been selected for crediting.")); +} elseif (!check_quantities()) { + display_error(_("Selected quantity cannot be less than zero nor more than quantity not credited yet.")); +} - $_SESSION['Items']->line_items[$myrow["stock_id"]]->standard_cost = $myrow["standard_cost"]; +function check_quantities() +{ + $ok =1; + foreach ($_SESSION['Items']->line_items as $line_no=>$itm) { + if (isset($_POST['Line'.$line_no])) { + if (check_num('Line'.$line_no, 0, $itm->quantity)) { + $_SESSION['Items']->line_items[$line_no]->qty_dispatched = + input_num('Line'.$line_no); + } + } + else { + $ok = 0; + } + if (isset($_POST['Line'.$line_no.'Desc'])) { + $line_desc = $_POST['Line'.$line_no.'Desc']; + if (strlen($line_desc) > 0) { + $_SESSION['Items']->line_items[$line_no]->item_description = $line_desc; } + } + } + return $ok; +} +//----------------------------------------------------------------------------- - } /*else { // there are no item records created for that invoice - // it's ok there might be shipping or only taxes !! - echo "
" . _("Back to the main menu") . ""; - echo "

" . _("There are no line items that were retrieved for this invoice. A credit note cannot be created from this invoice."). "

"; - end_page(); - exit; - - }*/ //end of checks on returned data set - db_free_result($result); - } - else - { - display_error(_("This invoice can not be credited using the automatic facility.")); - display_error("Please report that a duplicate debtor_trans header record was found for invoice " . $SESSION['InvoiceToCredit']); - echo "

"; - exit; - } //valid invoice record returned from the entered invoice number +function copy_to_cart() +{ + $cart = &$_SESSION['Items']; + $cart->ship_via = $_POST['ShipperID']; + $cart->freight_cost = input_num('ChargeFreightCost'); + $cart->document_date = $_POST['CreditDate']; + $cart->Location = $_POST['Location']; + $cart->Comments = $_POST['CreditText']; +} +//----------------------------------------------------------------------------- -} -else +function copy_from_cart() { + $cart = &$_SESSION['Items']; + $_POST['ShipperID'] = $cart->ship_via; + $_POST['ChargeFreightCost'] = price_format($cart->freight_cost); + $_POST['CreditDate']= $cart->document_date; + $_POST['Location']= $cart->Location; + $_POST['CreditText']= $cart->Comments; +} +//----------------------------------------------------------------------------- -/* if processing, the page has been called and ${$StkItm->stock_id} would have been set from the post */ - foreach ($_SESSION['Items']->line_items as $itm) - { - $_SESSION['Items']->line_items[$itm->stock_id]->qty_dispatched = $_POST[$itm->stock_id]; +if (isset($_POST['ProcessCredit']) && can_process()) { - if (isset($_POST[$itm->stock_id . "Desc"]) && strlen($_POST[$itm->stock_id . "Desc"]) > 0) - { - $_SESSION['Items']->line_items[$itm->stock_id]->item_description = $_POST[$itm->stock_id . "Desc"]; - } - } -} + $newcredit = ($_SESSION['Items']->trans_no == 0); -//-------------------------------------------------------------------------------------- + if (!isset($_POST['WriteOffGLCode'])) + $_POST['WriteOffGLCode'] = 0; -if (isset($_POST['ProcessCredit'])) -{ - process_credit(); + copy_to_cart(); + $credit_no = $_SESSION['Items']->write($_POST['WriteOffGLCode']); + + processing_end(); + if ($newcredit) { + meta_forward($_SERVER['PHP_SELF'], "AddedID=$credit_no"); + } else { + meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$credit_no"); + } } -//-------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- -if (isset($_POST['Location'])) -{ +if (isset($_POST['Location'])) { $_SESSION['Items']->Location = $_POST['Location']; } -//-------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- function display_credit_items() { @@ -252,18 +236,28 @@ function display_credit_items() label_cells(_("Currency"), $_SESSION['Items']->customer_currency, "class='tableheader2'"); end_row(); start_row(); - - if (!isset($_POST['ref'])) - $_POST['ref'] = references::get_next(11); - ref_cells(_("Reference"), 'ref', null, "class='tableheader2'"); +// if (!isset($_POST['ref'])) +// $_POST['ref'] = references::get_next(11); + + if ($_SESSION['Items']->trans_no==0) { + ref_cells(_("Reference"), 'ref', '', $_SESSION['Items']->reference, "class='tableheader2'"); + } else { + label_cells(_("Reference"), $_SESSION['Items']->reference, "class='tableheader2'"); + } +// label_cells(_("Crediting Invoice"), get_customer_trans_view_str(10, $_SESSION['InvoiceToCredit']), "class='tableheader2'"); + label_cells(_("Crediting Invoice"), get_customer_trans_view_str(10, array_keys($_SESSION['Items']->src_docs)), "class='tableheader2'"); - label_cells(_("Crediting Invoice"), get_customer_trans_view_str(10, $_SESSION['InvoiceToCredit']), "class='tableheader2'"); + if (!isset($_POST['ShipperID'])) { + $_POST['ShipperID'] = $_SESSION['Items']->ship_via; + } + label_cell(_("Shipping Company"), "class='tableheader2'"); + shippers_list_cells(null, 'ShipperID', $_POST['ShipperID']); +// if (!isset($_POST['sales_type_id'])) +// $_POST['sales_type_id'] = $_SESSION['Items']->sales_type; +// label_cell(_("Sales Type"), "class='tableheader2'"); +// sales_types_list_cells(null, 'sales_type_id', $_POST['sales_type_id']); - if (!isset($_POST['tax_group_id'])) - $_POST['tax_group_id'] = $_SESSION['Items']->tax_group_id; - label_cell(_("Tax Group"), "class='tableheader2'"); - tax_groups_list_cells(null, 'tax_group_id', $_POST['tax_group_id'], false, null, true); end_row(); end_table(); @@ -271,127 +265,125 @@ function display_credit_items() start_table("$table_style width=100%"); - label_row(_("Invoice Date"), $_SESSION['Items']->delivery_date, "class='tableheader2'"); + label_row(_("Invoice Date"), $_SESSION['Items']->src_date, "class='tableheader2'"); - date_row(_("Credit Note Date"), 'CreditDate', null, 0, 0, 0, "class='tableheader2'"); + date_row(_("Credit Note Date"), 'CreditDate', '', null, 0, 0, 0, "class='tableheader2'"); end_table(); echo ""; - + end_table(1); // outer table + div_start('credit_items'); start_table("$table_style width=80%"); $th = array(_("Item Code"), _("Item Description"), _("Invoiced Quantity"), _("Units"), _("Credit Quantity"), _("Price"), _("Discount %"), _("Total")); - table_header($th); + table_header($th); $k = 0; //row colour counter - foreach ($_SESSION['Items']->line_items as $ln_itm) - { - - alt_table_row_color($k); + foreach ($_SESSION['Items']->line_items as $line_no=>$ln_itm) { + if ($ln_itm->quantity==$ln_itm->qty_done) { + continue; // this line was fully credited + } + alt_table_row_color($k); - $line_total =($ln_itm->qty_dispatched * $ln_itm->price * (1 - $ln_itm->discount_percent)); + // view_stock_status_cell($ln_itm->stock_id); alternative view label_cell($ln_itm->stock_id); - text_cells(null, $ln_itm->stock_id . "Desc", $ln_itm->item_description, 30, 50); - qty_cell($ln_itm->quantity); - label_cell($ln_itm->units); - text_cells(null, $ln_itm->stock_id, $ln_itm->qty_dispatched, 13, 15); + text_cells(null, 'Line'.$line_no.'Desc', $ln_itm->item_description, 30, 50); + $dec = get_qty_dec($ln_itm->stock_id); + qty_cell($ln_itm->quantity, false, $dec); + label_cell($ln_itm->units); + amount_cells(null, 'Line'.$line_no, number_format2($ln_itm->qty_dispatched, $dec), + null, null, $dec); + $line_total =($ln_itm->qty_dispatched * $ln_itm->price * (1 - $ln_itm->discount_percent)); amount_cell($ln_itm->price); - amount_cell($ln_itm->discount_percent*100); + percent_cell($ln_itm->discount_percent*100); amount_cell($line_total); end_row(); } - if (!isset($_POST['ChargeFreightCost']) || ($_POST['ChargeFreightCost'] == "")) - { - $_POST['ChargeFreightCost'] = $_SESSION['Items']->freight_cost; + if (!check_num('ChargeFreightCost')) { + $_POST['ChargeFreightCost'] = price_format($_SESSION['Items']->freight_cost); } + start_row(); label_cell(_("Credit Shipping Cost"), "colspan=7 align=right"); - text_cells(null, "ChargeFreightCost", $_POST['ChargeFreightCost'], 6, 6); + amount_cells_ex(null, "ChargeFreightCost", 6, 8, $_POST['ChargeFreightCost']); end_row(); $inv_items_total = $_SESSION['Items']->get_items_total_dispatch(); - $display_sub_total = number_format2($inv_items_total + $_POST['ChargeFreightCost'],user_price_dec()); + $display_sub_total = price_format($inv_items_total + input_num($_POST['ChargeFreightCost'])); label_row(_("Sub-total"), $display_sub_total, "colspan=7 align=right", "align=right"); - $taxes = $_SESSION['Items']->get_taxes($_POST['tax_group_id'], $_POST['ChargeFreightCost']); + $taxes = $_SESSION['Items']->get_taxes(input_num($_POST['ChargeFreightCost'])); - $tax_total = display_edit_tax_items($taxes, 7); + $tax_total = display_edit_tax_items($taxes, 7, $_SESSION['Items']->tax_included); - $display_total = number_format2(($inv_items_total + $_POST['ChargeFreightCost'] + $tax_total), user_price_dec()); + $display_total = price_format(($inv_items_total + input_num('ChargeFreightCost') + $tax_total)); label_row(_("Credit Note Total"), $display_total, "colspan=7 align=right", "align=right"); end_table(); + div_end(); } -//-------------------------------------------------------------------------------------- - +//----------------------------------------------------------------------------- function display_credit_options() { - global $table_style2; - - echo "
"; - start_table($table_style2); - - echo "" . _("Credit Note Type") . ""; - echo ""; - echo""; + global $table_style2, $Ajax; + echo "
"; - if (!isset($_POST['CreditType']) || $_POST['CreditType'] == "Return") - { +if (isset($_POST['_CreditType_update'])) + $Ajax->activate('options'); - /*if the credit note is a return of goods then need to know which location to receive them into */ - if (!isset($_POST['Location'])) - { - $_POST['Location'] = $_SESSION['Items']->Location; - } + div_start('options'); + start_table("$table_style2"); - locations_list_row(_("Items Returned to Inventory Location"), 'Location', $_POST['Location']); + credit_type_list_row(_("Credit Note Type"), 'CreditType', null, true); - } - else - { /* the goods are to be written off to somewhere */ + if ($_POST['CreditType'] == "Return") + { - gl_all_accounts_list_row(_("Write Off the Cost of the Items to"), 'WriteOffGLCode', $_POST['WriteOffGLCode']); - } - textarea_row(_("Memo"), "CreditText", null, 45, 3); - end_table(); + /*if the credit note is a return of goods then need to know which location to receive them into */ + if (!isset($_POST['Location'])) + $_POST['Location'] = $_SESSION['Items']->Location; + locations_list_row(_("Items Returned to Location"), 'Location', $_POST['Location']); + } + else + { + /* the goods are to be written off to somewhere */ + gl_all_accounts_list_row(_("Write off the cost of the items to"), 'WriteOffGLCode', null); + } + + textarea_row(_("Memo"), "CreditText", null, 51, 3); + echo ""; + div_end(); } -//-------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +if (get_post('Update')) +{ + $Ajax->activate('credit_items'); +} +//----------------------------------------------------------------------------- display_credit_items(); display_credit_options(); echo "

"; -submit('Update', _("Update")); +submit('Update', _("Update"), true, _('Update credit value for quantities entered'), true); echo " "; -submit('ProcessCredit', _("Process Credit Note")); +submit('ProcessCredit', _("Process Credit Note"), true, '', true); echo "
"; end_form(); -//-------------------------------------------------------------------------------------- end_page(); diff --git a/sales/customer_delivery.php b/sales/customer_delivery.php new file mode 100644 index 00000000..4b6726ef --- /dev/null +++ b/sales/customer_delivery.php @@ -0,0 +1,459 @@ +'; + display_note(print_document_link($delivery_no, _("Print this delivery"), true, 13)); + + hyperlink_params($path_to_root . "/sales/customer_invoice.php", _("Confirm Delivery and Invoice"), "DeliveryNumber=$delivery_no"); + + hyperlink_params($path_to_root . "/sales/inquiry/sales_deliveries_view.php", _("Select A Different Delivery"), "OutstandingOnly=1"); + + display_footer_exit(); +} +//----------------------------------------------------------------------------- + +if (isset($_GET['OrderNumber']) && $_GET['OrderNumber'] > 0) { + + $ord = new Cart(30, $_GET['OrderNumber'], true); + + /*read in all the selected order into the Items cart */ + + if ($ord->count_items() == 0) { + hyperlink_params($path_to_root . "/sales/inquiry/sales_orders_view.php", + _("Select a different sales order to delivery"), "OutstandingOnly=1"); + die ("
" . _("This order has no items. There is nothing to delivery.") . ""); + } + + $ord->trans_type = 13; + $ord->src_docs = $ord->trans_no; + $ord->order_no = key($ord->trans_no); + $ord->trans_no = 0; + $ord->reference = references::get_next(13); + $ord->document_date = Today(); + $_SESSION['Items'] = $ord; + copy_from_cart(); + +} elseif (isset($_GET['ModifyDelivery']) && $_GET['ModifyDelivery'] > 0) { + + $_SESSION['Items'] = new Cart(13,$_GET['ModifyDelivery']); + + if ($_SESSION['Items']->count_items() == 0) { + hyperlink_params($path_to_root . "/sales/inquiry/sales_orders_view.php", + _("Select a different delivery"), "OutstandingOnly=1"); + echo "
" . _("This delivery has all items invoiced. There is nothing to modify.") . + "
"; + display_footer_exit(); + } + + copy_from_cart(); + +} elseif ( !processing_active() ) { + /* This page can only be called with an order number for invoicing*/ + + display_error(_("This page can only be opened if an order or delivery note has been selected. Please select it first.")); + + hyperlink_params("$path_to_root/sales/inquiry/sales_orders_view.php", _("Select a Sales Order to Delivery"), "OutstandingOnly=1"); + + end_page(); + exit; + +} elseif (!check_quantities()) { + display_error(_("Selected quantity cannot be less than quantity invoiced nor more than quantity + not dispatched on sales order.")); + +} elseif(!check_num('ChargeFreightCost', 0)) + display_error(_("Freight cost cannot be less than zero")); + set_focus('ChargeFreightCost'); + + +//----------------------------------------------------------------------------- + +function check_data() +{ + if (!isset($_POST['DispatchDate']) || !is_date($_POST['DispatchDate'])) { + display_error(_("The entered date of delivery is invalid.")); + set_focus('DispatchDate'); + return false; + } + + if (!is_date_in_fiscalyear($_POST['DispatchDate'])) { + display_error(_("The entered date of delivery is not in fiscal year.")); + set_focus('DispatchDate'); + return false; + } + + if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) { + display_error(_("The entered dead-line for invoice is invalid.")); + set_focus('due_date'); + return false; + } + + if ($_SESSION['Items']->trans_no==0) { + if (!references::is_valid($_POST['ref'])) { + display_error(_("You must enter a reference.")); + set_focus('ref'); + return false; + } + + if ($_SESSION['Items']->trans_no==0 && !is_new_reference($_POST['ref'], 13)) { + display_error(_("The entered reference is already in use.")); + set_focus('ref'); + return false; + } + } + if ($_POST['ChargeFreightCost'] == "") { + $_POST['ChargeFreightCost'] = price_format(0); + } + + if (!check_num('ChargeFreightCost',0)) { + display_error(_("The entered shipping value is not numeric.")); + set_focus('ChargeFreightCost'); + return false; + } + + if ($_SESSION['Items']->has_items_dispatch() == 0 && input_num('ChargeFreightCost') == 0) { + display_error(_("There are no item quantities on this delivery note.")); + return false; + } + + if (!check_quantities()) { + display_error(_("Selected quantity cannot be less than quantity invoiced nor more than quantity + not dispatched on sales order.")); + return false; + } + + return true; +} +//------------------------------------------------------------------------------ +function copy_to_cart() +{ + $cart = &$_SESSION['Items']; + $cart->ship_via = $_POST['ship_via']; + $cart->freight_cost = input_num('ChargeFreightCost'); + $cart->document_date = $_POST['DispatchDate']; + $cart->due_date = $_POST['due_date']; + $cart->Location = $_POST['Location']; + $cart->Comments = $_POST['Comments']; + if ($cart->trans_no == 0) + $dn->ref = $_POST['ref']; + +} +//------------------------------------------------------------------------------ + +function copy_from_cart() +{ + $cart = &$_SESSION['Items']; + $_POST['ship_via'] = $cart->ship_via; + $_POST['ChargeFreightCost'] = price_format($cart->freight_cost); + $_POST['DispatchDate'] = $cart->document_date; + $_POST['due_date'] = $cart->due_date; + $_POST['Location'] = $cart->Location; + $_POST['Comments'] = $cart->Comments; +} +//------------------------------------------------------------------------------ + +function check_quantities() +{ + $ok =1; + // Update cart delivery quantities/descriptions + foreach ($_SESSION['Items']->line_items as $line=>$itm) { + if (isset($_POST['Line'.$line])) { + if($_SESSION['Items']->trans_no) { + $min = $itm->qty_done; + $max = $itm->quantity; + } else { + $min = 0; + $max = $itm->quantity - $itm->qty_done; + } + + if (check_num('Line'.$line, $min, $max)) { + $_SESSION['Items']->line_items[$line]->qty_dispatched = + input_num('Line'.$line); + } else { + set_focus('Line'.$line); + $ok = 0; + } + + } + + if (isset($_POST['Line'.$line.'Desc'])) { + $line_desc = $_POST['Line'.$line.'Desc']; + if (strlen($line_desc) > 0) { + $_SESSION['Items']->line_items[$line]->item_description = $line_desc; + } + } + } +// ... +// else +// $_SESSION['Items']->freight_cost = input_num('ChargeFreightCost'); + return $ok; +} +//------------------------------------------------------------------------------ + +function check_qoh() +{ + if (!sys_prefs::allow_negative_stock()) { + foreach ($_SESSION['Items']->line_items as $itm) { + + if ($itm->qty_dispatched && has_stock_holding($itm->mb_flag)) { + $qoh = get_qoh_on_date($itm->stock_id, $_POST['Location'], $_POST['DispatchDate']); + + if ($itm->qty_dispatched > $qoh) { + display_error(_("The delivery cannot be processed because there is an insufficient quantity for item:") . + " " . $itm->stock_id . " - " . $itm->item_description); + return false; + } + } + } + } + return true; +} +//------------------------------------------------------------------------------ + +if (isset($_POST['process_delivery']) && check_data() && check_qoh()) { + + $dn = &$_SESSION['Items']; + + if ($_POST['bo_policy']) { + $bo_policy = 0; + } else { + $bo_policy = 1; + } + $newdelivery = ($dn->trans_no == 0); + + copy_to_cart(); + $delivery_no = $dn->write($bo_policy); + + processing_end(); + if ($newdelivery) { + meta_forward($_SERVER['PHP_SELF'], "AddedID=$delivery_no"); + } else { + meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$delivery_no"); + } +} + +if (isset($_POST['Update']) || isset($_POST['_Location_update'])) { + $Ajax->activate('Items'); +} +//------------------------------------------------------------------------------ +start_form(false, true); + +start_table("$table_style2 width=80%", 5); +echo ""; // outer table + +start_table("$table_style width=100%"); +start_row(); +label_cells(_("Customer"), $_SESSION['Items']->customer_name, "class='tableheader2'"); +label_cells(_("Branch"), get_branch_name($_SESSION['Items']->Branch), "class='tableheader2'"); +label_cells(_("Currency"), $_SESSION['Items']->customer_currency, "class='tableheader2'"); +end_row(); +start_row(); + +//if (!isset($_POST['ref'])) +// $_POST['ref'] = references::get_next(13); + +if ($_SESSION['Items']->trans_no==0) { + ref_cells(_("Reference"), 'ref', '', $_SESSION['Items']->reference, "class='tableheader2'"); +} else { + label_cells(_("Reference"), $_SESSION['Items']->reference, "class='tableheader2'"); +} + +label_cells(_("For Sales Order"), get_customer_trans_view_str(systypes::sales_order(), $_SESSION['Items']->order_no), "class='tableheader2'"); + +label_cells(_("Sales Type"), $_SESSION['Items']->sales_type_name, "class='tableheader2'"); +end_row(); +start_row(); + +if (!isset($_POST['Location'])) { + $_POST['Location'] = $_SESSION['Items']->Location; +} +label_cell(_("Delivery From"), "class='tableheader2'"); +locations_list_cells(null, 'Location', null, false, true); + +if (!isset($_POST['ship_via'])) { + $_POST['ship_via'] = $_SESSION['Items']->ship_via; +} +label_cell(_("Shipping Company"), "class='tableheader2'"); +shippers_list_cells(null, 'ship_via', $_POST['ship_via']); + +// set this up here cuz it's used to calc qoh +if (!isset($_POST['DispatchDate']) || !is_date($_POST['DispatchDate'])) { + $_POST['DispatchDate'] = Today(); + if (!is_date_in_fiscalyear($_POST['DispatchDate'])) { + $_POST['DispatchDate'] = end_fiscalyear(); + } +} +date_cells(_("Date"), 'DispatchDate', '', $_POST['DispatchDate'], 0, 0, 0, "class='tableheader2'"); +end_row(); + +end_table(); + +echo "";// outer table + +start_table("$table_style width=90%"); + +if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) { + $_POST['due_date'] = get_invoice_duedate($_SESSION['Items']->customer_id, $_POST['DispatchDate']); +} +date_row(_("Invoice Dead-line"), 'due_date', '', $_POST['due_date'], 0, 0, 0, "class='tableheader2'"); +end_table(); + +echo ""; +end_table(1); // outer table + +display_heading(_("Delivery Items")); +div_start('Items'); +start_table("$table_style width=80%"); +$th = array(_("Item Code"), _("Item Description"), _("Ordered"), _("Units"), _("Delivered"), + _("This Delivery"), _("Price"), _("Tax Type"), _("Discount"), _("Total")); +table_header($th); +$k = 0; +$has_marked = false; +$show_qoh = true; + +foreach ($_SESSION['Items']->line_items as $line=>$ln_itm) { + if ($ln_itm->quantity==$ln_itm->qty_done) { + continue; //this line is fully delivered + } + // if it's a non-stock item (eg. service) don't show qoh + if (sys_prefs::allow_negative_stock() || !has_stock_holding($ln_itm->mb_flag) || + $ln_itm->qty_dispatched == 0) { + $show_qoh = false; + } + + if ($show_qoh) { + $qoh = get_qoh_on_date($ln_itm->stock_id, $_POST['Location'], $_POST['DispatchDate']); + } + + if ($show_qoh && ($ln_itm->qty_dispatched > $qoh)) { + // oops, we don't have enough of one of the component items + start_row("class='stockmankobg'"); + $has_marked = true; + } else { + alt_table_row_color($k); + } + view_stock_status_cell($ln_itm->stock_id); + + text_cells(null, 'Line'.$line.'Desc', $ln_itm->item_description, 30, 50); + $dec = get_qty_dec($ln_itm->stock_id); + qty_cell($ln_itm->quantity, false, $dec); + label_cell($ln_itm->units); + qty_cell($ln_itm->qty_done, false, $dec); + + small_qty_cells(null, 'Line'.$line, qty_format($ln_itm->qty_dispatched, $ln_itm->stock_id, $dec), null, null, $dec); + + $display_discount_percent = percent_format($ln_itm->discount_percent*100) . "%"; + + $line_total = ($ln_itm->qty_dispatched * $ln_itm->price * (1 - $ln_itm->discount_percent)); + + amount_cell($ln_itm->price); + label_cell($ln_itm->tax_type_name); + label_cell($display_discount_percent, "nowrap align=right"); + amount_cell($line_total); + + end_row(); +} + +$_POST['ChargeFreightCost'] = get_post('ChargeFreightCost', + price_format($_SESSION['Items']->freight_cost)); + +start_row(); + +small_amount_cells(_("Shipping Cost"), 'ChargeFreightCost', $_SESSION['Items']->freight_cost, "colspan=9 align=right"); + +$inv_items_total = $_SESSION['Items']->get_items_total_dispatch(); + +$display_sub_total = price_format($inv_items_total + input_num('ChargeFreightCost')); + +label_row(_("Sub-total"), $display_sub_total, "colspan=9 align=right","align=right"); + +$taxes = $_SESSION['Items']->get_taxes(input_num('ChargeFreightCost')); +$tax_total = display_edit_tax_items($taxes, 9, $_SESSION['Items']->tax_included); + +$display_total = price_format(($inv_items_total + input_num('ChargeFreightCost') + $tax_total)); + +label_row(_("Amount Total"), $display_total, "colspan=9 align=right","align=right"); + +end_table(1); + +if ($has_marked) { + display_note(_("Marked items have insufficient quantities in stock as on day of delivery."), 0, 1, "class='red'"); +} +start_table($table_style2); + +policy_list_row(_("Action For Balance"), "bo_policy", null); + +textarea_row(_("Memo"), 'Comments', null, 50, 4); + +end_table(1); +div_end(); +submit_center_first('Update', _("Update"), + _('Refresh document page'), true); +submit_center_last('process_delivery', _("Process Dispatch"), + _('Check entered data and save document'), true); + +end_form(); + + +end_page(); + +?> diff --git a/sales/customer_invoice.php b/sales/customer_invoice.php index fa6c1a26..ac2e75e5 100644 --- a/sales/customer_invoice.php +++ b/sales/customer_invoice.php @@ -1,316 +1,304 @@ direct_invoice) - hyperlink_params("$path_to_root/sales/sales_order_entry.php", _("Issue Another Invoice"), "NewInvoice=Yes"); - else - hyperlink_params("$path_to_root/sales/inquiry/sales_orders_view.php", _("Select Another Order For Invoicing"), "OutstandingOnly=1"); + $invoice_no = $_GET['AddedID']; + $trans_type = 10; + print_hidden_script(10); - unset($_SESSION['Items']->line_items); - unset($_SESSION['Items']); - display_footer_exit(); -} + display_notification(_("Selected deliveries has been processed"), true); -//--------------------------------------------------------------------------------------------------------------- + display_note(get_customer_trans_view_str($trans_type, $invoice_no, _("View This Invoice")), 0, 1); -if (!isset($_GET['OrderNumber']) && !isset($_SESSION['ProcessingOrder']) && - !isset($_GET['process_invoice'])) -{ - /* This page can only be called with an order number for invoicing*/ - display_error(_("This page can only be opened if an order has been selected. Please select an order first.")); + display_note(print_document_link($invoice_no, _("Print This Invoice"), true, 10)); - hyperlink_no_params("$path_to_root/sales/inquiry/sales_orders_view.php", _("Select a sales order to invoice")); + display_note(get_gl_view_str($trans_type, $invoice_no, _("View the GL Journal Entries for this Invoice")),1); - end_page(); - exit; + hyperlink_params("$path_to_root/sales/inquiry/sales_deliveries_view.php", _("Select Another Delivery For Invoicing"), "OutstandingOnly=1"); -} -elseif (isset($_GET['OrderNumber']) && $_GET['OrderNumber'] > 0) -{ + display_footer_exit(); - if (isset($_SESSION['Items'])) - { - unset($_SESSION['Items']->line_items); - unset ($_SESSION['Items']); - } +} elseif (isset($_GET['UpdatedID'])) { - session_register("Items"); - session_register("ProcessingOrder"); + $invoice_no = $_GET['UpdatedID']; + print_hidden_script(10); - $_SESSION['ProcessingOrder'] = $_GET['OrderNumber']; - $_SESSION['Items'] = new cart; + display_notification_centered(sprintf(_('Sales Invoice # %d has been updated.'),$invoice_no)); - /*read in all the selected order into the Items cart */ + display_note(get_trans_view_str(10, $invoice_no, _("View This Invoice"))); + echo '
'; + display_note(print_document_link($invoice_no, _("Print This Invoice"), true, 10)); - if (read_sales_order($_SESSION['ProcessingOrder'], $_SESSION['Items'], true)) - { + hyperlink_no_params($path_to_root . "/sales/inquiry/customer_inquiry.php", _("Select A Different Invoice to Modify")); - if ($_SESSION['Items']->count_items() == 0) - { - hyperlink_params($path_to_root . "/sales/inquiry/sales_orders_view.php", _("Select a different sales order to invoice"), "OutstandingOnly=1"); - die ("
" . _("There are no ordered items with a quantity left to deliver. There is nothing left to invoice.") . ""); - } - } - else - { - hyperlink_no_params("/sales_orders_view.php", _("Select a sales order to invoice")); - die ("
" . _("This order item could not be retrieved. Please select another order.") . ""); - } + display_footer_exit(); -} -else -{ - /* if processing, a dispatch page has been called and ${$StkItm->stock_id} would have been set from the post */ - foreach ($_SESSION['Items']->line_items as $itm) - { - - if (isset($_SESSION['Items']->line_items[$itm->stock_id]) && - isset($_POST[$itm->stock_id]) && is_numeric($_POST[$itm->stock_id]) && - $_POST[$itm->stock_id] <= ($_SESSION['Items']->line_items[$itm->stock_id]->quantity - - $_SESSION['Items']->line_items[$itm->stock_id]->qty_inv)) - { - $_SESSION['Items']->line_items[$itm->stock_id]->qty_dispatched = $_POST[$itm->stock_id]; - } +} elseif (isset($_GET['RemoveDN'])) { - if (isset($_POST[$itm->stock_id . "Desc"]) && strlen($_POST[$itm->stock_id . "Desc"]) > 0) - { - $_SESSION['Items']->line_items[$itm->stock_id]->item_description = $_POST[$itm->stock_id . "Desc"]; + for($line_no = 0; $line_no < count($_SESSION['Items']->line_items); $line_no++) { + $line = &$_SESSION['Items']->line_items[$line_no]; + if ($line->src_no == $_GET['RemoveDN']) { + $line->quantity = $line->qty_done; + $line->qty_dispatched=0; } } + unset($line); } -//--------------------------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- -function order_changed_error() -{ - global $path_to_root; - display_note(_("This order has been changed or invoiced since this delivery was started to be confirmed. Processing halted."), 1, 0); - display_note(_("To enter and confirm this dispatch/invoice the order must be re-selected and re-read again to update the changes made by the other user."), 1, 0); +if ( (isset($_GET['DeliveryNumber']) && ($_GET['DeliveryNumber'] > 0) ) + || isset($_GET['BatchInvoice'])) { - hyperlink_no_params("$path_to_root/sales/inquiry/sales_orders_view.php", _("Select a sales order for confirming deliveries and invoicing")); - - unset($_SESSION['Items']->line_items); - unset($_SESSION['Items']); - unset($_SESSION['ProcessingOrder']); - exit; -} + processing_start(); -//--------------------------------------------------------------------------------------------------------------- - -function check_order_changed() -{ - global $debug; + if (isset($_GET['BatchInvoice'])) { + $src = $_SESSION['DeliveryBatch']; + unset($_SESSION['DeliveryBatch']); + } else { + $src = array($_GET['DeliveryNumber']); + } + /*read in all the selected deliveries into the Items cart */ + $dn = new Cart(13, $src, true); - /*Now need to check that the order details are the same as they were when - they were read into the Items array. - If they've changed then someone else may have invoiced them - - as modified for bug pointed out by Sherif 1-7-03*/ + if ($dn->count_items() == 0) { + hyperlink_params($path_to_root . "/sales/inquiry/sales_deliveries_view.php", + _("Select a different delivery to invoice"), "OutstandingOnly=1"); + die ("
" . _("There are no delivered items with a quantity left to invoice. There is nothing left to invoice.") . ""); + } - $sql = "SELECT stk_code, quantity, qty_invoiced FROM ".TB_PREF."sales_order_details WHERE - quantity - qty_invoiced > 0 - AND order_no = " . $_SESSION['ProcessingOrder']; + $dn->trans_type = 10; + $dn->src_docs = $dn->trans_no; + $dn->trans_no = 0; + $dn->reference = references::get_next(10); + $dn->due_date = get_invoice_duedate($dn->customer_id, $dn->document_date); - $result = db_query($sql,"retreive sales order details"); + $_SESSION['Items'] = $dn; + copy_from_cart(); - if (db_num_rows($result) != count($_SESSION['Items']->line_items)) - { +} elseif (isset($_GET['ModifyInvoice']) && $_GET['ModifyInvoice'] > 0) { - /*there should be the same number of items returned from this query as there are lines on the invoice - - if not then someone has already invoiced or credited some lines */ - if ($debug == 1) - { - display_note($sql, 1, 0); - display_note("No rows returned by sql:" . db_num_rows($result), 1, 0); - display_note("Count of items in the session " . count($_SESSION['Items']->line_items), 1, 0); - } + if ( get_parent_trans(10, $_GET['ModifyInvoice']) == 0) { // 1.xx compatibility hack + echo"

" . _("There in no delivery notes for this invoice.
+ Most likely this invoice was created in Front Accounting version prior to 2.0 + and therefore can not be modified.") . "
"; + display_footer_exit(); + } + processing_start(); + $_SESSION['Items'] = new Cart(10, $_GET['ModifyInvoice']); - return false; + if ($_SESSION['Items']->count_items() == 0) { + echo"

" . _("All quantities on this invoice has been credited. There is nothing to modify on this invoice") . "
"; + display_footer_exit(); } + copy_from_cart(); +} elseif (!processing_active()) { + /* This page can only be called with a delivery for invoicing or invoice no for edit */ + display_error(_("This page can only be opened after delivery selection. Please select delivery to invoicing first.")); - while ($myrow = db_fetch($result)) - { - $stk_itm = $myrow["stk_code"]; - if ($_SESSION['Items']->line_items[$stk_itm]->quantity != $myrow["quantity"] || - $_SESSION['Items']->line_items[$stk_itm]->qty_inv != $myrow["qty_invoiced"]) - { - display_note(_("Original order for") . " " . $myrow["stk_code"] . " " . - _("has a quantity of") . " " . $myrow["quantity"] . " " . - _("and an invoiced quantity of") . " " . $myrow["qty_invoiced"] . " " . - _("the session shows quantity of") . " " . - $_SESSION['Items']->line_items[$stk_itm]->quantity . " " . - _("and quantity invoice of") . " " . - $_SESSION['Items']->line_items[$stk_itm]->qty_inv, 1, 0); + hyperlink_no_params("$path_to_root/sales/inquiry/sales_deliveries_view.php", _("Select Delivery to Invoice")); - return false; + end_page(); + exit; +} elseif (!check_quantities()) { + display_error(_("Selected quantity cannot be less than quantity credited nor more than quantity not invoiced yet.")); +} +if (isset($_POST['Update'])) { + $Ajax->activate('Items'); +} +//----------------------------------------------------------------------------- +function check_quantities() +{ + $ok =1; + foreach ($_SESSION['Items']->line_items as $line_no=>$itm) { + if (isset($_POST['Line'.$line_no])) { + if($_SESSION['Items']->trans_no) { + $min = $itm->qty_done; + $max = $itm->quantity; + } else { + $min = 0; + $max = $itm->quantity - $itm->qty_done; + } + if (check_num('Line'.$line_no, $min, $max)) { + $_SESSION['Items']->line_items[$line_no]->qty_dispatched = + input_num('Line'.$line_no); + } + else { + $ok = 0; + } + } - } /*loop through all line items of the order to ensure none have been invoiced */ - return true; + if (isset($_POST['Line'.$line_no.'Desc'])) { + $line_desc = $_POST['Line'.$line_no.'Desc']; + if (strlen($line_desc) > 0) { + $_SESSION['Items']->line_items[$line_no]->item_description = $line_desc; + } + } + } + return $ok; } +function copy_to_cart() +{ + $cart = &$_SESSION['Items']; + $cart->ship_via = $_POST['ship_via']; + $cart->freight_cost = input_num('ChargeFreightCost'); + $cart->document_date = $_POST['InvoiceDate']; + $cart->due_date = $_POST['due_date']; + $cart->Comments = $_POST['Comments']; +} +//----------------------------------------------------------------------------- -//--------------------------------------------------------------------------------------------------------------- +function copy_from_cart() +{ + $cart = &$_SESSION['Items']; + $_POST['ship_via'] = $cart->ship_via; + $_POST['ChargeFreightCost'] = price_format($cart->freight_cost); + $_POST['InvoiceDate']= $cart->document_date; + $_POST['due_date'] = $cart->due_date; + $_POST['Comments']= $cart->Comments; +} + +//----------------------------------------------------------------------------- function check_data() { - if (!isset($_POST['DispatchDate']) || !is_date($_POST['DispatchDate'])) - { + if (!isset($_POST['InvoiceDate']) || !is_date($_POST['InvoiceDate'])) { display_error(_("The entered invoice date is invalid.")); + set_focus('InvoiceDate'); return false; } - if (!is_date_in_fiscalyear($_POST['DispatchDate'])) - { + + if (!is_date_in_fiscalyear($_POST['InvoiceDate'])) { display_error(_("The entered invoice date is not in fiscal year.")); + set_focus('InvoiceDate'); return false; } - if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) - { + + if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) { display_error(_("The entered invoice due date is invalid.")); + set_focus('due_date'); return false; } - if (!references::is_valid($_POST['ref'])) - { - display_error(_("You must enter a reference.")); - return false; + if ($_SESSION['Items']->trans_no == 0) { + if (!references::is_valid($_POST['ref'])) { + display_error(_("You must enter a reference.")); + set_focus('ref'); + return false; + } + + if (!is_new_reference($_POST['ref'], 10)) { + display_error(_("The entered reference is already in use.")); + set_focus('ref'); + return false; + } } - if (!is_new_reference($_POST['ref'], 10)) - { - display_error(_("The entered reference is already in use.")); - return false; + if ($_POST['ChargeFreightCost'] == "") { + $_POST['ChargeFreightCost'] = price_format(0); } - if ($_POST['ChargeFreightCost'] == "") - $_POST['ChargeFreightCost'] = 0; - if (!is_numeric($_POST['ChargeFreightCost']) || $_POST['ChargeFreightCost'] < 0) - { + + if (!check_num('ChargeFreightCost', 0)) { display_error(_("The entered shipping value is not numeric.")); + set_focus('ChargeFreightCost'); return false; } - if ($_SESSION['Items']->has_items_dispatch() == 0 && $_POST['ChargeFreightCost'] == 0) - { + if ($_SESSION['Items']->has_items_dispatch() == 0 && input_num('ChargeFreightCost') == 0) { display_error(_("There are no item quantities on this invoice.")); return false; } + if (!check_quantities()) { + display_error(_("Selected quantity cannot be less than quantity credited nor more than quantity not invoiced yet.")); + return false; + } + return true; } -//--------------------------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +if (isset($_POST['process_invoice']) && check_data()) { -function check_qoh() -{ - if (!sys_prefs::allow_negative_stock()) - { - foreach ($_SESSION['Items']->line_items as $itm) - { - - if ($itm->qty_dispatched && has_stock_holding($itm->mb_flag)) - { - $qoh = get_qoh_on_date($itm->stock_id, $_POST['Location'], $_POST['DispatchDate']); - - if ($itm->qty_dispatched > $qoh) - { - display_error(_("The invoice cannot be processed because there is an insufficient quantity for component:") . - " " . $itm->stock_id . " - " . $itm->item_description); - return false; - } - } - } - } + $newinvoice= $_SESSION['Items']->trans_no == 0; + copy_to_cart(); + $invoice_no = $_SESSION['Items']->write(); - return true; + processing_end(); + if ($newinvoice) { + meta_forward($_SERVER['PHP_SELF'], "AddedID=$invoice_no"); + } else { + meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$invoice_no"); + } } -//--------------------------------------------------------------------------------------------------------------- +// find delivery spans for batch invoice display +$dspans = array(); +$lastdn = ''; $spanlen=1; -function process_invoice($invoicing=false) -{ - if ($invoicing) - { - read_sales_order($_SESSION['Items']->order_no, $_SESSION['Items'], true); - $duedate = get_invoice_duedate($_SESSION['Items']->customer_id, $_SESSION['Items']->delivery_date); - $invoice_no = add_sales_invoice($_SESSION['Items'], - $_SESSION['Items']->delivery_date, $duedate, $_SESSION['Items']->order_no, - $_SESSION['Items']->tax_group_id, $_SESSION['Items']->freight_cost, - $_SESSION['Items']->Location, $_SESSION['Items']->ship_via, - $_SESSION['Items']->default_sales_type, references::get_next(10), - $_SESSION['Items']->memo_, 0); - } - else - { - - if (!check_data()) - return; - - if (!check_order_changed()) - order_changed_error(); - - if (!check_qoh()) - return; - - if ($_POST['bo_policy']) - $bo_policy = 0; - else - $bo_policy = 1; - - $invoice_no = add_sales_invoice($_SESSION['Items'], - $_POST['DispatchDate'], $_POST['due_date'], $_SESSION['ProcessingOrder'], - $_POST['tax_group_id'], $_POST['ChargeFreightCost'], $_POST['Location'], - $_POST['ship_via'], $_POST['sales_type_id'], $_POST['ref'], - $_POST['InvoiceText'], $bo_policy); - unset($_SESSION['ProcessingOrder']); +for ($line_no = 0; $line_no < count($_SESSION['Items']->line_items); $line_no++) { + $line = $_SESSION['Items']->line_items[$line_no]; + if ($line->quantity == $line->qty_done) { + continue; } - - meta_forward($_SERVER['PHP_SELF'], "AddedID=$invoice_no"); + if ($line->src_no == $lastdn) { + $spanlen++; + } else { + if ($lastdn != '') { + $dspans[] = $spanlen; + $spanlen = 1; + } + } + $lastdn = $line->src_no; } +$dspans[] = $spanlen; -//--------------------------------------------------------------------------------------------------------------- -if (isset($_GET['process_invoice'])) - process_invoice(true); -elseif (isset($_POST['process_invoice'])) - process_invoice(); - -//------------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +$is_batch_invoice = count($_SESSION['Items']->src_docs) > 1; +$is_edition = $_SESSION['Items']->trans_type == 10 && $_SESSION['Items']->trans_no != 0; start_form(false, true); start_table("$table_style2 width=80%", 5); -echo ""; // outer table -start_table("$table_style width=100%"); start_row(); label_cells(_("Customer"), $_SESSION['Items']->customer_name, "class='tableheader2'"); label_cells(_("Branch"), get_branch_name($_SESSION['Items']->Branch), "class='tableheader2'"); @@ -318,102 +306,89 @@ label_cells(_("Currency"), $_SESSION['Items']->customer_currency, "class='tableh end_row(); start_row(); -if (!isset($_POST['ref'])) - $_POST['ref'] = references::get_next(10); - -ref_cells(_("Reference"), 'ref', null, "class='tableheader2'"); +if ($_SESSION['Items']->trans_no == 0) { + ref_cells(_("Reference"), 'ref', '', $_SESSION['Items']->reference, "class='tableheader2'"); +} else { + label_cells(_("Reference"), $_SESSION['Items']->reference, "class='tableheader2'"); +} -if (!isset($_POST['tax_group_id'])) - $_POST['tax_group_id'] = $_SESSION['Items']->tax_group_id; -label_cell(_("Tax Group"), "class='tableheader2'"); -tax_groups_list_cells(null, 'tax_group_id', $_POST['tax_group_id'], false, null, true); +label_cells(_("Delivery Notes:"), +get_customer_trans_view_str(systypes::cust_dispatch(), array_keys($_SESSION['Items']->src_docs)), "class='tableheader2'"); -label_cells(_("For Sales Order"), get_customer_trans_view_str(systypes::sales_order(), $_SESSION['ProcessingOrder']), "class='tableheader2'"); +label_cells(_("Sales Type"), $_SESSION['Items']->sales_type_name, "class='tableheader2'"); end_row(); start_row(); -if (!isset($_POST['sales_type_id'])) - $_POST['sales_type_id'] = $_SESSION['Items']->default_sales_type; -label_cell(_("Sales Type"), "class='tableheader2'"); -sales_types_list_cells(null, 'sales_type_id', $_POST['sales_type_id']); - -if (!isset($_POST['Location'])) - $_POST['Location'] = $_SESSION['Items']->Location; -label_cell(_("Delivery From"), "class='tableheader2'"); -locations_list_cells(null, 'Location', $_POST['Location'], false, true); - -if (!isset($_POST['ship_via'])) +if (!isset($_POST['ship_via'])) { $_POST['ship_via'] = $_SESSION['Items']->ship_via; -label_cell(_("Shipping Company"), "class='tableheader2'"); +} +label_cell(_("Shipping Company"), "class='tableheader2'"); shippers_list_cells(null, 'ship_via', $_POST['ship_via']); -end_row(); -end_table(); - -echo "";// outer table +if (!isset($_POST['InvoiceDate']) || !is_date($_POST['InvoiceDate'])) { + $_POST['InvoiceDate'] = Today(); + if (!is_date_in_fiscalyear($_POST['InvoiceDate'])) { + $_POST['InvoiceDate'] = end_fiscalyear(); + } +} -start_table("$table_style width=90%"); +date_cells(_("Date"), 'InvoiceDate', '', $_POST['InvoiceDate'], 0, 0, 0, "class='tableheader2'"); -// set this up here cuz it's used to calc qoh -if (!isset($_POST['DispatchDate']) || !is_date($_POST['DispatchDate'])) -{ - $_POST['DispatchDate'] = Today(); - if (!is_date_in_fiscalyear($_POST['DispatchDate'])) - $_POST['DispatchDate'] = end_fiscalyear(); +if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) { + $_POST['due_date'] = get_invoice_duedate($_SESSION['Items']->customer_id, $_POST['InvoiceDate']); } -date_row(_("Date"), 'DispatchDate', $_POST['DispatchDate'], 0, 0, 0, "class='tableheader'"); -if (!isset($_POST['due_date']) || !is_date($_POST['due_date'])) - //$_POST['due_date'] = $_POST['DispatchDate']; - $_POST['due_date'] = get_invoice_duedate($_SESSION['Items']->customer_id, $_POST['DispatchDate']); +date_cells(_("Due Date"), 'due_date', '', $_POST['due_date'], 0, 0, 0, "class='tableheader2'"); -date_row(_("Due Date"), 'due_date', $_POST['due_date'], 0, 0, 0, "class='tableheader'"); +end_row(); end_table(); -echo ""; -end_table(1); // outer table - display_heading(_("Invoice Items")); +div_start('Items'); start_table("$table_style width=80%"); -$th = array(_("Item Code"), _("Item Description"), _("Ordered"), _("Units"), _("Delivered"), - _("This Delivery"), _("Price"), _("Tax Type"), _("Discount"), _("Total")); +$th = array(_("Item Code"), _("Item Description"), _("Delivered"), _("Units"), _("Invoiced"), + _("This Invoice"), _("Price"), _("Tax Type"), _("Discount"), _("Total")); + +if ($is_batch_invoice) { + $th[] = _("DN"); + $th[] = ""; +} + +if ($is_edition) { + $th[4] = _("Credited"); +} + table_header($th); $k = 0; $has_marked = false; $show_qoh = true; -foreach ($_SESSION['Items']->line_items as $ln_itm) -{ - - // if it's a non-stock item (eg. service) don't show qoh - if (sys_prefs::allow_negative_stock() || !has_stock_holding($ln_itm->mb_flag) || - $ln_itm->qty_dispatched == 0) - $show_qoh = false; - - if ($show_qoh) - $qoh = get_qoh_on_date($ln_itm->stock_id, $_POST['Location'], $_POST['DispatchDate']); - - if ($show_qoh && ($ln_itm->qty_dispatched > $qoh)) - { - // oops, we don't have enough of one of the component items - start_row("class='stockmankobg'"); - $has_marked = true; - } - else - alt_table_row_color($k); +$dn_line_cnt = 0; +foreach ($_SESSION['Items']->line_items as $line=>$ln_itm) { + if ($ln_itm->quantity == $ln_itm->qty_done) { + continue; // this line was fully invoiced + } + alt_table_row_color($k); view_stock_status_cell($ln_itm->stock_id); - text_cells(null, $ln_itm->stock_id . "Desc", $ln_itm->item_description, 30, 50); - qty_cell($ln_itm->quantity); + text_cells(null, 'Line'.$line.'Desc', $ln_itm->item_description, 30, 50); + $dec = get_qty_dec($ln_itm->stock_id); + qty_cell($ln_itm->quantity, false, $dec); label_cell($ln_itm->units); - qty_cell($ln_itm->qty_inv); - - text_cells(null, $ln_itm->stock_id, $ln_itm->qty_dispatched, 10, 10); - - $display_discount_percent = number_format2($ln_itm->discount_percent*100,user_percent_dec()) . "%"; + qty_cell($ln_itm->qty_done, false, $dec); + + if ($is_batch_invoice) { + // for batch invoices we can only remove whole deliveries + echo ''; + hidden('Line' . $line, $ln_itm->qty_dispatched ); + echo number_format2($ln_itm->qty_dispatched, $dec).''; + } else { + small_qty_cells(null, 'Line'.$line, qty_format($ln_itm->qty_dispatched, $ln_itm->stock_id, $dec), null, null, $dec); + } + $display_discount_percent = percent_format($ln_itm->discount_percent*100) . " %"; $line_total = ($ln_itm->qty_dispatched * $ln_itm->price * (1 - $ln_itm->discount_percent)); @@ -422,8 +397,16 @@ foreach ($_SESSION['Items']->line_items as $ln_itm) label_cell($display_discount_percent, "nowrap align=right"); amount_cell($line_total); - //label_cell(get_tax_free_price_for_item($ln_itm->stock_id, $line_total, $_POST['tax_group_id'])); - + if ($is_batch_invoice) { + if ($dn_line_cnt == 0) { + $dn_line_cnt = $dspans[0]; + $dspans = array_slice($dspans, 1); + label_cell($ln_itm->src_no, "rowspan=$dn_line_cnt class=oddrow"); + label_cell("" . _("Remove") . "", "rowspan=$dn_line_cnt class=oddrow"); + } + $dn_line_cnt--; + } end_row(); } @@ -432,59 +415,54 @@ depending on the business logic required this condition may not be required. It seems unfair to charge the customer twice for freight if the order was not fully delivered the first time ?? */ -if (!isset($_POST['ChargeFreightCost']) || $_POST['ChargeFreightCost'] == "") -{ - if ($_SESSION['Items']->any_already_delivered() == 1) - { - $_POST['ChargeFreightCost'] = 0; - } - else - { - $_POST['ChargeFreightCost'] = $_SESSION['Items']->freight_cost; - } - if (!is_numeric($_POST['ChargeFreightCost'])) - { - $_POST['ChargeFreightCost'] = 0; - } +if (!isset($_POST['ChargeFreightCost']) || $_POST['ChargeFreightCost'] == "") { + if ($_SESSION['Items']->any_already_delivered() == 1) { + $_POST['ChargeFreightCost'] = price_format(0); + } else { + $_POST['ChargeFreightCost'] = price_format($_SESSION['Items']->freight_cost); + } + + if (!check_num('ChargeFreightCost')) { + $_POST['ChargeFreightCost'] = price_format(0); + } } start_row(); small_amount_cells(_("Shipping Cost"), 'ChargeFreightCost', null, "colspan=9 align=right"); +if ($is_batch_invoice) { +label_cell('', 'colspan=2'); +} +end_row(); $inv_items_total = $_SESSION['Items']->get_items_total_dispatch(); -$display_sub_total = number_format2($inv_items_total + $_POST['ChargeFreightCost'],user_price_dec()); +$display_sub_total = price_format($inv_items_total + input_num('ChargeFreightCost')); -label_row(_("Sub-total"), $display_sub_total, "colspan=9 align=right","align=right"); +label_row(_("Sub-total"), $display_sub_total, "colspan=9 align=right","align=right", $is_batch_invoice ? 2 : 0); -$taxes = $_SESSION['Items']->get_taxes($_POST['tax_group_id'], $_POST['ChargeFreightCost']); -$tax_total = display_edit_tax_items($taxes, 9); +$taxes = $_SESSION['Items']->get_taxes(input_num('ChargeFreightCost')); +$tax_total = display_edit_tax_items($taxes, 9, $_SESSION['Items']->tax_included, $is_batch_invoice ? 2:0); -$display_total = number_format2(($inv_items_total + $_POST['ChargeFreightCost'] + $tax_total), user_price_dec()); +$display_total = price_format(($inv_items_total + input_num('ChargeFreightCost') + $tax_total)); -label_row(_("Invoice Total"), $display_total, "colspan=9 align=right","align=right"); +label_row(_("Invoice Total"), $display_total, "colspan=9 align=right","align=right", $is_batch_invoice ? 2 : 0); end_table(1); - -if ($has_marked) - display_note(_("Marked items have insufficient quantities in stock."), 0, 1, "class='red'"); +div_end(); start_table($table_style2); - -policy_list_row(_("Action For Balance"), "bo_policy", null); - -textarea_row(_("Memo"), 'InvoiceText', null, 50, 4); +textarea_row(_("Memo"), 'Comments', null, 50, 4); end_table(1); -submit_center_first('Update', _("Update")); -submit_center_last('process_invoice', _("Process Invoice")); +submit_center_first('Update', _("Update"), + _('Refresh document page'), true); +submit_center_last('process_invoice', _("Process Invoice"), + _('Check entered data and save document'), true); end_form(); -//--------------------------------------------------------------------------------------------- - end_page(); ?> diff --git a/sales/customer_payments.php b/sales/customer_payments.php index 0e38464f..c93db3a1 100644 --- a/sales/customer_payments.php +++ b/sales/customer_payments.php @@ -3,20 +3,19 @@ $path_to_root=".."; $page_security = 3; include_once($path_to_root . "/includes/session.inc"); - include_once($path_to_root . "/includes/date_functions.inc"); - include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/includes/banking.inc"); include_once($path_to_root . "/includes/data_checks.inc"); - include_once($path_to_root . "/sales/includes/sales_db.inc"); $js = ""; -if ($use_popup_windows) +if ($use_popup_windows) { $js .= get_js_open_window(900, 500); -if ($use_date_picker) +} +if ($use_date_picker) { $js .= get_js_date_picker(); +} page(_("Customer Payment Entry"), false, false, "", $js); //---------------------------------------------------------------------------------------------- @@ -29,65 +28,62 @@ check_db_has_bank_trans_types(_("There are no bank payment types defined in the //---------------------------------------------------------------------------------------- -if (isset($_GET['AddedID'])) -{ +if (isset($_GET['AddedID'])) { $payment_no = $_GET['AddedID']; display_notification_centered(_("The customer payment has been successfully entered.")); - display_note(get_gl_view_str(systypes::cust_payment(), $payment_no, _("View the GL Journal Entries for this Customer Payment"))); - hyperlink_params($path_to_root . "/sales/allocations/customer_allocate.php", _("Allocate this Customer Payment"), "trans_no=$payment_no&trans_type=" . systypes::cust_payment()); - hyperlink_no_params($path_to_root . "/sales/customer_payments.php", _("Enter Another Customer Payment")); + display_note(get_gl_view_str(12, $payment_no, _("View the GL Journal Entries for this Customer Payment"))); + + hyperlink_params($path_to_root . "/sales/allocations/customer_allocate.php", _("Allocate this Customer Payment"), "trans_no=$payment_no&trans_type=12"); + + hyperlink_no_params($path_to_root . "/sales/customer_payments.php", _("Enter Another Customer Payment")); br(1); end_page(); - exit; + exit; } //---------------------------------------------------------------------------------------------- function can_process() { - if (!isset($_POST['DateBanked']) || !is_date($_POST['DateBanked'])) - { + if (!isset($_POST['DateBanked']) || !is_date($_POST['DateBanked'])) { display_error(_("The entered date is invalid. Please enter a valid date for the payment.")); + set_focus('DateBanked'); return false; - } - elseif (!is_date_in_fiscalyear($_POST['DateBanked'])) - { + } elseif (!is_date_in_fiscalyear($_POST['DateBanked'])) { display_error(_("The entered date is not in fiscal year.")); + set_focus('DateBanked'); return false; } - if (!references::is_valid($_POST['ref'])) - { + if (!references::is_valid($_POST['ref'])) { display_error(_("You must enter a reference.")); + set_focus('ref'); return false; } - if (!is_new_reference($_POST['ref'], systypes::cust_payment())) - { + if (!is_new_reference($_POST['ref'], 12)) { display_error(_("The entered reference is already in use.")); + set_focus('ref'); return false; } - if ((!is_numeric($_POST['amount']) || $_POST['amount'] < 0)) - { + if (!check_num('amount', 0)) { display_error(_("The entered amount is invalid or negative and cannot be processed.")); + set_focus('amount'); return false; } - if (!isset($_POST['discount']) || ($_POST['discount'] == "")) - $_POST['discount'] = 0; - - if (!is_numeric($_POST['discount'])) - { + if (!check_num('discount')) { display_error(_("The entered discount is not a valid number.")); + set_focus('discount'); return false; } - if (($_POST['amount'] - $_POST['discount'] <= 0)) - { + if ((input_num('amount') - input_num('discount') <= 0)) { display_error(_("The balance of the amount and discout is zero or negative. Please enter valid amounts.")); + set_focus('discount'); return false; } @@ -97,20 +93,22 @@ function can_process() //---------------------------------------------------------------------------------------------- // validate inputs -if (isset($_POST['AddPaymentItem'])) -{ +if (isset($_POST['AddPaymentItem'])) { - if (!can_process()) + if (!can_process()) { unset($_POST['AddPaymentItem']); + } +} +if (isset($_POST['_customer_id_button'])) { +// unset($_POST['branch_id']); + $Ajax->activate('branch_id'); } - //---------------------------------------------------------------------------------------------- -if (isset($_POST['AddPaymentItem'])) -{ - $payment_no = add_customer_payment($_POST['customer_id'], $_POST['BranchID'], +if (isset($_POST['AddPaymentItem'])) { + $payment_no = write_customer_payment(0, $_POST['customer_id'], $_POST['BranchID'], $_POST['bank_account'], $_POST['DateBanked'], $_POST['ReceiptType'], $_POST['ref'], - $_POST['amount'], $_POST['discount'], $_POST['memo_']); + input_num('amount'), input_num('discount'), $_POST['memo_']); meta_forward($_SERVER['PHP_SELF'], "AddedID=$payment_no"); } @@ -131,7 +129,7 @@ function read_customer_data() $_POST['HoldAccount'] = $myrow["dissallow_invoices"]; $_POST['pymt_discount'] = $myrow["pymt_discount"]; - $_POST['ref'] = references::get_next(systypes::cust_payment()); + $_POST['ref'] = references::get_next(12); } //------------------------------------------------------------------------------------------------- @@ -146,78 +144,70 @@ function display_item_form() if (!isset($_POST['customer_id'])) $_POST['customer_id'] = get_global_customer(false); - if (!isset($_POST['DateBanked'])) - { + if (!isset($_POST['DateBanked'])) { $_POST['DateBanked'] = Today(); - if (!is_date_in_fiscalyear($_POST['DateBanked'])) + if (!is_date_in_fiscalyear($_POST['DateBanked'])) { $_POST['DateBanked'] = end_fiscalyear(); - } + } + } customer_list_row(_("From Customer:"), 'customer_id', null, false, true); - - if (db_customer_has_branches($_POST['customer_id'])) - { + if (db_customer_has_branches($_POST['customer_id'])) { customer_branches_list_row(_("Branch:"), $_POST['customer_id'], 'BranchID', null, false, true, true); - } - else - { + } else { hidden('BranchID', reserved_words::get_any_numeric()); } - read_customer_data(); + read_customer_data(); - set_global_customer($_POST['customer_id']); + set_global_customer($_POST['customer_id']); - if (isset($_POST['HoldAccount']) && $_POST['HoldAccount'] != 0) - { + if (isset($_POST['HoldAccount']) && $_POST['HoldAccount'] != 0) { echo ""; display_note(_("This customer account is on hold."), 0, 0, "class='redfb'"); - } - else - { - $display_discount_percent = number_format2($_POST['pymt_discount']*100,user_price_dec()) . "%"; + } else { + $display_discount_percent = percent_format($_POST['pymt_discount']*100) . "%"; - amount_row(_("Amount:"), 'amount'); + amount_row(_("Amount:"), 'amount'); - amount_row(_("Amount of Discount:"), 'discount'); + amount_row(_("Amount of Discount:"), 'discount'); - label_row(_("Customer prompt payment discount :"), $display_discount_percent); + label_row(_("Customer prompt payment discount :"), $display_discount_percent); - date_row(_("Date of Deposit:"), 'DateBanked'); + date_row(_("Date of Deposit:"), 'DateBanked'); - echo ""; - echo ""; // outer table - echo ""; + echo "
"; + echo ""; // outer table + echo ""; - bank_accounts_list_row(_("Into Bank Account:"), 'bank_account', null, true); + bank_accounts_list_row(_("Into Bank Account:"), 'bank_account', null, true); - $cust_currency = get_customer_currency($_POST['customer_id']); - $bank_currency = get_bank_account_currency($_POST['bank_account']); + $cust_currency = get_customer_currency($_POST['customer_id']); + $bank_currency = get_bank_account_currency($_POST['bank_account']); - if ($cust_currency != $bank_currency) - { + if ($cust_currency != $bank_currency) { exchange_rate_display($cust_currency, $bank_currency, $_POST['DateBanked']); - } + } bank_trans_types_list_row(_("Type:"), 'ReceiptType', null); - text_row(_("Reference:"), 'ref', null, 20, 40); + text_row(_("Reference:"), 'ref', null, 20, 40); - textarea_row(_("Memo:"), 'memo_', null, 22, 4); + textarea_row(_("Memo:"), 'memo_', null, 22, 4); - echo "
"; + echo ""; echo ""; end_table(); // outer table - if ($cust_currency != $bank_currency) - display_note(_("Amount and discount are in customer's currency.")); + if ($cust_currency != $bank_currency) + display_note(_("Amount and discount are in customer's currency.")); - echo"
"; + echo"
"; - submit_center('AddPaymentItem', _("Add Payment")); + submit_center('AddPaymentItem', _("Add Payment"), true, '', true); } - echo "
"; + echo "
"; } //---------------------------------------------------------------------------------------------- diff --git a/sales/includes/cart_class.inc b/sales/includes/cart_class.inc index 1bb71589..46427af4 100644 --- a/sales/includes/cart_class.inc +++ b/sales/includes/cart_class.inc @@ -6,170 +6,319 @@ this class can hold all the information for: i) a sales order ii) an invoice iii) a credit note - +iv) a delivery note */ include_once($path_to_root . "/inventory/includes/inventory_db.inc"); include_once($path_to_root . "/taxes/tax_calc.inc"); -class cart +class cart { + var $trans_type; // invoice, order, delivery note ... + var $trans_no = array();// array (num1=>ver1,..) or 0 for new + var $so_type = 0; // for sales order: simple=0 template=1 + + var $line_items; //array of objects of class line_details - var $line_items; /*array of objects of class line_details using the product id as the pointer */ + var $src_docs = array(); // array of arrays(num1=>ver1,...) or 0 for no src + var $src_date; // src document date (for info only) - var $delivery_date; - var $default_sales_type; // set to the customer's sales type + var $document_date; + var $due_date; + var $sales_type; // set to the customer's sales type var $sales_type_name; // set to customer's sales type name + var $tax_included; + var $customer_currency; // set to the customer's currency var $default_discount; // set to the customer's discount % - var $direct_invoice; // direct invoicing - var $memo_; // memo_ on direct invoicing - + var $customer_name; + var $customer_id; + var $Branch; + var $email; + var $deliver_to; var $delivery_address; var $phone; - - var $email; + var $cust_ref; + var $reference; var $Comments; var $Location; var $location_name; - - var $order_no; // the order number + var $order_no; // the original order number + var $trans_link = 0; - var $customer_name; - var $customer_id; - var $Branch; - - var $orig_order_date; - var $ship_via; - var $freight_cost; - + var $freight_cost = 0; + var $tax_group_id; var $tax_group_name; - - function Cart() - { + var $tax_group_array = null; // saves db queries + var $price_factor; // ditto for price calculations + //------------------------------------------------------------------------- + // + // $trans_no==0 => open new/direct document + // $trans_no!=0 && $view==false => read for view + // $trans_no!=0 && $view==true => read for edit (qty update from parent doc) + // + function Cart($type, $trans_no=0, $view=false ) { /*Constructor function initialises a new shopping cart */ $this->line_items = array(); - $this->default_sales_type = ""; - $this->direct_invoice=false; + $this->sales_type = ""; + $this->trans_type = 30; + $this->read($type, $trans_no, $view ); + } + + //------------------------------------------------------------------------- + // Reading document into cart + // + function read($type, $trans_no = 0, $view=false ) { + + if (!is_array($trans_no)) $trans_no = array($trans_no); + + if ($trans_no[0]) { + if ($type == 30) { // sales order + read_sales_order($trans_no[0], $this); + if ($view) { // prepare for DN/IV entry + for($line_no = 0; $line_no < count($this->line_items); $line_no++) { + $line = &$this->line_items[$line_no]; + $line->qty_dispatched = $line->quantity - $line->qty_done; + } + } + } else { // derivative transaction + read_sales_trans($type, $trans_no, $this); + if ($this->order_no) { // free hand credit notes have no order_no + $sodata = get_sales_order_header($this->order_no); + $this->cust_ref = $sodata["customer_ref"]; + // currently currency is hard linked to debtor account + // $this->customer_currency = $sodata["curr_code"]; + $this->delivery_to = $sodata["deliver_to"]; + $this->delivery_address = $sodata["delivery_address"]; + } + if (!$view && ($type!=11 || $this->trans_link!=0)) { + $src_type = get_parent_type($type); + $src_details = 0; + if ($src_type == 30) { // get src data from sales_orders + $this->src_docs = array( $sodata['order_no']=>$sodata['version']); + $srcdetails = get_sales_order_details($this->order_no); + } else { // get src_data from debtor_trans + $this->src_docs = get_customer_trans_version($src_type, get_parent_trans($type,$trans_no[0])); + $srcdetails = get_customer_trans_details($src_type,array_keys($this->src_docs)); + } + // calculate & save: qtys on other docs and free qtys on src doc + $line_no = 0; + for($line_no = 0; $srcline = db_fetch($srcdetails); $line_no++) { + $sign = 1; // $type==13 ? 1 : -1; // this is strange debtor_trans atavism + $line = &$this->line_items[$line_no]; + + $line->qty_old = $line->qty_dispatched = $line->quantity; + $line->quantity += $sign * ($srcline['quantity'] - $srcline['qty_done']); // add free qty on src doc + } + } else { + for($line_no = 0; $line_no < count($this->line_items); $line_no++) { + $line = &$this->line_items[$line_no]; + $line->qty_dispatched = $line->quantity; + } + } + } + } else { + $this->trans_type = $type; + $this->trans_no = 0; + // set new sales document defaults here + if (get_global_customer() != reserved_words::get_all()) + $this->customer_id = get_global_customer(); + else + $this->customer_id = ''; + $this->document_date = Today(); + if (!is_date_in_fiscalyear($this->document_date)) + $this->document_date = end_fiscalyear(); + $this->reference = references::get_next($this->trans_type); + if ($type == 10) + $this->due_date = + get_invoice_duedate($this->customer_id, $this->document_date); + else + $this->due_date = + add_days($this->document_date, 10); // FIX this should be in company prefs + } + } + + //------------------------------------------------------------------------- + // Writing new/modified sales document to database. + // Makes parent documents for direct delivery/invoice by recurent call. + // $policy - 0 or 1: writeoff/return for IV, back order/cancel for DN + function write($policy=0) { + if (count($this->src_docs) == 0 && ($this->trans_type == 10 || $this->trans_type == 13)) { + // this is direct document - first add parent + $src = (PHP_VERSION<5) ? $this : clone( $this ); // make local copy of this cart + $src->trans_type = get_parent_type($src->trans_type); + $src->reference = 'auto'; + + $src->write(1); + $type = $this->trans_type; + $ref = $this->reference; + $date = $this->document_date; + // re-read document + $this->read($src->trans_type, key($src->trans_no), true); + $this->document_date = $date; + $this->reference = $ref; + $this->trans_type = $type; + $this->src_docs= $this->trans_no; + $this->trans_no = 0; + $this->order_no= $this->trans_type==13 ? key($src->trans_no) : $src->order_no; + } +// if we want to save old or derivative document first decode html entities +// from text fields. For new documents this is not needed. + if ($this->trans_no || $this->trans_type != 30) { + $this->reference = @html_entity_decode($this->reference); + $this->Comments = @html_entity_decode($this->Comments); + foreach($this->line_items as $lineno => $line) { + $this->line_items[$lineno]->stock_id = @html_entity_decode($line->stock_id); + $this->line_items[$lineno]->description = @html_entity_decode($line->description); + } + } + switch($this->trans_type) { + case 10: + return write_sales_invoice($this); + case 11: + return write_credit_note($this, $policy); + case 13: + return write_sales_delivery($this, $policy); + case 30: + if ($this->trans_no==0) // new document + return add_sales_order($this); + else + return update_sales_order($this); + } } - function add_to_cart($stock_id, $qty, $price, $disc, $qty_invoiced=0, $standard_cost=0, $description=null) + function set_customer($customer_id, $customer_name, $currency, $discount) { + $this->customer_name = $customer_name; + $this->customer_id = $customer_id; + $this->default_discount = $discount; + $this->customer_currency = $currency; + } - if (isset($stock_id) && $stock_id != "" && isset($qty) && $qty > 0) - { + function set_branch($branch_id, $tax_group_id, $tax_group_name, $phone='', $email='') + { + $this->Branch = $branch_id; + $this->phone = $phone; + $this->email = $email; + $this->tax_group_id = $tax_group_id; + $this->tax_group_array = get_tax_group_items_as_array($tax_group_id); + } + + function set_sales_type($sales_type, $sales_name, $tax_included=0, $factor=0) + { + $this->sales_type = $sales_type; + $this->sales_type_name = $sales_name; + $this->tax_included = $tax_included; + $this->price_factor = $factor; + } + + function set_location($id, $name) + { + $this->Location = $id; + $this->location_name = $name; + } - $this->line_items[$stock_id] = new line_details($stock_id, $qty, $price, $disc, - $qty_invoiced, $standard_cost, $description); + function set_delivery($shipper, $destination, $address, $freight_cost=null) + { + $this->ship_via = $shipper; + $this->deliver_to = $destination; + $this->delivery_address = $address; + if (isset($freight_cost)) + $this->freight_cost = $freight_cost; + } + + function add_to_cart($line_no,$stock_id, $qty, $price, $disc, $qty_done=0, $standard_cost=0, $description=null, $id=0, $src_no=0) + { + if (isset($stock_id) && $stock_id != "" && isset($qty)/* && $qty > 0*/) { + $this->line_items[$line_no] = new line_details($stock_id, $qty, $price, $disc, + $qty_done, $standard_cost, $description, $id, $src_no); return 1; - } - else - { + } else { // shouldn't come here under normal circumstances display_db_error("unexpected - adding an invalid item or null quantity", "", true); } return 0; } - function find_cart_item($stock_id) + function update_cart_item($line_no, $qty, $price, $disc) { - if (isset($this->line_items[$stock_id]) && $this->line_items[$stock_id] != null) - return $this->line_items[$stock_id]; - return null; + $this->line_items[$line_no]->quantity = $qty; + $this->line_items[$line_no]->qty_dispatched = $qty; + $this->line_items[$line_no]->price = $price; + $this->line_items[$line_no]->discount_percent = $disc; } - - function update_cart_item($update_item, $qty, $price, $disc) - { - if ($qty > 0) - { - $this->line_items[$update_item]->quantity = $qty; - } - $this->line_items[$update_item]->price = $price; - $this->line_items[$update_item]->discount_percent = $disc; - } - - function update_add_cart_item_qty($update_item, $qty) + function update_add_cart_item_qty($line_no, $qty) { - $this->line_items[$update_item]->quantity += $qty; - } + $this->line_items[$line_no]->quantity += $qty; + } - function remove_from_cart(&$stock_id) + function remove_from_cart($line_no) { - if (isset($stock_id)) - { - unset($this->line_items[$stock_id]); - } + unset($this->line_items[$line_no]); } - - function clear_items() + + function clear_items() { - unset($this->line_items); + unset($this->line_items); $this->line_items = array(); - $this->default_sales_type = ""; + $this->sales_type = ""; + $this->trans_no = 0; $this->customer_id = $this->order_no = 0; } - - function count_items() + + function count_items() { - return count($this->line_items); + $counter=0; + foreach ($this->line_items as $line) { + if ($line->quantity!=$line->qty_done) $counter++; + } + return $counter; } - - function get_items_total_dispatch($tax_group_id=null) + + function get_items_total() { $total = 0; - - // preload the taxgroup ! - if ($tax_group_id != null) - $tax_group_array = get_tax_group_items_as_array($tax_group_id); - else - $tax_group_array = null; - - foreach ($this->line_items as $ln_itm) - { - $total += ($ln_itm->qty_dispatched * $ln_itm->taxfree_price($tax_group_id, $tax_group_array) * (1 - $ln_itm->discount_percent)); - } + + foreach ($this->line_items as $ln_itm) { + $price = $ln_itm->line_price(); + $total += round($ln_itm->quantity * $price * (1 - $ln_itm->discount_percent), + user_price_dec()); + } + return $total; + } + + function get_items_total_dispatch() + { + $total = 0; + + foreach ($this->line_items as $ln_itm) { + $price = $ln_itm->line_price(); + $total += round(($ln_itm->qty_dispatched * $price * (1 - $ln_itm->discount_percent)), + user_price_dec()); + } return $total; } - + function has_items_dispatch() { - foreach ($this->line_items as $ln_itm) - { + foreach ($this->line_items as $ln_itm) { if ($ln_itm->qty_dispatched > 0) - return true; - } + return true; + } return false; } - - function get_items_total($tax_group_id=null) - { - $total = 0; - - // preload the taxgroup ! - if ($tax_group_id != null) - $tax_group_array = get_tax_group_items_as_array($tax_group_id); - else - $tax_group_array = null; - - foreach ($this->line_items as $ln_itm) { - $total += ($ln_itm->quantity * $ln_itm->taxfree_price($tax_group_id, $tax_group_array) * (1 - $ln_itm->discount_percent)); - } - return $total; - } function any_already_delivered() { - /* Checks if there have been deliveries of line items */ + /* Checks if there have been any line item processed */ - foreach ($this->line_items as $stock_item) - { - if ($stock_item->qty_inv !=0) - { + foreach ($this->line_items as $stock_item) { + if ($stock_item->qty_done !=0) { return 1; } } @@ -178,97 +327,126 @@ class cart } - function some_already_delivered($stock_id) + function some_already_delivered($line_no) { /* Checks if there have been deliveries of a specific line item */ - if (isset($stock_id) && isset($this->line_items[$stock_id]) && - $this->line_items[$stock_id]->qty_inv != 0) - { + if (isset($this->line_items[$line_no]) && + $this->line_items[$line_no]->qty_done != 0) { return 1; } return 0; } - - function get_taxes($tax_group_id=null, $shipping_cost=0) - { - $items = array(); - $prices = array(); - - if ($tax_group_id == null) - $tax_group_id = $this->tax_group_id; - - // preload the taxgroup ! - $tax_group_array = get_tax_group_items_as_array($tax_group_id); - - foreach ($this->line_items as $ln_itm) - { - $items[] = $ln_itm->stock_id; - $prices[] = ($ln_itm->qty_dispatched * $ln_itm->taxfree_price($tax_group_id, $tax_group_array) * (1 - $ln_itm->discount_percent)); - } - - - $taxes = get_tax_for_items($items, $prices, $shipping_cost, $tax_group_id, $tax_group_array); - - return $taxes; - } - + + function get_taxes($shipping_cost=null) + { + $items = array(); + $prices = array(); + if($shipping_cost==null) + $shipping_cost = $this->freight_cost; + + foreach ($this->line_items as $ln_itm) { + $items[] = $ln_itm->stock_id; + $prices[] = round(($ln_itm->qty_dispatched * + $ln_itm->line_price()* (1 - $ln_itm->discount_percent)), user_price_dec()); + } + + $taxes = get_tax_for_items($items, $prices, $shipping_cost, + $this->tax_group_id, $this->tax_included, $this->tax_group_array); + + // Adjustment for swiss franken, we always have 5 rappen = 1/20 franken + if ($this->customer_currency == 'CHF') { + $val = $taxes['1']['Value']; + $val1 = (floatval((intval(round(($val*20),0)))/20)); + $taxes['1']['Value'] = $val1; + } + return $taxes; + } + + + function get_tax_free_shipping() + { + + if ($this->tax_included==0) + return $this->freight_cost; + else + return ($this->freight_cost - $this->get_shipping_tax()); + } + + function get_shipping_tax() + { + + $tax_items = get_shipping_tax_as_array(); + $tax_rate = 0; + if ($tax_items != null) { + foreach ($tax_items as $item_tax) { + $index = $item_tax['tax_type_id']; + if (isset($this->tax_group_array[$index])) { + $tax_rate += $item_tax['rate']; + } + } + } + if($this->tax_included) + return round($this->freight_cost*$tax_rate/($tax_rate+100), user_price_dec()); + else + return round($this->freight_cost*$tax_rate/100, user_price_dec()); + } + } /* end of class defintion */ -class line_details +class line_details { + var $id; var $stock_id; var $item_description; var $units; var $mb_flag; var $tax_type; var $tax_type_name; - + var $src_no; // number of src doc for this line var $quantity; var $price; var $discount_percent; - var $qty_inv; - var $qty_dispatched; + var $qty_done; // quantity processed on child documents + var $qty_dispatched; // quantity selected to process + var $qty_old=0; // quantity dispatched before edition var $standard_cost; - function line_details ($stock_id, $qty, $prc, $disc_percent, - $qty_invoiced, $standard_cost, $description) + function line_details ($stock_id, $qty, $prc, $disc_percent, + $qty_done, $standard_cost, $description, $id=0, $src_no=0 ) { /* Constructor function to add a new LineDetail object with passed params */ + + $this->id = $id; + $this->src_no = $src_no; $item_row = get_item($stock_id); - + if ($item_row == null) display_db_error("invalid item added to order : $stock_id", ""); - + $this->mb_flag = $item_row["mb_flag"]; $this->units = $item_row["units"]; if ($description == null) $this->item_description = $item_row["description"]; else $this->item_description = $description; - //$this->standard_cost = $item_row["material_cost"] + $item_row["labour_cost"] + $item_row["overhead_cost"]; + //$this->standard_cost = $item_row["material_cost"] + $item_row["labour_cost"] + $item_row["overhead_cost"]; $this->tax_type = $item_row["tax_type_id"]; $this->tax_type_name = $item_row["tax_type_name"]; $this->stock_id = $stock_id; $this->quantity = $qty; + $this->qty_dispatched = $qty; $this->price = $prc; $this->discount_percent = $disc_percent; - $this->qty_inv = $qty_invoiced; - $this->qty_dispatched = $qty - $qty_invoiced; + $this->qty_done = $qty_done; $this->standard_cost = $standard_cost; } - - function full_price() + + // get unit price as stated on document + function line_price() { return $this->price; } - - function taxfree_price($tax_group_id, $tax_group_array=null) - { - if ($tax_group_id==null) - return $this->price; - return get_tax_free_price_for_item($this->stock_id, $this->price, $tax_group_id, $tax_group_array); - } } ?> diff --git a/sales/includes/db/credit_status_db.inc b/sales/includes/db/credit_status_db.inc index 4bf0bdd9..0bcabe70 100644 --- a/sales/includes/db/credit_status_db.inc +++ b/sales/includes/db/credit_status_db.inc @@ -3,14 +3,14 @@ function add_credit_status($description, $disallow_invoicing) { $sql = "INSERT INTO ".TB_PREF."credit_status (reason_description, dissallow_invoices) - VALUES ('$description',$disallow_invoicing)"; + VALUES (".db_escape($description).",$disallow_invoicing)"; db_query($sql, "could not add credit status"); } function update_credit_status($status_id, $description, $disallow_invoicing) { - $sql = "UPDATE ".TB_PREF."credit_status SET reason_description='$description', + $sql = "UPDATE ".TB_PREF."credit_status SET reason_description=".db_escape($description).", dissallow_invoices=$disallow_invoicing WHERE id=$status_id"; db_query($sql, "could not update credit status"); diff --git a/sales/includes/db/cust_trans_db.inc b/sales/includes/db/cust_trans_db.inc index 48af1690..d347dbbf 100644 --- a/sales/includes/db/cust_trans_db.inc +++ b/sales/includes/db/cust_trans_db.inc @@ -1,39 +1,123 @@ 0) { + while($link = db_fetch($result)) { + $delivery[] = $link['trans_no']; + } + } + return count($delivery) ? $delivery : 0; +} //---------------------------------------------------------------------------------------- +// Mark changes in debtor_trans_details +// +function update_customer_trans_version($type, $versions) { + + $sql= 'UPDATE '.TB_PREF. 'debtor_trans SET version=version+1 + WHERE type='.$type. ' AND ('; + + foreach ($versions as $trans_no=>$version) + $where[] = '(trans_no='.$trans_no. + ' AND version='.$version.')'; + + $sql .= implode(' OR ', $where) .')'; + + return db_query($sql, 'Concurrent editing conflict'); +} + +//---------------------------------------------------------------------------------------- +// Gets document header versions for transaction set of type $type +// $trans_no = array(num1, num2,...); +// returns array(num1=>ver1, num2=>ver2...) +// +function get_customer_trans_version($type, $trans_no) { + if (!is_array($trans_no)) + $trans_no = array( $trans_no ); + + $sql= 'SELECT trans_no, version FROM '.TB_PREF. 'debtor_trans + WHERE type='.$type.' AND ('; + + foreach ($trans_no as $key=>$trans) + $trans_no[$key] = 'trans_no='.$trans_no[$key]; + $sql .= implode(' OR ', $trans_no) . ')'; + + $res = db_query($sql, 'document version retreival'); + + $vers = array(); + while($mysql=db_fetch($res)) { + $vers[$mysql['trans_no']] = $mysql['version']; + } + return $vers; +} +//---------------------------------------------------------------------------------------- // $Total, $Tax, $Freight, $discount all in customer's currency // date_ is display date (non-sql) - -function add_customer_trans($trans_type, $debtor_no, $BranchNo, - $date_, $reference, $Total, $discount=0, $Tax=0, $Freight=0, - $sales_type=0, $order_no=0, $ship_via="", $due_date=null, +function write_customer_trans($trans_type, $trans_no, $debtor_no, $BranchNo, + $date_, $reference, $Total, $discount=0, $Tax=0, $Freight=0, $FreightTax=0, + $sales_type=0, $order_no=0, $trans_link=0, $ship_via="", $due_date=null, $AllocAmt=0) { - $trans_no = get_next_trans_no($trans_type); - + $curr = get_customer_currency($debtor_no); - $rate = get_exchange_rate_from_home_currency($curr, $date_); + $rate = get_exchange_rate_from_home_currency($curr, $date_); $SQLDate = date2sql($date_); $SQLDueDate = date2sql($due_date); + if ($trans_no==0) { + $trans_no = get_next_trans_no($trans_type); + $sql = "INSERT INTO ".TB_PREF."debtor_trans ( - trans_no, type, - debtor_no, branch_code, - tran_date, due_date, - reference, tpe, + trans_no, type, + debtor_no, branch_code, + tran_date, due_date, + reference, tpe, order_, ov_amount, ov_discount, - ov_gst, ov_freight, rate, - ship_via, alloc) - VALUES ($trans_no, $trans_type, '$debtor_no', '$BranchNo', - '$SQLDate', '$SQLDueDate', '$reference', - '$sales_type', $order_no, $Total, $discount, $Tax, $Freight, $rate, - '$ship_via', $AllocAmt)"; - + ov_gst, ov_freight, ov_freight_tax, + rate, ship_via, alloc, trans_link + ) VALUES ($trans_no, $trans_type, + ".db_escape($debtor_no).", ".db_escape($BranchNo).", + '$SQLDate', '$SQLDueDate', ".db_escape($reference).", + ".db_escape($sales_type).", $order_no, $Total, ".db_escape($discount).", $Tax, + ".db_escape($Freight).", + $FreightTax, $rate, ".db_escape($ship_via).", $AllocAmt, ".db_escape($trans_link).")"; + } else { // may be optional argument should stay unchanged ? + $sql = "UPDATE ".TB_PREF."debtor_trans SET + debtor_no=".db_escape($debtor_no)." , branch_code=".db_escape($BranchNo).", + tran_date='$SQLDate', due_date='$SQLDueDate', + reference=".db_escape($reference).", tpe=".db_escape($sales_type).", order_=$order_no, + ov_amount=$Total, ov_discount=".db_escape($discount).", ov_gst=$Tax, + ov_freight=".db_escape($Freight).", ov_freight_tax=$FreightTax, rate=$rate, + ship_via=".db_escape($ship_via).", alloc=$AllocAmt, trans_link=$trans_link + WHERE trans_no=$trans_no AND type=$trans_type"; + } db_query($sql, "The debtor transaction record could not be inserted"); - - return $trans_no; + + return $trans_no; } //---------------------------------------------------------------------------------------- @@ -41,74 +125,77 @@ function add_customer_trans($trans_type, $debtor_no, $BranchNo, function get_customer_trans($trans_id, $trans_type) { $sql = "SELECT ".TB_PREF."debtor_trans.*, - ov_amount+ov_gst+ov_freight+ov_discount AS Total, - ".TB_PREF."debtors_master.name AS DebtorName, ".TB_PREF."debtors_master.address, ".TB_PREF."debtors_master.email, + ov_amount+ov_gst+ov_freight+ov_freight_tax+ov_discount AS Total, + ".TB_PREF."debtors_master.name AS DebtorName, ".TB_PREF."debtors_master.address, ".TB_PREF."debtors_master.email AS email2, ".TB_PREF."debtors_master.curr_code, ".TB_PREF."debtors_master.tax_id, ".TB_PREF."debtors_master.payment_terms "; - - if ($trans_type == systypes::cust_payment()) - { + + if ($trans_type == systypes::cust_payment()) { // it's a payment so also get the bank account $sql .= ", ".TB_PREF."bank_accounts.bank_name, ".TB_PREF."bank_accounts.bank_account_name, - ".TB_PREF."bank_trans_types.name AS BankTransType "; - } - - if ($trans_type == 10 OR $trans_type == 11) - { + ".TB_PREF."bank_trans_types.name AS BankTransType "; + } + + if ($trans_type == 10 OR $trans_type == 11 OR $trans_type == 13) { // it's an invoice so also get the shipper and salestype - $sql .= ", ".TB_PREF."shippers.shipper_name, ".TB_PREF."sales_types.sales_type "; - } - - - $sql .= " FROM ".TB_PREF."debtor_trans, ".TB_PREF."debtors_master "; - - if ($trans_type == systypes::cust_payment()) - { + $sql .= ", ".TB_PREF."shippers.shipper_name, " + .TB_PREF."sales_types.sales_type, " + .TB_PREF."sales_types.tax_included, " + .TB_PREF."cust_branch.*, " + .TB_PREF."debtors_master.discount, " + .TB_PREF."tax_groups.name AS tax_group_name, " + .TB_PREF."tax_groups.id AS tax_group_id "; + } + + + $sql .= " FROM ".TB_PREF."debtor_trans, ".TB_PREF."debtors_master "; + + if ($trans_type == systypes::cust_payment()) { // it's a payment so also get the bank account - $sql .= ", ".TB_PREF."bank_trans, ".TB_PREF."bank_accounts, ".TB_PREF."bank_trans_types "; - } - - if ($trans_type == 10 OR $trans_type == 11) - { + $sql .= ", ".TB_PREF."bank_trans, ".TB_PREF."bank_accounts, ".TB_PREF."bank_trans_types "; + } + + if ($trans_type == 10 OR $trans_type == 11 OR $trans_type == 13) { // it's an invoice so also get the shipper, salestypes - $sql .= ", ".TB_PREF."shippers, ".TB_PREF."sales_types "; - } - - $sql .= " WHERE ".TB_PREF."debtor_trans.trans_no=$trans_id + $sql .= ", ".TB_PREF."shippers, ".TB_PREF."sales_types, ".TB_PREF."cust_branch, ".TB_PREF."tax_groups "; + } + + $sql .= " WHERE ".TB_PREF."debtor_trans.trans_no=$trans_id AND ".TB_PREF."debtor_trans.type=$trans_type AND ".TB_PREF."debtor_trans.debtor_no=".TB_PREF."debtors_master.debtor_no"; - - if ($trans_type == systypes::cust_payment()) - { + + if ($trans_type == systypes::cust_payment()) { // it's a payment so also get the bank account $sql .= " AND ".TB_PREF."bank_trans.trans_no =$trans_id - AND ".TB_PREF."bank_trans.type=$trans_type + AND ".TB_PREF."bank_trans.type=$trans_type AND ".TB_PREF."bank_trans_types.id = ".TB_PREF."bank_trans.bank_trans_type_id - AND ".TB_PREF."bank_accounts.account_code=".TB_PREF."bank_trans.bank_act "; - } - if ($trans_type == 10 OR $trans_type == 11) - { + AND ".TB_PREF."bank_accounts.account_code=".TB_PREF."bank_trans.bank_act "; + } + if ($trans_type == 10 OR $trans_type == 11 OR $trans_type == 13) { // it's an invoice so also get the shipper - $sql .= " AND ".TB_PREF."shippers.shipper_id=".TB_PREF."debtor_trans.ship_via - AND ".TB_PREF."sales_types.id = ".TB_PREF."debtor_trans.tpe "; - } - - $result = db_query($sql, "Cannot retreive a debtor transaction"); - - if (db_num_rows($result) == 0) - { - // can't return nothing - display_db_error("no debtor trans found for given params", $sql, true); - exit; - } - - if (db_num_rows($result) > 1) - { - // can't return multiple - display_db_error("duplicate debtor transactions found for given params", $sql, true); - exit; - } - - return db_fetch($result); + $sql .= " AND ".TB_PREF."shippers.shipper_id=".TB_PREF."debtor_trans.ship_via + AND ".TB_PREF."sales_types.id = ".TB_PREF."debtor_trans.tpe + AND ".TB_PREF."cust_branch.branch_code = ".TB_PREF."debtor_trans.branch_code + AND ".TB_PREF."cust_branch.tax_group_id = ".TB_PREF."tax_groups.id "; + } + + $result = db_query($sql, "Cannot retreive a debtor transaction"); + + if (db_num_rows($result) == 0) { + // can't return nothing + display_db_error("no debtor trans found for given params", $sql, true); + exit; + } + + if (db_num_rows($result) > 1) { + // can't return multiple + display_db_error("duplicate debtor transactions found for given params", $sql, true); + exit; + } + + //return db_fetch($result); + $row = db_fetch($result); + $row['email'] = $row['email2']; + return $row; } //---------------------------------------------------------------------------------------- @@ -116,24 +203,24 @@ function get_customer_trans($trans_id, $trans_type) function get_customer_transactions($extra_fields=null, $extra_conditions=null, $extra_tables=null) { $sql = "SELECT ".TB_PREF."debtor_trans.*, - ov_amount+ov_gst+ov_freight+ov_discount AS Total, + ov_amount+ov_gst+ov_freight+ov_freight_tax+ov_discount AS Total, ".TB_PREF."debtors_master.name AS DebtorName, ".TB_PREF."debtors_master.address, - ".TB_PREF."debtors_master.curr_code "; - + ".TB_PREF."debtors_master.curr_code, ".TB_PREF."debtor_trans.version "; + if ($extra_fields) - $sql .= ", $extra_fields "; - + $sql .= ", $extra_fields "; + $sql .= " FROM ".TB_PREF."debtor_trans, ".TB_PREF."debtors_master "; if ($extra_tables) $sql .= ",$extra_tables "; - + $sql .= " WHERE ".TB_PREF."debtor_trans.debtor_no=".TB_PREF."debtors_master.debtor_no"; - + if ($extra_conditions) - $sql .= " AND $extra_conditions "; - - $sql .= " ORDER BY trans_no"; - + $sql .= " AND $extra_conditions "; + + $sql .= " ORDER BY trans_no"; + return db_query($sql, "Cannot retreive debtor transactions"); } @@ -143,9 +230,10 @@ function exists_customer_trans($type, $type_no) { $sql = "SELECT trans_no FROM ".TB_PREF."debtor_trans WHERE type=$type AND trans_no=$type_no"; - $result = db_query($sql, "Cannot retreive a debtor transaction"); - - return (db_num_rows($result) > 0); + + $result = db_query($sql, "Cannot retreive a debtor transaction"); + + return (db_num_rows($result) > 0); } //---------------------------------------------------------------------------------------- @@ -155,26 +243,26 @@ function exists_customer_trans($type, $type_no) function get_customer_trans_order($type, $type_no) { $sql = "SELECT order_ FROM ".TB_PREF."debtor_trans WHERE type=$type AND trans_no=$type_no"; - + $result = db_query($sql, "The debtor transaction could not be queried"); - + $row = db_fetch_row($result); - - return $row[0]; + + return $row[0]; } //---------------------------------------------------------------------------------------- function get_customer_details_from_trans($type, $type_no) { - $sql = "SELECT ".TB_PREF."debtors_master.name, ".TB_PREF."debtors_master.curr_code, ".TB_PREF."cust_branch.br_name - FROM ".TB_PREF."debtors_master,".TB_PREF."cust_branch,".TB_PREF."debtor_trans + $sql = "SELECT ".TB_PREF."debtors_master.name, ".TB_PREF."debtors_master.curr_code, ".TB_PREF."cust_branch.br_name + FROM ".TB_PREF."debtors_master,".TB_PREF."cust_branch,".TB_PREF."debtor_trans WHERE ".TB_PREF."debtor_trans.type=$type AND ".TB_PREF."debtor_trans.trans_no=$type_no - AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."debtor_trans.debtor_no + AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."debtor_trans.debtor_no AND ".TB_PREF."cust_branch.branch_code = ".TB_PREF."debtor_trans.branch_code"; - + $result = db_query($sql, "could not get customer details from trans"); - return db_fetch($result); + return db_fetch($result); } //---------------------------------------------------------------------------------------- @@ -182,9 +270,9 @@ function get_customer_details_from_trans($type, $type_no) function void_customer_trans($type, $type_no) { // clear all values and mark as void - $sql = "UPDATE ".TB_PREF."debtor_trans SET ov_amount=0, ov_discount=0, ov_gst=0, ov_freight=0, - alloc=0 WHERE type=$type AND trans_no=$type_no"; - + $sql = "UPDATE ".TB_PREF."debtor_trans SET ov_amount=0, ov_discount=0, ov_gst=0, ov_freight=0, + ov_freight_tax=0, alloc=0, version=version+1 WHERE type=$type AND trans_no=$type_no"; + db_query($sql, "could not void debtor transactions for type=$type and trans_no=$type_no"); } @@ -192,13 +280,15 @@ function void_customer_trans($type, $type_no) function post_void_customer_trans($type, $type_no) { - switch ($type) - { + switch ($type) { case 10 : case 11 : void_sales_invoice($type, $type_no); break; - case systypes::cust_payment() : + case 13 : + void_sales_delivery($type, $type_no); + break; + case 12 : void_customer_payment($type, $type_no); break; } @@ -206,5 +296,13 @@ function post_void_customer_trans($type, $type_no) //---------------------------------------------------------------------------------------- +function get_customer_trans_link($type, $type_no) +{ + $row = db_query("SELECT trans_link from ".TB_PREF."debtor_trans + WHERE type=$type AND trans_no=$type_no", + "could not get transaction link for type=$type and trans_no=$type_no"); + return $row[0]; +} +//---------------------------------------------------------------------------------------- ?> \ No newline at end of file diff --git a/sales/includes/db/cust_trans_details_db.inc b/sales/includes/db/cust_trans_details_db.inc index be04db16..b44c1d5f 100644 --- a/sales/includes/db/cust_trans_details_db.inc +++ b/sales/includes/db/cust_trans_details_db.inc @@ -2,27 +2,28 @@ //---------------------------------------------------------------------------------------- -function add_customer_trans_detail_item_base($debtor_trans_type, $debtor_trans_no, $stock_id, $description, $quantity, - $unit_price, $unit_tax, $discount_percent, $standard_cost) -{ - $sql = "INSERT INTO ".TB_PREF."debtor_trans_details (debtor_trans_no, debtor_trans_type, stock_id, description, quantity, unit_price, unit_tax, discount_percent, standard_cost) - VALUES ($debtor_trans_no, $debtor_trans_type, '$stock_id', '$description', $quantity, $unit_price, $unit_tax, $discount_percent, $standard_cost)"; - - db_query($sql, "The debtor transaction detail could not be added"); -} - -//---------------------------------------------------------------------------------------- - function get_customer_trans_details($debtor_trans_type, $debtor_trans_no) { - $sql = "SELECT ".TB_PREF."debtor_trans_details.*, ".TB_PREF."debtor_trans_details.unit_price+".TB_PREF."debtor_trans_details.unit_tax AS FullUnitPrice, +if (!is_array($debtor_trans_no)) + $debtor_trans_no = array( 0=>$debtor_trans_no ); + + $sql = "SELECT ".TB_PREF."debtor_trans_details.*, + ".TB_PREF."debtor_trans_details.unit_price+".TB_PREF."debtor_trans_details.unit_tax AS FullUnitPrice, ".TB_PREF."debtor_trans_details.description As StockDescription, - ".TB_PREF."stock_master.units - FROM ".TB_PREF."debtor_trans_details,".TB_PREF."stock_master - WHERE debtor_trans_no=$debtor_trans_no - AND debtor_trans_type=$debtor_trans_type - AND ".TB_PREF."stock_master.stock_id=".TB_PREF."debtor_trans_details.stock_id"; + ".TB_PREF."stock_master.units + FROM ".TB_PREF."debtor_trans_details,".TB_PREF."stock_master + WHERE ("; + $tr=array(); + foreach ($debtor_trans_no as $trans_no) + $tr[] = 'debtor_trans_no='.$trans_no; + + $sql .= implode(' OR ', $tr); + + + $sql.= ") AND debtor_trans_type=$debtor_trans_type + AND ".TB_PREF."stock_master.stock_id=".TB_PREF."debtor_trans_details.stock_id + ORDER BY id"; return db_query($sql, "The debtor transaction detail could not be queried"); } @@ -30,59 +31,25 @@ function get_customer_trans_details($debtor_trans_type, $debtor_trans_no) function void_customer_trans_details($type, $type_no) { - $sql = "UPDATE ".TB_PREF."debtor_trans_details SET quantity=0, unit_price=0, + $sql = "UPDATE ".TB_PREF."debtor_trans_details SET quantity=0, unit_price=0, unit_tax=0, discount_percent=0, standard_cost=0 WHERE debtor_trans_no=$type_no AND debtor_trans_type=$type"; - - db_query($sql, "The debtor transaction details could not be voided"); - - // clear the stock move items - void_stock_move($type, $type_no); -} -//---------------------------------------------------------------------------------------- + db_query($sql, "The debtor transaction details could not be voided"); -function add_customer_trans_detail_item($debtor_trans_type, $debtor_trans_no, $stock_id, $description, - $Location, $date_, $quantity, $unit_price, $unit_tax, $discount_percent, - $reference, $std_cost) -{ - add_customer_trans_detail_item_base($debtor_trans_type, $debtor_trans_no, $stock_id, $description, - $quantity, $unit_price, $unit_tax, $discount_percent, $std_cost); - - add_stock_move_customer($debtor_trans_type, $stock_id, $debtor_trans_no, $Location, - $date_, $reference, $quantity, $std_cost, 1, $unit_price+$unit_tax, $discount_percent); - - return $std_cost; + // clear the stock move items + void_stock_move($type, $type_no); } - //---------------------------------------------------------------------------------------- -function add_customer_trans_detail_item_writeoff($debtor_trans_type, $debtor_trans_no, $stock_id, $description, - $Location, $date_, $quantity, $unit_price, $unit_tax, $discount_percent, - $reference, $std_cost) -{ - $retCost = add_customer_trans_detail_item($debtor_trans_type, $debtor_trans_no, $stock_id, $description, - $Location, $date_, $quantity, $unit_price, $unit_tax, $discount_percent, - $reference, $std_cost); - - $reference = _("Write off") . " " . $reference; - - add_stock_move_customer($debtor_trans_type, $stock_id, $debtor_trans_no, $Location, - $date_, $reference, -$quantity, $std_cost, 0, $unit_price+$unit_tax, $discount_percent); - - return $retCost; -} - -//---------------------------------------------------------------------------------------- - -function add_customer_trans_tax_detail_item($debtor_trans_type, $debtor_trans_no, +function add_customer_trans_tax_detail_item($debtor_trans_type, $debtor_trans_no, $tax_type_id, $rate, $included_in_price, $amount) { $sql = "INSERT INTO ".TB_PREF."debtor_trans_tax_details (debtor_trans_no, debtor_trans_type, tax_type_id, rate, included_in_price, amount) VALUES ($debtor_trans_no, $debtor_trans_type, $tax_type_id, $rate, $included_in_price, $amount)"; - - db_query($sql, "The debtor transaction tax detail could not be added"); + + db_query($sql, "The debtor transaction tax detail could not be added"); } //---------------------------------------------------------------------------------------- @@ -90,9 +57,10 @@ function add_customer_trans_tax_detail_item($debtor_trans_type, $debtor_trans_no function get_customer_trans_tax_details($debtor_trans_type, $debtor_trans_no) { $sql = "SELECT ".TB_PREF."debtor_trans_tax_details.*, ".TB_PREF."tax_types.name AS tax_type_name - FROM ".TB_PREF."debtor_trans_tax_details,".TB_PREF."tax_types + FROM ".TB_PREF."debtor_trans_tax_details,".TB_PREF."tax_types WHERE debtor_trans_no=$debtor_trans_no - AND debtor_trans_type=$debtor_trans_type + AND debtor_trans_type=$debtor_trans_type + AND amount != 0 AND ".TB_PREF."tax_types.id = ".TB_PREF."debtor_trans_tax_details.tax_type_id"; return db_query($sql, "The debtor transaction tax details could not be queried"); @@ -105,10 +73,34 @@ function void_customer_trans_tax_details($type, $type_no) $sql = "UPDATE ".TB_PREF."debtor_trans_tax_details SET amount=0 WHERE debtor_trans_no=$type_no AND debtor_trans_type=$type"; - + db_query($sql, "The debtor transaction tax details could not be voided"); } //---------------------------------------------------------------------------------------- +function write_customer_trans_detail_item($debtor_trans_type, $debtor_trans_no, $stock_id, $description, + $quantity, $unit_price, $unit_tax, $discount_percent, $std_cost, $line_id=0) +{ + if ($line_id!=0) + $sql = "UPDATE ".TB_PREF."debtor_trans_details SET + stock_id=".db_escape($stock_id).", + description=".db_escape($description).", + quantity=$quantity, + unit_price=$unit_price, + unit_tax=$unit_tax, + discount_percent=$discount_percent, + standard_cost=$std_cost WHERE + id=$line_id"; + else + $sql = "INSERT INTO ".TB_PREF."debtor_trans_details (debtor_trans_no, + debtor_trans_type, stock_id, description, quantity, unit_price, + unit_tax, discount_percent, standard_cost) + VALUES ($debtor_trans_no, $debtor_trans_type, ".db_escape($stock_id). + ", ".db_escape($description).", + $quantity, $unit_price, $unit_tax, $discount_percent, $std_cost)"; + + db_query($sql, "The debtor transaction detail could not be written"); +} + ?> \ No newline at end of file diff --git a/sales/includes/db/custalloc_db.inc b/sales/includes/db/custalloc_db.inc index 0a1c78f2..9dfae6e8 100644 --- a/sales/includes/db/custalloc_db.inc +++ b/sales/includes/db/custalloc_db.inc @@ -2,14 +2,14 @@ //---------------------------------------------------------------------------------------- -function add_cust_allocation($amount, $trans_type_from, $trans_no_from, +function add_cust_allocation($amount, $trans_type_from, $trans_no_from, $trans_type_to, $trans_no_to) { $sql = "INSERT INTO ".TB_PREF."cust_allocations ( - amt, date_alloc, - trans_type_from, trans_no_from, trans_no_to, trans_type_to) + amt, date_alloc, + trans_type_from, trans_no_from, trans_no_to, trans_type_to) VALUES ($amount, Now(), $trans_type_from, $trans_no_from, $trans_no_to, $trans_type_to)"; - + db_query($sql, "A customer allocation could not be added to the database"); } @@ -26,11 +26,12 @@ function delete_cust_allocation($trans_id) function get_DebtorTrans_allocation_balance($trans_type, $trans_no) { - $sql = "SELECT (ov_amount+ov_gst+ov_freight-ov_discount-alloc) AS BalToAllocate + + $sql = "SELECT (ov_amount+ov_gst+ov_freight+ov_freight_tax-ov_discount-alloc) AS BalToAllocate FROM ".TB_PREF."debtor_trans WHERE trans_no=$trans_no AND type=$trans_type"; $result = db_query($sql,"calculate the allocation"); - $myrow = db_fetch_row($result); - + $myrow = db_fetch_row($result); + return $myrow[0]; } @@ -55,26 +56,26 @@ function void_cust_allocations($type, $type_no) function clear_cust_alloctions($type, $type_no) { // clear any allocations for this transaction - $sql = "SELECT * FROM ".TB_PREF."cust_allocations - WHERE (trans_type_from=$type AND trans_no_from=$type_no) + $sql = "SELECT * FROM ".TB_PREF."cust_allocations + WHERE (trans_type_from=$type AND trans_no_from=$type_no) OR (trans_type_to=$type AND trans_no_to=$type_no)"; $result = db_query($sql, "could not void debtor transactions for type=$type and trans_no=$type_no"); - + while ($row = db_fetch($result)) { $sql = "UPDATE ".TB_PREF."debtor_trans SET alloc=alloc - " . $row['amt'] . " - WHERE (type= " . $row['trans_type_from'] . " AND trans_no=" . $row['trans_no_from'] . ") + WHERE (type= " . $row['trans_type_from'] . " AND trans_no=" . $row['trans_no_from'] . ") OR (type=" . $row['trans_type_to'] . " AND trans_no=" . $row['trans_no_to'] . ")"; - db_query($sql, "could not clear allocation"); + db_query($sql, "could not clear allocation"); } - + // remove any allocations for this transaction - $sql = "DELETE FROM ".TB_PREF."cust_allocations - WHERE (trans_type_from=$type AND trans_no_from=$type_no) + $sql = "DELETE FROM ".TB_PREF."cust_allocations + WHERE (trans_type_from=$type AND trans_no_from=$type_no) OR (trans_type_to=$type AND trans_no_to=$type_no)"; - - db_query($sql, "could not void debtor transactions for type=$type and trans_no=$type_no"); + + db_query($sql, "could not void debtor transactions for type=$type and trans_no=$type_no"); } //------------------------------------------------------------------------------------------------------------- @@ -82,38 +83,40 @@ function clear_cust_alloctions($type, $type_no) function get_allocatable_from_cust_transactions($customer_id, $settled) { $settled_sql = ""; - if (!$settled) + if (!$settled) { - $settled_sql = " AND round(ABS(ov_amount+ov_gst+ov_freight+ov_discount)-alloc,6) > 0"; + $settled_sql = " AND (round(ov_amount+ov_gst+ov_freight+ov_freight_tax-ov_discount-alloc,6) > 0)"; } - $cust_sql = ""; if ($customer_id != null) - $cust_sql = " AND ".TB_PREF."debtor_trans.debtor_no = $customer_id"; - - return get_customer_transactions("round(ABS(ov_amount+ov_gst+ov_freight+ov_discount)-alloc,6) <= 0 AS settled", - "(type=" . systypes::cust_payment(). " OR type=11 OR type=2) AND (".TB_PREF."debtor_trans.ov_amount < 0) " . $settled_sql . $cust_sql); + $cust_sql = " AND ".TB_PREF."debtor_trans.debtor_no = $customer_id"; + + return get_customer_transactions("round(ov_amount+ov_gst+ov_freight+ov_freight_tax+ov_discount-alloc,6) <= 0 AS settled", + "(type=12 OR type=11 OR type=2) AND (".TB_PREF."debtor_trans.ov_amount > 0) " . $settled_sql . $cust_sql); } //------------------------------------------------------------------------------------------------------------- function get_allocatable_to_cust_transactions($customer_id, $trans_no=null, $type=null) -{ - if ($trans_no != null and $type != null) +{ + if ($trans_no != null and $type != null) { - return get_customer_transactions("amt", "".TB_PREF."debtor_trans.trans_no = ".TB_PREF."cust_allocations.trans_no_to + return get_customer_transactions("amt", "".TB_PREF."debtor_trans.trans_no = ".TB_PREF."cust_allocations.trans_no_to AND ".TB_PREF."debtor_trans.type = ".TB_PREF."cust_allocations.trans_type_to AND ".TB_PREF."cust_allocations.trans_no_from=$trans_no - AND ".TB_PREF."cust_allocations.trans_type_from=$type - AND ".TB_PREF."debtor_trans.debtor_no=$customer_id", - "".TB_PREF."cust_allocations"); - } - else + AND ".TB_PREF."cust_allocations.trans_type_from=$type + AND ".TB_PREF."debtor_trans.debtor_no=$customer_id", + "".TB_PREF."cust_allocations"); + } + else { - return get_customer_transactions(null, "round(ABS(ov_amount+ov_gst+ov_freight+ov_discount)-alloc,6) > 0 + return get_customer_transactions(null, "round(ov_amount+ov_gst+ov_freight+ov_freight_tax+ov_discount-alloc,6) > 0 AND ".TB_PREF."debtor_trans.type != " . systypes::cust_payment() . " + AND ".TB_PREF."debtor_trans.type != " . systypes::bank_deposit() . " + AND ".TB_PREF."debtor_trans.type != 11 + AND ".TB_PREF."debtor_trans.type != 13 AND ".TB_PREF."debtor_trans.debtor_no=$customer_id"); - } + } } diff --git a/sales/includes/db/customers_db.inc b/sales/includes/db/customers_db.inc index 9915071a..30cf7b87 100644 --- a/sales/includes/db/customers_db.inc +++ b/sales/includes/db/customers_db.inc @@ -2,76 +2,29 @@ function get_customer_details($customer_id, $to=null) { - + if ($to == null) $todate = date("Y-m-d"); - else + else $todate = date2sql($to); $past1 = get_company_pref('past_due_days'); $past2 = 2 * $past1; // removed - debtor_trans.alloc from all summations - + + $value = "IF(".TB_PREF."debtor_trans.type=11 OR ".TB_PREF."debtor_trans.type=12 OR ".TB_PREF."debtor_trans.type=2, + -1, 1) *". + "(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + " + .TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + " + .TB_PREF."debtor_trans.ov_discount)"; + $due = "IF (".TB_PREF."debtor_trans.type=10,".TB_PREF."debtor_trans.due_date,".TB_PREF."debtor_trans.tran_date)"; $sql = "SELECT ".TB_PREF."debtors_master.name, ".TB_PREF."debtors_master.curr_code, ".TB_PREF."payment_terms.terms, ".TB_PREF."debtors_master.credit_limit, ".TB_PREF."credit_status.dissallow_invoices, ".TB_PREF."credit_status.reason_description, - Sum(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount) AS Balance, - - Sum(IF (".TB_PREF."payment_terms.days_before_due > 0, - CASE WHEN (TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date)) >= ".TB_PREF."payment_terms.days_before_due - THEN - ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount - ELSE 0 END, - - CASE WHEN TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."debtor_trans.tran_date, - INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - - DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= 0 - THEN - ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount - ELSE - 0 - END - - )) AS Due, - - Sum(IF (".TB_PREF."payment_terms.days_before_due > 0, - CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) > ".TB_PREF."payment_terms.days_before_due - AND TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) >= (".TB_PREF."payment_terms.days_before_due + $past1) - THEN - ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount - ELSE - 0 - END, - - CASE WHEN (TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."debtor_trans.tran_date, - INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - - DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= $past1) - THEN - ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount - ELSE - 0 - END - - )) AS Overdue1, - - Sum(IF (".TB_PREF."payment_terms.days_before_due > 0, - CASE WHEN TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) > ".TB_PREF."payment_terms.days_before_due - AND TO_DAYS('$todate') - TO_DAYS(".TB_PREF."debtor_trans.tran_date) >= (".TB_PREF."payment_terms.days_before_due + $past2) - THEN - ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount - ELSE - 0 - END, - - CASE WHEN (TO_DAYS('$todate') - TO_DAYS(DATE_ADD(DATE_ADD(".TB_PREF."debtor_trans.tran_date, - INTERVAL 1 MONTH), INTERVAL (".TB_PREF."payment_terms.day_in_following_month - - DAYOFMONTH(".TB_PREF."debtor_trans.tran_date)) DAY)) >= $past2) - THEN - ".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount - ELSE - 0 - END - - )) AS Overdue2 + Sum(".$value.") AS Balance, + + Sum(IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= 0,$value,0)) AS Due, + Sum(IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= $past1,$value,0)) AS Overdue1, + Sum(IF ((TO_DAYS('$todate') - TO_DAYS($due)) >= $past2,$value,0)) AS Overdue2 FROM ".TB_PREF."debtors_master, ".TB_PREF."payment_terms, @@ -83,6 +36,7 @@ function get_customer_details($customer_id, $to=null) AND ".TB_PREF."debtors_master.credit_status = ".TB_PREF."credit_status.id AND ".TB_PREF."debtors_master.debtor_no = $customer_id AND ".TB_PREF."debtor_trans.tran_date <= '$todate' + AND ".TB_PREF."debtor_trans.type <> 13 AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."debtor_trans.debtor_no GROUP BY @@ -93,66 +47,74 @@ function get_customer_details($customer_id, $to=null) ".TB_PREF."debtors_master.credit_limit, ".TB_PREF."credit_status.dissallow_invoices, ".TB_PREF."credit_status.reason_description"; - $result = db_query($sql,"The customer details could not be retrieved"); - + if (db_num_rows($result) == 0) { - + /*Because there is no balance - so just retrieve the header information about the customer - the choice is do one query to get the balance and transactions for those customers who have a balance and two queries for those who don't have a balance OR always do two queries - I opted for the former */ - + $nil_balance = true; - + $sql = "SELECT ".TB_PREF."debtors_master.name, ".TB_PREF."debtors_master.curr_code, ".TB_PREF."debtors_master.debtor_no, ".TB_PREF."payment_terms.terms, ".TB_PREF."debtors_master.credit_limit, ".TB_PREF."credit_status.dissallow_invoices, ".TB_PREF."credit_status.reason_description FROM ".TB_PREF."debtors_master, ".TB_PREF."payment_terms, ".TB_PREF."credit_status - + WHERE ".TB_PREF."debtors_master.payment_terms = ".TB_PREF."payment_terms.terms_indicator AND ".TB_PREF."debtors_master.credit_status = ".TB_PREF."credit_status.id AND ".TB_PREF."debtors_master.debtor_no = '$customer_id'"; - + $result = db_query($sql,"The customer details could not be retrieved"); - - } - else + + } + else { $nil_balance = false; } - + $customer_record = db_fetch($result); - + if ($nil_balance == true) { $customer_record["Balance"] = 0; $customer_record["Due"] = 0; $customer_record["Overdue1"] = 0; $customer_record["Overdue2"] = 0; - } - + } + return $customer_record; - + +} + +function get_customer($customer_id) +{ + $sql = "SELECT * FROM ".TB_PREF."debtors_master WHERE debtor_no=$customer_id"; + + $result = db_query($sql, "could not get customer"); + + return db_fetch($result); } function get_customer_name($customer_id) { $sql = "SELECT name FROM ".TB_PREF."debtors_master WHERE debtor_no=$customer_id"; - + $result = db_query($sql, "could not get customer"); - + $row = db_fetch_row($result); - + return $row[0]; } function get_area_name($id) { $sql = "SELECT description FROM ".TB_PREF."areas WHERE area_code=$id"; - + $result = db_query($sql, "could not get sales type"); - + $row = db_fetch_row($result); return $row[0]; } @@ -160,9 +122,9 @@ function get_area_name($id) function get_salesman_name($id) { $sql = "SELECT salesman_name FROM ".TB_PREF."salesman WHERE salesman_code=$id"; - + $result = db_query($sql, "could not get sales type"); - + $row = db_fetch_row($result); return $row[0]; } diff --git a/sales/includes/db/payment_db.inc b/sales/includes/db/payment_db.inc index b5755857..5197a996 100644 --- a/sales/includes/db/payment_db.inc +++ b/sales/includes/db/payment_db.inc @@ -1,63 +1,66 @@ Location +// if src_docs!=0 => credit invoice else credit note +// +function write_credit_note($credit_note, $write_off_acc) { - begin_transaction(); - - $branch_data = get_branch_accounts($credit_items->Branch); - - $credit_items_total = $credit_items->get_items_total($tax_group_id); - - $tax_total = 0; - $taxes = $credit_items->get_taxes($tax_group_id, $charge_freight); - foreach ($taxes as $taxitem) - $tax_total += $taxitem['Value']; - - $credit_no = add_customer_trans(11, $credit_items->customer_id, $credit_items->Branch, - $credit_date, $reference, -($credit_items_total), 0, -$tax_total, -$charge_freight, - $sales_type, 0, $credit_items->ship_via); - - foreach ($credit_items->line_items as $credit_line) - { - - if ($credit_line->quantity > 0) - { - // the functions use qty_dispatched - so until that's fixed make sure it's set - // or KABOOOOM - $credit_line->qty_dispatched = $credit_line->quantity; - - add_gl_trans_credit_order_item($credit_items, $credit_line, $credit_no, $credit_date, - $tax_group_id, $credit_type); - - add_gl_trans_credit_costs($credit_items, $credit_line, $credit_no, $credit_date, - $tax_group_id, $credit_type, $write_off_gl_code, $branch_data); - - } /*quantity credited is more than 0 */ - } /*end of credit_line loop */ - - /*Post credit note transaction to GL credit debtors, - debit freight re-charged and debit sales */ - - add_g_trans_credit_common($credit_items, $credit_no, $credit_date, - $credit_items_total, $charge_freight, $taxes, $tax_total, $branch_data); - - add_comments(11, $credit_no, $credit_date, $memo_); - - add_forms_for_sys_type(11, $credit_no, $credit_items->Location); - - references::save_last($reference, 11); - - commit_transaction(); - - return $credit_no; -} + $credit_invoice = count($credit_note->src_docs) ? key($credit_note->src_docs) : 0; -//---------------------------------------------------------------------------------------- -function credit_invoice($credit_items, $invoice_no, $order_no, - $default_dispatch_date, $credit_type, $tax_group_id, - $charge_freight, $reference, $memo_, $write_off_gl_code) -{ + $credit_date = $credit_note->document_date; + $tax_group_id = $credit_note->tax_group_id; + + $trans_no = $credit_note->trans_no; + if (is_array($trans_no)) { + $trans_no = key($trans_no); + } + + $credit_type = $write_off_acc == 0 ? 'Return' : 'Writeoff'; + begin_transaction(); - - $branch_data = get_branch_accounts($credit_items->Branch); - - $invoice_alloc_balance = get_DebtorTrans_allocation_balance(10, $invoice_no); - - $invoice_items_total = $credit_items->get_items_total_dispatch($tax_group_id); - - $tax_total = 0; - $taxes = $credit_items->get_taxes($tax_group_id, $charge_freight); - foreach ($taxes as $taxitem) - $tax_total += $taxitem['Value']; - - $allocate_amount = 0; - - if ($invoice_alloc_balance > 0) - { /*the invoice is not already fully allocated */ - - if ($invoice_alloc_balance > ($invoice_items_total + $charge_freight + $tax_total)) - { - - $allocate_amount = $invoice_items_total + $charge_freight + $tax_total; - } - else - { /*the balance left to allocate is less than the credit note value */ - $allocate_amount = $invoice_alloc_balance; - } - update_debtor_trans_allocation(10, $invoice_no, $allocate_amount); + $company_data = get_company_prefs(); + $branch_data = get_branch_accounts($credit_note->Branch); + + $credit_note_total = $credit_note->get_items_total_dispatch(); + $freight_tax = $credit_note->get_shipping_tax(); + + $taxes = $credit_note->get_taxes(); + + $tax_total = 0; + foreach ($taxes as $taxitem) { + $tax_total += $taxitem['Value']; } + if ($credit_note->tax_included == 0) { + $items_added_tax = $tax_total-$freight_tax; + $freight_added_tax = $freight_tax; + } else { + $items_added_tax = 0; + $freight_added_tax = 0; + } + // 2006-06-14. If the Customer Branch AR Account is set to a Bank Account, + // the transaction will be settled at once. + if (is_bank_account($branch_data['receivables_account'])) + $alloc = $credit_note_total + $items_added_tax + $credit_note->freight_cost + $freight_added_tax; + else + $alloc = 0; + +// $sales_order=$invoice->order_no; //? +// if (is_array($sales_order)) $sales_order = $sales_order[0]; //? + if (!isset($credit_note->order_no)) + $credit_note->order_no = 0; + /*Now insert the Credit Note into the debtor_trans table with the allocations as calculated above*/ // all amounts in debtor's currency - - $credit_no = add_customer_trans(11, $credit_items->customer_id, $credit_items->Branch, - $default_dispatch_date, $reference, -($invoice_items_total), 0, -$tax_total, - -$charge_freight, $credit_items->default_sales_type, $order_no, - $credit_items->ship_via, "", $allocate_amount); - - /*Now insert the allocation record if > 0 */ - if ($allocate_amount != 0) - { - add_cust_allocation($allocate_amount, 11, $credit_no, 10, $invoice_no); + $credit_no = write_customer_trans(11, $trans_no, $credit_note->customer_id, + $credit_note->Branch, $credit_date, $credit_note->reference, + $credit_note_total, 0, $items_added_tax, + $credit_note->freight_cost, $freight_added_tax, + $credit_note->sales_type, + $credit_note->order_no, $credit_invoice, $credit_note->ship_via, + null, $alloc); // 2008-06-14 extra $alloc + + if ($trans_no==0) { + $credit_note->trans_no = array($credit_no=>0); + set_document_parent($credit_note); + } else { + delete_comments(11, $credit_no); + void_cust_allocations(11, $credit_no); + void_gl_trans(11, $credit_no, true); + void_stock_move(11, $credit_no); + void_customer_trans_tax_details(11, $credit_no); + } + + if ($credit_invoice) { + $invoice_alloc_balance = get_DebtorTrans_allocation_balance(10, $credit_invoice); + update_customer_trans_version(get_parent_type(11), $credit_note->src_docs ); + if ($invoice_alloc_balance > 0) { /*the invoice is not already fully allocated */ + $total = $credit_note_total + $credit_note->freight_cost + + $items_added_tax + $freight_added_tax; + + $allocate_amount = ($invoice_alloc_balance > $total) ? $total : $invoice_alloc_balance; + /*Now insert the allocation record if > 0 */ + if ($allocate_amount != 0) { + update_debtor_trans_allocation(10, $credit_invoice, $allocate_amount); + update_debtor_trans_allocation(11, $credit_no, $allocate_amount); // *** + add_cust_allocation($allocate_amount, 11, $credit_no, 10, $credit_invoice); + } + } + } + + foreach ($credit_note->line_items as $credit_line) { + + if ($credit_invoice && $credit_line->qty_dispatched!=$credit_line->qty_old ) { + update_parent_line(11, $credit_line->id,($credit_line->qty_dispatched + -$credit_line->qty_old)); + } + + $line_taxfree_price = get_tax_free_price_for_item($credit_line->stock_id, $credit_line->price, + 0, $credit_note->tax_included, $credit_note->tax_group_array); + + $line_tax = get_full_price_for_item($credit_line->stock_id, $credit_line->price, + 0, $credit_note->tax_included, $credit_note->tax_group_array) - $line_taxfree_price; + + write_customer_trans_detail_item(11, $credit_no, $credit_line->stock_id, + $credit_line->item_description, $credit_line->qty_dispatched, + $credit_line->line_price(), $line_tax, $credit_line->discount_percent, + $credit_line->standard_cost, $trans_no==0 ? 0: $credit_line->id); + + add_credit_movements_item($credit_note, $credit_line, + $credit_type, $line_taxfree_price+$line_tax, $credit_invoice); + + add_gl_trans_credit_costs($credit_note, $credit_line, $credit_no, + $credit_date, $credit_type, $write_off_acc, $branch_data); + } /*end of credit_line loop */ + + /*Post credit note transaction to GL credit debtors, + debit freight re-charged and debit sales */ + + if (($credit_note_total + $credit_note->freight_cost) != 0) { + + add_gl_trans_customer(11, $credit_no, $credit_date, $branch_data["receivables_account"], 0, 0, + -($credit_note_total + $credit_note->freight_cost + $items_added_tax + $freight_added_tax), + $credit_note->customer_id, + "The total debtor GL posting for the credit note could not be inserted"); + } + + if ($credit_note->freight_cost !=0) { + add_gl_trans_customer(11, $credit_no, $credit_date, $company_data["freight_act"], 0, 0, + $credit_note->get_tax_free_shipping(), $credit_note->customer_id, + "The freight GL posting for this credit note could not be inserted"); + } + + foreach ($taxes as $taxitem) { + if ($taxitem['Value'] != 0) { + + add_customer_trans_tax_detail_item(11, $credit_no, $taxitem['tax_type_id'], + $taxitem['rate'], $credit_note->tax_included, $taxitem['Value']); + + add_gl_trans_customer(11, $credit_no, $credit_date, $taxitem['sales_gl_code'], 0, 0, + $taxitem['Value'], $credit_note->customer_id, + "A tax GL posting for this credit note could not be inserted"); + } + } + + add_comments(11, $credit_no, $credit_date, $credit_note->Comments); + + if ($trans_no == 0) { + references::save_last($credit_note->reference, 11); } - - /* Update sales order details quantity invoiced less this credit quantity. */ - foreach ($credit_items->line_items as $order_line) - { - - if ($order_line->qty_dispatched >0) - { - - // always deduct the credited/returned quantities from the sales order - dispatch_sales_order_item($order_no, $order_line->stock_id, -$order_line->qty_dispatched); - - //if (($_POST['credit_type']=="Return") OR ($_POST['ItemsAction']==1)) - /*{ - $sql = "UPDATE ".TB_PREF."sales_order_details - SET qty_invoiced = qty_invoiced - " . $order_line->qty_dispatched . " - WHERE order_no = " . $order_no . " - AND stk_code = '" . $order_line->stock_id . "'"; - $result = db_query($sql,"The sales order detail record could not be updated for the reduced quantity invoiced"); - }*/ - - /*Now update sales_order_details for the quantity invoiced and the actual dispatch dates. */ - - add_gl_trans_credit_order_item($credit_items, $order_line, $credit_no, - $default_dispatch_date, $tax_group_id, $credit_type, $invoice_no); - - add_gl_trans_credit_costs($credit_items, $order_line, $credit_no, $default_dispatch_date, - $tax_group_id, $credit_type, $write_off_gl_code, $branch_data); - - } /*quantity dispatched is more than 0 */ - } /*end of order_line loop */ - - add_g_trans_credit_common($credit_items, $credit_no, $default_dispatch_date, - $invoice_items_total, $charge_freight, $taxes, $tax_total, $branch_data); - - add_comments(11, $credit_no, $default_dispatch_date, $memo_); - - add_forms_for_sys_type(11, $credit_no); - - references::save_last($reference, 11); commit_transaction(); - + return $credit_no; } //---------------------------------------------------------------------------------------- - -function add_gl_trans_credit_order_item(&$order, &$order_line, $credit_no, $date_, $tax_group_id, - $credit_type, $credited_invoice=0) +// Insert a stock movement coming back in to show the credit note and +// a reversing stock movement to show the write off +// +function add_credit_movements_item(&$credit_note, &$credit_line, + $credit_type, $price, $credited_invoice=0) { - $line_taxfree_price = $order_line->taxfree_price($tax_group_id); - $line_tax = $order_line->full_price() - $line_taxfree_price; - - if ($credit_type == "Return") - { - - /* Insert stock movements for the stock coming back in - with unit cost */ - - $reference = ""; - if ($credited_invoice) - $reference .= "Ex Inv: " . $credited_invoice; - - add_customer_trans_detail_item(11, $credit_no, $order_line->stock_id, - $order_line->item_description, $order->Location, $date_, - $order_line->qty_dispatched, $line_taxfree_price, $line_tax, - $order_line->discount_percent, $reference, $order_line->standard_cost); - - } - elseif ($credit_type == "WriteOff") - { - /*Insert a stock movement coming back in to show the credit note and - a reversing stock movement to show the write off - no mods to location stock records*/ - - $reference = ""; - if ($credited_invoice) - $reference .= "Ex Inv: " . $credited_invoice; - - add_customer_trans_detail_item_writeoff(11, $credit_no, $order_line->stock_id, - $order_line->item_description, $order->Location, $date_, - $order_line->qty_dispatched, $line_taxfree_price, $line_tax, - $order_line->discount_percent, $reference, $order_line->standard_cost); - } -} + + if ($credit_type == "Return") { + + $reference = "Return "; + if ($credited_invoice) { + $reference .= "Ex Inv: " . $credited_invoice; + } + + } elseif ($credit_type == "WriteOff") { + + $reference = "WriteOff "; + if ($credited_invoice) + $reference .= "Ex Inv: " . $credited_invoice; + + add_stock_move_customer(11, $credit_line->stock_id, + key($credit_note->trans_no), $credit_note->Location, + $credit_note->document_date, $reference, -$credit_line->qty_dispatched, + $credit_line->standard_cost, 0, $price, + $credit_line->discount_percent); + + } + add_stock_move_customer(11, $credit_line->stock_id, + key($credit_note->trans_no), $credit_note->Location, + $credit_note->document_date, $reference, $credit_line->qty_dispatched, + $credit_line->standard_cost, 0, $price, + $credit_line->discount_percent); + + } //---------------------------------------------------------------------------------------- -function add_gl_trans_credit_costs($order, $order_line, $credit_no, $date_, $tax_group_id, +function add_gl_trans_credit_costs($order, $order_line, $credit_no, $date_, $credit_type, $write_off_gl_code, &$branch_data) { - $stock_gl_codes = get_stock_gl_code($order_line->stock_id); - - /* insert gl_trans to credit stock and debit cost of sales at standard cost*/ - if ($order_line->standard_cost != 0) - { + $stock_gl_codes = get_stock_gl_code($order_line->stock_id); + $customer = get_customer($order->customer_id); + // 2008-08-01. If there is a Customer Dimension, then override with this, + // else take the Item Dimension (if any) + $dim = ($customer['dimension_id'] != 0 ? $customer["dimension_id"] : $stock_gl_codes["dimension_id"]); + $dim2 = ($customer['dimension2_id'] != 0 ? $customer["dimension2_id"] : $stock_gl_codes["dimension2_id"]); + /* insert gl_trans to credit stock and debit cost of sales at standard cost*/ + if ($order_line->standard_cost != 0) { /*first the cost of sales entry*/ - add_gl_trans_std_cost(11, $credit_no, $date_, $stock_gl_codes["cogs_account"], - $stock_gl_codes["dimension_id"], $stock_gl_codes["dimension2_id"], "", - -($order_line->standard_cost * $order_line->qty_dispatched), - payment_person_types::customer(), $order->customer_id, - "The cost of sales GL posting could not be inserted"); - + add_gl_trans_std_cost(11, $credit_no, $date_, $stock_gl_codes["cogs_account"], + $dim, $dim2, "", -($order_line->standard_cost * $order_line->qty_dispatched), + payment_person_types::customer(), $order->customer_id, + "The cost of sales GL posting could not be inserted"); + /*now the stock entry*/ - if ($credit_type == "WriteOff") - { + if ($credit_type == "WriteOff") { $stock_entry_account = $write_off_gl_code; - } - else - { - $stock_gl_code = get_stock_gl_code($order_line->stock_id); + } else { + $stock_gl_code = get_stock_gl_code($order_line->stock_id); $stock_entry_account = $stock_gl_code["inventory_account"]; } - + add_gl_trans_std_cost(11, $credit_no, $date_, $stock_entry_account, 0, 0, - "", ($order_line->standard_cost * $order_line->qty_dispatched), - payment_person_types::customer(), $order->customer_id, + "", ($order_line->standard_cost * $order_line->qty_dispatched), + payment_person_types::customer(), $order->customer_id, "The stock side (or write off) of the cost of sales GL posting could not be inserted"); - - } /* end of if GL and stock integrated and standard cost !=0 */ - - if ($order_line->price != 0) - { - - $line_taxfree_price = $order_line->taxfree_price($tax_group_id); - $line_tax = $order_line->full_price() - $line_taxfree_price; + + } /* end of if GL and stock integrated and standard cost !=0 */ + + if ($order_line->line_price() != 0) { + + $line_taxfree_price = + get_tax_free_price_for_item($order_line->stock_id, $order_line->price, + 0, $order->tax_included, $order->tax_group_array); + + $line_tax = get_full_price_for_item($order_line->stock_id, $order_line->price, + 0, $order->tax_included, $order->tax_group_array) - $line_taxfree_price; + //Post sales transaction to GL credit sales - - add_gl_trans_customer(11, $credit_no, $date_, $stock_gl_codes["sales_account"], 0, 0, - ($line_taxfree_price * $order_line->qty_dispatched), $order->customer_id, - "The credit note GL posting could not be inserted"); - if ($order_line->discount_percent != 0) - { - - add_gl_trans_customer(11, $credit_no, $date_, $branch_data["sales_discount_account"], 0, 0, - -($line_taxfree_price * $order_line->qty_dispatched * $order_line->discount_percent), - $order->customer_id, - "The credit note discount GL posting could not be inserted"); + // 2008-06-14. If there is a Branch Sales Account, then override with this, + // else take the Item Sales Account + if ($branch_data['sales_account'] != "") + $sales_account = $branch_data['sales_account']; + else + $sales_account = $stock_gl_codes['sales_account']; + add_gl_trans_customer(11, $credit_no, $date_, $sales_account, $dim, $dim2, + ($line_taxfree_price * $order_line->qty_dispatched), $order->customer_id, + "The credit note GL posting could not be inserted"); - } /*end of if discount !=0 */ - } /*end of if sales integrated with debtors */ -} + if ($order_line->discount_percent != 0) { -//---------------------------------------------------------------------------------------- + add_gl_trans_customer(11, $credit_no, $date_, $branch_data["sales_discount_account"], + $dim, $dim2, -($line_taxfree_price * $order_line->qty_dispatched * $order_line->discount_percent), + $order->customer_id, + "The credit note discount GL posting could not be inserted"); -function add_g_trans_credit_common($order, $credit_no, $date_, - $credit_items_total, $freight, $taxes, $tax_total, &$branch_data) -{ - $company_data = get_company_prefs(); - - /*Post credit note transaction to GL credit debtors, - debit freight re-charged and debit sales */ - - if (($credit_items_total + $freight + $tax_total) != 0) - { - - add_gl_trans_customer(11, $credit_no, $date_, $branch_data["receivables_account"], 0, 0, - -($credit_items_total + $freight + $tax_total), $order->customer_id, - "The total debtor GL posting for the credit note could not be inserted"); - } - - if ($freight !=0) - { - add_gl_trans_customer(11, $credit_no, $date_, $company_data["freight_act"], 0, 0, - $freight, $order->customer_id, - "The freight GL posting for this credit note could not be inserted"); - } - - foreach ($taxes as $taxitem) - { - if ($taxitem['Value'] != 0) - { - - add_customer_trans_tax_detail_item(11, $credit_no, $taxitem['tax_type_id'], - $taxitem['rate'], $taxitem['included_in_price'], $taxitem['Value']); - - add_gl_trans_customer(11, $credit_no, $date_, $taxitem['sales_gl_code'], 0, 0, - $taxitem['Value'], $order->customer_id, - "A tax GL posting for this credit note could not be inserted"); - } - } + } /*end of if discount !=0 */ + } /*if line_price!=0 */ } -//---------------------------------------------------------------------------------------- - ?> \ No newline at end of file diff --git a/sales/includes/db/sales_delivery_db.inc b/sales/includes/db/sales_delivery_db.inc new file mode 100644 index 00000000..7c24cb12 --- /dev/null +++ b/sales/includes/db/sales_delivery_db.inc @@ -0,0 +1,162 @@ +trans_no; + if (is_array($trans_no)) $trans_no = key($trans_no); + + begin_transaction(); + + $customer = get_customer($delivery->customer_id); + $delivery_items_total = $delivery->get_items_total_dispatch(); + $freight_tax = $delivery->get_shipping_tax(); + +// mark sales order for concurrency conflicts check + update_sales_order_version($delivery->src_docs); + + $tax_total = 0; + $taxes = $delivery->get_taxes(); // all taxes with freight_tax + + foreach ($taxes as $taxitem) { + $tax_total += $taxitem['Value']; + } + /* Insert/update the debtor_trans */ + $delivery_no = write_customer_trans(13, $trans_no, $delivery->customer_id, + $delivery->Branch, $delivery->document_date, $delivery->reference, + $delivery_items_total, 0, + $delivery->tax_included ? 0 : $tax_total-$freight_tax, + $delivery->freight_cost, + $delivery->tax_included ? 0 : $freight_tax, + $delivery->sales_type, $delivery->order_no, 0, + $delivery->ship_via, $delivery->due_date); + + if ($trans_no == 0) { + $delivery->trans_no = array($delivery_no=>0); + } else { + void_gl_trans(13, $delivery_no, true); + void_stock_move(13, $delivery_no); + delete_comments(13, $delivery_no); + } + + foreach ($delivery->line_items as $delivery_line) { + $line_price = $delivery_line->line_price(); + $line_taxfree_price = get_tax_free_price_for_item($delivery_line->stock_id, + $delivery_line->price, 0, $delivery->tax_included, + $delivery->tax_group_array); + + $line_tax = get_full_price_for_item($delivery_line->stock_id, $delivery_line->price, + 0, $delivery->tax_included, $delivery->tax_group_array) - $line_taxfree_price; + + /* add delivery details for all lines */ + write_customer_trans_detail_item(13, $delivery_no, $delivery_line->stock_id, + $delivery_line->item_description, $delivery_line->qty_dispatched, + $delivery_line->line_price(), $line_tax, + $delivery_line->discount_percent, $delivery_line->standard_cost, + $trans_no ? $delivery_line->id : 0); + + // Now update sales_order_details for the quantity delivered + if ($delivery_line->qty_old != $delivery_line->qty_dispatched) + update_parent_line(13, $delivery_line->id, + $delivery_line->qty_dispatched-$delivery_line->qty_old); + + if ($delivery_line->qty_dispatched != 0) { + add_stock_move_customer(13, $delivery_line->stock_id, $delivery_no, + $delivery->Location, $delivery->document_date, $delivery->reference, + -$delivery_line->qty_dispatched, $delivery_line->standard_cost,1, + $line_price, $delivery_line->discount_percent); + + + $stock_gl_code = get_stock_gl_code($delivery_line->stock_id); + + /* insert gl_trans to credit stock and debit cost of sales at standard cost*/ + if ($delivery_line->standard_cost != 0) { + + /*first the cost of sales entry*/ + // 2008-08-01. If there is a Customer Dimension, then override with this, + // else take the Item Dimension (if any) + $dim = ($customer['dimension_id'] != 0 ? $customer["dimension_id"] : $stock_gl_code["dimension_id"]); + $dim2 = ($customer['dimension2_id'] != 0 ? $customer["dimension2_id"] : $stock_gl_code["dimension2_id"]); + + add_gl_trans_std_cost(13, $delivery_no, + $delivery->document_date, $stock_gl_code["cogs_account"], $dim, $dim2, "", + $delivery_line->standard_cost * $delivery_line->qty_dispatched, + payment_person_types::customer(), $delivery->customer_id, + "The cost of sales GL posting could not be inserted"); + + /*now the stock entry*/ + //$stock_gl_code = get_stock_gl_code($order_line->stock_id); + + add_gl_trans_std_cost(13, $delivery_no, $delivery->document_date, + $stock_gl_code["inventory_account"], 0, 0, "", + (-$delivery_line->standard_cost * $delivery_line->qty_dispatched), + payment_person_types::customer(), $delivery->customer_id, + "The stock side of the cost of sales GL posting could not be inserted"); + + } /* end of if GL and stock integrated and standard cost !=0 */ + + } /*quantity dispatched is more than 0 */ + } /*end of order_line loop */ + + if ($bo_policy == 0) { + // if cancelling any remaining quantities + close_sales_order($delivery->order_no); + } + + // taxes - this is for printing purposes + foreach ($taxes as $taxitem) { + if ($taxitem['Value'] != 0) { + add_customer_trans_tax_detail_item(13, $delivery_no, $taxitem['tax_type_id'], + $taxitem['rate'], $delivery->tax_included, $taxitem['Value']); + } + } + + add_comments(13, $delivery_no, $delivery->document_date, $delivery->Comments); + + if ($trans_no == 0) { + if ($delivery->reference!='auto') + references::save_last($delivery->reference, 13); + } + + commit_transaction(); + + return $delivery_no; +} + +//-------------------------------------------------------------------------------------------------- + +function void_sales_delivery($type, $type_no) +{ + begin_transaction(); + + void_gl_trans($type, $type_no, true); + + // reverse all the changes in the sales order + $items_result = get_customer_trans_details($type, $type_no); + + $order = get_customer_trans_order($type, $type_no); + + if ($order) { + $order_items = get_sales_order_details($order); + while ($row = db_fetch($items_result)) { + $order_line = db_fetch($order_items); + update_parent_line(13, $order_line['id'], -$row['quantity']); + } + } + + // clear details after they've been reversed in the sales order + void_customer_trans_details($type, $type_no); + + void_customer_trans_tax_details($type, $type_no); + + void_cust_allocations($type, $type_no); + + // do this last because other voidings can depend on it + // DO NOT MOVE THIS ABOVE VOIDING or we can end up with trans with alloc < 0 + void_customer_trans($type, $type_no); + + commit_transaction(); +} +?> \ No newline at end of file diff --git a/sales/includes/db/sales_invoice_db.inc b/sales/includes/db/sales_invoice_db.inc index 617abd7f..b3dfd743 100644 --- a/sales/includes/db/sales_invoice_db.inc +++ b/sales/includes/db/sales_invoice_db.inc @@ -1,144 +1,157 @@ trans_no; + if (is_array($trans_no)) + $trans_no = key($trans_no); + + $date_ = $invoice->document_date; + $charge_shipping =$invoice->freight_cost; + begin_transaction(); - + $company_data = get_company_prefs(); - - $branch_data = get_branch_accounts($invoice->Branch); - - $invoice_items_total = $invoice->get_items_total_dispatch($tax_group_id); - - $tax_total = 0; - $taxes = $invoice->get_taxes($tax_group_id, $charge_shipping); - foreach ($taxes as $taxitem) - $tax_total += $taxitem['Value']; - - /*Now insert the debtor_trans */ - - $invoice_no = add_customer_trans(10, $invoice->customer_id, $invoice->Branch, $date_, - $reference, $invoice_items_total, 0, $tax_total, $charge_shipping, - $sales_type, $sales_order, $ship_via, $due_date); - - // If balance of the order cancelled update sales order details quantity. - foreach ($invoice->line_items as $order_line) - { - - if ($order_line->qty_dispatched != 0) - { - - $line_taxfree_price = $order_line->taxfree_price($tax_group_id); - $line_tax = $order_line->full_price() - $line_taxfree_price; - - // Now update sales_order_details for the quantity invoiced - dispatch_sales_order_item($sales_order, $order_line->stock_id, - $order_line->qty_dispatched); - - /* add invoice details and stock movements */ - $memo_ = ""; - - add_customer_trans_detail_item(10, $invoice_no, $order_line->stock_id, - $order_line->item_description, $location, $date_, - -$order_line->qty_dispatched, $line_taxfree_price, $line_tax, - $order_line->discount_percent, $memo_, $order_line->standard_cost); - - $stock_gl_code = get_stock_gl_code($order_line->stock_id); - - /* insert gl_trans to credit stock and debit cost of sales at standard cost*/ - if ($order_line->standard_cost != 0) - { - - /*first the cost of sales entry*/ - add_gl_trans_std_cost(10, $invoice_no, $date_, $stock_gl_code["cogs_account"], - $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], "", - $order_line->standard_cost * $order_line->qty_dispatched, - payment_person_types::customer(), $invoice->customer_id, - "The cost of sales GL posting could not be inserted"); - - /*now the stock entry*/ - //$stock_gl_code = get_stock_gl_code($order_line->stock_id); - - add_gl_trans_std_cost(10, $invoice_no, $date_, $stock_gl_code["inventory_account"], 0, 0, "", - (-$order_line->standard_cost * $order_line->qty_dispatched), - payment_person_types::customer(), $invoice->customer_id, - "The stock side of the cost of sales GL posting could not be inserted"); - - } /* end of if GL and stock integrated and standard cost !=0 */ - - if ($order_line->price != 0) - { - //Post sales transaction to GL credit sales - - add_gl_trans_customer(10, $invoice_no, $date_, $stock_gl_code["sales_account"], - $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], - (-$line_taxfree_price * $order_line->qty_dispatched), - $invoice->customer_id, "The sales price GL posting could not be inserted"); - - if ($order_line->discount_percent != 0) - { - - add_gl_trans_customer(10, $invoice_no, $date_, - $branch_data["sales_discount_account"], $stock_gl_code["dimension_id"], - $stock_gl_code["dimension2_id"], - ($line_taxfree_price * $order_line->qty_dispatched * $order_line->discount_percent), - $invoice->customer_id, "The sales discount GL posting could not be inserted"); - } /*end of if discount !=0 */ - } /*end of if sales integrated with debtors */ + $branch_data = get_branch_accounts($invoice->Branch); - } /*quantity dispatched is more than 0 */ - } /*end of order_line loop */ + $customer = get_customer($invoice->customer_id); + + // offer price values without freight costs + $items_total = $invoice->get_items_total_dispatch(); + $freight_tax = $invoice->get_shipping_tax(); + $delivery_no = $invoice->src_docs; + if (is_array($delivery_no)) + $delivery_no = 0; - if ($bo_policy == 0) - { - // if cancelling any remaining quantities - close_sales_order($sales_order); + update_customer_trans_version(get_parent_type(10), $invoice->src_docs); + + $ov_gst = 0; + $taxes = $invoice->get_taxes(); // all taxes with freight_tax + + foreach ($taxes as $taxitem) { + $ov_gst += $taxitem['Value']; } - /*Post debtors transaction to GL debit debtors, credit freight re-charged and credit sales */ - if (($invoice_items_total + $charge_shipping + $tax_total) != 0) - { - - add_gl_trans_customer(10, $invoice_no, $date_, $branch_data["receivables_account"], 0, 0, - ($invoice_items_total + $charge_shipping + $tax_total), - $invoice->customer_id, "The total debtor GL posting could not be inserted"); + if($invoice->tax_included==0) { + $items_added_tax = $ov_gst-$freight_tax; + $freight_added_tax = $freight_tax; + } else { + $items_added_tax = 0; + $freight_added_tax = 0; } + // 2006-06-14. If the Customer Branch AR Account is set to a Bank Account, + // the transaction will be settled at once. + if (is_bank_account($branch_data['receivables_account'])) + $alloc = $items_total + $items_added_tax + $invoice->freight_cost + $freight_added_tax; + else + $alloc = 0; + + /* Insert/update the debtor_trans */ + $sales_order = $invoice->order_no; + if (is_array($sales_order)) + $sales_order = $sales_order[0]; // assume all crucial SO data are same for every delivery + + $invoice_no = write_customer_trans(10, $trans_no, $invoice->customer_id, + $invoice->Branch, $date_, $invoice->reference, $items_total, 0, + $items_added_tax, $invoice->freight_cost, $freight_added_tax, + $invoice->sales_type, $sales_order, $delivery_no, + $invoice->ship_via, $invoice->due_date, $alloc); // 2008-06-14 extra $alloc + + if ($trans_no == 0) { + $invoice->trans_no = array($invoice_no=>0); + set_document_parent($invoice); + } else { + delete_comments(10, $invoice_no); + void_gl_trans(10, $invoice_no, true); + void_cust_allocations(10, $invoice_no); // ? + void_customer_trans_tax_details(10, $invoice_no); + } + + foreach ($invoice->line_items as $invoice_line) { + + $line_taxfree_price = get_tax_free_price_for_item($invoice_line->stock_id, + $invoice_line->price, 0, $invoice->tax_included, + $invoice->tax_group_array); + + $line_tax = get_full_price_for_item($invoice_line->stock_id, + $invoice_line->price, 0, $invoice->tax_included, + $invoice->tax_group_array) - $line_taxfree_price; + + write_customer_trans_detail_item(10, $invoice_no, $invoice_line->stock_id, + $invoice_line->item_description, $invoice_line->qty_dispatched, + $invoice_line->line_price(), $line_tax, $invoice_line->discount_percent, + $invoice_line->standard_cost, + $trans_no ? $invoice_line->id : 0); + + // Update delivery items for the quantity invoiced + if ($invoice_line->qty_old != $invoice_line->qty_dispatched) + update_parent_line(10, $invoice_line->id, ($invoice_line->qty_dispatched-$invoice_line->qty_old)); + + if ($invoice_line->qty_dispatched != 0) { + $stock_gl_code = get_stock_gl_code($invoice_line->stock_id); + + if ($invoice_line->line_price() != 0) { + //Post sales transaction to GL credit sales + + // 2008-06-14. If there is a Branch Sales Account, then override with this, + // else take the Item Sales Account + $sales_account = ($branch_data['sales_account'] != "" ? $branch_data['sales_account'] : $stock_gl_code['sales_account']); + // 2008-08-01. If there is a Customer Dimension, then override with this, + // else take the Item Dimension (if any) + $dim = ($customer['dimension_id'] != 0 ? $customer["dimension_id"] : $stock_gl_code["dimension_id"]); + $dim2 = ($customer['dimension2_id'] != 0 ? $customer["dimension2_id"] : $stock_gl_code["dimension2_id"]); + add_gl_trans_customer(10, $invoice_no, $date_, $sales_account, $dim, $dim2, + (-$line_taxfree_price * $invoice_line->qty_dispatched), + $invoice->customer_id, "The sales price GL posting could not be inserted"); + + if ($invoice_line->discount_percent != 0) { + + add_gl_trans_customer(10, $invoice_no, $date_, + $branch_data["sales_discount_account"], $dim, $dim2, + ($line_taxfree_price * $invoice_line->qty_dispatched * $invoice_line->discount_percent), + $invoice->customer_id, "The sales discount GL posting could not be inserted"); + } /*end of if discount !=0 */ + } + } /*quantity dispatched is more than 0 */ + } /*end of delivery_line loop */ - if ($charge_shipping != 0) - { - - add_gl_trans_customer(10, $invoice_no, $date_, $company_data["freight_act"], 0, 0, - (-$charge_shipping), $invoice->customer_id, - "The freight GL posting could not be inserted"); + /*Post debtors transaction to GL debit debtors, credit freight re-charged and credit sales */ + if (($items_total + $charge_shipping) != 0) { + add_gl_trans_customer(10, $invoice_no, $date_, $branch_data["receivables_account"], 0, 0, + ($items_total + $charge_shipping + $items_added_tax + $freight_added_tax), + $invoice->customer_id, "The total debtor GL posting could not be inserted"); + } + if ($charge_shipping != 0) { + add_gl_trans_customer(10, $invoice_no, $date_, $company_data["freight_act"], 0, 0, + -$invoice->get_tax_free_shipping(), $invoice->customer_id, + "The freight GL posting could not be inserted"); } - - foreach ($taxes as $taxitem) - { - if ($taxitem['Value'] != 0) - { + // post all taxes + foreach ($taxes as $taxitem) { + if ($taxitem['Value'] != 0) { add_customer_trans_tax_detail_item(10, $invoice_no, $taxitem['tax_type_id'], - $taxitem['rate'], $taxitem['included_in_price'], $taxitem['Value']); - - add_gl_trans_customer(10, $invoice_no, $date_, $taxitem['sales_gl_code'], 0, 0, - (-$taxitem['Value']), $invoice->customer_id, - "A tax GL posting could not be inserted"); - } - } - - add_comments(10, $invoice_no, $date_, $memo_); - - add_forms_for_sys_type(10, $invoice_no, $location); - - references::save_last($reference, 10); - - commit_transaction(); - + $taxitem['rate'], $invoice->tax_included, $taxitem['Value']); + + add_gl_trans_customer(10, $invoice_no, $date_, $taxitem['sales_gl_code'], 0, 0, + (-$taxitem['Value']), $invoice->customer_id, + "A tax GL posting could not be inserted"); + } + } + + add_comments(10, $invoice_no, $date_, $invoice->Comments); + + if ($trans_no == 0) { + references::save_last($invoice->reference, 10); + } + + commit_transaction(); + return $invoice_no; } @@ -147,42 +160,34 @@ function add_sales_invoice(&$invoice, $date_, $due_date, $sales_order, $tax_grou function void_sales_invoice($type, $type_no) { begin_transaction(); - + void_bank_trans($type, $type_no, true); void_gl_trans($type, $type_no, true); - - // for invoices and credits related to invoices, - // reverse all the changes in the sales order + + // reverse all the changes in parent document(s) $items_result = get_customer_trans_details($type, $type_no); - - $order = get_customer_trans_order($type, $type_no); - - if ($order) - { - while ($row = db_fetch($items_result)) - { - dispatch_sales_order_item($order, $row["stock_id"], $row["quantity"]); + + $deliveries = get_parent_trans($type, $type_no); + + if (count($deliveries)) { + $srcdetails = get_customer_trans_details(get_parent_type($type), $deliveries); + while ($row = db_fetch($items_result)) { + $src_line = db_fetch($srcdetails); + update_parent_line(10, $src_line['id'], -$row['quantity']); } } - // clear details after they've been reversed in the sales order void_customer_trans_details($type, $type_no); - - void_customer_trans_tax_details($type, $type_no); - - void_cust_allocations($type, $type_no); - - // do this last because other voidings can depend on it - especially voiding - // DO NOT MOVE THIS ABOVE VOIDING or we can end up with trans with alloc < 0 - void_customer_trans($type, $type_no); - - commit_transaction(); -} - -//-------------------------------------------------------------------------------------------------- + void_customer_trans_tax_details($type, $type_no); + void_cust_allocations($type, $type_no); + // do this last because other voidings can depend on it - especially voiding + // DO NOT MOVE THIS ABOVE VOIDING or we can end up with trans with alloc < 0 + void_customer_trans($type, $type_no); + commit_transaction(); +} ?> \ No newline at end of file diff --git a/sales/includes/db/sales_order_db.inc b/sales/includes/db/sales_order_db.inc index 4f75e6d0..34e4ad9d 100644 --- a/sales/includes/db/sales_order_db.inc +++ b/sales/includes/db/sales_order_db.inc @@ -3,35 +3,35 @@ //---------------------------------------------------------------------------------------- function get_demand_qty($stockid, $location) { - $sql = "SELECT SUM(".TB_PREF."sales_order_details.quantity - ".TB_PREF."sales_order_details.qty_invoiced) AS QtyDemand + $sql = "SELECT SUM(".TB_PREF."sales_order_details.quantity - ".TB_PREF."sales_order_details.qty_sent) AS QtyDemand FROM ".TB_PREF."sales_order_details, ".TB_PREF."sales_orders WHERE ".TB_PREF."sales_order_details.order_no=".TB_PREF."sales_orders.order_no AND ".TB_PREF."sales_orders.from_stk_loc ='$location' AND ".TB_PREF."sales_order_details.stk_code = '$stockid'"; - $TransResult = db_query($sql,"No transactions were returned"); + $TransResult = db_query($sql,"No transactions were returned"); $DemandRow = db_fetch($TransResult); return $DemandRow['QtyDemand']; } function get_demand_asm_qty($stockid, $location) { - $sql = "SELECT SUM((".TB_PREF."sales_order_details.quantity-".TB_PREF."sales_order_details.qty_invoiced)*".TB_PREF."bom.quantity) - AS Dem - FROM ".TB_PREF."sales_order_details, + $sql = "SELECT SUM((".TB_PREF."sales_order_details.quantity-".TB_PREF."sales_order_details.qty_sent)*".TB_PREF."bom.quantity) + AS Dem + FROM ".TB_PREF."sales_order_details, ".TB_PREF."sales_orders, ".TB_PREF."bom, ".TB_PREF."stock_master - WHERE ".TB_PREF."sales_order_details.stk_code=".TB_PREF."bom.parent AND - ".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no AND - ".TB_PREF."sales_orders.from_stk_loc='$location' AND - ".TB_PREF."sales_order_details.quantity-".TB_PREF."sales_order_details.qty_invoiced > 0 AND - ".TB_PREF."bom.component='$stockid' AND - ".TB_PREF."stock_master.stock_id=".TB_PREF."bom.parent AND - ".TB_PREF."stock_master.mb_flag='A'"; - - $TransResult = db_query($sql,"No transactions were returned"); + WHERE ".TB_PREF."sales_order_details.stk_code=".TB_PREF."bom.parent AND + ".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no AND + ".TB_PREF."sales_orders.from_stk_loc='$location' AND + ".TB_PREF."sales_order_details.quantity-".TB_PREF."sales_order_details.qty_sent > 0 AND + ".TB_PREF."bom.component='$stockid' AND + ".TB_PREF."stock_master.stock_id=".TB_PREF."bom.parent AND + ".TB_PREF."stock_master.mb_flag='A'"; + + $TransResult = db_query($sql,"No transactions were returned"); if (db_num_rows($TransResult)==1) { $DemandRow = db_fetch_row($TransResult); @@ -40,36 +40,40 @@ function get_demand_asm_qty($stockid, $location) else $DemandQty = 0.0; - return $DemandQty; + return $DemandQty; } -function add_sales_order($order) +function add_sales_order(&$order) { global $loc_notification, $path_to_root; begin_transaction(); - if ($order->direct_invoice) - $del_date = date2sql($order->orig_order_date); - else - $del_date = date2sql($order->delivery_date); - - $sql = "INSERT INTO ".TB_PREF."sales_orders (debtor_no, branch_code, customer_ref, Comments, ord_date, + $del_date = date2sql($order->due_date); + $order_type = 0; // this is default on new order + $sql = "INSERT INTO ".TB_PREF."sales_orders (type, debtor_no, branch_code, customer_ref, comments, ord_date, order_type, ship_via, deliver_to, delivery_address, contact_phone, contact_email, freight_cost, from_stk_loc, delivery_date) - VALUES ('" . $order->customer_id . "', '" . $order->Branch . "', '". - $order->cust_ref ."','". db_escape($order->Comments) ."','" . - date2sql($order->orig_order_date) . "', '" . - $order->default_sales_type . "', " . - $_POST['ship_via'] .",'" . $order->deliver_to . "', '" . - $order->delivery_address . "', '" . - $order->phone . "', '" . $order->email . "', " . - $order->freight_cost .", '" . $order->Location ."', '" . - $del_date . "')"; + VALUES (" .db_escape($order_type) . "," . db_escape($order->customer_id) . + ", " . db_escape($order->Branch) . ", ". + db_escape($order->cust_ref) .",". + db_escape($order->Comments) .",'" . + date2sql($order->document_date) . "', " . + db_escape($order->sales_type) . ", " . + $_POST['ship_via'] ."," . + db_escape($order->deliver_to) . "," . + db_escape($order->delivery_address) . ", " . + db_escape($order->phone) . ", " . + db_escape($order->email) . ", " . + db_escape($order->freight_cost) .", " . + db_escape($order->Location) .", " . + db_escape($del_date) . ")"; db_query($sql, "order Cannot be Added"); $order_no = db_insert_id(); + $order->trans_no = array($order_no=>0); + if ($loc_notification == 1) { include_once($path_to_root . "/inventory/includes/inventory_db.inc"); @@ -78,43 +82,43 @@ function add_sales_order($order) $st_num = array(); $st_reorder = array(); } - foreach ($order->line_items as $stock_item) + foreach ($order->line_items as $line) { - if ($loc_notification == 1 && is_inventory_item($stock_item->stock_id)) + if ($loc_notification == 1 && is_inventory_item($line->stock_id)) { $sql = "SELECT ".TB_PREF."loc_stock.*, ".TB_PREF."locations.location_name, ".TB_PREF."locations.email FROM ".TB_PREF."loc_stock, ".TB_PREF."locations WHERE ".TB_PREF."loc_stock.loc_code=".TB_PREF."locations.loc_code - AND ".TB_PREF."loc_stock.stock_id = '" . $stock_item->stock_id . "' + AND ".TB_PREF."loc_stock.stock_id = '" . $line->stock_id . "' AND ".TB_PREF."loc_stock.loc_code = '" . $order->Location . "'"; - $res = db_query($sql,"a location could not be retreived"); - $loc = db_fetch($res); + $res = db_query($sql,"a location could not be retreived"); + $loc = db_fetch($res); if ($loc['email'] != "") { - $qoh = get_qoh_on_date($stock_item->stock_id, $order->Location); - $qoh -= get_demand_qty($stock_item->stock_id, $order->Location); - $qoh -= get_demand_asm_qty($stock_item->stock_id, $order->Location); - $qoh -= $stock_item->quantity; + $qoh = get_qoh_on_date($line->stock_id, $order->Location); + $qoh -= get_demand_qty($line->stock_id, $order->Location); + $qoh -= get_demand_asm_qty($line->stock_id, $order->Location); + $qoh -= $line->quantity; if ($qoh < $loc['reorder_level']) { - $st_ids[] = $stock_item->stock_id; - $st_names[] = $stock_item->item_description; + $st_ids[] = $line->stock_id; + $st_names[] = $line->item_description; $st_num[] = $qoh - $loc['reorder_level']; $st_reorder[] = $loc['reorder_level']; } } } + $sql = "INSERT INTO ".TB_PREF."sales_order_details (order_no, stk_code, description, unit_price, quantity, discount_percent) VALUES ("; $sql .= $order_no . - ",'$stock_item->stock_id', '$stock_item->item_description', $stock_item->price, - $stock_item->quantity, - $stock_item->discount_percent)"; + ",".db_escape($line->stock_id).", " + .db_escape($line->item_description).", $line->price, + $line->quantity, + $line->discount_percent)"; db_query($sql, "order Details Cannot be Added"); } /* inserted line items into sales order details */ - add_forms_for_sys_type(systypes::sales_order(), $order_no); - commit_transaction(); if ($loc_notification == 1 && count($st_ids) > 0) @@ -150,34 +154,53 @@ function delete_sales_order($order_no) $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no =" . $order_no; db_query($sql, "order Detail Delete"); - delete_forms_for_systype(systypes::sales_order(), $order_no); - commit_transaction(); } +//---------------------------------------------------------------------------------------- +// Mark changes in sales_order_details +// +function update_sales_order_version($order) +{ + foreach ($order as $so_num => $so_ver) { + $sql= 'UPDATE '.TB_PREF.'sales_orders SET version=version+1 WHERE order_no='. $so_num. + ' AND version='.$so_ver; + db_query($sql, 'Concurrent editing conflict while sales order update'); + } +} + //---------------------------------------------------------------------------------------- -function update_sales_order($order_no, $order) +function update_sales_order($order) { global $loc_notification, $path_to_root; - $del_date = date2sql($order->delivery_date); - $ord_date = date2sql($order->orig_order_date); + $del_date = date2sql($order->due_date); + $ord_date = date2sql($order->document_date); + $order_no = key($order->trans_no); + $version= current($order->trans_no); begin_transaction(); - $sql = "UPDATE ".TB_PREF."sales_orders SET debtor_no = '" . $order->customer_id . "', - branch_code = '" . $order->Branch . "', - customer_ref = '". $order->cust_ref ."', - Comments = '". db_escape($order->Comments) ."', ord_date = '" . $ord_date . "', - order_type = '" . $order->default_sales_type . "', ship_via = " . $order->ship_via .", - deliver_to = '" . $order->deliver_to . "', delivery_address = '" . $order->delivery_address . "', - contact_phone = '" . $order->phone . "', - contact_email = '" . $order->email . "', freight_cost = " . $order->freight_cost .", - from_stk_loc = '" . $order->Location ."', delivery_date = '" . $del_date . "' - WHERE order_no=" . $order_no; - - db_query($sql, "order Cannot be Updated"); + $sql = "UPDATE ".TB_PREF."sales_orders SET type =".$order->so_type." , + debtor_no = " . db_escape($order->customer_id) . ", + branch_code = " . db_escape($order->Branch) . ", + customer_ref = ". db_escape($order->cust_ref) .", + comments = ". db_escape($order->Comments) .", + ord_date = " . db_escape($ord_date) . ", + order_type = " .db_escape($order->sales_type) . ", + ship_via = " . db_escape($order->ship_via) .", + deliver_to = " . db_escape($order->deliver_to) . ", + delivery_address = " . db_escape($order->delivery_address) . ", + contact_phone = " .db_escape($order->phone) . ", + contact_email = " .db_escape($order->email) . ", + freight_cost = " .db_escape($order->freight_cost) .", + from_stk_loc = " .db_escape($order->Location) .", + delivery_date = " .db_escape($del_date). ", + version = ".($version+1)." + WHERE order_no=" . $order_no ." + AND version=".$version; + db_query($sql, "order Cannot be Updated, this can be concurrent edition conflict"); $sql = "DELETE FROM ".TB_PREF."sales_order_details WHERE order_no =" . $order_no; @@ -191,36 +214,46 @@ function update_sales_order($order_no, $order) $st_num = array(); $st_reorder = array(); } - foreach ($order->line_items as $stock_item) + foreach ($order->line_items as $line) { - if ($loc_notification == 1 && is_inventory_item($stock_item->stock_id)) + if ($loc_notification == 1 && is_inventory_item($line->stock_id)) { - $sql = "SELECT ".TB_PREF."loc_stock.*, ".TB_PREF."locations.location_name, ".TB_PREF."locations.email - FROM ".TB_PREF."loc_stock, ".TB_PREF."locations + $sql = "SELECT ".TB_PREF."loc_stock.*, " + .TB_PREF."locations.location_name, " + .TB_PREF."locations.email + FROM ".TB_PREF."loc_stock, " + .TB_PREF."locations WHERE ".TB_PREF."loc_stock.loc_code=".TB_PREF."locations.loc_code - AND ".TB_PREF."loc_stock.stock_id = '" . $stock_item->stock_id . "' - AND ".TB_PREF."loc_stock.loc_code = '" . $order->Location . "'"; - $res = db_query($sql,"a location could not be retreived"); - $loc = db_fetch($res); + AND ".TB_PREF."loc_stock.stock_id = '" . $line->stock_id . "' + AND ".TB_PREF."loc_stock.loc_code = '" . $order->Location . "'"; + $res = db_query($sql,"a location could not be retreived"); + $loc = db_fetch($res); if ($loc['email'] != "") { - $qoh = get_qoh_on_date($stock_item->stock_id, $order->Location); - $qoh -= get_demand_qty($stock_item->stock_id, $order->Location); - $qoh -= get_demand_asm_qty($stock_item->stock_id, $order->Location); - $qoh -= $stock_item->quantity; + $qoh = get_qoh_on_date($line->stock_id, $order->Location); + $qoh -= get_demand_qty($line->stock_id, $order->Location); + $qoh -= get_demand_asm_qty($line->stock_id, $order->Location); + $qoh -= $line->quantity; if ($qoh < $loc['reorder_level']) { - $st_ids[] = $stock_item->stock_id; - $st_names[] = $stock_item->item_description; + $st_ids[] = $line->stock_id; + $st_names[] = $line->item_description; $st_num[] = $qoh - $loc['reorder_level']; $st_reorder[] = $loc['reorder_level']; } } } - - $sql = "INSERT INTO ".TB_PREF."sales_order_details (order_no, stk_code, description, unit_price, quantity, discount_percent, qty_invoiced) VALUES ("; - - $sql .= $order_no . ",'" . $stock_item->stock_id . "','" . $stock_item->item_description . "', " . $stock_item->price . ", " . $stock_item->quantity . ", " . $stock_item->discount_percent . ", " . $stock_item->qty_inv . " )"; + $sql = "INSERT INTO ".TB_PREF."sales_order_details + (order_no, stk_code, description, unit_price, quantity, + discount_percent, qty_sent) + VALUES ("; + $sql .= $order_no . "," + .db_escape($line->stock_id) . "," + .db_escape($line->item_description) . ", " + .db_escape($line->price) . ", " + .db_escape($line->quantity) . ", " + .db_escape($line->discount_percent) . ", " + .db_escape($line->qty_done) ." )"; db_query($sql, "Old order Cannot be Inserted"); @@ -237,7 +270,9 @@ function update_sales_order($order_no, $order) $subject = _("Stocks below Re-Order Level at " . $loc['location_name']); $msg = "\n"; for ($i = 0; $i < count($st_ids); $i++) - $msg .= $st_ids[$i] . " " . $st_names[$i] . ", " . _("Re-Order Level") . ": " . $st_reorder[$i] . ", " . _("Below") . ": " . $st_num[$i] . "\n"; + $msg .= $st_ids[$i] . " " . $st_names[$i] . ", " + . _("Re-Order Level") . ": " . $st_reorder[$i] . ", " + . _("Below") . ": " . $st_num[$i] . "\n"; $msg .= "\n" . _("Please reorder") . "\n\n"; $msg .= $company['coy_name']; $mail->to($to); @@ -249,20 +284,34 @@ function update_sales_order($order_no, $order) //---------------------------------------------------------------------------------------- -function get_sales_order($order_no) +function get_sales_order_header($order_no) { - $sql = "SELECT ".TB_PREF."sales_orders.*, ".TB_PREF."debtors_master.name, ".TB_PREF."debtors_master.curr_code, ".TB_PREF."locations.location_name, - ".TB_PREF."debtors_master.payment_terms, ".TB_PREF."debtors_master.discount, ".TB_PREF."sales_types.sales_type, ".TB_PREF."shippers.shipper_name, - ".TB_PREF."tax_groups.name AS tax_group_name , ".TB_PREF."tax_groups.id AS tax_group_id - FROM ".TB_PREF."sales_orders, ".TB_PREF."debtors_master, ".TB_PREF."sales_types, ".TB_PREF."tax_groups, ".TB_PREF."cust_branch, ".TB_PREF."locations, ".TB_PREF."shippers - WHERE ".TB_PREF."sales_orders.order_type=".TB_PREF."sales_types.id - AND ".TB_PREF."cust_branch.branch_code = ".TB_PREF."sales_orders.branch_code - AND ".TB_PREF."cust_branch.tax_group_id = ".TB_PREF."tax_groups.id - AND ".TB_PREF."sales_orders.debtor_no = ".TB_PREF."debtors_master.debtor_no - AND ".TB_PREF."locations.loc_code = ".TB_PREF."sales_orders.from_stk_loc - AND ".TB_PREF."shippers.shipper_id = ".TB_PREF."sales_orders.ship_via - AND ".TB_PREF."sales_orders.order_no = " . $order_no; - + $sql = "SELECT ".TB_PREF."sales_orders.*, " + .TB_PREF."debtors_master.name, " + .TB_PREF."debtors_master.curr_code, " + .TB_PREF."locations.location_name, " + .TB_PREF."debtors_master.payment_terms, " + .TB_PREF."debtors_master.discount, " + .TB_PREF."sales_types.sales_type, " + .TB_PREF."sales_types.id AS sales_type_id, " + .TB_PREF."sales_types.tax_included, " + .TB_PREF."shippers.shipper_name, " + .TB_PREF."tax_groups.name AS tax_group_name , " + .TB_PREF."tax_groups.id AS tax_group_id + FROM ".TB_PREF."sales_orders, " + .TB_PREF."debtors_master, " + .TB_PREF."sales_types, " + .TB_PREF."tax_groups, " + .TB_PREF."cust_branch, " + .TB_PREF."locations, " + .TB_PREF."shippers + WHERE ".TB_PREF."sales_orders.order_type=".TB_PREF."sales_types.id + AND ".TB_PREF."cust_branch.branch_code = ".TB_PREF."sales_orders.branch_code + AND ".TB_PREF."cust_branch.tax_group_id = ".TB_PREF."tax_groups.id + AND ".TB_PREF."sales_orders.debtor_no = ".TB_PREF."debtors_master.debtor_no + AND ".TB_PREF."locations.loc_code = ".TB_PREF."sales_orders.from_stk_loc + AND ".TB_PREF."shippers.shipper_id = ".TB_PREF."sales_orders.ship_via + AND ".TB_PREF."sales_orders.order_no = " . $order_no ; $result = db_query($sql, "order Retreival"); $num = db_num_rows($result); @@ -281,57 +330,62 @@ function get_sales_order($order_no) //---------------------------------------------------------------------------------------- -function read_sales_order($order_no, &$order, $skip_completed_items=false) +function get_sales_order_details($order_no) { + $sql = "SELECT id, stk_code, unit_price, " + .TB_PREF."sales_order_details.description," + .TB_PREF."sales_order_details.quantity, + discount_percent, + qty_sent as qty_done, " + .TB_PREF."stock_master.units, + ".TB_PREF."stock_master.material_cost + " + .TB_PREF."stock_master.labour_cost + " + .TB_PREF."stock_master.overhead_cost AS standard_cost + FROM ".TB_PREF."sales_order_details, ".TB_PREF."stock_master + WHERE ".TB_PREF."sales_order_details.stk_code = ".TB_PREF."stock_master.stock_id + AND order_no =" . $order_no . " ORDER BY id"; + + return db_query($sql, "Retreive order Line Items"); +} +//---------------------------------------------------------------------------------------- + +function read_sales_order($order_no, &$order) { - $myrow = get_sales_order($order_no); + $myrow = get_sales_order_header($order_no); - $order->customer_id = $myrow["debtor_no"]; - $order->Branch = $myrow["branch_code"]; - $order->customer_name = $myrow["name"]; - $order->cust_ref = $myrow["customer_ref"]; - $order->default_sales_type =$myrow["order_type"]; - $order->sales_type_name =$myrow["sales_type"]; - $order->customer_currency = $myrow["curr_code"]; - $order->default_discount = $myrow["discount"]; + $order->trans_type = 30; + $order->so_type = $myrow["type"]; + $order->trans_no = array($order_no=> $myrow["version"]); - $order->Comments = $myrow["comments"]; + $order->set_customer($myrow["debtor_no"], $myrow["name"], + $myrow["curr_code"], $myrow["discount"]); + + $order->set_branch($myrow["branch_code"], $myrow["tax_group_id"], + $myrow["tax_group_name"], $myrow["contact_phone"], $myrow["contact_email"]); + + $order->set_sales_type($myrow["sales_type_id"], $myrow["sales_type"], + $myrow["tax_included"], 0); // no default price calculations on edit - $order->ship_via = $myrow["ship_via"]; - $order->deliver_to = $myrow["deliver_to"]; - $order->delivery_date = sql2date($myrow["delivery_date"]); - $order->freight_cost = $myrow["freight_cost"]; - $order->delivery_address = $myrow["delivery_address"]; - $order->phone = $myrow["contact_phone"]; - $order->email = $myrow["contact_email"]; - $order->Location = $myrow["from_stk_loc"]; - $order->location_name = $myrow["location_name"]; - $order->orig_order_date = sql2date($myrow["ord_date"]); - - $order->tax_group_name = $myrow["tax_group_name"]; - $order->tax_group_id = $myrow["tax_group_id"]; - - $sql = "SELECT stk_code, unit_price, ".TB_PREF."sales_order_details.description, - ".TB_PREF."sales_order_details.quantity, discount_percent, - qty_invoiced, ".TB_PREF."stock_master.units, - ".TB_PREF."stock_master.material_cost + ".TB_PREF."stock_master.labour_cost + ".TB_PREF."stock_master.overhead_cost AS standard_cost - FROM ".TB_PREF."sales_order_details, ".TB_PREF."stock_master - WHERE ".TB_PREF."sales_order_details.stk_code = ".TB_PREF."stock_master.stock_id - AND order_no =" . $order_no; - - if ($skip_completed_items) - $sql .= " - AND ".TB_PREF."sales_order_details.quantity - ".TB_PREF."sales_order_details.qty_invoiced > 0 "; - - $result = db_query($sql, "Retreive order Line Items"); + $order->set_location($myrow["from_stk_loc"], $myrow["location_name"]); + $order->set_delivery($myrow["ship_via"], $myrow["deliver_to"], + $myrow["delivery_address"], $myrow["freight_cost"]); + + $order->cust_ref = $myrow["customer_ref"]; + $order->sales_type =$myrow["order_type"]; + $order->Comments = $myrow["comments"]; + $order->due_date = sql2date($myrow["delivery_date"]); + $order->document_date = sql2date($myrow["ord_date"]); + + $result = get_sales_order_details($order_no); if (db_num_rows($result) > 0) { - + $line_no=0; while ($myrow = db_fetch($result)) { - $order->add_to_cart($myrow["stk_code"],$myrow["quantity"], + $order->add_to_cart($line_no,$myrow["stk_code"],$myrow["quantity"], $myrow["unit_price"], $myrow["discount_percent"], - $myrow["qty_invoiced"], $myrow["standard_cost"], $myrow["description"]); + $myrow["qty_done"], $myrow["standard_cost"], $myrow["description"], $myrow["id"] ); + $line_no++; } } @@ -340,9 +394,10 @@ function read_sales_order($order_no, &$order, $skip_completed_items=false) //---------------------------------------------------------------------------------------- -function sales_order_has_invoices($order_no) +function sales_order_has_deliveries($order_no) { - $sql = "SELECT COUNT(*) FROM ".TB_PREF."debtor_trans WHERE order_=$order_no"; + $sql = "SELECT SUM(qty_sent) FROM ".TB_PREF. + "sales_order_details WHERE order_no=$order_no"; $result = db_query($sql, "could not query for sales order usage"); @@ -355,22 +410,11 @@ function sales_order_has_invoices($order_no) function close_sales_order($order_no) { - // set the quantity of each item to the already invoiced quantity. this will mark item as closed. + // set the quantity of each item to the already sent quantity. this will mark item as closed. $sql = "UPDATE ".TB_PREF."sales_order_details - SET quantity = qty_invoiced - WHERE order_no = $order_no"; - - db_query($sql, "The sales order detail record could not be updated"); -} - -//---------------------------------------------------------------------------------------- - -function dispatch_sales_order_item($order_no, $stock_id, $qty_dispatched) -{ - $sql = "UPDATE ".TB_PREF."sales_order_details - SET qty_invoiced = qty_invoiced + $qty_dispatched "; - $sql .= " WHERE order_no = $order_no - AND stk_code = '$stock_id'"; + SET quantity = qty_sent, + type = 0, + WHERE order_no = $order_no"; db_query($sql, "The sales order detail record could not be updated"); } @@ -383,21 +427,65 @@ function get_invoice_duedate($debtorno, $invdate) { return Today(); } - $sql = "SELECT ".TB_PREF."debtors_master.debtor_no, ".TB_PREF."debtors_master.payment_terms, ".TB_PREF."payment_terms.* FROM ".TB_PREF."debtors_master, - ".TB_PREF."payment_terms WHERE ".TB_PREF."debtors_master.payment_terms = ".TB_PREF."payment_terms.terms_indicator AND - ".TB_PREF."debtors_master.debtor_no = '$debtorno'"; + $sql = "SELECT ".TB_PREF."debtors_master.debtor_no, ".TB_PREF."debtors_master.payment_terms, ".TB_PREF."payment_terms.* FROM ".TB_PREF."debtors_master, + ".TB_PREF."payment_terms WHERE ".TB_PREF."debtors_master.payment_terms = ".TB_PREF."payment_terms.terms_indicator AND + ".TB_PREF."debtors_master.debtor_no = '$debtorno'"; - $result = db_query($sql,"The customer details could not be retrieved"); - $myrow = db_fetch($result); + $result = db_query($sql,"The customer details could not be retrieved"); + $myrow = db_fetch($result); - if (db_num_rows($result) == 0) - return $invdate; - if ($myrow['day_in_following_month'] > 0) - $duedate = add_days(end_month($invdate), $myrow['day_in_following_month']); + if (db_num_rows($result) == 0) + return $invdate; + if ($myrow['day_in_following_month'] > 0) + $duedate = add_days(end_month($invdate), $myrow['day_in_following_month']); else - $duedate = add_days($invdate, $myrow['days_before_due']); - return $duedate; + $duedate = add_days($invdate, $myrow['days_before_due']); + return $duedate; } +function get_customer_to_order($customer_id) { + + // Now check to ensure this account is not on hold */ + $sql = "SELECT ".TB_PREF."debtors_master.name, " + .TB_PREF."debtors_master.address, " + .TB_PREF."credit_status.dissallow_invoices, " + .TB_PREF."debtors_master.sales_type AS salestype, " + .TB_PREF."sales_types.sales_type, " + .TB_PREF."sales_types.tax_included, " + .TB_PREF."sales_types.factor, " + .TB_PREF."debtors_master.curr_code, " + .TB_PREF."debtors_master.discount + FROM ".TB_PREF."debtors_master, " + .TB_PREF."credit_status, " + .TB_PREF."sales_types + WHERE ".TB_PREF."debtors_master.sales_type=" + .TB_PREF."sales_types.id + AND ".TB_PREF."debtors_master.credit_status=".TB_PREF."credit_status.id + AND ".TB_PREF."debtors_master.debtor_no = '" . $customer_id . "'"; + + $result =db_query($sql,"Customer Record Retreive"); + return db_fetch($result); +} +function get_branch_to_order($customer_id, $branch_id) { + + // the branch was also selected from the customer selection so default the delivery details from the customer branches table cust_branch. The order process will ask for branch details later anyway + $sql = "SELECT ".TB_PREF."cust_branch.br_name, " + .TB_PREF."cust_branch.br_address, " + .TB_PREF."cust_branch.br_post_address, " + .TB_PREF."cust_branch.phone, " + .TB_PREF."cust_branch.email, + default_location, location_name, default_ship_via, " + .TB_PREF."tax_groups.name AS tax_group_name, " + .TB_PREF."tax_groups.id AS tax_group_id + FROM ".TB_PREF."cust_branch, " + .TB_PREF."tax_groups, " + .TB_PREF."locations + WHERE ".TB_PREF."cust_branch.tax_group_id = ".TB_PREF."tax_groups.id + AND ".TB_PREF."locations.loc_code=default_location + AND ".TB_PREF."cust_branch.branch_code='" . $branch_id . "' + AND ".TB_PREF."cust_branch.debtor_no = '" . $customer_id . "'"; + + return db_query($sql,"Customer Branch Record Retreive"); +} ?> \ No newline at end of file diff --git a/sales/includes/db/sales_types_db.inc b/sales/includes/db/sales_types_db.inc index 96acf4fb..85c83420 100644 --- a/sales/includes/db/sales_types_db.inc +++ b/sales/includes/db/sales_types_db.inc @@ -1,15 +1,16 @@ trans_no); + + if (count($cart->src_docs) == 1) { + + // if this child document has only one parent - update child link + $del_no = key($cart->src_docs); + + $sql = 'UPDATE '.TB_PREF.'debtor_trans SET trans_link = ' . $del_no . + ' WHERE type='.$cart->trans_type.' AND trans_no='. $inv_no ; + db_query($sql, 'Child document link cannot be updated'); + + } + if ($cart->trans_type != 10) return 0; + + // the rest is batch invoice specific + + foreach ($cart->line_items as $line) { + if ($line->quantity != $line->qty_dispatched) { + return 1; // this is partial invoice + } } - + + $sql = 'UPDATE '.TB_PREF.'debtor_trans SET trans_link = ' . $inv_no . + ' WHERE type='.get_parent_type($cart->trans_type).' AND ('; + + $deliveries = array_keys($cart->src_docs); + + foreach ($deliveries as $key=>$del) + $deliveries[$key] = 'trans_no='.$del; + + $sql .= implode(' OR ', $deliveries) . ')'; + db_query($sql, 'Delivery links cannot be updated'); + + return 0; // batch or complete invoice } -//---------------------------------------------------------------------------------------- +//-------------------------------------------------------------------------------------------------- +function get_parent_type($type) +{ + $parent_types = array( 11=>10, 10=>13, 13=>30 ); + return isset($parent_types[$type]) ? $parent_types[$type] : 0; +} + +//-------------------------------------------------------------------------------------------------- +function update_parent_line($doc_type, $line_id, $qty_dispatched) +{ + $doc_type = get_parent_type($doc_type); + +// echo "update line: $line_id, $doc_type, $qty_dispatched"; + if ($doc_type==0) + return false; + else { + if ($doc_type==30) + $sql = "UPDATE ".TB_PREF."sales_order_details + SET qty_sent = qty_sent + $qty_dispatched + WHERE id=$line_id"; + else + $sql = "UPDATE ".TB_PREF."debtor_trans_details + SET qty_done = qty_done + $qty_dispatched + WHERE id=$line_id"; + } + db_query($sql, "The parent document detail record could not be updated"); + return true; +} + +//-------------------------------------------------------------------------------------------------- +// find inventory location for given transaction +// +function get_location(&$cart) +{ + $sql = "SELECT ".TB_PREF."locations.* FROM ".TB_PREF."stock_moves," + .TB_PREF."locations". + " WHERE type=".$cart->trans_type. + " AND trans_no=".key($cart->trans_no). + " AND qty!=0 ". + " AND ".TB_PREF."locations.loc_code=".TB_PREF."stock_moves.loc_code"; + $result = db_query($sql, 'Retreiving inventory location'); + + if (db_num_rows($result)) { + return db_fetch($result); + } + return null; +} +//-------------------------------------------------------------------------------------------------- +// Generic read debtor transaction into cart +// +// $trans_no - array of trans nums; special case trans_no==0 - new doc +// +function read_sales_trans($doc_type, $trans_no, &$cart) +{ + if (!is_array($trans_no) && $trans_no) + $trans_no = array($trans_no); + + $cart->trans_type = $doc_type; + if (!$trans_no) { // new document + $cart->trans_no = $trans_no; + } else { + // read header data from first document + $myrow = get_customer_trans($trans_no[0],$doc_type); + if (count($trans_no)>1) + $cart->trans_no = get_customer_trans_version($doc_type, $trans_no); + else + $cart->trans_no = array($trans_no[0]=>$myrow["version"]); + + $cart->set_sales_type($myrow["tpe"], $myrow["sales_type"], $myrow["tax_included"],0); + + $cart->set_customer($myrow["debtor_no"], $myrow["DebtorName"], + $myrow["curr_code"], $myrow["discount"]); + + $cart->set_branch($myrow["branch_code"], $myrow["tax_group_id"], + $myrow["tax_group_name"], $myrow["phone"], $myrow["email"]); + + $cart->reference = $myrow["reference"]; + $cart->order_no = $myrow["order_"]; + $cart->trans_link = $myrow["trans_link"]; + $cart->due_date = sql2date($myrow["due_date"]); + $cart->document_date = sql2date($myrow["tran_date"]); + + $cart->Comments = ''; + foreach ( $trans_no as $trans ) { + $coms = get_comments($doc_type,$trans); + while($row=db_fetch($coms)) { + $text = $row['memo_']; + if ($text!='') { + if ($cart->Comments!='') + $cart->Comments .= "\n"; + $cart->Comments .= $text; + } + } + } + + // FIX this should be calculated sum() for multiply parents + + $cart->set_delivery($myrow["ship_via"], $myrow["br_name"], + $myrow["br_address"], $myrow["ov_freight"]); + + $location = 0; + $myrow = get_location($cart); // find location from movement + + if($myrow!=null) { + $cart->set_location($myrow['loc_code'], $myrow['location_name']); + } + + $result = get_customer_trans_details($doc_type,$trans_no); + if (db_num_rows($result) > 0) { + for($line_no=0; $myrow = db_fetch($result); $line_no++) { + $cart->add_to_cart($line_no,$myrow["stock_id"],$myrow["quantity"], + $myrow["unit_price"], $myrow["discount_percent"], + $myrow["qty_done"], $myrow["standard_cost"], + $myrow["StockDescription"],$myrow["id"], $myrow["debtor_trans_no"]); + } + } + } // !newdoc + + return true; +} +//---------------------------------------------------------------------------------------- ?> \ No newline at end of file diff --git a/sales/includes/sales_ui.inc b/sales/includes/sales_ui.inc index a8abacab..64045bb1 100644 --- a/sales/includes/sales_ui.inc +++ b/sales/includes/sales_ui.inc @@ -5,4 +5,27 @@ include_once($path_to_root . "/includes/date_functions.inc"); include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/includes/banking.inc"); +//---------------------------------------------------------------------------- +// helper functions for script execution control +// +function processing_start() +{ + processing_end(); + $_SESSION['Processing'] = $_SERVER['PHP_SELF']; +} + +function processing_end() +{ + unset($_SESSION['Processing']); + if ( isset($_SESSION['Items']) ) { + unset($_SESSION['Items']->line_items); + unset($_SESSION['Items']); + } +} + +function processing_active() +{ + return (isset($_SESSION['Processing']) && $_SESSION['Processing']==$_SERVER['PHP_SELF']); +} + ?> \ No newline at end of file diff --git a/sales/includes/ui/sales_credit_ui.inc b/sales/includes/ui/sales_credit_ui.inc index 555a9b3f..fe1e1dbe 100644 --- a/sales/includes/ui/sales_credit_ui.inc +++ b/sales/includes/ui/sales_credit_ui.inc @@ -6,46 +6,78 @@ include_once($path_to_root . "/includes/ui.inc"); function display_credit_header(&$order) { - global $table_style; + global $table_style, $Ajax; start_table("width=80% $table_style"); echo ""; // outer table echo ""; $customer_error = ""; + $change_prices = 0; if (!isset($_POST['customer_id']) && (get_global_customer() != reserved_words::get_all())) $_POST['customer_id'] = get_global_customer(); customer_list_row(_("Customer:"), 'customer_id', null, false, true); - if ($order->customer_id != $_POST['customer_id']) + if ($order->customer_id != $_POST['customer_id'] /*|| $order->sales_type != $_POST['sales_type_id']*/) { // customer has changed // delete all the order items - drastic but necessary because of // change of currency, sales type, etc - $order->clear_items(); +// $order->clear_items(); // clear the branch selection - unset($_POST['branch_id']); +// unset($_POST['branch_id']); + $_POST['branch_id'] = ''; + $Ajax->activate('branch_id'); } - customer_branches_list_row(_("Branch:"), $_POST['customer_id'], 'branch_id', null, false, true, true); + customer_branches_list_row(_("Branch:"), $_POST['customer_id'], + 'branch_id', null, false, true, true); - //if (($_SESSION['Items']->order_no == 0) || - // ($order->customer_id != $_POST['customer_id']) || + //if (($_SESSION['credit_items']->order_no == 0) || + // ($order->customer_id != $_POST['customer_id']) || // ($order->Branch != $_POST['branch_id'])) // $customer_error = get_customer_details_to_order($order, $_POST['customer_id'], $_POST['branch_id']); - if (($order->customer_id != $_POST['customer_id']) || + if (($order->customer_id != $_POST['customer_id']) || ($order->Branch != $_POST['branch_id'])) - $customer_error = get_customer_details_to_order($order, $_POST['customer_id'], $_POST['branch_id']); - + { + + $old_order = (PHP_VERSION<5) ? $order : clone( $order ); + $customer_error = get_customer_details_to_order($order, $_POST['customer_id'], $_POST['branch_id']); + + $_POST['Location'] = $order->Location; + $_POST['deliver_to'] = $order->deliver_to; + $_POST['delivery_address'] = $order->delivery_address; + $_POST['phone'] = $order->phone; + $Ajax->activate('Location'); + $Ajax->activate('deliver_to'); + $Ajax->activate('phone'); + $Ajax->activate('delivery_address'); + // change prices if necessary + // what about discount in template case? + if ($old_order->customer_currency != $order->customer_currency) { + $change_prices = 1; + } + if ($old_order->sales_type != $order->sales_type) { + // || $old_order->default_discount!=$order->default_discount + $_POST['sales_type'] = $order->sales_type; + $Ajax->activate('sales_type_id'); + $change_prices = 1; + } + unset($old_order); + } set_global_customer($_POST['customer_id']); if (!isset($_POST['ref'])) $_POST['ref'] = references::get_next(11); + if ($_SESSION['Items']->trans_no==0) + ref_row(_("Reference").':', 'ref'); + else + label_row(_("Reference").':', $_POST['ref'] ); + - ref_row(_("Reference:"), 'ref'); echo "
"; @@ -64,8 +96,26 @@ function display_credit_header(&$order) echo ""; if (!isset($_POST['sales_type_id'])) - $_POST['sales_type_id'] = $order->default_sales_type; - sales_types_list_row(_("Sales Type"), 'sales_type_id', $_POST['sales_type_id']); + $_POST['sales_type_id'] = $order->sales_type; + sales_types_list_row(_("Sales Type"), 'sales_type_id', $_POST['sales_type_id'], true); + + if ($order->sales_type != $_POST['sales_type_id']) { + $myrow = get_sales_type($_POST['sales_type_id']); + $order->set_sales_type($myrow['id'], $myrow['sales_type'], + $myrow['tax_included'], $myrow['factor']); + $Ajax->activate('sales_type_id'); + $change_prices = 1; + } + + if ($change_prices != 0) { + foreach ($order->line_items as $line_no=>$item) { + $line = &$order->line_items[$line_no]; + $line->price = get_price($line->stock_id, $order->customer_currency, + $order->sales_type, $order->price_factor, $order->document_date); + // $line->discount_percent = $order->default_discount; + } + $Ajax->activate('items_table'); + } label_row(_("Customer Discount:"), ($order->default_discount * 100) . "%"); echo "
"; @@ -75,13 +125,11 @@ function display_credit_header(&$order) echo ""; if (!isset($_POST['OrderDate']) || $_POST['OrderDate'] == "") - $_POST['OrderDate'] = $order->orig_order_date; + $_POST['OrderDate'] = $order->document_date; date_row(_("Date:"), 'OrderDate'); - if (!isset($_POST['tax_group_id']) || $_POST['tax_group_id'] == "") - $_POST['tax_group_id'] = $order->tax_group_id; - tax_groups_list_row(_("Tax Group:"), 'tax_group_id', null, true); + shippers_list_row(_("Shipping Company:"), 'ShipperID', $order->ship_via); echo "
"; @@ -96,125 +144,141 @@ function display_credit_header(&$order) function display_credit_items($title, &$order) { - global $table_style, $path_to_root; + global $table_style, $path_to_root; - display_heading($title); - start_table("$table_style width=90%"); - $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"), - _("Price"), _("Discount %"), _("Total")); - table_header($th); + display_heading($title); + div_start('items_table'); + start_table("$table_style width=90%"); + $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"), + _("Price"), _("Discount %"), _("Total"),''); - $subtotal = 0; - $k = 0; //row colour counter + if (count($order->line_items)) $th[]= ''; - foreach ($order->line_items as $stock_item) - { - - $line_total = $stock_item->quantity * $stock_item->price * (1 - $stock_item->discount_percent); - - if (!isset($_GET['Edit']) || $_GET['Edit'] != $stock_item->stock_id) - { - alt_table_row_color($k); + table_header($th); - label_cell("$stock_item->stock_id"); - label_cell($stock_item->item_description); - qty_cell($stock_item->quantity); - label_cell($stock_item->units); - amount_cell($stock_item->price); + $subtotal = 0; + $k = 0; //row colour counter - amount_cell($stock_item->discount_percent * 100); - amount_cell($line_total); + $id = find_submit('Edit'); - edit_link_cell(SID . "Edit=$stock_item->stock_id"); - delete_link_cell(SID . "Delete=$stock_item->stock_id"); + foreach ($order->line_items as $line_no=>$line) + { + $line_total = round($line->qty_dispatched * $line->price * (1 - $line->discount_percent), + user_price_dec()); - //labelt_cell(get_tax_free_price_for_item($stock_item->stock_id, $line_total, $_POST['tax_group_id'])); + if ( $id != $line_no) + { + alt_table_row_color($k); + + label_cell("$line->stock_id"); + label_cell($line->item_description, "nowrap"); + qty_cell($line->qty_dispatched, false, get_qty_dec($line->stock_id)); + label_cell($line->units); + amount_cell($line->price); + + amount_cell($line->discount_percent * 100); + amount_cell($line_total); + + edit_button_cell("Edit$line_no", _('Edit'), + _('Edit document line')); + edit_button_cell("Delete$line_no", _('Delete'), + _('Remove line from document')); + + end_row(); + } + else + { + credit_edit_item_controls($order, $k, $line_no); + } - end_row(); - } - else - { - credit_edit_item_controls($order, $stock_item->stock_id); - } + $subtotal += $line_total; + } - $subtotal += $line_total; - } + if ($id==-1) + credit_edit_item_controls($order, $k); - if (!isset($_GET['Edit'])) - credit_edit_item_controls($order); + $display_sub_total = price_format($subtotal); + label_row(_("Sub-total"), $display_sub_total, "colspan=6 align=right", "align=right", 2); - $display_sub_total = number_format2($subtotal,user_price_dec()); - label_row(_("Sub-total"), $display_sub_total, "colspan=6 align=right", "align=right"); + if (!isset($_POST['ChargeFreightCost']) OR ($_POST['ChargeFreightCost'] == "")) + $_POST['ChargeFreightCost'] = price_format(0); - if (!isset($_POST['ChargeFreightCost']) OR ($_POST['ChargeFreightCost'] == "")) - $_POST['ChargeFreightCost'] = 0; + amount_cells_ex(_("Shipping"), 'ChargeFreightCost', 8, 8, $_POST['ChargeFreightCost'], "colspan=6 align=right"); + label_cell('', 'colspan=2'); - text_row(_("Shipping"), 'ChargeFreightCost', $_POST['ChargeFreightCost'], 8, 8, "colspan=6 align=right"); + $taxes = $order->get_taxes($_POST['ChargeFreightCost']); - $taxes = $order->get_taxes($_POST['tax_group_id'], $_POST['ChargeFreightCost']); + $tax_total = display_edit_tax_items($taxes, 6, $_SESSION['Items']->tax_included); - $tax_total = display_edit_tax_items($taxes, 6); + $display_total = price_format(($subtotal + $_POST['ChargeFreightCost'] + $tax_total)); - $display_total = number_format2(($subtotal + $_POST['ChargeFreightCost'] + $tax_total), user_price_dec()); - label_row(_("Credit Note Total"), $display_total, "colspan=6 align=right","align=right"); + label_row(_("Credit Note Total"), $display_total, "colspan=6 align=right","class='amount'", 2); end_table(); + div_end(); } //--------------------------------------------------------------------------------- -function credit_edit_item_controls(&$order, $stock_id=null) +function credit_edit_item_controls(&$order, $rowcounter, $line_no=-1) { - start_row(); + global $Ajax; + alt_table_row_color($rowcounter); + $id = find_submit('Edit'); - if (isset($_GET['Edit']) and $stock_id!=null) + if ($line_no!=-1 && $line_no == $id) { - if (!isset($_POST['stock_id'])) - $_POST['stock_id'] = $order->line_items[$stock_id]->stock_id; - if (!isset($_POST['qty']) OR ($_POST['qty']=="")) - $_POST['qty'] = $order->line_items[$stock_id]->quantity; - if (!isset($_POST['price']) OR ($_POST['price']=="")) - $_POST['price'] = $order->line_items[$stock_id]->price; - if (!isset($_POST['Disc']) OR ($_POST['Disc']=="")) - $_POST['Disc'] = ($order->line_items[$stock_id]->discount_percent)*100; - - $_POST['units'] = $order->line_items[$stock_id]->units; - + $_POST['stock_id'] = $order->line_items[$id]->stock_id; + $_POST['qty'] = qty_format($order->line_items[$id]->qty_dispatched, $_POST['stock_id'], $dec); + $_POST['price'] = price_format($order->line_items[$id]->price); + $_POST['Disc'] = percent_format(($order->line_items[$id]->discount_percent)*100); + $_POST['units'] = $order->line_items[$id]->units; hidden('stock_id', $_POST['stock_id']); label_cell($_POST['stock_id']); - label_cell($order->line_items[$stock_id]->item_description); + label_cell($order->line_items[$id]->item_description, "nowrap"); + $Ajax->activate('items_table'); } else { - echo ""; - stock_items_list('stock_id', null, false, true); - echo ""; - - $item_info = get_item_edit_info($_POST['stock_id']); + stock_items_list_cells(null,'stock_id', null, false, true); + if(isset($_POST['_stock_id_update'])) { + $Ajax->activate('price'); + $Ajax->activate('qty'); + $Ajax->activate('units'); + $Ajax->activate('line_total'); + } + $item_info = get_item_edit_info($_POST['stock_id']); $_POST['units'] = $item_info["units"]; + $_POST['qty'] = qty_format(0, $_POST['stock_id'], $dec); + $_POST['price'] = price_format(get_price($_POST['stock_id'], $order->customer_currency, + $order->sales_type, $order->price_factor, $order->document_date)); - $_POST['qty'] = 0; - $_POST['price'] = get_price($_POST['stock_id'], $order->customer_id); // default to the customer's discount % - $_POST['Disc'] = $order->default_discount * 100; + $_POST['Disc'] = percent_format($order->default_discount * 100); } + qty_cells(null, 'qty', $_POST['qty'], null, null, $dec); - text_cells(null, 'qty', $_POST['qty'], 13, 15); label_cell($_POST['units']); - text_cells(null, 'price', null, 13, 15); - text_cells(null, 'Disc', $_POST['Disc'], 7, 5); + amount_cells(null, 'price', null); + small_amount_cells(null, 'Disc', percent_format(0), null, null, user_percent_dec()); + amount_cell($_POST['qty'] * $_POST['price'] * (1 - $_POST['Disc']/100)); - if (isset($_GET['Edit'])) + if ($id!=-1) { - submit_cells('UpdateItem', _("Update")); - submit_cells('CancelItemChanges', _("Cancel")); - } - else + edit_button_cell('UpdateItem', _("Update"), + _('Confirm changes')); + edit_button_cell('CancelItemChanges', _("Cancel"), + _('Cancel changes')); + hidden('line_no', $line_no); + set_focus('qty'); + } + else { - submit_cells('AddItem', _("Add Item"), "colspan=2"); + submit_cells('AddItem', _("Add Item"), "colspan=2", + _('Add new item to document'), true); } end_row(); @@ -225,8 +289,13 @@ function credit_edit_item_controls(&$order, $stock_id=null) function credit_options_controls() { - global $table_style2; + global $table_style2, $Ajax; echo "
"; + +if (isset($_POST['_CreditType_update'])) + $Ajax->activate('options'); + + div_start('options'); start_table("$table_style2"); credit_type_list_row(_("Credit Note Type"), 'CreditType', null, true); @@ -236,11 +305,10 @@ function credit_options_controls() /*if the credit note is a return of goods then need to know which location to receive them into */ if (!isset($_POST['Location'])) - $_POST['Location'] = $_SESSION['credit_items']->Location; + $_POST['Location'] = $_SESSION['Items']->Location; locations_list_row(_("Items Returned to Location"), 'Location', $_POST['Location']); - - } - else + } + else { /* the goods are to be written off to somewhere */ gl_all_accounts_list_row(_("Write off the cost of the items to"), 'WriteOffGLCode', null); @@ -248,6 +316,7 @@ function credit_options_controls() textarea_row(_("Memo"), "CreditText", null, 51, 3); echo ""; + div_end(); } diff --git a/sales/includes/ui/sales_order_ui.inc b/sales/includes/ui/sales_order_ui.inc index ea0c819d..3b0489e3 100644 --- a/sales/includes/ui/sales_order_ui.inc +++ b/sales/includes/ui/sales_order_ui.inc @@ -4,25 +4,19 @@ include_once($path_to_root . "/sales/includes/cart_class.inc"); include_once($path_to_root . "/includes/manufacturing.inc"); //-------------------------------------------------------------------------------- - function add_to_order(&$order, $new_item, $new_item_qty, $price, $discount) { - $already_on_order = 0; foreach ($order->line_items AS $order_item) { - if (strcasecmp($order_item->stock_id, $new_item) == 0) - { - $already_on_order = 1; - display_error(_("For Part :") . $new_item . " " . "This item is already on this order. You can change the quantity ordered of the existing line if necessary."); - } + if (strcasecmp($order_item->stock_id, $new_item) == 0) + { + display_notification(_("For Part :") . $new_item . " " . _("This item is already on this order. You have been warned.")); + break; + } } - - if ($already_on_order != 1) - { - $order->add_to_cart ($new_item, $new_item_qty, $price, $discount); - } /* end of if not already on the order */ + $order->add_to_cart (count($order->line_items),$new_item, $new_item_qty, $price, $discount); } //--------------------------------------------------------------------------------- @@ -30,69 +24,46 @@ function add_to_order(&$order, $new_item, $new_item_qty, $price, $discount) function get_customer_details_to_order(&$order, $customer_id, $branch_id) { $ret_error = ""; - // Now check to ensure this account is not on hold */ - $sql = "SELECT ".TB_PREF."debtors_master.name, ".TB_PREF."debtors_master.address, ".TB_PREF."credit_status.dissallow_invoices, - ".TB_PREF."debtors_master.sales_type AS salestype, ".TB_PREF."sales_types.sales_type, ".TB_PREF."debtors_master.curr_code, - ".TB_PREF."debtors_master.discount - FROM ".TB_PREF."debtors_master, ".TB_PREF."credit_status, ".TB_PREF."sales_types - WHERE ".TB_PREF."debtors_master.sales_type=".TB_PREF."sales_types.id - AND ".TB_PREF."debtors_master.credit_status=".TB_PREF."credit_status.id - AND ".TB_PREF."debtors_master.debtor_no = '" . $customer_id . "'"; - - $result =db_query($sql,"Customer Record Retreive"); - $myrow = db_fetch($result); + $myrow = get_customer_to_order($customer_id); - $order->customer_id = $customer_id; - $order->Branch = $branch_id; - $order->customer_name = $myrow['name']; + $name = $myrow['name']; if ($myrow['dissallow_invoices'] == 1) $ret_error = _("The selected customer account is currently on hold. Please contact the credit control personnel to discuss."); - if (!isset($_POST['branch_id']) || $_POST['branch_id'] == "") - { - $ret_error = _("The selected customer does not have any branches. Please create at least one branch."); - unset($_POST['branch_id']); - $order->Branch = ""; - } + $deliver = $myrow['address']; // in case no delivery address. + + $order->set_customer($customer_id, $name, $myrow['curr_code'], $myrow['discount']); - # the sales type determines the price list to be used by default - $order->default_sales_type = $myrow['salestype']; - $order->sales_type_name = $myrow['sales_type']; - $order->customer_currency = $myrow['curr_code']; - $order->default_discount = $myrow['discount']; - $deliver = $myrow['address']; // in case no deliveraddress. + // the sales type determines the price list to be used by default + $order->set_sales_type($myrow['salestype'], $myrow['sales_type'], $myrow['tax_included'], + $myrow['factor']); - if ($order->Branch != "") +// if ($order->Branch != 0) { - # the branch was also selected from the customer selection so default the delivery details from the customer branches table cust_branch. The order process will ask for branch details later anyway - $sql = "SELECT ".TB_PREF."cust_branch.br_name, ".TB_PREF."cust_branch.br_post_address, phone, email, - default_location, default_ship_via, - ".TB_PREF."tax_groups.name AS tax_group_name, ".TB_PREF."tax_groups.id AS tax_group_id - FROM ".TB_PREF."cust_branch, ".TB_PREF."tax_groups - WHERE ".TB_PREF."cust_branch.tax_group_id = ".TB_PREF."tax_groups.id - AND ".TB_PREF."cust_branch.branch_code='" . $order->Branch . "' - AND ".TB_PREF."cust_branch.debtor_no = '" . $order->customer_id . "'"; - - $result = db_query($sql,"Customer Branch Record Retreive"); - - if (db_num_rows($result) == 0) - { - return _("The selected customer and branch are not valid, or the customer does not have any branches."); - } - - $myrow = db_fetch($result); - $order->deliver_to = $myrow["br_name"]; - $order->delivery_address = $myrow["br_post_address"]; - if (strlen($order->delivery_address) <= 1) - $order->delivery_address = $deliver; - $order->phone = $myrow["phone"]; - $order->email = $myrow["email"]; - $order->Location = $myrow["default_location"]; - $order->ship_via = $myrow["default_ship_via"]; - $order->tax_group_name = $myrow["tax_group_name"]; - $order->tax_group_id = $myrow["tax_group_id"]; + $result = get_branch_to_order($customer_id, $branch_id); + + if (db_num_rows($result) == 0) + { + return _("The selected customer and branch are not valid, or the customer does not have any branches."); + } + + $myrow = db_fetch($result); + + $order->set_branch($branch_id, $myrow["tax_group_id"], + $myrow["tax_group_name"], $myrow["phone"], $myrow["email"]); + + $address = $myrow["br_post_address"]; + + if (strlen($address) <= 1) // if branch has no address + $address = $deliver; // set sales order address + + $order->set_location($myrow["default_location"], $myrow["location_name"]); + $order->set_delivery($myrow["default_ship_via"], $myrow["br_name"], + $address); + if ($order->trans_type == 10) + $order->due_date = get_invoice_duedate($customer_id, $order->document_date); } return $ret_error; @@ -102,137 +73,208 @@ function get_customer_details_to_order(&$order, $customer_id, $branch_id) function display_order_summary($title, &$order, $editable_items=false) { - global $table_style, $path_to_root; + global $table_style, $path_to_root, $Ajax; display_heading($title); + + div_start('items_table'); start_table("$table_style colspan=7 width=90%"); $th = array(_("Item Code"), _("Item Description"), _("Quantity"), - _("Unit"), _("Price"), _("Discount %"), _("Total"), "", ""); + _("Delivered"), + _("Unit"), _("Price"), _("Discount %"), _("Total"), ""); + + if ($order->trans_no == 0) { + unset( $th[3] ); + } + + if (count($order->line_items)) + $th[]= ''; + table_header($th); $total = 0; $k = 0; //row colour counter - foreach ($order->line_items as $stock_item) + $id = find_submit('Edit'); + foreach ($order->line_items as $line_no=>$stock_item) { - $line_total = $stock_item->quantity * $stock_item->price * (1 - $stock_item->discount_percent); + $line_total = round($stock_item->qty_dispatched * $stock_item->price * (1 - $stock_item->discount_percent), + user_price_dec()); - if (!isset($_GET['Edit'])) - $id = ""; - else - $id = $_GET['Edit']; - if (!$editable_items || $id != $stock_item->stock_id) + + if (!$editable_items || $id != $line_no) { - alt_table_row_color($k); + alt_table_row_color($k); view_stock_status_cell($stock_item->stock_id); - label_cell($stock_item->item_description); - qty_cell($stock_item->quantity); - label_cell($stock_item->units); - amount_cell($stock_item->price); + label_cell($stock_item->item_description, "nowrap" ); + qty_cell($stock_item->qty_dispatched, false, get_qty_dec($stock_item->stock_id)); + + if ($order->trans_no!=0) + amount_cell($stock_item->qty_done); + + label_cell($stock_item->units); + amount_cell($stock_item->price); - amount_cell($stock_item->discount_percent * 100); - amount_cell($line_total); + percent_cell($stock_item->discount_percent * 100); + amount_cell($line_total); - if ($editable_items) - { - edit_link_cell(SID . "Edit=$stock_item->stock_id"); - delete_link_cell(SID . "Delete=$stock_item->stock_id"); - } - end_row(); + if ($editable_items) + { + edit_button_cell("Edit$line_no", _("Edit"), + _('Edit document line')); + edit_button_cell("Delete$line_no", _("Delete"), + _('Remove line from document')); + } + end_row(); } else { - sales_order_item_controls($order, $stock_item->stock_id); + sales_order_item_controls($order, $k, $line_no); } $total += $line_total; } - if (!isset($_GET['Edit']) && $editable_items) - sales_order_item_controls($order); + if ($id==-1 && $editable_items) + sales_order_item_controls($order, $k); - $display_total = number_format2($total,user_price_dec()); - label_row(_("Total Excluding Tax/Shipping"), $display_total, "colspan=6 align=right", - "nowrap align=right"); + $display_total = price_format($total); + label_row(_("Total Excluding Shipping"), $display_total, "colspan=6 align=right", + "nowrap align=right", 2); end_table(); + div_end(); } // ------------------------------------------------------------------------------ function display_order_header(&$order, $editable, $date_text, $display_tax_group=false) { - global $table_style; + global $table_style, $Ajax; + start_table("width=80% $table_style"); echo ""; // outer table echo ""; $customer_error = ""; + $change_prices = 0; if (isset($order) && !$editable) { // can't change the customer/branch if items already received on this order echo $order->customer_name . " - " . $order->deliver_to; + hidden('customer_id', $order->customer_id); + hidden('branch_id', $order->Branch); + hidden('sales_type', $order->sales_type); } else { - - if (!isset($_POST['customer_id']) && (get_global_customer() != reserved_words::get_all())) - $_POST['customer_id'] = get_global_customer(); - customer_list_row(_("Customer:"), 'customer_id', null, false, true); - if (!isset($_POST['delivery_date'])) - { - if ($order->direct_invoice) - $_POST['delivery_date'] = $_SESSION['Items']->delivery_date = - get_invoice_duedate($_POST['customer_id'], $_POST['OrderDate']); - else - $_POST['delivery_date'] = $_SESSION['Items']->delivery_date = - add_days($_POST['OrderDate'], 10); - } - if ($order->customer_id != $_POST['customer_id']) + if ($order->customer_id != get_post('customer_id', -1)) { // customer has changed - - // delete all the order items - drastic but necessary because of - // change of currency, sales type, etc - $order->clear_items(); - // clear the branch selection - unset($_POST['branch_id']); - } - - customer_branches_list_row(_("Branch:"), $_POST['customer_id'], 'branch_id', null, false, true, true); - - if (!isset($_POST['branch_id'])) - $_POST['branch_id'] = ""; - //set_global_customer($_POST['customer_id']); - if (($order->customer_id != $_POST['customer_id']) || - ($order->Branch != $_POST['branch_id'])) - $customer_error = get_customer_details_to_order($order, $_POST['customer_id'], $_POST['branch_id']); + $_POST['branch_id'] = ''; + $Ajax->activate('branch_id'); + } + customer_branches_list_row(_("Branch:"), + $_POST['customer_id'], 'branch_id', null, false, true, true); + if (!isset($_POST['branch_id']) || $_POST['branch_id'] == "") + { + // ignore errors on customer search box call + if ($_POST['customer_id'] == '') + $customer_error = _("No customer found for entered text."); + else + $customer_error = _("The selected customer does not have any branches. Please create at least one branch."); + unset($_POST['branch_id']); + $order->Branch = 0; + } else + { + if( ($order->customer_id != get_post('customer_id', -1)) || + ($order->Branch != get_post('branch_id', -1))) { + + $old_order = (PHP_VERSION<5) ? $order : clone( $order ); + $customer_error = get_customer_details_to_order($order, $_POST['customer_id'], $_POST['branch_id']); + + $_POST['Location'] = $order->Location; + $_POST['deliver_to'] = $order->deliver_to; + $_POST['delivery_address'] = $order->delivery_address; + $_POST['phone'] = $order->phone; + if ($order->trans_type == 10) + { + $_POST['delivery_date'] = $order->due_date; + $Ajax->activate('delivery_date'); + } + $Ajax->activate('Location'); + $Ajax->activate('deliver_to'); + $Ajax->activate('phone'); + $Ajax->activate('delivery_address'); + // change prices if necessary + // what about discount in template case? + if ($old_order->customer_currency != $order->customer_currency) { + $change_prices = 1; + } + if ($old_order->sales_type != $order->sales_type) { + // || $old_order->default_discount!=$order->default_discount + $_POST['sales_type'] = $order->sales_type; + $Ajax->activate('sales_type'); + $change_prices = 1; + } + unset($old_order); + } + } // changed branch set_global_customer($_POST['customer_id']); } + + if ($_SESSION['Items']->trans_type!=30) { + ref_cells(_("Reference").':', 'ref', _('Reference number unique for this document type'), null, ''); + } + echo "
"; echo ""; // outer table if (!is_company_currency($order->customer_currency)) { + div_start('currency'); echo ""; label_row(_("Customer Currency:"), $order->customer_currency); exchange_rate_display($order->customer_currency, get_company_currency(), - ($editable?$_POST['OrderDate']:$order->orig_order_date), $editable); + ($editable ? $_POST['OrderDate'] : $order->document_date), $editable); echo "
"; + div_end(); echo ""; // outer table } + echo ""; - label_row(_("Sales Type:"), $order->sales_type_name); + if($editable) { + $str = sales_types_list_row(_("Price List"), 'sales_type', null, true); + } else { + label_row(_("Price List:"), $order->sales_type_name); + } + if ($order->sales_type != $_POST['sales_type']) { + $myrow = get_sales_type($_POST['sales_type']); + $order->set_sales_type($myrow['id'], $myrow['sales_type'], + $myrow['tax_included'], $myrow['factor']); + $Ajax->activate('sales_type'); + $change_prices = 1; + } + + if ($change_prices != 0) { + foreach ($order->line_items as $line_no=>$item) { + $line = &$order->line_items[$line_no]; + $line->price = get_price($line->stock_id, $order->customer_currency, + $order->sales_type, $order->price_factor, $order->document_date); + // $line->discount_percent = $order->default_discount; + } + $Ajax->activate('items_table'); + } label_row(_("Customer Discount:"), ($order->default_discount * 100) . "%"); echo "
"; @@ -242,30 +284,22 @@ function display_order_header(&$order, $editable, $date_text, $display_tax_group if ($editable) { - if (!isset($_POST['OrderDate']) || $_POST['OrderDate'] == "") - $_POST['OrderDate'] = $order->orig_order_date; + if (!isset($_POST['OrderDate']) || $_POST['OrderDate'] == "") + $_POST['OrderDate'] = $order->document_date; - date_row($date_text, 'OrderDate'); + date_row($date_text, 'OrderDate', + _('Date of order receive')); } else { - label_row($date_text, $order->orig_order_date); - hidden('OrderDate', $order->orig_order_date); + label_row($date_text, $order->document_date); + hidden('OrderDate', $order->document_date); } if ($display_tax_group) { - if ($editable) - { - if (!isset($_POST['tax_group_id'])) - $_POST['tax_group_id'] = $_SESSION['Items']->tax_group_id; - tax_groups_list_row(_("Tax Group:"), 'tax_group_id', $_POST['tax_group_id'], true); - } - else - { - label_row(_("Tax Group:"), $order->tax_group_name); - hidden('tax_group_id', $_SESSION['Items']->tax_group_id); - } + label_row(_("Tax Group:"), $order->tax_group_name); + hidden('tax_group_id', $_SESSION['Items']->tax_group_id); } echo ""; @@ -278,67 +312,78 @@ function display_order_header(&$order, $editable, $date_text, $display_tax_group //-------------------------------------------------------------------------------- -function sales_order_item_controls(&$order, $stock_id=null) +function sales_order_item_controls(&$order, &$rowcounter, $line_no=-1) { - start_row(); - - if (isset($_GET['Edit']) && $stock_id != null) - { - if (!isset($_POST['stock_id'])) - $_POST['stock_id'] = $order->line_items[$_GET['Edit']]->stock_id; - if (!isset($_POST['qty']) || ($_POST['qty'] == "")) - $_POST['qty'] = $order->line_items[$_GET['Edit']]->quantity; - if (!isset($_POST['price']) || ($_POST['price'] == "")) - $_POST['price'] = $order->line_items[$_GET['Edit']]->price; - if (!isset($_POST['Disc']) || ($_POST['Disc'] == "")) - $_POST['Disc'] = ($order->line_items[$_GET['Edit']]->discount_percent)*100; + global $Ajax; - $_POST['units'] = $order->line_items[$_GET['Edit']]->units; + alt_table_row_color($rowcounter); + $id = find_submit('Edit'); + if ($line_no!=-1 && $line_no == $id) + { + $_POST['stock_id'] = $order->line_items[$id]->stock_id; + $dec = get_qty_dec($_POST['stock_id']); + $_POST['qty'] = number_format2($order->line_items[$id]->qty_dispatched, $dec); + $_POST['price'] = price_format($order->line_items[$id]->price); + $_POST['Disc'] = percent_format($order->line_items[$id]->discount_percent*100); + $units = $order->line_items[$id]->units; hidden('stock_id', $_POST['stock_id']); label_cell($_POST['stock_id']); - label_cell($order->line_items[$stock_id]->item_description); + label_cell($order->line_items[$line_no]->item_description, "nowrap"); + $Ajax->activate('items_table'); } else { - global $no_item_list; - if ($no_item_list) - { - echo "\n"; - stock_items_list('stock_id', null, false, true); - echo "\n"; - } - else - { - text_cells(null, "StockID2", "", 12, 10, "", "", "onkeyup='recalcAccounts();' onKeyDown='if(event.keyCode==13) event.keyCode=9;' onblur='return setAccount(0, true);'"); - stock_items_list_cells(null, 'stock_id', null, false, false, "onchange='return setAccount(1, true)'"); + stock_items_list_cells(null,'stock_id', null, false, true); + if(isset($_POST['_stock_id_update'])) { + $Ajax->activate('price'); + $Ajax->activate('units'); + $Ajax->activate('qty'); + $Ajax->activate('line_total'); } + $item_info = get_item_edit_info($_POST['stock_id']); - $_POST['units'] = $item_info["units"]; + $units = $item_info["units"]; + $dec = get_qty_dec($_POST['stock_id']); + $_POST['qty'] = number_format2(1, $dec); - $_POST['qty'] = 1; - $_POST['price'] = get_price ($_POST['stock_id'], $order->customer_id); + $_POST['price'] = price_format(get_price ($_POST['stock_id'], + $order->customer_currency, $order->sales_type, + $order->price_factor, $order->document_date)); // default to the customer's discount % - $_POST['Disc'] = $order->default_discount * 100; + $_POST['Disc'] = percent_format($order->default_discount * 100); + + } + + qty_cells(null, 'qty', $_POST['qty'], null, null, $dec); + + if ($order->trans_no!=0) { + qty_cell($line_no==-1 ? 0 :$order->line_items[$line_no]->qty_done, false, $dec); } - text_cells(null, 'qty', $_POST['qty'], 12, 15); + label_cell($units, '', 'units'); - label_cell($_POST['units']); - amount_cells(null, 'price'); - text_cells(null, 'Disc', $_POST['Disc'], 7, 5); + $str = amount_cells(null, 'price'); + + small_amount_cells(null, 'Disc', percent_format($_POST['Disc']), null, null, user_percent_dec()); $line_total = $_POST['qty'] * $_POST['price'] * (1 - $_POST['Disc'] / 100); - amount_cell($line_total); - if (isset($_GET['Edit'])) + amount_cell($line_total, false, '','line_total'); + + if ($id!=-1) { - submit_cells('UpdateItem', _("Update")); - submit_cells('CancelItemChanges', _("Cancel")); + edit_button_cell('UpdateItem', _("Update"), + _('Confirm changes')); + edit_button_cell('CancelItemChanges', _("Cancel"), + _('Cancel changes')); + hidden('LineNo', $line_no); + set_focus('qty'); } else { - submit_cells('AddItem', _("Add Item"), "colspan=2"); + submit_cells('AddItem', _("Add Item"), "colspan=2", + _('Add new item to document'), true); } end_row(); @@ -349,50 +394,60 @@ function sales_order_item_controls(&$order, $stock_id=null) function display_delivery_details(&$order) { global $table_style2; - - if ($order->direct_invoice) + if ($order->trans_type==10) + { + $title = _("Delivery Details"); + $delname = _("Due Date").':'; + } + elseif ($order->trans_type==13) { $title = _("Invoice Delivery Details"); - $delname = _("Due Date"); + $delname = _("Invoice before").':'; } else { $title = _("Order Delivery Details"); - $delname = _("Required Delivery Date:"); + $delname = _("Required Delivery Date").':'; } display_heading($title); - echo "
"; - start_table("$table_style2 width=90%"); - echo ""; // outer table + echo "
"; + start_table("$table_style2 width=90%"); + echo ""; // outer table - echo ""; - locations_list_row(_("Deliver from Location:"), 'Location', $order->Location); + echo "
"; - date_row($delname, 'delivery_date', $order->delivery_date, 0, 0, 0); + locations_list_row(_("Deliver from Location:"), 'Location', $order->Location); - text_row(_("Deliver To:"), 'deliver_to', $order->deliver_to, 40, 40); + date_row($delname, 'delivery_date', + _('Enter requested day of delivery'), $order->due_date, 0, 0, 0); - textarea_row(_("Address:"), 'delivery_address', $order->delivery_address, 35, 5); - text_row(_("Contact Phone Number:"), 'phone', $order->phone, 25, 25); + text_row(_("Deliver To:"), 'deliver_to', $order->deliver_to, 40, 40, + _('Additional identifier for delivery e.g. name of receiving person')); - echo "
"; + textarea_row(_("Address:"), 'delivery_address', $order->delivery_address, 35, 5, + _('Delivery address. Default is address of customer branch')); + text_row(_("Contact Phone Number:"), 'phone', $order->phone, 25, 25, + _('Phone number of ordering person. Defaults to branch phone number')); - echo ""; // outer table + echo ""; - echo ""; + echo ""; - end_table(1); // outer table + echo "
"; // outer table + + echo ""; - text_row(_("Customer Reference:"), 'cust_ref', $order->cust_ref, 25, 25); - textarea_row(_("Comments:"), "Comments", $order->Comments, 31, 5); + text_row(_("Customer Reference:"), 'cust_ref', $order->cust_ref, 25, 25, + _('Customer reference number for this order (if any)')); + textarea_row(_("Comments:"), "Comments", $order->Comments, 31, 5); - text_row(_("Shipping Charge:"), 'freight_cost', $order->freight_cost, 10, 10); + small_amount_row(_("Shipping Charge:"), 'freight_cost', + price_format(get_post('freight_cost',0))); - shippers_list_row(_("Shipping Company:"), 'ship_via', $order->ship_via); - if ($_SESSION['Items']->direct_invoice) - textarea_row(_("Memo"), 'InvoiceText', null, 31, 3); - echo "
"; + shippers_list_row(_("Shipping Company:"), 'ship_via', $order->ship_via); - echo "
"; + + echo ""; + end_table(1); // outer table } ?> \ No newline at end of file diff --git a/sales/inquiry/customer_allocation_inquiry.php b/sales/inquiry/customer_allocation_inquiry.php index 07aad1e3..2770fb22 100644 --- a/sales/inquiry/customer_allocation_inquiry.php +++ b/sales/inquiry/customer_allocation_inquiry.php @@ -31,14 +31,14 @@ start_row(); customer_list_cells(_("Select a customer: "), 'customer_id', $_POST['customer_id'], true); -date_cells(_("from:"), 'TransAfterDate', null, -30); -date_cells(_("to:"), 'TransToDate', null, 1); +date_cells(_("from:"), 'TransAfterDate', '', null, -30); +date_cells(_("to:"), 'TransToDate', '', null, 1); cust_allocations_list_cells(_("Type:"), 'filterType', null); check_cells(" " . _("show settled:"), 'showSettled', null); -submit_cells('Refresh Inquiry', _("Search")); +submit_cells('RefreshInquiry', _("Search"),'',_('Refresh Inquiry'), true); set_global_customer($_POST['customer_id']); @@ -55,14 +55,16 @@ function get_transactions() $sql = "SELECT ".TB_PREF."debtor_trans.*, ".TB_PREF."debtors_master.name AS CustName, ".TB_PREF."debtors_master.curr_code AS CustCurrCode, - (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount) + (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + " + .TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_discount) AS TotalAmount, ".TB_PREF."debtor_trans.alloc AS Allocated, ((".TB_PREF."debtor_trans.type = 10) AND ".TB_PREF."debtor_trans.due_date < '" . date2sql(Today()) . "') AS OverDue FROM ".TB_PREF."debtor_trans, ".TB_PREF."debtors_master WHERE ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."debtor_trans.debtor_no - AND (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount != 0) + AND (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + " + .TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_discount != 0) AND ".TB_PREF."debtor_trans.tran_date >= '$data_after' AND ".TB_PREF."debtor_trans.tran_date <= '$date_to'"; @@ -71,30 +73,38 @@ function get_transactions() if (isset($_POST['filterType']) && $_POST['filterType'] != reserved_words::get_all()) { - if ($_POST['filterType'] == '1' || $_POST['filterType'] == '2') + if ($_POST['filterType'] == '1' || $_POST['filterType'] == '2') { $sql .= " AND ".TB_PREF."debtor_trans.type = 10 "; - } - elseif ($_POST['filterType'] == '3') + } + elseif ($_POST['filterType'] == '3') { $sql .= " AND ".TB_PREF."debtor_trans.type = " . systypes::cust_payment(); - } - elseif ($_POST['filterType'] == '4') + } + elseif ($_POST['filterType'] == '4') { $sql .= " AND ".TB_PREF."debtor_trans.type = 11 "; } - if ($_POST['filterType'] == '2') + if ($_POST['filterType'] == '2') { $today = date2sql(Today()); $sql .= " AND ".TB_PREF."debtor_trans.due_date < '$today' - AND (round(abs(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount) - ".TB_PREF."debtor_trans.alloc,6) > 0) "; + AND (round(abs(".TB_PREF."debtor_trans.ov_amount + " + .TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + " + .TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_discount) - ".TB_PREF."debtor_trans.alloc,6) > 0) "; } + }else + { + $sql .= " AND ".TB_PREF."debtor_trans.type != 13 "; } - if (!check_value('showSettled')) + + if (!check_value('showSettled')) { - $sql .= " AND (round(abs(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount) - ".TB_PREF."debtor_trans.alloc,6) != 0) "; + $sql .= " AND (round(abs(".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + " + .TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + " + .TB_PREF."debtor_trans.ov_discount) - ".TB_PREF."debtor_trans.alloc,6) != 0) "; } $sql .= " ORDER BY ".TB_PREF."debtor_trans.tran_date"; @@ -106,16 +116,19 @@ function get_transactions() $result = get_transactions(); -if (db_num_rows($result) == 0) +//------------------------------------------------------------------------------------------------ +if(get_post('RefreshInquiry')) { - display_note(_("The selected customer has no transactions for the given dates."), 1, 1); - end_page(); - exit; + $Ajax->activate('doc_tbl'); } - //------------------------------------------------------------------------------------------------ +div_start('doc_tbl'); +if (db_num_rows($result) == 0) +{ + display_note(_("The selected customer has no transactions for the given dates."), 1, 1); +} else { -start_table("$table_style width='80%'"); + start_table("$table_style width='80%'"); if ($_POST['customer_id'] == reserved_words::get_all()) $th = array(_("Type"), _("Number"), _("Reference"), _("Order"), _("Date"), _("Due Date"), @@ -130,14 +143,14 @@ table_header($th); $j = 1; $k = 0; //row colour counter $over_due = false; -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { if ($myrow['OverDue'] == 1 && (abs($myrow["TotalAmount"]) - $myrow["Allocated"] != 0)) { start_row("class='overduebg'"); $over_due = true; - } + } else alt_table_row_color($k); @@ -156,27 +169,26 @@ while ($myrow = db_fetch($result)) if ($myrow["type"] == 10) $due_date_str = sql2date($myrow["due_date"]); - elseif ($myrow["type"] == 11 && $myrow['TotalAmount'] < 0) + elseif ($myrow["type"] == 11 && $myrow['TotalAmount'] > 0) { /*its a credit note which could have an allocation */ $allocations_str = $allocations; - } - elseif ($myrow["type"] == systypes::cust_payment() && - ($myrow['TotalAmount'] + $myrow['Allocated']) < 0) + } + elseif (($myrow["type"] == systypes::cust_payment() || $myrow["type"] == systypes::bank_deposit()) && + ($myrow['TotalAmount'] - $myrow['Allocated']) > 0) { /*its a receipt which could have an allocation*/ $allocations_str = $allocations; - } - elseif ($myrow["type"] == systypes::cust_payment() && $myrow['TotalAmount'] > 0) + } + elseif ($myrow["type"] == systypes::cust_payment() && $myrow['TotalAmount'] < 0) { /*its a negative receipt */ } label_cell(systypes::name($myrow["type"])); - - label_cell(get_customer_trans_view_str($myrow["type"], $myrow["trans_no"])); + label_cell(get_trans_view_str($myrow["type"], $myrow["trans_no"])); label_cell($myrow["reference"]); label_cell($preview_order_str); label_cell(sql2date($myrow["tran_date"]), "nowrap"); @@ -185,8 +197,10 @@ while ($myrow = db_fetch($result)) { label_cell($myrow["CustName"]); label_cell($myrow["CustCurrCode"]); - } - display_debit_or_credit_cells($myrow["TotalAmount"]); + } + display_debit_or_credit_cells( + $myrow['type']==11 || $myrow['type']==12 || $myrow['type']==2 ? + -$myrow["TotalAmount"] : $myrow["TotalAmount"]); amount_cell(abs($myrow["Allocated"])); amount_cell(abs($myrow["TotalAmount"]) - $myrow["Allocated"]); label_cell($allocations_str); @@ -203,11 +217,11 @@ while ($myrow = db_fetch($result)) //end of page full new headings if } //end of while loop - end_table(1); if ($over_due) display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'"); - +} +div_end(); end_page(); ?> diff --git a/sales/inquiry/customer_inquiry.php b/sales/inquiry/customer_inquiry.php index 52119435..8632c837 100644 --- a/sales/inquiry/customer_inquiry.php +++ b/sales/inquiry/customer_inquiry.php @@ -6,13 +6,14 @@ include_once($path_to_root . "/includes/session.inc"); include_once($path_to_root . "/sales/includes/sales_ui.inc"); include_once($path_to_root . "/sales/includes/sales_db.inc"); +include_once($path_to_root . "/reporting/includes/reporting.inc"); $js = ""; if ($use_popup_windows) $js .= get_js_open_window(900, 500); if ($use_date_picker) $js .= get_js_date_picker(); -page(_("Customer Inquiry"), false, false, "", $js); +page(_("Customer Transactions"), false, false, "", $js); if (isset($_GET['customer_id'])) @@ -28,19 +29,20 @@ if (!isset($_POST['customer_id'])) $_POST['customer_id'] = get_global_customer(); start_table("class='tablestyle_noborder'"); +start_row(); -customer_list_cells(_("Select a customer: "), 'customer_id', $_POST['customer_id'], true); +customer_list_cells(_("Select a customer: "), 'customer_id', null, true); -date_cells(_("From:"), 'TransAfterDate', null, -30); -date_cells(_("To:"), 'TransToDate', null, 1); +date_cells(_("From:"), 'TransAfterDate', '', null, -30); +date_cells(_("To:"), 'TransToDate', '', null, 1); if (!isset($_POST['filterType'])) $_POST['filterType'] = 0; -cust_allocations_list_cells(null, 'filterType', $_POST['filterType']); - -submit_cells('Refresh Inquiry', _("Search")); +cust_allocations_list_cells(null, 'filterType', $_POST['filterType'], true); +submit_cells('RefreshInquiry', _("Search"),'',_('Refresh Inquiry'), true); +end_row(); end_table(); end_form(); @@ -63,11 +65,11 @@ function display_customer_summary($customer_record) $nowdue = "1-" . $past1 . " " . _('Days'); $pastdue1 = $past1 + 1 . "-" . $past2 . " " . _('Days'); $pastdue2 = _('Over') . " " . $past2 . " " . _('Days'); - + start_table("width=80% $table_style"); $th = array(_("Currency"), _("Terms"), _("Current"), $nowdue, $pastdue1, $pastdue2, _("Total Balance")); - table_header($th); + table_header($th); start_row(); label_cell($customer_record["curr_code"]); @@ -91,7 +93,8 @@ function get_transactions() $sql = "SELECT ".TB_PREF."debtor_trans.*, ".TB_PREF."debtors_master.name AS CustName, ".TB_PREF."debtors_master.curr_code AS CustCurrCode, - (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount) + (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + " + .TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_discount) AS TotalAmount, ".TB_PREF."debtor_trans.alloc AS Allocated, ((".TB_PREF."debtor_trans.type = 10) AND (".TB_PREF."debtor_trans.due_date < '" . date2sql(Today()) . "') @@ -109,83 +112,127 @@ function get_transactions() if ($_POST['filterType'] != reserved_words::get_all()) { - if ($_POST['filterType'] == '1') + if ($_POST['filterType'] == '1') { $sql .= " AND (".TB_PREF."debtor_trans.type = 10 OR ".TB_PREF."debtor_trans.type = 1) "; - } - elseif ($_POST['filterType'] == '2') + } + elseif ($_POST['filterType'] == '2') { $sql .= " AND (".TB_PREF."debtor_trans.type = 10) "; - } - elseif ($_POST['filterType'] == '3') + } + elseif ($_POST['filterType'] == '3') { $sql .= " AND (".TB_PREF."debtor_trans.type = " . systypes::cust_payment() . " OR ".TB_PREF."debtor_trans.type = 2) "; - } - elseif ($_POST['filterType'] == '4') + } + elseif ($_POST['filterType'] == '4') { $sql .= " AND ".TB_PREF."debtor_trans.type = 11 "; } + elseif ($_POST['filterType'] == '5') + { + $sql .= " AND ".TB_PREF."debtor_trans.type = 13 "; + } - if ($_POST['filterType'] == '2') + if ($_POST['filterType'] == '2') { $today = date2sql(Today()); $sql .= " AND ".TB_PREF."debtor_trans.due_date < '$today' - AND (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + ".TB_PREF."debtor_trans.ov_freight + ".TB_PREF."debtor_trans.ov_discount - ".TB_PREF."debtor_trans.alloc > 0) "; + AND (".TB_PREF."debtor_trans.ov_amount + ".TB_PREF."debtor_trans.ov_gst + " + .TB_PREF."debtor_trans.ov_freight_tax + ".TB_PREF."debtor_trans.ov_freight + " + .TB_PREF."debtor_trans.ov_discount - ".TB_PREF."debtor_trans.alloc > 0) "; } } - $sql .= " ORDER BY ".TB_PREF."debtor_trans.tran_date"; + $sql .= " ORDER BY ".TB_PREF."debtor_trans.tran_date DESC, + ".TB_PREF."debtor_trans.type,".TB_PREF."debtor_trans.trans_no "; return db_query($sql,"No transactions were returned"); } //------------------------------------------------------------------------------------------------ -if (($_POST['customer_id'] != "") && ($_POST['customer_id'] != reserved_words::get_all())) +div_start('totals_tbl'); +if ($_POST['customer_id'] != "" && $_POST['customer_id'] != reserved_words::get_all()) { - $customer_record = get_customer_details($_POST['customer_id']); + $customer_record = get_customer_details($_POST['customer_id'], $_POST['TransToDate']); display_customer_summary($customer_record); echo "
"; } - +div_end(); //------------------------------------------------------------------------------------------------ $result = get_transactions(); -if (db_num_rows($result) == 0) +//------------------------------------------------------------------------------------------------ +if(get_post('RefreshInquiry')) { - display_note(_("The selected customer has no transactions for the given dates."), 0, 2); - end_page(); - exit; + $Ajax->activate('trans_tbl'); + $Ajax->activate('totals_tbl'); } - //------------------------------------------------------------------------------------------------ +print_hidden_script(10); -start_table("$table_style width='80%'"); +div_start('trans_tbl'); +if (db_num_rows($result) == 0) +{ + display_note(_("The selected customer has no transactions for the given dates."), 0, 2); +} else { + + start_table("$table_style width='80%'"); -if ($_POST['customer_id'] == reserved_words::get_all()) - $th = array(_("Type"), _("#"), _("Order"), _("Reference"), _("Date"), _("Due Date"), - _("Customer"), _("Branch"), _("Currency"), _("Debit"), _("Credit"), "", ""); -else $th = array(_("Type"), _("#"), _("Order"), _("Reference"), _("Date"), _("Due Date"), - _("Branch"), _("Debit"), _("Credit"), "", ""); -table_header($th); + _("Customer"), _("Branch"), _("Currency"), _("Debit"), _("Credit"), "", "","",""); + + if ($_POST['customer_id'] != reserved_words::get_all()) { + unset($th[6], $th[8]); + } + table_header($th); -$j = 1; -$k = 0; //row colour counter -$over_due = false; -while ($myrow = db_fetch($result)) -{ + + $j = 1; + $k = 0; //row colour counter + $over_due = false; + while ($myrow = db_fetch($result)) + { if ($myrow['OverDue'] == 1) { start_row("class='overduebg'"); $over_due = true; - } + } else alt_table_row_color($k); + $edit_page=''; + $due_date_str = ''; + $credit_me_str = ''; + + switch($myrow['type']) { + case 10: + $due_date_str = sql2date($myrow["due_date"]); + /*Show a link to allow an invoice to be credited */ + // only allow crediting if it's not been totally allocated + if ($myrow["TotalAmount"] - $myrow["Allocated"] > 0) + $credit_me_str = "" . _("Credit This") . ""; + $edit_page= $path_to_root.'/sales/customer_invoice.php?ModifyInvoice=' + . $myrow['trans_no']; + break; + + case 11: + if ($myrow['order_']==0) // free-hand credit note + $edit_page= $path_to_root.'/sales/credit_note_entry.php?ModifyCredit=' + . $myrow['trans_no']; + else // credit invoice + $edit_page= $path_to_root.'/sales/customer_credit_invoice.php?ModifyCredit=' + . $myrow['trans_no']; + break; + + case 13: + $edit_page= $path_to_root.'/sales/customer_delivery.php?ModifyDelivery=' + . $myrow['trans_no']; break; + } + $date = sql2date($myrow["tran_date"]); if ($myrow["order_"] > 0) @@ -195,25 +242,8 @@ while ($myrow = db_fetch($result)) $gl_trans_str = get_gl_view_str_cell($myrow["type"], $myrow["trans_no"]); - $credit_me_str = ""; - - $credit_invoice_str = "" . _("Credit This") . ""; - - $due_date_str = ""; - - if ($myrow["type"] == 10) - $due_date_str = sql2date($myrow["due_date"]); - - if ($myrow["type"] == 10) - { - /*Show a link to allow an invoice to be credited */ - // only allow crediting if it's not been totally allocated - if ($myrow["TotalAmount"] - $myrow["Allocated"] > 0) - $credit_me_str = $credit_invoice_str; - } - $branch_name = ""; - if ($myrow["branch_code"] > 0) + if ($myrow["branch_code"] > 0) { $branch_name = get_branch_name($myrow["branch_code"]); } @@ -232,29 +262,38 @@ while ($myrow = db_fetch($result)) label_cell($branch_name); if ($_POST['customer_id'] == reserved_words::get_all()) label_cell($myrow["CustCurrCode"]); - display_debit_or_credit_cells($myrow["TotalAmount"]); + display_debit_or_credit_cells( + $myrow['type']==11 || $myrow['type']==12 || $myrow['type']==2 ? + -$myrow["TotalAmount"] : $myrow["TotalAmount"]); + echo $gl_trans_str; - if ($credit_me_str != "") - label_cell($credit_me_str, "nowrap"); + label_cell($edit_page=='' ? '' : "" . _('Edit') . ''); + if ($myrow['type'] == 10 || $myrow['type'] == 11) + label_cell(print_document_link($myrow['trans_no'], _("Print"), true, $myrow['type'])); + else + label_cell(""); + if ($credit_me_str != "") + label_cell($credit_me_str, "nowrap"); + else + label_cell(''); end_row(); - $j++; - If ($j == 12) - { - $j = 1; - table_header($th); - } -//end of page full new headings if -} -//end of while loop + $j++; + if ($j == 12) + { + $j = 1; + table_header($th); + } //end of page full new headings if + } //end of transaction while loop -end_table(1); + end_table(1); -if ($over_due) - display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'"); - + if ($over_due) + display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'"); +} +div_end(); end_page(); ?> diff --git a/sales/inquiry/sales_deliveries_view.php b/sales/inquiry/sales_deliveries_view.php new file mode 100644 index 00000000..98d17a74 --- /dev/null +++ b/sales/inquiry/sales_deliveries_view.php @@ -0,0 +1,298 @@ +activate('deliveries_tbl'); +} elseif (get_post('_DeliveryNumber_changed')) +{ + $disable = get_post('DeliveryNumber') !== ''; + + $Ajax->addDisable(true, 'DeliveryAfterDate', $disable); + $Ajax->addDisable(true, 'DeliveryToDate', $disable); + $Ajax->addDisable(true, 'StockLocation', $disable); + $Ajax->addDisable(true, '_SelectStockFromList_edit', $disable); + $Ajax->addDisable(true, 'SelectStockFromList', $disable); + // if search is not empty rewrite table + if ($disable) { + $Ajax->addFocus(true, 'DeliveryNumber'); + } else + $Ajax->addFocus(true, 'DeliveryAfterDate'); + $Ajax->activate('deliveries_tbl'); +} + +//----------------------------------------------------------------------------------- +print_hidden_script(13); + +start_form(false, false, $_SERVER['PHP_SELF'] ."?OutstandingOnly=" . $_POST['OutstandingOnly'] .SID); + +start_table("class='tablestyle_noborder'"); +start_row(); +ref_cells(_("#:"), 'DeliveryNumber', '',null, '', true); +date_cells(_("from:"), 'DeliveryAfterDate', '', null, -30); +date_cells(_("to:"), 'DeliveryToDate', '', null, 1); + +locations_list_cells(_("Location:"), 'StockLocation', null, true); + +stock_items_list_cells(_("Item:"), 'SelectStockFromList', null, true); + +submit_cells('SearchOrders', _("Search"),'',_('Select documents'), true); + +hidden('OutstandingOnly', $_POST['OutstandingOnly']); + +end_row(); + +end_table(); + +//--------------------------------------------------------------------------------------------- + +if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "") && + ($_POST['SelectStockFromList'] != reserved_words::get_all())) +{ + $selected_stock_item = $_POST['SelectStockFromList']; +} +else +{ + unset($selected_stock_item); +} + +//--------------------------------------------------------------------------------------------- +$sql = "SELECT ".TB_PREF."debtor_trans.trans_no, " + .TB_PREF."debtors_master.curr_code, " + .TB_PREF."debtors_master.name, " + .TB_PREF."cust_branch.br_name, " + .TB_PREF."debtor_trans.reference, " + .TB_PREF."debtor_trans.tran_date, " + .TB_PREF."debtor_trans.due_date, " + .TB_PREF."sales_orders.customer_ref, " + .TB_PREF."sales_orders.deliver_to, "; + +$sql .= " Sum(".TB_PREF."debtor_trans_details.quantity-" + .TB_PREF."debtor_trans_details.qty_done) AS Outstanding, "; + +$sql .= " Sum(".TB_PREF."debtor_trans_details.qty_done) AS Done, "; + +$sql .= "(ov_amount+ov_gst+ov_freight+ov_freight_tax) AS DeliveryValue"; +$sql .=" FROM " + .TB_PREF."sales_orders, " + .TB_PREF."debtor_trans, " + .TB_PREF."debtor_trans_details, " + .TB_PREF."debtors_master, " + .TB_PREF."cust_branch + WHERE " + .TB_PREF."sales_orders.order_no = ".TB_PREF."debtor_trans.order_ AND " + .TB_PREF."debtor_trans.debtor_no = ".TB_PREF."debtors_master.debtor_no + AND ".TB_PREF."debtor_trans.type = 13 + AND ".TB_PREF."debtor_trans_details.debtor_trans_no = ".TB_PREF."debtor_trans.trans_no + AND ".TB_PREF."debtor_trans_details.debtor_trans_type = ".TB_PREF."debtor_trans.type + AND ".TB_PREF."debtor_trans.branch_code = ".TB_PREF."cust_branch.branch_code + AND ".TB_PREF."debtor_trans.debtor_no = ".TB_PREF."cust_branch.debtor_no "; + + if ($_POST['OutstandingOnly'] == true) { + $sql .= " AND ".TB_PREF."debtor_trans_details.qty_done < ".TB_PREF."debtor_trans_details.quantity "; + } + +//figure out the sql required from the inputs available +if (isset($_POST['DeliveryNumber']) && $_POST['DeliveryNumber'] != "") +{ +// if ($_POST['DeliveryNumber'] != '*') // TODO paged table + $sql .= " AND ".TB_PREF."debtor_trans.trans_no LIKE '%". $_POST['DeliveryNumber'] ."'"; + $sql .= " GROUP BY ".TB_PREF."debtor_trans.trans_no"; +} +else +{ + + $date_after = date2sql($_POST['DeliveryAfterDate']); + $date_before = date2sql($_POST['DeliveryToDate']); + + $sql .= " AND ".TB_PREF."debtor_trans.tran_date >= '$date_after'"; + $sql .= " AND ".TB_PREF."debtor_trans.tran_date <= '$date_before'"; + + if ($selected_customer != -1) + $sql .= " AND ".TB_PREF."debtor_trans.debtor_no='" . $selected_customer . "' "; + + if (isset($selected_stock_item)) + $sql .= " AND ".TB_PREF."debtor_trans_details.stock_id='". $selected_stock_item ."' "; + + if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all()) + $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_POST['StockLocation'] . "' "; + + $sql .= " GROUP BY ".TB_PREF."debtor_trans.trans_no "; + +} //end no delivery number selected + +$result = db_query($sql,"No deliveries were returned"); + +//----------------------------------------------------------------------------------- +if (isset($_SESSION['Batch'])) +{ + foreach($_SESSION['Batch'] as $trans=>$del) + unset($_SESSION['Batch'][$trans]); + unset($_SESSION['Batch']); +} +if ($result) +{ + /*show a table of the deliveries returned by the sql */ + + div_start('deliveries_tbl'); + + start_table("$table_style colspan=7 width=95%"); + $th = array(_("Delivery #"), _("Customer"), _("Branch"), _("Reference"), _("Delivery Date"), + _("Due By"), _("Delivery Total"), _("Currency"), submit('BatchInvoice','Batch Inv', false), + "", "", ""); + table_header($th); + + $j = 1; + $k = 0; //row colour counter + $overdue_items = false; + while ($myrow = db_fetch($result)) + { + $_SESSION['Batch'][] = array('trans'=>$myrow["trans_no"], + 'cust'=>$myrow["name"],'branch'=>$myrow["br_name"] ); + + $view_page = get_customer_trans_view_str(13, $myrow["trans_no"]); + $formated_del_date = sql2date($myrow["tran_date"]); + $formated_due_date = sql2date($myrow["due_date"]); + $not_closed = $myrow["Outstanding"]!=0; + + // if overdue orders, then highlight as so + + if (date1_greater_date2(Today(), $formated_due_date) && $not_closed ) + { + start_row("class='overduebg'"); + $overdue_items = true; + } + else + { + alt_table_row_color($k); + } + + label_cell($view_page); + label_cell($myrow["name"]); + label_cell($myrow["br_name"]); + label_cell($myrow["reference"]); + label_cell($formated_del_date); + label_cell($formated_due_date); + amount_cell($myrow["DeliveryValue"]); + label_cell($myrow["curr_code"]); + if (!$myrow['Done']) + check_cells(null,'Sel_'. $myrow['trans_no'],0,false); + else + label_cell(""); + if ($_POST['OutstandingOnly'] == true || $not_closed) + { + $modify_page = $path_to_root . "/sales/customer_delivery.php?" . SID . "ModifyDelivery=" . $myrow["trans_no"]; + $invoice_page = $path_to_root . "/sales/customer_invoice.php?" . SID . "DeliveryNumber=" .$myrow["trans_no"]; + label_cell("" . _("Edit") . ""); + label_cell(print_document_link($myrow['trans_no'], _("Print"))); + + label_cell($not_closed ? "" . _("Invoice") . "" : ''); + + } + else + { + label_cell(""); + label_cell(""); + label_cell(""); + } + end_row();; + + $j++; + If ($j == 12) + { + $j = 1; + table_header($th); + } + //end of page full new headings if + } + //end of while loop + + end_table(); + + if ($overdue_items) + display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'"); +div_end(); +} + +echo "
"; +end_form(); + +end_page(); +?> + diff --git a/sales/inquiry/sales_orders_view.php b/sales/inquiry/sales_orders_view.php index d6409e56..bcf416ca 100644 --- a/sales/inquiry/sales_orders_view.php +++ b/sales/inquiry/sales_orders_view.php @@ -5,6 +5,7 @@ $path_to_root="../.."; include($path_to_root . "/includes/session.inc"); include($path_to_root . "/sales/includes/sales_ui.inc"); +include_once($path_to_root . "/reporting/includes/reporting.inc"); $js = ""; if ($use_popup_windows) @@ -12,45 +13,84 @@ if ($use_popup_windows) if ($use_date_picker) $js .= get_js_date_picker(); -if (isset($_GET['OutstandingOnly']) && ($_GET['OutstandingOnly'] == true)) +if (isset($_GET['OutstandingOnly']) && ($_GET['OutstandingOnly'] == true)) { - $_POST['OutstandingOnly'] = true; - page(_("Search Outstanding Sales Orders"), false, false, "", $js); -} -else + $_POST['order_view_mode'] = 'OutstandingOnly'; + $_SESSION['page_title'] = _("Search Outstanding Sales Orders"); +} +elseif (isset($_GET['InvoiceTemplates']) && ($_GET['InvoiceTemplates'] == true)) +{ + $_POST['order_view_mode'] = 'InvoiceTemplates'; + $_SESSION['page_title'] = _("Search Template for Invoicing"); +} +elseif (isset($_GET['DeliveryTemplates']) && ($_GET['DeliveryTemplates'] == true)) { - $_POST['OutstandingOnly'] = false; - page(_("Search All Sales Orders"), false, false, "", $js); + $_POST['order_view_mode'] = 'DeliveryTemplates'; + $_SESSION['page_title'] = _("Select Template for Delivery"); } +elseif (!isset($_POST['order_view_mode'])) +{ + $_POST['order_view_mode'] = false; + $_SESSION['page_title'] = _("Search All Sales Orders"); +} + +page($_SESSION['page_title'], false, false, "", $js); if (isset($_GET['selected_customer'])) { $selected_customer = $_GET['selected_customer']; -} +} elseif (isset($_POST['selected_customer'])) { $selected_customer = $_POST['selected_customer']; } else $selected_customer = -1; - + //----------------------------------------------------------------------------------- +// Ajax updates +// +if (get_post('SearchOrders')) +{ + $Ajax->activate('orders_tbl'); +} elseif (get_post('_OrderNumber_changed')) +{ + $disable = get_post('OrderNumber') !== ''; + + if ($_POST['order_view_mode']!='DeliveryTemplates' + && $_POST['order_view_mode']!='InvoiceTemplates') { + $Ajax->addDisable(true, 'OrdersAfterDate', $disable); + $Ajax->addDisable(true, 'OrdersToDate', $disable); + } + $Ajax->addDisable(true, 'StockLocation', $disable); + $Ajax->addDisable(true, '_SelectStockFromList_edit', $disable); + $Ajax->addDisable(true, 'SelectStockFromList', $disable); -start_form(false, false, $_SERVER['PHP_SELF'] ."?OutstandingOnly=" . $_POST['OutstandingOnly'] .SID); + if ($disable) { + $Ajax->addFocus(true, 'OrderNumber'); + } else + $Ajax->addFocus(true, 'OrdersAfterDate'); + + $Ajax->activate('orders_tbl'); +} + +start_form(false, false, $_SERVER['PHP_SELF'] .SID); start_table("class='tablestyle_noborder'"); start_row(); -ref_cells(_("#:"), 'OrderNumber'); -date_cells(_("from:"), 'OrdersAfterDate', null, -30); -date_cells(_("to:"), 'OrdersToDate', null, 1); - +ref_cells(_("#:"), 'OrderNumber', '',null, '', true); +if ($_POST['order_view_mode'] != 'DeliveryTemplates' && $_POST['order_view_mode'] != 'InvoiceTemplates') +{ + date_cells(_("from:"), 'OrdersAfterDate', '', null, -30); + date_cells(_("to:"), 'OrdersToDate', '', null, 1); +} locations_list_cells(_("Location:"), 'StockLocation', null, true); stock_items_list_cells(_("Item:"), 'SelectStockFromList', null, true); -submit_cells('SearchOrders', _("Search")); +submit_cells('SearchOrders', _("Search"),'',_('Select documents'), true); -hidden('OutstandingOnly', $_POST['OutstandingOnly']); +hidden('order_view_mode', $_POST['order_view_mode']); end_row(); @@ -63,40 +103,63 @@ if (isset($_POST['SelectStockFromList']) && ($_POST['SelectStockFromList'] != "" ($_POST['SelectStockFromList'] != reserved_words::get_all())) { $selected_stock_item = $_POST['SelectStockFromList']; -} -else +} +else { unset($selected_stock_item); } +function change_tpl_flag($id) +{ + global $Ajax; + + $sql = "UPDATE ".TB_PREF."sales_orders SET type = !type WHERE order_no=$id"; + + db_query($sql, "Can't change sales order type"); + $Ajax->activate('orders_tbl'); +} +//--------------------------------------------------------------------------------------------- +$id = find_submit('_chgtpl'); +if ($id != -1) + change_tpl_flag($id); + //--------------------------------------------------------------------------------------------- $sql = "SELECT ".TB_PREF."sales_orders.order_no, ".TB_PREF."debtors_master.curr_code, ".TB_PREF."debtors_master.name, ".TB_PREF."cust_branch.br_name, - ".TB_PREF."sales_orders.customer_ref, ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to, ".TB_PREF."sales_orders.delivery_date, "; -$sql .= " Sum(".TB_PREF."sales_order_details.qty_invoiced) AS TotInvoiced, "; + ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to, ".TB_PREF."sales_orders.delivery_date, + ".TB_PREF."sales_orders.type, "; +$sql .= " Sum(".TB_PREF."sales_order_details.qty_sent) AS TotDelivered, "; $sql .= " Sum(".TB_PREF."sales_order_details.quantity) AS TotQuantity, "; +$sql .= " Sum(".TB_PREF."sales_order_details.unit_price*".TB_PREF."sales_order_details.quantity*(1-".TB_PREF."sales_order_details.discount_percent)) AS OrderValue, "; + +//if ($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates') + $sql .= TB_PREF."sales_orders.comments, "; +//else + $sql .= TB_PREF."sales_orders.customer_ref"; -$sql .= " Sum(".TB_PREF."sales_order_details.unit_price*".TB_PREF."sales_order_details.quantity*(1-".TB_PREF."sales_order_details.discount_percent)) AS OrderValue - FROM ".TB_PREF."sales_orders, ".TB_PREF."sales_order_details, ".TB_PREF."debtors_master, ".TB_PREF."cust_branch +$sql .= " FROM ".TB_PREF."sales_orders, ".TB_PREF."sales_order_details, ".TB_PREF."debtors_master, ".TB_PREF."cust_branch WHERE ".TB_PREF."sales_orders.order_no = ".TB_PREF."sales_order_details.order_no AND ".TB_PREF."sales_orders.debtor_no = ".TB_PREF."debtors_master.debtor_no AND ".TB_PREF."sales_orders.branch_code = ".TB_PREF."cust_branch.branch_code AND ".TB_PREF."debtors_master.debtor_no = ".TB_PREF."cust_branch.debtor_no "; //figure out the sql required from the inputs available -if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "") +if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "") { - $sql .= " AND ".TB_PREF."sales_orders.order_no LIKE '%". $_POST['OrderNumber'] ."' GROUP BY ".TB_PREF."sales_orders.order_no"; -} -else +// if ($_POST['OrderNumber'] != '*') // TODO paged table + $sql .= " AND ".TB_PREF."sales_orders.order_no LIKE '%". $_POST['OrderNumber'] ."'"; + $sql .= " GROUP BY ".TB_PREF."sales_orders.order_no"; +} +else { - - $date_after = date2sql($_POST['OrdersAfterDate']); - $date_before = date2sql($_POST['OrdersToDate']); - - $sql .= " AND ".TB_PREF."sales_orders.ord_date >= '$date_after'"; - $sql .= " AND ".TB_PREF."sales_orders.ord_date <= '$date_before'"; - + if ($_POST['order_view_mode']!='DeliveryTemplates' && $_POST['order_view_mode']!='InvoiceTemplates') + { + $date_after = date2sql($_POST['OrdersAfterDate']); + $date_before = date2sql($_POST['OrdersToDate']); + + $sql .= " AND ".TB_PREF."sales_orders.ord_date >= '$date_after'"; + $sql .= " AND ".TB_PREF."sales_orders.ord_date <= '$date_before'"; + } if ($selected_customer != -1) $sql .= " AND ".TB_PREF."sales_orders.debtor_no='" . $selected_customer . "'"; @@ -106,45 +169,61 @@ else if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != reserved_words::get_all()) $sql .= " AND ".TB_PREF."sales_orders.from_stk_loc = '". $_POST['StockLocation'] . "' "; - if ($_POST['OutstandingOnly'] == true) - $sql .= " AND ".TB_PREF."sales_order_details.qty_invoiced < ".TB_PREF."sales_order_details.quantity"; + if ($_POST['order_view_mode']=='OutstandingOnly') + $sql .= " AND ".TB_PREF."sales_order_details.qty_sent < ".TB_PREF."sales_order_details.quantity"; + elseif ($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates') + $sql .= " AND ".TB_PREF."sales_orders.type=1"; $sql .= " GROUP BY ".TB_PREF."sales_orders.order_no, ".TB_PREF."sales_orders.debtor_no, ".TB_PREF."sales_orders.branch_code, ".TB_PREF."sales_orders.customer_ref, ".TB_PREF."sales_orders.ord_date, ".TB_PREF."sales_orders.deliver_to"; } //end not order number selected - $result = db_query($sql,"No orders were returned"); - //----------------------------------------------------------------------------------- - -if ($result) +if ($result) { + print_hidden_script(30); + start_form(); /*show a table of the orders returned by the sql */ + div_start('orders_tbl'); start_table("$table_style colspan=6 width=95%"); $th = array(_("Order #"), _("Customer"), _("Branch"), _("Cust Order #"), _("Order Date"), - _("Required By"), _("Delivery To"), _("Order Total"), _("Currency"), "", ""); + _("Required By"), _("Delivery To"), _("Order Total"), _("Currency"), ""); + + if($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates') + { + $th[3] = _('Description'); + } elseif ($_POST['order_view_mode'] != 'OutstandingOnly') { + $th[9] = _('Tmpl'); + $th[] =''; $th[] =''; + } + table_header($th); $j = 1; $k = 0; //row colour counter $overdue_items = false; - while ($myrow = db_fetch($result)) + while ($myrow = db_fetch($result)) { - $view_page = get_customer_trans_view_str(systypes::sales_order(), $myrow["order_no"]); $formated_del_date = sql2date($myrow["delivery_date"]); $formated_order_date = sql2date($myrow["ord_date"]); + if (isset($_POST['Update']) && + check_value( "chgtpl".$myrow["order_no"]) != $myrow["type"]) { + change_tpl_flag($myrow["order_no"]); + $myrow['type'] = !$myrow['type']; + } +// $not_closed = $myrow['type'] && ($myrow["TotDelivered"] < $myrow["TotQuantity"]); // if overdue orders, then highlight as so - if (date1_greater_date2(Today(), $formated_del_date)) + if ($myrow['type'] == 0 && date1_greater_date2(Today(), $formated_del_date)) { start_row("class='overduebg'"); $overdue_items = true; - } - else + } + else { alt_table_row_color($k); } @@ -152,30 +231,43 @@ if ($result) label_cell($view_page); label_cell($myrow["name"]); label_cell($myrow["br_name"]); - label_cell($myrow["customer_ref"]); + if($_POST['order_view_mode']=='InvoiceTemplates' || $_POST['order_view_mode']=='DeliveryTemplates') + label_cell($myrow["comments"]); + else + label_cell($myrow["customer_ref"]); label_cell($formated_order_date); label_cell($formated_del_date); label_cell($myrow["deliver_to"]); amount_cell($myrow["OrderValue"]); label_cell($myrow["curr_code"]); - - if ($_POST['OutstandingOnly'] == true || $myrow["TotInvoiced"] < $myrow["TotQuantity"]) + if ($_POST['order_view_mode']=='OutstandingOnly'/* || $not_closed*/) { - $modify_page = $path_to_root . "/sales/sales_order_entry.php?" . SID . "ModifyOrderNumber=" . $myrow["order_no"]; - $issue_invoice = $path_to_root . "/sales/customer_invoice.php?" . SID . "OrderNumber=" .$myrow["order_no"]; - - label_cell("" . _("Edit") . ""); - label_cell("" . _("Invoice") . ""); + $delivery_note = $path_to_root . "/sales/customer_delivery.php?" . SID . "OrderNumber=" .$myrow["order_no"]; + label_cell("" . _("Dispatch") . ""); + } + elseif ($_POST['order_view_mode']=='InvoiceTemplates') + { + $select_order= $path_to_root . "/sales/sales_order_entry.php?" . SID . "NewInvoice=" .$myrow["order_no"]; + label_cell("" . _("Invoice") . ""); + } + elseif ($_POST['order_view_mode']=='DeliveryTemplates') + { + $select_order= $path_to_root . "/sales/sales_order_entry.php?" . SID . "NewDelivery=" .$myrow["order_no"]; + label_cell("" . _("Delivery") . ""); } else { - label_cell(""); - label_cell(""); + check_cells( null, "chgtpl" .$myrow["order_no"], $myrow["type"], true, + _('Set this order as a template for direct deliveries/invoices')); + + $modify_page = $path_to_root . "/sales/sales_order_entry.php?" . SID . "ModifyOrderNumber=" . $myrow["order_no"]; + label_cell("" . _("Edit") . ""); + label_cell(print_document_link($myrow['order_no'], _("Print"))); } end_row();; $j++; - If ($j == 12) + if ($j == 12) { $j = 1; table_header($th); @@ -183,15 +275,17 @@ if ($result) //end of page full new headings if } //end of while loop - end_table(); if ($overdue_items) display_note(_("Marked items are overdue."), 0, 1, "class='overduefg'"); + else + echo '
'; + div_end(); + submit_center('Update', _("Update"), true, '', null); + end_form(); } echo "
"; - end_page(); -?> - +?> \ No newline at end of file diff --git a/sales/manage/credit_status.php b/sales/manage/credit_status.php index da495059..6b0ee02d 100644 --- a/sales/manage/credit_status.php +++ b/sales/manage/credit_status.php @@ -10,15 +10,7 @@ include($path_to_root . "/sales/includes/db/credit_status_db.inc"); include($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif (isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} - +simple_page_mode(true); //----------------------------------------------------------------------------------- function can_process() @@ -27,6 +19,7 @@ function can_process() if (strlen($_POST['reason_description']) == 0) { display_error(_("The credit status description cannot be empty.")); + set_focus('reason_description'); return false; } @@ -35,20 +28,21 @@ function can_process() //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) && can_process()) +if ($Mode=='ADD_ITEM' && can_process()) { add_credit_status($_POST['reason_description'], $_POST['DisallowInvoices']); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('New credit status has been added')); + $Mode = 'RESET'; } //----------------------------------------------------------------------------------- -if (isset($_POST['UPDATE_ITEM']) && can_process()) +if ($Mode=='UPDATE_ITEM' && can_process()) { - + display_notification(_('Selected credit status has been updated')); update_credit_status($selected_id, $_POST['reason_description'], $_POST['DisallowInvoices']); - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } //----------------------------------------------------------------------------------- @@ -71,22 +65,29 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_credit_status($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected credit status has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //----------------------------------------------------------------------------------- $result = get_all_credit_status(); +start_form(); start_table("$table_style width=40%"); -$th = array(_("Description"), _("Dissallow Invoices")); +$th = array(_("Description"), _("Dissallow Invoices"),'',''); table_header($th); $k = 0; @@ -106,30 +107,31 @@ while ($myrow = db_fetch($result)) label_cell($myrow["reason_description"]); label_cell($disallow_text); - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + edit_button_cell("Edit".$myrow['id'], _("Edit")); + edit_button_cell("Delete".$myrow['id'], _("Delete")); end_row(); } end_table(); +end_form(); +echo '
'; //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Credit Status")); - start_form(); start_table("$table_style2 width=40%"); -if (isset($selected_id)) +if ($selected_id != -1) { - //editing an existing status code - - $myrow = get_credit_status($selected_id); + if ($Mode == 'Edit') { + //editing an existing status code - $_POST['reason_description'] = $myrow["reason_description"]; - $_POST['DisallowInvoices'] = $myrow["dissallow_invoices"]; + $myrow = get_credit_status($selected_id); + $_POST['reason_description'] = $myrow["reason_description"]; + $_POST['DisallowInvoices'] = $myrow["dissallow_invoices"]; + } hidden('selected_id', $selected_id); } @@ -139,7 +141,7 @@ yesno_list_row(_("Dissallow invoicing ?"), 'DisallowInvoices', null); end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/sales/manage/customer_branches.php b/sales/manage/customer_branches.php index 8d7a17a6..30669dea 100644 --- a/sales/manage/customer_branches.php +++ b/sales/manage/customer_branches.php @@ -7,7 +7,6 @@ include($path_to_root . "/includes/session.inc"); page(_("Customer Branches")); include($path_to_root . "/includes/ui.inc"); -include($path_to_root . "/includes/data_checks.inc"); //----------------------------------------------------------------------------------------------- @@ -21,28 +20,24 @@ check_db_has_shippers(_("There are no shipping companies defined in the system. check_db_has_tax_groups(_("There are no tax groups defined in the system. At least one tax group is required before proceeding.")); +simple_page_mode(true); //----------------------------------------------------------------------------------------------- -if (isset($_GET['debtor_no'])) +if (isset($_GET['debtor_no'])) { $_POST['customer_id'] = strtoupper($_GET['debtor_no']); - $_POST['New'] = "1"; } +$_POST['branch_code'] = $selected_id; if (isset($_GET['SelectedBranch'])) { $_POST['branch_code'] = strtoupper($_GET['SelectedBranch']); - unset($_POST['New']); -} - -if (!isset($_GET['SelectedBranch']) && !isset($_POST['AddUpdate'])) -{ - $_POST['New'] = "1"; + $selected_id = $_GET['SelectedBranch']; } //----------------------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -50,41 +45,42 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) //first off validate inputs sensible - if (strlen($_POST['br_name']) == 0) + if (strlen($_POST['br_name']) == 0) { $input_error = 1; display_error(_("The Branch name cannot be empty.")); + set_focus('br_name'); } - if ($input_error != 1) + if ($input_error != 1) { - //if (!isset($_POST['New'])) - if (isset($_POST['UPDATE_ITEM'])) + if ($selected_id != -1) { /*SelectedBranch could also exist if submit had not been clicked this code would not run in this case cos submit is false of course see the delete code below*/ - $sql = "UPDATE ".TB_PREF."cust_branch SET br_name = '" . $_POST['br_name'] . "', - br_address = '" . $_POST['br_address'] . "', - phone='" . $_POST['phone'] . "', - fax='" . $_POST['fax'] . "', - contact_name='" . $_POST['contact_name'] . "', - salesman= '" . $_POST['salesman'] . "', - area='" . $_POST['area'] . "', - email='" . $_POST['email'] . "', - tax_group_id=" . $_POST['tax_group_id'] . ", - sales_account='" . $_POST['sales_account'] . "', - sales_discount_account='" . $_POST['sales_discount_account'] . "', - receivables_account='" . $_POST['receivables_account'] . "', - payment_discount_account='" . $_POST['payment_discount_account'] . "', - default_location='" . $_POST['default_location'] . "', - br_post_address = '" . $_POST['br_post_address'] . "', - disable_trans=" . $_POST['disable_trans'] . ", - default_ship_via=" . $_POST['default_ship_via'] . " - WHERE branch_code = '" . $_POST['branch_code'] . "' - AND debtor_no='" . $_POST['customer_id']. "'"; - - } + $sql = "UPDATE ".TB_PREF."cust_branch SET br_name = " . db_escape($_POST['br_name']) . ", + br_address = ".db_escape($_POST['br_address']). ", + phone=".db_escape($_POST['phone']). ", + fax=".db_escape($_POST['fax']).", + contact_name=".db_escape($_POST['contact_name']) . ", + salesman= ".db_escape($_POST['salesman']) . ", + area=".db_escape($_POST['area']) . ", + email=".db_escape($_POST['email']) . ", + tax_group_id=".db_escape($_POST['tax_group_id']). ", + sales_account=".db_escape($_POST['sales_account']) . ", + sales_discount_account=".db_escape($_POST['sales_discount_account']) . ", + receivables_account=".db_escape($_POST['receivables_account']) . ", + payment_discount_account=".db_escape($_POST['payment_discount_account']) . ", + default_location=".db_escape($_POST['default_location']) . ", + br_post_address =".db_escape($_POST['br_post_address']) . ", + disable_trans=".db_escape($_POST['disable_trans']) . ", + default_ship_via=".db_escape($_POST['default_ship_via']) . " + WHERE branch_code =".db_escape($_POST['branch_code']) . " + AND debtor_no=".db_escape($_POST['customer_id']); + + $note =_('Selected customer branch has been updated'); + } else { /*Selected branch is null cos no item selected on first time round so must be adding a record must be submitting new entries in the new Customer Branches form */ @@ -92,26 +88,31 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) salesman, phone, fax, contact_name, area, email, tax_group_id, sales_account, receivables_account, payment_discount_account, sales_discount_account, default_location, br_post_address, disable_trans, default_ship_via) - VALUES ('" . $_POST['customer_id']. "', '" . $_POST['br_name'] . "', '" . - $_POST['br_address'] . "', '" . $_POST['salesman'] . "', '" . - $_POST['phone'] . "', '" . $_POST['fax'] . "','" . - $_POST['contact_name'] . "', '" . $_POST['area'] . "','" . - $_POST['email'] . "', " . $_POST['tax_group_id'] . ", '" . - $_POST['sales_account'] . "', '" . - $_POST['receivables_account'] . "', '" . - $_POST['payment_discount_account'] . "', '" . - $_POST['sales_discount_account'] . "', '" . - $_POST['default_location'] . "', '" . $_POST['br_post_address'] . "'," . $_POST['disable_trans'] . ", " . $_POST['default_ship_via'] . ")"; + VALUES (".db_escape($_POST['customer_id']). ",".db_escape($_POST['br_name']) . ", " + .db_escape($_POST['br_address']) . ", ".db_escape($_POST['salesman']) . ", " + .db_escape($_POST['phone']) . ", ".db_escape($_POST['fax']) . "," + .db_escape($_POST['contact_name']) . ", ".db_escape($_POST['area']) . "," + .db_escape($_POST['email']) . ", ".db_escape($_POST['tax_group_id']) . ", " + .db_escape($_POST['sales_account']) . ", " + .db_escape($_POST['receivables_account']) . ", " + .db_escape($_POST['payment_discount_account']) . ", " + .db_escape($_POST['sales_discount_account']) . ", " + .db_escape($_POST['default_location']) . ", " + .db_escape($_POST['br_post_address']) . "," + .db_escape($_POST['disable_trans']) . ", " + .db_escape($_POST['default_ship_via']) . ")"; + + $note = _('New customer branch has been added'); } //run the sql from either of the above possibilites db_query($sql,"The branch record could not be inserted or updated"); - - meta_forward($_SERVER['PHP_SELF'], "debtor_no=" . $_POST['customer_id']); + display_notification($note); + $Mode = 'RESET'; } -} -elseif (isset($_GET['delete'])) +} +elseif ($Mode == 'Delete') { //the link to delete a selected record was clicked instead of the submit button @@ -120,30 +121,39 @@ elseif (isset($_GET['delete'])) $sql= "SELECT COUNT(*) FROM ".TB_PREF."debtor_trans WHERE branch_code='" . $_POST['branch_code']. "' AND debtor_no = '" . $_POST['customer_id']. "'"; $result = db_query($sql,"could not query debtortrans"); $myrow = db_fetch_row($result); - if ($myrow[0] > 0) + if ($myrow[0] > 0) { display_error(_("Cannot delete this branch because customer transactions have been created to this branch.")); - } - else + } + else { $sql= "SELECT COUNT(*) FROM ".TB_PREF."sales_orders WHERE branch_code='" . $_POST['branch_code']. "' AND debtor_no = '" . $_POST['customer_id']. "'"; $result = db_query($sql,"could not query sales orders"); $myrow = db_fetch_row($result); - if ($myrow[0] > 0) + if ($myrow[0] > 0) { display_error(_("Cannot delete this branch because sales orders exist for it. Purge old sales orders first.")); - } - else + } + else { $sql="DELETE FROM ".TB_PREF."cust_branch WHERE branch_code='" . $_POST['branch_code']. "' AND debtor_no='" . $_POST['customer_id']. "'"; db_query($sql,"could not delete branch"); - meta_forward($_SERVER['PHP_SELF'], "debtor_no=" . $_POST['customer_id']); + display_notification(_('Selected customer branch has been deleted')); } } //end ifs to test if the branch can be deleted + $Mode = 'RESET'; } +if ($Mode == 'RESET' || get_post('_customer_id_update')) +{ + $selected_id = -1; + $cust_id = $_POST['customer_id']; + unset($_POST); + $_POST['customer_id'] = $cust_id; + $Ajax->activate('_page_body'); +} start_form(); echo "
" . _("Select a customer: ") . "  "; @@ -151,6 +161,7 @@ customer_list('customer_id', null, false, true); echo "


"; $num_branches = db_customer_has_branches($_POST['customer_id']); + if ($num_branches) { $sql = "SELECT ".TB_PREF."debtors_master.name, ".TB_PREF."cust_branch.*, ".TB_PREF."salesman.salesman_name, @@ -168,7 +179,7 @@ if ($num_branches) $th = array(_("Name"), _("Contact"), _("Sales Person"), _("Area"), _("Phone No"), _("Fax No"), _("E-mail"), _("Tax Group"), "", ""); - table_header($th); + table_header($th); while ($myrow = db_fetch($result)) { @@ -181,24 +192,16 @@ if ($num_branches) label_cell($myrow["fax"]); label_cell("" . $myrow["email"]. ""); label_cell($myrow["tax_group_name"]); - edit_link_cell("debtor_no=" . $_POST['customer_id']. "&SelectedBranch=" . $myrow["branch_code"]); - delete_link_cell("debtor_no=" . $_POST['customer_id']. "&SelectedBranch=" . $myrow["branch_code"]. "&delete=yes"); + edit_button_cell("Edit".$myrow["branch_code"], _("Edit")); + edit_button_cell("Delete".$myrow["branch_code"], _("Delete")); end_row(); - } + } end_table(); //END WHILE LIST LOOP } else display_note(_("The selected customer does not have any branches. Please create at least one branch.")); -//else -//{ -//} - -if (!isset($_POST['New'])) -{ - hyperlink_params($_SERVER['PHP_SELF'], _("New Customer Branch"), "debtor_no=" . $_POST['customer_id']); -} echo "
"; start_table("$table_style2 width=60%", 5); echo ""; // outer table @@ -206,73 +209,76 @@ echo ""; // outer table echo ""; -if (!isset($_POST['New']) && $num_branches) +if ($selected_id != -1) { - - //editing an existing branch - $sql = "SELECT * FROM ".TB_PREF."cust_branch - WHERE branch_code='" . $_POST['branch_code'] . "' - AND debtor_no='" . $_POST['customer_id'] . "'"; - - $result = db_query($sql,"check failed"); - $myrow = db_fetch($result); - - $_POST['branch_code'] = $myrow["branch_code"]; - $_POST['br_name'] = $myrow["br_name"]; - $_POST['br_address'] = $myrow["br_address"]; - $_POST['br_post_address'] = $myrow["br_post_address"]; - $_POST['contact_name'] = $myrow["contact_name"]; - $_POST['salesman'] =$myrow["salesman"]; - $_POST['area'] =$myrow["area"]; - $_POST['phone'] =$myrow["phone"]; - $_POST['fax'] =$myrow["fax"]; - $_POST['email'] =$myrow["email"]; - $_POST['tax_group_id'] = $myrow["tax_group_id"]; - $_POST['disable_trans'] = $myrow['disable_trans']; - $_POST['default_location'] = $myrow["default_location"]; - $_POST['default_ship_via'] = $myrow['default_ship_via']; - $_POST['sales_account'] = $myrow["sales_account"]; - $_POST['sales_discount_account'] = $myrow['sales_discount_account']; - $_POST['receivables_account'] = $myrow['receivables_account']; - $_POST['payment_discount_account'] = $myrow['payment_discount_account']; - -} -else + if ($Mode == 'Edit') { + + //editing an existing branch + $sql = "SELECT * FROM ".TB_PREF."cust_branch + WHERE branch_code='" . $_POST['branch_code'] . "' + AND debtor_no='" . $_POST['customer_id'] . "'"; + $result = db_query($sql,"check failed"); + $myrow = db_fetch($result); + set_focus('br_name'); + $_POST['branch_code'] = $myrow["branch_code"]; + $_POST['br_name'] = $myrow["br_name"]; + $_POST['br_address'] = $myrow["br_address"]; + $_POST['br_post_address'] = $myrow["br_post_address"]; + $_POST['contact_name'] = $myrow["contact_name"]; + $_POST['salesman'] =$myrow["salesman"]; + $_POST['area'] =$myrow["area"]; + $_POST['phone'] =$myrow["phone"]; + $_POST['fax'] =$myrow["fax"]; + $_POST['email'] =$myrow["email"]; + $_POST['tax_group_id'] = $myrow["tax_group_id"]; + $_POST['disable_trans'] = $myrow['disable_trans']; + $_POST['default_location'] = $myrow["default_location"]; + $_POST['default_ship_via'] = $myrow['default_ship_via']; + $_POST['sales_account'] = $myrow["sales_account"]; + $_POST['sales_discount_account'] = $myrow['sales_discount_account']; + $_POST['receivables_account'] = $myrow['receivables_account']; + $_POST['payment_discount_account'] = $myrow['payment_discount_account']; + } +} +elseif ($Mode != 'ADD_ITEM') { //end of if $SelectedBranch only do the else when a new record is being entered - - $sql = "SELECT name, address, email - FROM ".TB_PREF."debtors_master WHERE debtor_no = '" . $_POST['customer_id']. "'"; - $result = db_query($sql,"check failed"); - $myrow = db_fetch($result); - $_POST['br_name'] = $myrow["name"]; - $_POST['contact_name'] = _("Main Branch"); - $_POST['br_address'] = $_POST['br_post_address'] = $myrow["address"]; + if(!$num_branches) { + $sql = "SELECT name, address, email + FROM ".TB_PREF."debtors_master WHERE debtor_no = '" . $_POST['customer_id']. "'"; + $result = db_query($sql,"check failed"); + $myrow = db_fetch($result); + $_POST['br_name'] = $myrow["name"]; + $_POST['contact_name'] = _('Main Branch'); + $_POST['br_address'] = $_POST['br_post_address'] = $myrow["address"]; + $_POST['email'] = $myrow['email']; + } $_POST['branch_code'] = ""; - $_POST['email'] = $myrow['email']; - if (!isset($_POST['sales_account']) || !isset($_POST['sales_discount_account'])) + if (!isset($_POST['sales_account']) || !isset($_POST['sales_discount_account'])) { $company_record = get_company_prefs(); - $_POST['sales_account'] = $company_record["default_sales_act"]; + // We use the Item Sales Account as default! + // $_POST['sales_account'] = $company_record["default_sales_act"]; + $_POST['sales_account'] = ""; $_POST['sales_discount_account'] = $company_record['default_sales_discount_act']; $_POST['receivables_account'] = $company_record['debtors_act']; $_POST['payment_discount_account'] = $company_record['default_prompt_payment_act']; } - hidden('New', 'Yes'); } -hidden('branch_code', $_POST['branch_code']); +hidden('selected_id', $selected_id); +hidden('branch_code'); table_section_title(_("Name and Contact")); -text_row(_("Branch Name:"), 'br_name', $_POST['br_name'], 35, 40); -text_row(_("Contact Person:"), 'contact_name', $_POST['contact_name'], 35, 40); +text_row(_("Branch Name:"), 'br_name', null, 35, 40); +text_row(_("Contact Person:"), 'contact_name', null, 35, 40); text_row(_("Phone Number:"), 'phone', null, 20, 20); text_row(_("Fax Number:"), 'fax', null, 20, 20); -text_row("" . _("E-mail:") . "", 'email', $_POST['email'], 35, 55); +text_row("" . _("E-mail:") . "", 'email', null, 35, 55); table_section_title(_("Sales")); @@ -296,25 +302,26 @@ echo"
"; table_section_title(_("GL Accounts")); -gl_all_accounts_list_row(_("Sales Account:"), 'sales_account', $_POST['sales_account']); +// 2006-06-14. Changed gl_al_accounts_list to have an optional all_option 'Use Item Sales Accounts' +gl_all_accounts_list_row(_("Sales Account:"), 'sales_account', null, false, false, false, true); -gl_all_accounts_list_row(_("Sales Discount Account:"), 'sales_discount_account', $_POST['sales_discount_account']); +gl_all_accounts_list_row(_("Sales Discount Account:"), 'sales_discount_account'); -gl_all_accounts_list_row(_("Accounts Receivable Account:"), 'receivables_account', $_POST['receivables_account']); +gl_all_accounts_list_row(_("Accounts Receivable Account:"), 'receivables_account'); -gl_all_accounts_list_row(_("Prompt Payment Discount Account:"), 'payment_discount_account', $_POST['payment_discount_account']); +gl_all_accounts_list_row(_("Prompt Payment Discount Account:"), 'payment_discount_account'); table_section_title(_("Addresses")); -textarea_row(_("Mailing Address:"), 'br_post_address',$_POST['br_post_address'], 35, 5); +textarea_row(_("Mailing Address:"), 'br_post_address', null, 35, 5); -textarea_row(_("Billing Address:"), 'br_address', $_POST['br_address'], 35, 5); +textarea_row(_("Billing Address:"), 'br_address', null, 35, 5); end_table(); end_table(1); // outer table -submit_add_or_update_center(isset($_POST['New'])); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/sales/manage/customers.php b/sales/manage/customers.php index 5a57732f..bf58e761 100644 --- a/sales/manage/customers.php +++ b/sales/manage/customers.php @@ -9,18 +9,8 @@ page(_("Customers")); include_once($path_to_root . "/includes/date_functions.inc"); include_once($path_to_root . "/includes/banking.inc"); include_once($path_to_root . "/includes/ui.inc"); -include_once($path_to_root . "/includes/data_checks.inc"); - -if (isset($_GET['New']) || !isset($_POST['customer_id']) || $_POST['customer_id'] == "") -{ - $_POST['New'] = "1"; -} - -if (isset($_POST['SelectCustomer'])) -{ - unset($_POST['New']); -} +$new_customer = (!isset($_POST['customer_id']) || $_POST['customer_id'] == ""); //-------------------------------------------------------------------------------------------- function can_process() @@ -31,42 +21,24 @@ function can_process() return false; } - if (!is_numeric( $_POST['credit_limit'])) - { - display_error(_("The credit limit must be numeric.")); - return false; - } - - if (!is_numeric( $_POST['pymt_discount'])) - { - display_error(_("The payment discount must be numeric.")); - return false; - } - - if (!is_numeric( $_POST['discount'])) + if (!check_num('credit_limit', 0)) { - display_error(_("The discount percentage must be numeric.")); + display_error(_("The credit limit must be numeric and not less than zero.")); return false; } - if ($_POST['credit_limit'] < 0) + if (!check_num('pymt_discount', 0, 100)) { - display_error(_("The credit limit must be a positive number.")); + display_error(_("The payment discount must be numeric and is expected to be less than 100% and greater than or equal to 0.")); return false; } - if (($_POST['pymt_discount'] >= 100) || ($_POST['pymt_discount'] < 0)) + if (!check_num('discount', 0, 100)) { - display_error(_("The payment discount is expected to be less than 100% and greater than or equal to 0.")); + display_error(_("The discount percentage must be numeric and is expected to be less than 100% and greater than or equal to 0.")); return false; } - - if (($_POST['discount'] >= 100) || ($_POST['discount'] < 0)) - { - display_error(_("The discount percent is expected to be less than 100 and greater than or equal to 0.")); - return false; - } - + return true; } @@ -74,33 +46,31 @@ function can_process() function handle_submit() { - global $path_to_root; + global $path_to_root, $new_customer, $Ajax; + if (!can_process()) return; - if (!isset($_POST['New'])) + if ($new_customer == false) { - // Sherifoz 22.06.03 convert percent to fraction - $sql = "UPDATE ".TB_PREF."debtors_master SET name='" . $_POST['CustName'] . "', - address='" . $_POST['address'] . "', - tax_id='" . $_POST['tax_id'] . "', - curr_code='" . $_POST['curr_code'] . "', - email='" . $_POST['email'] . "', - dimension_id=" . $_POST['dimension_id'] . ", - dimension2_id=" . $_POST['dimension2_id'] . ", - credit_status='" . $_POST['credit_status'] . "', - payment_terms='" . $_POST['payment_terms'] . "', - discount=" . ($_POST['discount']) / 100 . ", - pymt_discount=" . ($_POST['pymt_discount']) / 100 . ", - credit_limit=" . $_POST['credit_limit'] . ", - sales_type = '" . $_POST['sales_type'] . "' - WHERE debtor_no = '" . $_POST['customer_id'] . "'"; + $sql = "UPDATE ".TB_PREF."debtors_master SET name=" . db_escape($_POST['CustName']) . ", + address=".db_escape($_POST['address']) . ", + tax_id=".db_escape($_POST['tax_id']) . ", + curr_code=".db_escape($_POST['curr_code']) . ", + email=".db_escape($_POST['email']) . ", + dimension_id=".db_escape($_POST['dimension_id']) . ", + dimension2_id=".db_escape($_POST['dimension2_id']) . ", + credit_status=".db_escape($_POST['credit_status']) . ", + payment_terms=".db_escape($_POST['payment_terms']) . ", + discount=" . input_num('discount') / 100 . ", + pymt_discount=" . input_num('pymt_discount') / 100 . ", + credit_limit=" . input_num('credit_limit') . ", + sales_type = ".db_escape($_POST['sales_type']) . " + WHERE debtor_no = '". $_POST['customer_id'] . "'"; db_query($sql,"The customer could not be updated"); display_notification(_("Customer has been updated.")); - clear_fields(); - } else { //it is a new customer @@ -109,22 +79,22 @@ function handle_submit() $sql = "INSERT INTO ".TB_PREF."debtors_master (name, address, tax_id, email, dimension_id, dimension2_id, curr_code, credit_status, payment_terms, discount, pymt_discount,credit_limit, - sales_type) VALUES ('" . $_POST['CustName'] ."', '" . $_POST['address'] . "', '" . $_POST['tax_id'] . "', - '" . $_POST['email'] . "', " . $_POST['dimension_id'] . ", " . $_POST['dimension2_id'] . ", '" . $_POST['curr_code'] . "', - " . $_POST['credit_status'] . ", '" . $_POST['payment_terms'] . "', " . ($_POST['discount'])/100 . ", - " . ($_POST['pymt_discount'])/100 . ", " . $_POST['credit_limit'] . ", '" . $_POST['sales_type'] . "')"; + sales_type) VALUES (".db_escape($_POST['CustName']) .", " + .db_escape($_POST['address']) . ", " . db_escape($_POST['tax_id']) . "," + .db_escape($_POST['email']) . ", ".db_escape($_POST['dimension_id']) . ", " + .db_escape($_POST['dimension2_id']) . ", ".db_escape($_POST['curr_code']) . ", + " . db_escape($_POST['credit_status']) . ", ".db_escape($_POST['payment_terms']) . ", " . input_num('discount')/100 . ", + " . input_num('pymt_discount')/100 . ", " . input_num('credit_limit') . ", ".db_escape($_POST['sales_type']) . ")"; db_query($sql,"The customer could not be added"); - $new_customer_id = db_insert_id(); - + $_POST['customer_id'] = db_insert_id(); + $new_customer = false; commit_transaction(); display_notification(_("A new customer has been added.")); - hyperlink_params($path_to_root . "/sales/manage/customer_branches.php", _("Add branches for this customer"), "debtor_no=$new_customer_id"); - - clear_fields(); + $Ajax->activate('_page_body'); } } @@ -183,28 +153,14 @@ if (isset($_POST['delete'])) { //ie not cancelled the delete as a result of above tests $sql = "DELETE FROM ".TB_PREF."debtors_master WHERE debtor_no='" . $_POST['customer_id'] . "'"; db_query($sql,"cannot delete customer"); - - meta_forward($_SERVER['PHP_SELF']); + + display_notification(_("Selected customer has been deleted.")); + unset($_POST['customer_id']); + $new_customer = true; + $Ajax->activate('_page_body'); } //end if Delete Customer } -function clear_fields() -{ - unset($_POST['CustName']); - unset($_POST['address']); - unset($_POST['tax_id']); - unset($_POST['email']); - unset($_POST['dimension_id']); - unset($_POST['dimension2_id']); - unset($_POST['credit_status']); - unset($_POST['payment_terms']); - unset($_POST['discount']); - unset($_POST['pymt_discount']); - unset($_POST['credit_limit']); - unset($_POST['sales_type']); - unset($_POST['customer_id']); - $_POST['New'] = 1; -} check_db_has_sales_types(_("There are no sales types defined. Please define at least one sales type before adding a customer.")); @@ -213,39 +169,33 @@ start_form(); if (db_has_customers()) { start_table("class = 'tablestyle_noborder'"); - start_row(); - customer_list_cells(_("Select a customer: "), 'customer_id', null); - submit_cells('SelectCustomer', _("Edit Customer")); - end_row(); + customer_list_row(_("Select a customer: "), 'customer_id', null, + _('New customer'), true); end_table(); } else { - hidden('customer_id', $_POST['customer_id']); + hidden('customer_id'); } -hyperlink_params($_SERVER['PHP_SELF'], _("Enter a new customer"), "New=1"); -echo "
"; - start_table($table_style2, 7, 6); echo "'; + hyperlink_params_td($path_to_root . "/sales/manage/customer_branches.php",''. _("Add or Edit").'', "debtor_no=".$_POST['customer_id']); +end_row(); +} end_table(); end_table(1); // outer table - -if (isset($_POST['New'])) +div_start('controls'); +if ($new_customer) { - submit_center('submit', _("Add New Customer")); + submit_center('submit', _("Add New Customer"), true, '', true); } else { - submit_center_first('submit', _("Update Customer")); - submit_center_last('delete', _("Delete Customer")); + submit_center_first('submit', _("Update Customer"), + _('Update customer data'), true); + submit_center_last('delete', _("Delete Customer"), + _('Delete customer data if have been never used'), true); } - +div_end(); end_form(); end_page(); diff --git a/sales/manage/sales_areas.php b/sales/manage/sales_areas.php index 7aed3e6e..2f350ab8 100644 --- a/sales/manage/sales_areas.php +++ b/sales/manage/sales_areas.php @@ -9,16 +9,9 @@ page(_("Sales Areas")); include($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = strtoupper($_GET['selected_id']); -} -elseif (isset($_POST['selected_id'])) -{ - $selected_id = strtoupper($_POST['selected_id']); -} +simple_page_mode(true); -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { $input_error = 0; @@ -27,27 +20,29 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error(_("The area description cannot be empty.")); + set_focus('description'); } if ($input_error != 1) { - if (isset($selected_id)) + if ($selected_id != -1) { - $sql = "UPDATE ".TB_PREF."areas SET description='" . $_POST['description'] . "' WHERE area_code = '$selected_id'"; + $sql = "UPDATE ".TB_PREF."areas SET description=".db_escape($_POST['description'])." WHERE area_code = '$selected_id'"; + $note = _('Selected sales area has been updated'); } else { - - $sql = "INSERT INTO ".TB_PREF."areas (description) VALUES ('" . $_POST['description'] . "')"; + $sql = "INSERT INTO ".TB_PREF."areas (description) VALUES (".db_escape($_POST['description']) . ")"; + $note = _('New sales area has been added'); } db_query($sql,"The sales area could not be updated or added"); - - meta_forward($_SERVER['PHP_SELF']); + display_notification($note); + $Mode = 'RESET'; } } -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { $cancel_delete = 0; @@ -67,15 +62,22 @@ if (isset($_GET['delete'])) $sql="DELETE FROM ".TB_PREF."areas WHERE area_code='" . $selected_id . "'"; db_query($sql,"could not delete sales area"); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected sales area has been deleted')); } //end if Delete area + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //------------------------------------------------------------------------------------------------- $sql = "SELECT * FROM ".TB_PREF."areas"; $result = db_query($sql,"could not get areas"); +start_form(); start_table("$table_style width=40%"); $th = array(_("Area Name"), "", ""); table_header($th); @@ -87,14 +89,15 @@ while ($myrow = db_fetch($result)) alt_table_row_color($k); label_cell($myrow["description"]); - edit_link_cell("selected_id=" . $myrow["area_code"]); - delete_link_cell("selected_id=" . $myrow["area_code"]. "&delete=1"); + edit_button_cell("Edit".$myrow["area_code"], _("Edit")); + edit_button_cell("Delete".$myrow["area_code"], _("Delete")); end_row(); } end_table(); -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Sales Area")); +end_form(); +echo '
'; //------------------------------------------------------------------------------------------------- @@ -102,15 +105,17 @@ start_form(); start_table("$table_style2 width=40%"); -if (isset($selected_id)) +if ($selected_id != -1) { - //editing an existing area - $sql = "SELECT * FROM ".TB_PREF."areas WHERE area_code='$selected_id'"; + if ($Mode == 'Edit') { + //editing an existing area + $sql = "SELECT * FROM ".TB_PREF."areas WHERE area_code='$selected_id'"; - $result = db_query($sql,"could not get area"); - $myrow = db_fetch($result); + $result = db_query($sql,"could not get area"); + $myrow = db_fetch($result); - $_POST['description'] = $myrow["description"]; + $_POST['description'] = $myrow["description"]; + } hidden("selected_id", $selected_id); } @@ -118,7 +123,7 @@ text_row_ex(_("Area Name:"), 'description', 30); end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/sales/manage/sales_people.php b/sales/manage/sales_people.php index 4acd1149..a6072ff8 100644 --- a/sales/manage/sales_people.php +++ b/sales/manage/sales_people.php @@ -8,55 +8,70 @@ page(_("Sales Persons")); include($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = strtoupper($_GET['selected_id']); -} -elseif (isset($_POST['selected_id'])) -{ - $selected_id = strtoupper($_POST['selected_id']); -} - +simple_page_mode(true); //------------------------------------------------------------------------------------------------ -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test $input_error = 0; - if (strlen($_POST['salesman_name']) == 0) + if (strlen($_POST['salesman_name']) == 0) { $input_error = 1; display_error(_("The sales person name cannot be empty.")); - } - + set_focus('salesman_name'); + } + $pr1 = check_num('provision', 0,100); + if (!$pr1 || !check_num('provision2', 0, 100)) { + $input_error = 1; + display_error( _("Salesman provision cannot be less than 0 or more than 100%.")); + set_focus(!$pr1 ? 'provision' : 'provision2'); + } + if (!check_num('break_pt', 0)) { + $input_error = 1; + display_error( _("Salesman provision breakpoint must be numeric and not less than 0.")); + set_focus('break_pt'); + } if ($input_error != 1) { - if (isset($selected_id)) + if ($selected_id != -1) { /*selected_id could also exist if submit had not been clicked this code would not run in this case cos submit is false of course see the delete code below*/ - - $sql = "UPDATE ".TB_PREF."salesman SET salesman_name='" . $_POST['salesman_name'] . "', - salesman_phone='" . $_POST['salesman_phone'] . "', - salesman_fax='" . $_POST['salesman_fax'] . "', - salesman_email='" . $_POST['salesman_email'] . "' + + $sql = "UPDATE ".TB_PREF."salesman SET salesman_name=".db_escape($_POST['salesman_name']) . ", + salesman_phone=".db_escape($_POST['salesman_phone']) . ", + salesman_fax=".db_escape($_POST['salesman_fax']) . ", + salesman_email=".db_escape($_POST['salesman_email']) . ", + provision=".input_num('provision').", + break_pt=".input_num('break_pt').", + provision2=".input_num('provision2')." WHERE salesman_code = '$selected_id'"; - } - else + } + else { /*Selected group is null cos no item selected on first time round so must be adding a record must be submitting new entries in the new Sales-person form */ - $sql = "INSERT INTO ".TB_PREF."salesman (salesman_name, salesman_phone, salesman_fax, salesman_email) - VALUES ('" . $_POST['salesman_name'] . "', '" . $_POST['salesman_phone'] . "', '" . $_POST['salesman_fax'] . "', '" . $_POST['salesman_email'] . "')"; + $sql = "INSERT INTO ".TB_PREF."salesman (salesman_name, salesman_phone, salesman_fax, salesman_email, + provision, break_pt, provision2) + VALUES (".db_escape($_POST['salesman_name']) . ", " + .db_escape($_POST['salesman_phone']) . ", " + .db_escape($_POST['salesman_fax']) . ", " + .db_escape($_POST['salesman_email']) . ", ". + input_num('provision').", ".input_num('break_pt').", " + .input_num('provision2').")"; } //run the sql from either of the above possibilites - db_query($sql,"The insert or update of the salesperson failed"); - - meta_forward($_SERVER['PHP_SELF']); + db_query($sql,"The insert or update of the sales person failed"); + if ($selected_id != -1) + display_notification(_('Selected sales person data have been updated')); + else + display_notification(_('New sales person data have been added')); + $Mode = 'RESET'; } -} -if (isset($_GET['delete'])) +} +if ($Mode == 'Delete') { //the link to delete a selected record was clicked instead of the submit button @@ -65,81 +80,98 @@ if (isset($_GET['delete'])) $sql= "SELECT COUNT(*) FROM ".TB_PREF."cust_branch WHERE salesman='$selected_id'"; $result = db_query($sql,"check failed"); $myrow = db_fetch_row($result); - if ($myrow[0] > 0) + if ($myrow[0] > 0) { display_error("Cannot delete this sales-person because branches are set up referring to this sales-person - first alter the branches concerned."); - } - else + } + else { $sql="DELETE FROM ".TB_PREF."salesman WHERE salesman_code='$selected_id'"; db_query($sql,"The sales-person could not be deleted"); - - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected sales person data have been deleted')); } + $Mode = 'RESET'; } -//------------------------------------------------------------------------------------------------ +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} +//------------------------------------------------------------------------------------------------ $sql = "SELECT * FROM ".TB_PREF."salesman"; $result = db_query($sql,"could not get sales persons"); -start_table("$table_style width=40%"); -$th = array(_("Name"), _("Phone"), _("Fax"), _("Email"), "", ""); +start_form(); +start_table("$table_style width=60%"); +$th = array(_("Name"), _("Phone"), _("Fax"), _("Email"), _("Provision"), _("Break Pt."), _("Provision")." 2", "", ""); table_header($th); $k = 0; -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { - - alt_table_row_color($k); - + + alt_table_row_color($k); + label_cell($myrow["salesman_name"]); label_cell($myrow["salesman_phone"]); label_cell($myrow["salesman_fax"]); label_cell($myrow["salesman_email"]); - edit_link_cell(SID . "selected_id=" . $myrow["salesman_code"]); - delete_link_cell(SID . "selected_id=" . $myrow["salesman_code"]. "&delete=1"); + label_cell(percent_format($myrow["provision"])." %", "nowrap align=right"); + amount_cell($myrow["break_pt"]); + label_cell(percent_format($myrow["provision2"])." %", "nowrap align=right"); + edit_button_cell("Edit".$myrow["salesman_code"], _("Edit")); + edit_button_cell("Delete".$myrow["salesman_code"], _("Delete")); end_row(); - -} //END WHILE LIST LOOP - -end_table(); -//------------------------------------------------------------------------------------------------ +} //END WHILE LIST LOOP -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Sales Person")); +end_table(); +end_form(); +echo '
'; //------------------------------------------------------------------------------------------------ start_form(); -if (isset($selected_id)) +if ($selected_id != -1) { - //editing an existing Sales-person - $sql = "SELECT * FROM ".TB_PREF."salesman WHERE salesman_code='$selected_id'"; - - $result = db_query($sql,"could not get sales person"); - $myrow = db_fetch($result); - - $_POST['salesman_name'] = $myrow["salesman_name"]; - $_POST['salesman_phone'] = $myrow["salesman_phone"]; - $_POST['salesman_fax'] = $myrow["salesman_fax"]; - $_POST['salesman_email'] = $myrow["salesman_email"]; - + if ($Mode == 'Edit') { + //editing an existing Sales-person + $sql = "SELECT * FROM ".TB_PREF."salesman WHERE salesman_code='$selected_id'"; + + $result = db_query($sql,"could not get sales person"); + $myrow = db_fetch($result); + + $_POST['salesman_name'] = $myrow["salesman_name"]; + $_POST['salesman_phone'] = $myrow["salesman_phone"]; + $_POST['salesman_fax'] = $myrow["salesman_fax"]; + $_POST['salesman_email'] = $myrow["salesman_email"]; + $_POST['provision'] = percent_format($myrow["provision"]); + $_POST['break_pt'] = price_format($myrow["break_pt"]); + $_POST['provision2'] = percent_format($myrow["provision2"]); + } hidden('selected_id', $selected_id); +} elseif ($Mode != 'ADD_ITEM') { + $_POST['provision'] = percent_format(0); + $_POST['break_pt'] = price_format(0); + $_POST['provision2'] = percent_format(0); } -start_table("$table_style2 width=40%"); +start_table("$table_style2 width=60%"); text_row_ex(_("Sales person name:"), 'salesman_name', 30); text_row_ex(_("Telephone number:"), 'salesman_phone', 20); text_row_ex(_("Fax number:"), 'salesman_fax', 20); text_row_ex(_("Email:"), 'salesman_email', 40); - +percent_row(_("Provision").':', 'provision'); +amount_row(_("Break Pt.:"), 'break_pt'); +percent_row(_("Provision")." 2:", 'provision2'); end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/sales/manage/sales_types.php b/sales/manage/sales_types.php index 15e96e10..a99c322b 100644 --- a/sales/manage/sales_types.php +++ b/sales/manage/sales_types.php @@ -2,56 +2,58 @@ $page_security = 14; $path_to_root="../.."; -include($path_to_root . "/includes/session.inc"); +include_once($path_to_root . "/includes/session.inc"); page(_("Sales Types")); -include($path_to_root . "/includes/ui.inc"); -include($path_to_root . "/sales/includes/db/sales_types_db.inc"); - -if (isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} -elseif (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -else - $selected_id = -1; +include_once($path_to_root . "/includes/ui.inc"); +include_once($path_to_root . "/sales/includes/db/sales_types_db.inc"); +simple_page_mode(true); //---------------------------------------------------------------------------------------------------- -function can_process() +function can_process() { - if (strlen($_POST['sales_type']) == 0) + if (strlen($_POST['sales_type']) == 0) { display_error(_("The sales type description cannot be empty.")); + set_focus('sales_type'); return false; - } + } + + if (!check_num('factor', 0)) + { + display_error(_("Calculation factor must be valid positive number.")); + set_focus('factor'); + return false; + } return true; } //---------------------------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) && can_process()) +if ($Mode=='ADD_ITEM' && can_process()) { - add_sales_type($_POST['sales_type']); - meta_forward($_SERVER['PHP_SELF']); + add_sales_type($_POST['sales_type'], isset($_POST['tax_included']) ? 1:0, + input_num('factor')); + display_notification(_('New sales type has been added')); + $Mode = 'RESET'; } //---------------------------------------------------------------------------------------------------- -if (isset($_POST['UPDATE_ITEM']) && can_process()) +if ($Mode=='UPDATE_ITEM' && can_process()) { - update_sales_type($selected_id, $_POST['sales_type']); - meta_forward($_SERVER['PHP_SELF']); -} + update_sales_type($selected_id, $_POST['sales_type'], isset($_POST['tax_included']) ? 1:0, + input_num('factor')); + display_notification(_('Selected sales type has been updated')); + $Mode = 'RESET'; +} //---------------------------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { // PREVENT DELETES IF DEPENDENT RECORDS IN 'debtor_trans' @@ -60,75 +62,101 @@ if (isset($_GET['delete'])) check_db_error("The number of transactions using this Sales type record could not be retrieved", $sql); $myrow = db_fetch_row($result); - if ($myrow[0] > 0) + if ($myrow[0] > 0) { display_error(_("Cannot delete this sale type because customer transactions have been created using this sales type.")); - } - else + } + else { $sql = "SELECT COUNT(*) FROM ".TB_PREF."debtors_master WHERE sales_type='$selected_id'"; $result = db_query($sql,"check failed"); check_db_error("The number of customers using this Sales type record could not be retrieved", $sql); - + $myrow = db_fetch_row($result); - if ($myrow[0] > 0) + if ($myrow[0] > 0) { display_error(_("Cannot delete this sale type because customers are currently set up to use this sales type.")); - } - else + } + else { delete_sales_type($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected sales type has been deleted')); } } //end if sales type used in debtor transactions or in customers set up + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //---------------------------------------------------------------------------------------------------- $result = get_all_sales_types(); +start_form(); start_table("$table_style width=30%"); -$th = array (_("Type Name"), "", ""); +$th = array (_('Type Name'), _('Factor'), _('Tax Incl'), '',''); table_header($th); $k = 0; +$base_sales = get_base_sales_type(); -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { - alt_table_row_color($k); - label_cell($myrow["sales_type"]); - edit_link_cell("selected_id=".$myrow["id"]); - delete_link_cell("selected_id=".$myrow["id"]."&delete=1"); + if ($myrow["id"] == $base_sales) + start_row("class='overduebg'"); + else + alt_table_row_color($k); + label_cell($myrow["sales_type"]); + $f = number_format2($myrow["factor"],4); + if($myrow["id"] == $base_sales) $f = ""._('Base').""; + label_cell($f); + label_cell($myrow["tax_included"] ? _('Yes'):_('No'), 'align=center'); + edit_button_cell("Edit".$myrow['id'], _("Edit")); + edit_button_cell("Delete".$myrow['id'], _("Delete")); end_row(); } end_table(); +end_form(); +display_note(_("Marked sales type is the company base pricelist for prices calculations."), 0, 0, "class='overduefg'"); //---------------------------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Sales type")); - start_form(); + if (!isset($_POST['tax_included'])) + $_POST['tax_included'] = 0; + if (!isset($_POST['base'])) + $_POST['base'] = 0; start_table("$table_style2 width=30%"); -if ($selected_id != -1) +if ($selected_id != -1) { - $myrow = get_sales_type($selected_id); - - $_POST['sales_type'] = $myrow["sales_type"]; - + if ($Mode == 'Edit') { + $myrow = get_sales_type($selected_id); + + $_POST['sales_type'] = $myrow["sales_type"]; + $_POST['tax_included'] = $myrow["tax_included"]; + $_POST['factor'] = number_format2($myrow["factor"],4); + } hidden('selected_id', $selected_id); -} +} else { + $_POST['factor'] = number_format2(1,4); +} -text_row_ex(_("Sales Type Name:"), 'sales_type', 20); +text_row_ex(_("Sales Type Name").':', 'sales_type', 20); +amount_row(_("Calculation factor").':', 'factor', null, null, null, 4); +check_row(_("Tax included").':', 'tax_included', $_POST['tax_included']); end_table(1); -submit_add_or_update_center($selected_id == -1); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/sales/sales_order_entry.php b/sales/sales_order_entry.php index c8c75bd4..dfeb1532 100644 --- a/sales/sales_order_entry.php +++ b/sales/sales_order_entry.php @@ -1,518 +1,475 @@ direct_invoice)) -{ - page(_("Sales Invoices"), false, false, "", $js); -} -else -{ - page(_("Sales Order Entry"), false, false, "", $js); +if (isset($_GET['NewDelivery']) && is_numeric($_GET['NewDelivery'])) { + + $_SESSION['page_title'] = _("Direct Sales Delivery"); + create_cart(13, $_GET['NewDelivery']); + +} elseif (isset($_GET['NewInvoice']) && is_numeric($_GET['NewInvoice'])) { + + $_SESSION['page_title'] = _("Direct Sales Invoice"); + create_cart(10, $_GET['NewInvoice']); + +} elseif (isset($_GET['ModifyOrderNumber']) && is_numeric($_GET['ModifyOrderNumber'])) { + + $help_page_title = _('Modifying Sales Order'); + $_SESSION['page_title'] = sprintf( _("Modifying Sales Order # %d"), $_GET['ModifyOrderNumber']); + create_cart(30, $_GET['ModifyOrderNumber']); + +} elseif (isset($_GET['NewOrder'])) { + + $_SESSION['page_title'] = _("New Sales Order Entry"); + create_cart(30, 0); } +page($_SESSION['page_title'], false, false, "", $js); +//----------------------------------------------------------------------------- -//-------------------------------------------------------------------------------- -if (isset($_GET['AddedID'])) -{ +if (isset($_GET['AddedID'])) { $order_no = $_GET['AddedID']; - $trans_type = systypes::sales_order(); + print_hidden_script(30); - display_notification_centered(_("Order has been entered.") . " #$order_no"); + display_notification_centered(sprintf( _("Order # %d has been entered."),$order_no)); - display_note(get_trans_view_str($trans_type, $order_no, _("View this order"))); + display_note(get_trans_view_str(30, $order_no, _("View This Order"))); + echo '
'; + display_note(print_document_link($order_no, _("Print This Order"), true, 30)); - hyperlink_params($path_to_root . "/sales/customer_invoice.php", _("Confirm Order Delivery Quantities and Produce Invoice"), "OrderNumber=$order_no"); + hyperlink_params($path_to_root . "/sales/customer_delivery.php", + _("Make Delivery Against This Order"), "OrderNumber=$order_no"); - hyperlink_params($_SERVER['PHP_SELF'], _("Enter a New Order"), "NewOrder=Yes"); + hyperlink_params($_SERVER['PHP_SELF'], _("Enter a New Order"), "NewOrder=0"); display_footer_exit(); -} -//-------------------------------------------------------------------------------- -if (isset($_GET['UpdatedID'])) -{ +} elseif (isset($_GET['UpdatedID'])) { $order_no = $_GET['UpdatedID']; - $trans_type = systypes::sales_order(); + print_hidden_script(30); + + display_notification_centered(sprintf( _("Order # %d has been updated."),$order_no)); + + display_note(get_trans_view_str(30, $order_no, _("View This Order"))); + echo '
'; + display_note(print_document_link($order_no, _("Print This Order"), true, 30)); + + hyperlink_params($path_to_root . "/sales/customer_delivery.php", + _("Confirm Order Quantities and Make Delivery"), "OrderNumber=$order_no"); + + hyperlink_params($path_to_root . "/sales/inquiry/sales_orders_view.php", + _("Select A Different Order"), "OutstandingOnly=1"); + + display_footer_exit(); + +} elseif (isset($_GET['AddedDN'])) { + $delivery = $_GET['AddedDN']; + print_hidden_script(13); + + display_notification_centered(sprintf(_("Delivery # %d has been entered."),$delivery)); + + display_note(get_trans_view_str(13, $delivery, _("View This Delivery"))); + echo '
'; + display_note(print_document_link($delivery, _("Print Delivery Note"), true, 13)); + + hyperlink_params($path_to_root . "/sales/customer_invoice.php", + _("Make Invoice Against This Delivery"), "DeliveryNumber=$delivery"); + + if ((isset($_GET['Type']) && $_GET['Type'] == 1)) + hyperlink_params("inquiry/sales_orders_view.php", + _("Enter a New Template Delivery"), "DeliveryTemplates=Yes"); + else + hyperlink_params($_SERVER['PHP_SELF'], _("Enter a New Delivery"), "NewDelivery=0"); - display_notification_centered(_("Order has been updated.") . " #$order_no"); + display_footer_exit(); - display_note(get_trans_view_str($trans_type, $order_no, _("View this order"))); +} elseif (isset($_GET['AddedDI'])) { + $invoice = $_GET['AddedDI']; + print_hidden_script(10); - hyperlink_params($path_to_root . "/sales/customer_invoice.php", _("Confirm Order Delivery Quantities and Produce Invoice"), "OrderNumber=$order_no"); + display_notification_centered(sprintf(_("Invoice # %d has been entered."),$invoice)); - hyperlink_params($path_to_root . "/sales/inquiry/sales_orders_view.php", _("Select A Different Order"), "OutstandingOnly=1"); + display_note(get_trans_view_str(10, $invoice, _("View This Invoice"))); + echo '
'; + display_note(print_document_link($invoice, _("Print Sales Invoice"), true, 10)); + + if ((isset($_GET['Type']) && $_GET['Type'] == 1)) + hyperlink_params("inquiry/sales_orders_view.php", + _("Enter a New Template Invoice"), "InvoiceTemplates=Yes"); + else + hyperlink_params($_SERVER['PHP_SELF'], _("Enter a New Direct Invoice"), "NewInvoice=0"); display_footer_exit(); } -//-------------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- -function copy_to_so() +function copy_to_cart() { - if ($_SESSION['Items']->direct_invoice) - $_SESSION['Items']->memo_ = $_POST['InvoiceText']; - - $_SESSION['Items']->orig_order_date = $_POST['OrderDate']; - $_SESSION['Items']->delivery_date = $_POST['delivery_date']; - $_SESSION['Items']->cust_ref = $_POST['cust_ref']; - $_SESSION['Items']->freight_cost = $_POST['freight_cost']; - $_SESSION['Items']->Comments = $_POST['Comments']; - - $_SESSION['Items']->deliver_to = $_POST['deliver_to']; - $_SESSION['Items']->delivery_address = $_POST["delivery_address"]; - $_SESSION['Items']->phone = $_POST["phone"]; - $_SESSION['Items']->Location = $_POST["Location"]; - $_SESSION['Items']->ship_via = $_POST["ship_via"]; + $cart = &$_SESSION['Items']; + + if ($cart->trans_type!=30) { + $cart->reference = $_POST['ref']; + } + $cart->Comments = $_POST['Comments']; + + $cart->document_date = $_POST['OrderDate']; + $cart->due_date = $_POST['delivery_date']; + $cart->cust_ref = $_POST['cust_ref']; + $cart->freight_cost = input_num('freight_cost'); + $cart->deliver_to = $_POST['deliver_to']; + $cart->delivery_address = $_POST['delivery_address']; + $cart->phone = $_POST['phone']; + $cart->Location = $_POST['Location']; + $cart->ship_via = $_POST['ship_via']; + + if (isset($_POST['email'])) + $cart->email =$_POST['email']; + else + $cart->email = ''; + $cart->customer_id = $_POST['customer_id']; + $cart->Branch = $_POST['branch_id']; + $cart->sales_type = $_POST['sales_type']; } -//-------------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- -function copy_from_so() +function copy_from_cart() { - if ($_SESSION['Items']->direct_invoice) - $_POST['InvoiceText'] = $_SESSION['Items']->memo_; - - $_POST['OrderDate'] = $_SESSION['Items']->orig_order_date; - $_POST['delivery_date'] = $_SESSION['Items']->delivery_date; - $_POST['cust_ref'] = $_SESSION['Items']->cust_ref; - $_POST['freight_cost'] = $_SESSION['Items']->freight_cost; - $_POST['Comments'] = $_SESSION['Items']->Comments; - - $_POST['deliver_to'] = $_SESSION['Items']->deliver_to; - $_POST["delivery_address"] = $_SESSION['Items']->delivery_address; - $_POST["phone"] = $_SESSION['Items']->phone; - $_POST["Location"] = $_SESSION['Items']->Location; - $_POST["ship_via"] = $_SESSION['Items']->ship_via; + $cart = &$_SESSION['Items']; + if ($cart->trans_type!=30) { + $_POST['ref'] = $cart->reference; + } + $_POST['Comments'] = $cart->Comments; + + $_POST['OrderDate'] = $cart->document_date; + $_POST['delivery_date'] = $cart->due_date; + $_POST['cust_ref'] = $cart->cust_ref; + $_POST['freight_cost'] = price_format($cart->freight_cost); + + $_POST['deliver_to'] = $cart->deliver_to; + $_POST['delivery_address'] = $cart->delivery_address; + $_POST['phone'] = $cart->phone; + $_POST['Location'] = $cart->Location; + $_POST['ship_via'] = $cart->ship_via; + + $_POST['customer_id'] = $cart->customer_id; + + $_POST['branch_id'] = $cart->Branch; + $_POST['sales_type'] = $cart->sales_type; } +//-------------------------------------------------------------------------------- +function line_start_focus() { + global $Ajax; -function can_process() -{ - if ($_SESSION['Items']->direct_invoice) - { - $edate = _("The entered invoice date is invalid."); - } - else - { - $edate = _("The entered order date is invalid."); - } - if (!is_date($_POST['OrderDate'])) - { - display_error($edate); + $Ajax->activate('items_table'); + set_focus('_stock_id_edit'); +} +//-------------------------------------------------------------------------------- + +function can_process() { + if (!is_date($_POST['OrderDate'])) { + display_error(_("The entered date is invalid.")); + set_focus('OrderDate'); return false; } - if ($_SESSION['Items']->direct_invoice && !is_date_in_fiscalyear($_POST['OrderDate'])) - { + if ($_SESSION['Items']->trans_type!=30 && !is_date_in_fiscalyear($_POST['OrderDate'])) { display_error(_("The entered date is not in fiscal year")); + set_focus('OrderDate'); return false; } - else - { - $_SESSION['Items']->orig_order_date = $_POST['OrderDate']; - } - if (count($_SESSION['Items']->line_items) == 0) - { - display_error(_("You must enter at least one line entry.")); + if (count($_SESSION['Items']->line_items) == 0) { + display_error(_("You must enter at least one non empty item line.")); + set_focus('AddItem'); return false; } - if (strlen($_POST['deliver_to']) <= 1) - { + if (strlen($_POST['deliver_to']) <= 1) { display_error(_("You must enter the person or company to whom delivery should be made to.")); + set_focus('deliver_to'); return false; } - - if (strlen($_POST['delivery_address']) <= 1) - { + if (strlen($_POST['delivery_address']) <= 1) { display_error( _("You should enter the street address in the box provided. Orders cannot be accepted without a valid street address.")); + set_focus('delivery_address'); return false; } if ($_POST['freight_cost'] == "") - $_POST['freight_cost'] = 0; + $_POST['freight_cost'] = price_format(0); - if (!is_numeric($_POST['freight_cost'])) - { + if (!check_num('freight_cost',0)) { display_error(_("The shipping cost entered is expected to be numeric.")); + set_focus('freight_cost'); return false; } - - if (!is_date($_POST['delivery_date'])) - { + if (!is_date($_POST['delivery_date'])) { display_error(_("The delivery date is invalid.")); + set_focus('delivery_date'); return false; } - - if (date1_greater_date2($_SESSION['Items']->orig_order_date, $_POST['delivery_date'])) - { + //if (date1_greater_date2($_SESSION['Items']->document_date, $_POST['delivery_date'])) { + if (date1_greater_date2($_POST['OrderDate'], $_POST['delivery_date'])) { display_error(_("The requested delivery date is before the date of the order.")); + set_focus('delivery_date'); return false; } - - $_SESSION['Items']->deliver_to = $_POST['deliver_to']; - $_SESSION['Items']->delivery_date = $_POST['delivery_date']; - $_SESSION['Items']->delivery_address = $_POST['delivery_address']; - $_SESSION['Items']->phone =$_POST['phone']; - if (isset($_POST['email'])) - $_SESSION['Items']->email =$_POST['email']; - else - $_SESSION['Items']->email = ""; - $_SESSION['Items']->Location = $_POST['Location']; - $_SESSION['Items']->cust_ref = $_POST['cust_ref']; - $_SESSION['Items']->Comments = $_POST['Comments']; - $_SESSION['Items']->freight_cost = $_POST['freight_cost']; - $_SESSION['Items']->ship_via = $_POST['ship_via']; - - return true; -} - -//----------------------------------------------------------------------------------------------------------- - -if (isset($_POST['ProcessOrder']) && $_SESSION['Items']->order_no == 0 && can_process()) -{ - - $order_no = add_sales_order($_SESSION['Items']); - - if ($_SESSION['Items']->direct_invoice) - { - $_SESSION['Items']->memo_ = $_POST['InvoiceText']; - $_SESSION['Items']->memo_ = str_replace("'", "\\'", $_SESSION['Items']->memo_); - $_SESSION['Items']->order_no = $order_no; - meta_forward("$path_to_root/sales/customer_invoice.php", "process_invoice=Yes"); - - } - else - { - - unset($_SESSION['Items']->line_items); - unset($_SESSION['Items']); - - meta_forward($_SERVER['PHP_SELF'], "AddedID=$order_no"); - } + if ($_SESSION['Items']->trans_type != 30 && !references::is_valid($_POST['ref'])) { + display_error(_("You must enter a reference.")); + set_focus('ref'); + return false; + } + return true; } -//------------------------------------------------------------------------------------------------------------- +//----------------------------------------------------------------------------- -if (isset($_POST['ProcessOrder']) && $_SESSION['Items']->order_no != 0 && can_process()) -{ +if (isset($_POST['ProcessOrder']) && can_process()) { + copy_to_cart(); - update_sales_order($_SESSION['Items']->order_no, $_SESSION['Items']); + $modified = ($_SESSION['Items']->trans_no != 0); + $so_type = $_SESSION['Items']->so_type; - $order_no = $_SESSION['Items']->order_no; + $_SESSION['Items']->write(1); - unset($_SESSION['Items']->line_items); - unset($_SESSION['Items']); + $trans_no = key($_SESSION['Items']->trans_no); + $trans_type = $_SESSION['Items']->trans_type; - meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$order_no"); + processing_end(); + if ($modified) { + meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$trans_no"); + } elseif ($trans_type == 30) { + meta_forward($_SERVER['PHP_SELF'], "AddedID=$trans_no"); + } elseif ($trans_type == 10) { + meta_forward($_SERVER['PHP_SELF'], "AddedDI=$trans_no&Type=$so_type"); + } else { + meta_forward($_SERVER['PHP_SELF'], "AddedDN=$trans_no&Type=$so_type"); + } } - //-------------------------------------------------------------------------------- -function check_item_data() +function check_item_data() { - if (!is_numeric($_POST['qty']) || $_POST['qty'] < 0 || $_POST['Disc'] > 100 || - $_POST['Disc'] < 0) - { + + if (!check_num('qty', 0) || !check_num('Disc', 0, 100)) { display_error( _("The item could not be updated because you are attempting to set the quantity ordered to less than 0, or the discount percent to more than 100.")); + set_focus('qty'); + return false; + } elseif (!check_num('price', 0)) { + display_error( _("Price for item must be entered and can not be less than 0")); + set_focus('price'); return false; - } - elseif($_SESSION['Items']->some_already_delivered($_POST['stock_id']) != 0 && - $_SESSION['Items']->line_items[$_POST['stock_id']]->price != $_POST['price']) - { - display_error(_("The item you attempting to modify the price for has already had some quantity invoiced at the old price. The item unit price cannot be modified retrospectively.")); - return false; - } - elseif($_SESSION['Items']->some_already_delivered($_POST['stock_id']) != 0 && - $_SESSION['Items']->line_items[$_POST['stock_id']]->discount_percent != ($_POST['Disc']/100)) - { - display_error(_("The item you attempting to modify has had some quantity invoiced at the old discount percent. The items discount cannot be modified retrospectively.")); - return false; - } - elseif (isset($_SESSION['Items']->line_items[$_POST['stock_id']]) && $_SESSION['Items']->line_items[$_POST['stock_id']]->qty_inv > $_POST['qty']) - { - display_error(_("You attempting to make the quantity ordered a quantity less than has already been invoiced. The quantity delivered and invoiced cannot be modified retrospectively.")); - return false; - } - return true; + } elseif (isset($_POST['LineNo']) && isset($_SESSION['Items']->line_items[$_POST['LineNo']]) + && !check_num('qty', $_SESSION['Items']->line_items[$_POST['LineNo']]->qty_done)) { + + set_focus('qty'); + display_error(_("You attempting to make the quantity ordered a quantity less than has already been delivered. The quantity delivered cannot be modified retrospectively.")); + return false; + } + return true; } -function handle_update_item() +//-------------------------------------------------------------------------------- + +function handle_update_item() { - if($_POST['UpdateItem'] != "" && check_item_data()) - { - $_SESSION['Items']->update_cart_item($_POST['stock_id'], $_POST['qty'], - $_POST['price'], ($_POST['Disc'] / 100)); - } + if ($_POST['UpdateItem'] != '' && check_item_data()) { + $_SESSION['Items']->update_cart_item($_POST['LineNo'], + input_num('qty'), input_num('price'), + input_num('Disc') / 100 ); + } + line_start_focus(); } //-------------------------------------------------------------------------------- -function handle_delete_item() -{ - if($_GET['Delete'] != "") - { - $stock_id = $_GET['Delete']; - if($_SESSION['Items']->some_already_delivered($stock_id) == 0) - { - $_SESSION['Items']->remove_from_cart($stock_id); - } - else - { - display_error(_("This item cannot be deleted because some of it has already been invoiced.")); - } +function handle_delete_item($line_no) +{ + if ($_SESSION['Items']->some_already_delivered($line_no) == 0) { + $_SESSION['Items']->remove_from_cart($line_no); + } else { + display_error(_("This item cannot be deleted because some of it has already been delivered.")); } + line_start_focus(); } //-------------------------------------------------------------------------------- function handle_new_item() { - if (!check_item_data()) - return; - - add_to_order($_SESSION['Items'], $_POST['stock_id'], $_POST['qty'], - $_POST['price'], $_POST['Disc']/100); - $_POST['StockID2'] = $_POST['stock_id'] = ""; + + if (!check_item_data()) { + return; + } + add_to_order($_SESSION['Items'], $_POST['stock_id'], input_num('qty'), + input_num('price'), input_num('Disc') / 100); + $_POST['_stock_id_edit'] = $_POST['stock_id'] = ""; + line_start_focus(); } -//-------------------------------------------------------------------------------- +//-------------------------------------------------------------------------------- function handle_cancel_order() { global $path_to_root; - - if ($_POST['CancelOrder'] != "") - { - $ok_to_delete = 1; //assume this in the first instance - - if (($_SESSION['Items']->order_no != 0) && - sales_order_has_invoices($_SESSION['Items']->order_no)) - { - $ok_to_delete = 0; - display_error(_("This order cannot be cancelled because some of it has already been invoiced. However, the line item quantities may be modified.")); + + if ($_POST['CancelOrder'] != "") { + + if ($_SESSION['Items']->trans_type == 13) { + display_note(_("Direct delivery entry has been cancelled as requested."), 1); + hyperlink_params($path_to_root . "/sales/sales_order_entry.php", + _("Enter a New Sales Delivery"), SID . "&NewDelivery=0"); + } elseif ($_SESSION['Items']->trans_type == 10) { + display_note(_("Direct invoice entry has been cancelled as requested."), 1); + hyperlink_params($path_to_root . "/sales/sales_order_entry.php", + _("Enter a New Sales Delivery"), SID . "&NewDelivery=0"); + } else { + if ($_SESSION['Items']->trans_no != 0) { + if (sales_order_has_deliveries(key($_SESSION['Items']->trans_no))) + display_error(_("This order cannot be cancelled because some of it has already been invoiced or dispatched. However, the line item quantities may be modified.")); + else + delete_sales_order(key($_SESSION['Items']->trans_no)); } - - if ($ok_to_delete == 1) - { - if($_SESSION['Items']->order_no != 0) - { - delete_sales_order($_SESSION['Items']->order_no); - } - $diriv = $_SESSION['Items']->direct_invoice; - $_SESSION['Items']->clear_items(); - $_SESSION['Items'] = new cart; - $_SESSION['Items']->direct_invoice = $diriv; - if ($diriv) - { - display_note(_("This sales invoice has been cancelled as requested."), 1); - hyperlink_params($path_to_root . "/sales/sales_order_entry.php", _("Enter a New Sales Invoice"), SID . "&NewInvoice=Yes"); - } - else - { - display_note(_("This sales order has been cancelled as requested."), 1); - hyperlink_params($path_to_root . "/sales/sales_order_entry.php", _("Enter a New Sales Order"), SID . "&NewOrder=Yes"); - } - br(1); - end_page(); - exit; - } - } -} - -//-------------------------------------------------------------------------------- -function handle_new_order() -{ - /*New order entry - clear any existing order details from the Items object and initiate a newy*/ - if (isset($_SESSION['Items'])) - { - unset ($_SESSION['Items']->line_items); - unset ($_SESSION['Items']); + display_note(_("This sales order has been cancelled as requested."), 1); + hyperlink_params($path_to_root . "/sales/sales_order_entry.php", + _("Enter a New Sales Order"), SID . "&NewOrder=Yes"); + } + processing_end(); + br(1); + end_page(); + exit; } - - session_register("Items"); - - $_SESSION['Items'] = new cart; - if (isset($_GET['NewInvoice'])) - $_SESSION['Items']->direct_invoice = true; - $_SESSION['Items']->customer_id = ""; - $_POST['OrderDate'] = Today(); - if (!is_date_in_fiscalyear($_POST['OrderDate'])) - $_POST['OrderDate'] = end_fiscalyear(); - $_SESSION['Items']->orig_order_date = $_POST['OrderDate']; } -//-------------------------------------------------------------------------------- +//-------------------------------------------------------------------------------- -if (isset($_GET['ModifyOrderNumber']) && $_GET['ModifyOrderNumber'] != "") +function create_cart($type, $trans_no) { - - if (isset($_SESSION['Items'])) - { - unset ($_SESSION['Items']->line_items); - unset ($_SESSION['Items']); - } - - session_register("Items"); - - $_SESSION['Items'] = new cart; - $_SESSION['Items']->order_no = $_GET['ModifyOrderNumber']; - - /*read in all the selected order into the Items cart */ - - read_sales_order($_SESSION['Items']->order_no, $_SESSION['Items']); + processing_start(); + $doc_type = $type; + + if($type != 30 && $trans_no != 0) { // this is template + $doc_type = 30; + + $doc = new Cart(30, array($trans_no)); + $doc->trans_type = $type; + $doc->trans_no = 0; + $doc->document_date = Today(); // 2006-06-15. Added so Invoices and Deliveries get current day + if ($type == 10) + $doc->due_date = get_invoice_duedate($doc->customer_id, $doc->document_date); + else + $doc->due_date = $doc->document_date; + $doc->reference = references::get_next($doc->trans_type); + $doc->Comments=''; + foreach($doc->line_items as $line_no => $line) { + $doc->line_items[$line_no]->qty_done = 0; + } + $_SESSION['Items'] = $doc; + } else + $_SESSION['Items'] = new Cart($type,array($trans_no)); + copy_from_cart(); } //-------------------------------------------------------------------------------- if (isset($_POST['CancelOrder'])) - handle_cancel_order(); + handle_cancel_order(); -if (isset($_GET['Delete']) || isset($_GET['Edit'])) - copy_from_so(); - -if (isset($_GET['Delete'])) - handle_delete_item(); +$id = find_submit('Delete'); +if ($id!=-1) + handle_delete_item($id); -if (isset($_POST['UpdateItem']) || isset($_POST['AddItem'])) - copy_to_so(); - if (isset($_POST['UpdateItem'])) handle_update_item(); if (isset($_POST['AddItem'])) handle_new_item(); - -//-------------------------------------------------------------------------------- -if (isset($_GET['NewOrder']) || isset($_GET['NewInvoice'])) -{ - handle_new_order(); -} -else -{ - if (!isset($_POST['customer_id'])) - $_POST['customer_id'] = $_SESSION['Items']->customer_id; - if (!isset($_POST['branch_id'])) - $_POST['branch_id'] = $_SESSION['Items']->Branch; - if (!isset($_POST['OrderDate'])) - $_POST['OrderDate'] = $_SESSION['Items']->orig_order_date; +if (isset($_POST['CancelItemChanges'])) { + line_start_focus(); } -//-------------------------------------------------------------------------------- - +//-------------------------------------------------------------------------------- check_db_has_stock_items(_("There are no inventory items defined in the system.")); -check_db_has_customer_branches(_("There are no customers, or there are no customers with branches. Please define customers and customer branches.")); +check_db_has_customer_branches(_("There are no customers, or there are no customers with branches. Please define customers and customer branches.")); -if ($_SESSION['Items']->direct_invoice) -{ +if ($_SESSION['Items']->trans_type == 10) { $idate = _("Invoice Date:"); $orderitems = _("Sales Invoice Items"); $deliverydetails = _("Enter Delivery Details and Confirm Invoice"); $cancelorder = _("Cancel Invoice"); -} -else -{ + $porder = _("Place Invoice"); +} elseif ($_SESSION['Items']->trans_type == 13) { + $idate = _("Delivery Date:"); + $orderitems = _("Delivery Note Items"); + $deliverydetails = _("Enter Delivery Details and Confirm Dispatch"); + $cancelorder = _("Cancel Delivery"); + $porder = _("Place Delivery"); +} else { $idate = _("Order Date:"); $orderitems = _("Sales Order Items"); $deliverydetails = _("Enter Delivery Details and Confirm Order"); $cancelorder = _("Cancel Order"); + $porder = _("Place Order"); + $corder = _("Commit Order Changes"); } start_form(false, true); -$customer_error = display_order_header($_SESSION['Items'], +$customer_error = display_order_header($_SESSION['Items'], ($_SESSION['Items']->any_already_delivered() == 0), $idate); -if ($customer_error == "") -{ +if ($customer_error == "") { start_table("$table_style width=80%", 10); - echo ""; - echo ""; - end_table(1); -} -else -{ - display_error($customer_error); -} + end_table(1); -if ($_SESSION['Items']->direct_invoice) -{ - $porder = _("Place Invoice"); - $corder = _("Commit Invoice Changes"); - $eorder = _("Edit Invoice Items"); -} -else -{ - $porder = _("Place Order"); - $corder = _("Commit Order Changes"); - $eorder = _("Edit Order Items"); -} + if ($_SESSION['Items']->trans_no == 0) { -if ($_SESSION['Items']->order_no == 0) -{ - submit_center_first('ProcessOrder', $porder); -} -else -{ - submit_center_first('ProcessOrder', $corder); -} + submit_center_first('ProcessOrder', $porder, + _('Check entered data and save document'), true); + } else { + submit_center_first('ProcessOrder', $corder, + _('Validate changes and update document'), true); + } -/* -echo " "; -submit('EditOrder', $eorder); -if ($_SESSION['Items']->count_items() >= 1) -{ - echo " "; - submit('DeliveryDetails', $deliverydetails); - echo " "; + submit_center_last('CancelOrder', $cancelorder, + _('Cancels document entry or removes sales order when editing an old document')); +} else { + display_error($customer_error); } -*/ -submit_center_last('CancelOrder', $cancelorder); - end_form(); - -//-------------------------------------------------------------------------------- - -if (!isset($_SESSION['Items'])) -{ - /* It must be a new order being created $_SESSION['Items'] would be set up from the order - modification code above if a modification to an existing order. */ - - session_register("Items"); - - $_SESSION['Items'] = new cart; - if (isset($_GET['NewInvoice'])) - $_SESSION['Items']->direct_invoice = true; - $_SESSION['Items']->order_no = 0; -} - -//-------------------------------------------------------------------------------- - end_page(); + ?> \ No newline at end of file diff --git a/sales/view/view_credit.php b/sales/view/view_credit.php index 1e98a8e5..f220fca1 100644 --- a/sales/view/view_credit.php +++ b/sales/view/view_credit.php @@ -17,7 +17,7 @@ page(_("View Credit Note"), true, false, "", $js); if (isset($_GET["trans_no"])) { $trans_id = $_GET["trans_no"]; -} +} elseif (isset($_POST["trans_no"])) { $trans_id = $_POST["trans_no"]; @@ -27,7 +27,7 @@ $myrow = get_customer_trans($trans_id, 11); $branch = get_branch($myrow["branch_code"]); -display_heading("" . _("CREDIT NOTE") . " #$trans_id"); +display_heading("" . sprintf(_("CREDIT NOTE #%d"), $trans_id). ""); echo "
"; start_table("$table_style2 width=95%"); @@ -80,7 +80,7 @@ if (db_num_rows($result) > 0) { $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"), _("Price"), _("Discount %"), _("Total")); - table_header($th); + table_header($th); $k = 0; //row colour counter $sub_total = 0; @@ -90,37 +90,37 @@ if (db_num_rows($result) > 0) alt_table_row_color($k); - $net = ((1 - $myrow2["discount_percent"]) * $myrow2["FullUnitPrice"] * $myrow2["quantity"]); - $sub_total += $net; + $value = round(((1 - $myrow2["discount_percent"]) * $myrow2["unit_price"] * $myrow2["quantity"]), + user_price_dec()); + $sub_total += $value; if ($myrow2["discount_percent"] == 0) { $display_discount = ""; - } - else + } + else { - $display_discount = number_format2($myrow2["discount_percent"]*100,user_percent_dec()) . "%"; + $display_discount = percent_format($myrow2["discount_percent"]*100) . "%"; } label_cell($myrow2["stock_id"]); label_cell($myrow2["StockDescription"]); - qty_cell($myrow2["quantity"]); + qty_cell($myrow2["quantity"], false, get_qty_dec($myrow2["stock_id"])); label_cell($myrow2["units"], "align=right"); - amount_cell($myrow2["FullUnitPrice"]); + amount_cell($myrow2["unit_price"]); label_cell($display_discount, "align=right"); - amount_cell($net); + amount_cell($value); end_row(); } //end while there are line items to print out -} +} else display_note(_("There are no line items on this credit note."), 1, 2); -$display_sub_tot = number_format2($sub_total,user_price_dec()); -$display_freight = number_format2(-$myrow["ov_freight"],user_price_dec()); +$display_sub_tot = price_format($sub_total); +$display_freight = price_format($myrow["ov_freight"]); -$display_tax = number_format2(-$myrow["ov_gst"],user_price_dec()); -$credit_total = -$myrow["ov_freight"]-$myrow["ov_gst"]-$myrow["ov_amount"]; -$display_total = number_format2($credit_total,user_price_dec()); +$credit_total = $myrow["ov_freight"]+$myrow["ov_gst"]+$myrow["ov_amount"]+$myrow["ov_freight_tax"]; +$display_total = price_format($credit_total); /*Print out the invoice text entered */ if ($sub_total != 0) @@ -138,7 +138,7 @@ end_table(1); $voided = is_voided_display(11, $trans_id, _("This credit note has been voided.")); if (!$voided) - display_allocations_from(payment_person_types::customer(), + display_allocations_from(payment_person_types::customer(), $myrow['debtor_no'], 11, $trans_id, $credit_total); /* end of check to see that there was an invoice record to print */ diff --git a/sales/view/view_dispatch.php b/sales/view/view_dispatch.php new file mode 100644 index 00000000..3d7d2e75 --- /dev/null +++ b/sales/view/view_dispatch.php @@ -0,0 +1,162 @@ +"; +start_table("$table_style2 width=95%"); +echo ""; +end_table(1); // outer table + + +$result = get_customer_trans_details(13, $trans_id); + +start_table("$table_style width=95%"); + +if (db_num_rows($result) > 0) +{ + $th = array(_("Item Code"), _("Item Description"), _("Quantity"), + _("Unit"), _("Price"), _("Discount %"), _("Total")); + table_header($th); + + $k = 0; //row colour counter + $sub_total = 0; + while ($myrow2 = db_fetch($result)) + { + if($myrow2['quantity']==0) continue; + alt_table_row_color($k); + + $value = round(((1 - $myrow2["discount_percent"]) * $myrow2["unit_price"] * $myrow2["quantity"]), + user_price_dec()); + $sub_total += $value; + + if ($myrow2["discount_percent"] == 0) + { + $display_discount = ""; + } + else + { + $display_discount = percent_format($myrow2["discount_percent"]*100) . "%"; + } + + label_cell($myrow2["stock_id"]); + label_cell($myrow2["StockDescription"]); + qty_cell($myrow2["quantity"], false, get_qty_dec($myrow2["stock_id"])); + label_cell($myrow2["units"], "align=right"); + amount_cell($myrow2["unit_price"]); + label_cell($display_discount, "nowrap align=right"); + amount_cell($value); + end_row(); + } //end while there are line items to print out + +} +else + display_note(_("There are no line items on this dispatch."), 1, 2); + +$display_sub_tot = price_format($sub_total); +$display_freight = price_format($myrow["ov_freight"]); + +/*Print out the delivery note text entered */ +label_row(_("Sub-total"), $display_sub_tot, "colspan=6 align=right", + "nowrap align=right width=15%"); +label_row(_("Shipping"), $display_freight, "colspan=6 align=right", "nowrap align=right"); + +$tax_items = get_customer_trans_tax_details(13, $trans_id); +display_customer_trans_tax_details($tax_items, 6); + +$display_total = price_format($myrow["ov_freight"]+$myrow["ov_amount"]+$myrow["ov_freight_tax"]+$myrow["ov_gst"]); + +label_row(_("TOTAL VALUE"), $display_total, "colspan=6 align=right", + "nowrap align=right"); +end_table(1); + +is_voided_display(13, $trans_id, _("This dispatch has been voided.")); + +end_page(true); + +?> \ No newline at end of file diff --git a/sales/view/view_invoice.php b/sales/view/view_invoice.php index 8c2fb857..f14e0ced 100644 --- a/sales/view/view_invoice.php +++ b/sales/view/view_invoice.php @@ -17,7 +17,7 @@ page(_("View Sales Invoice"), true, false, "", $js); if (isset($_GET["trans_no"])) { $trans_id = $_GET["trans_no"]; -} +} elseif (isset($_POST["trans_no"])) { $trans_id = $_POST["trans_no"]; @@ -29,9 +29,9 @@ $myrow = get_customer_trans($trans_id, 10); $branch = get_branch($myrow["branch_code"]); -$sales_order = get_sales_order($myrow["order_"]); +$sales_order = get_sales_order_header($myrow["order_"]); -display_heading(_("SALES INVOICE") . " #$trans_id"); +display_heading(sprintf(_("SALES INVOICE #%d"),$trans_id)); echo "
"; start_table("$table_style2 width=95%"); @@ -75,7 +75,7 @@ start_table("$table_style width=100%"); start_row(); label_cells(_("Reference"), $myrow["reference"], "class='tableheader2'"); label_cells(_("Currency"), $sales_order["curr_code"], "class='tableheader2'"); -label_cells(_("Our Order No"), +label_cells(_("Our Order No"), get_customer_trans_view_str(systypes::sales_order(),$sales_order["order_no"]), "class='tableheader2'"); end_row(); start_row(); @@ -102,53 +102,54 @@ if (db_num_rows($result) > 0) { $th = array(_("Item Code"), _("Item Description"), _("Quantity"), _("Unit"), _("Price"), _("Discount %"), _("Total")); - table_header($th); + table_header($th); $k = 0; //row colour counter $sub_total = 0; while ($myrow2 = db_fetch($result)) { - + if($myrow2["quantity"]==0) continue; alt_table_row_color($k); - $net = ((1 - $myrow2["discount_percent"]) * $myrow2["FullUnitPrice"] * -$myrow2["quantity"]); - $sub_total += $net; + $value = round(((1 - $myrow2["discount_percent"]) * $myrow2["unit_price"] * $myrow2["quantity"]), + user_price_dec()); + $sub_total += $value; if ($myrow2["discount_percent"] == 0) { $display_discount = ""; - } - else + } + else { - $display_discount = number_format2($myrow2["discount_percent"]*100,user_percent_dec()) . "%"; + $display_discount = percent_format($myrow2["discount_percent"]*100) . "%"; } label_cell($myrow2["stock_id"]); label_cell($myrow2["StockDescription"]); - qty_cell(-$myrow2["quantity"]); + qty_cell($myrow2["quantity"], false, get_qty_dec($myrow2["stock_id"])); label_cell($myrow2["units"], "align=right"); - amount_cell($myrow2["FullUnitPrice"]); + amount_cell($myrow2["unit_price"]); label_cell($display_discount, "nowrap align=right"); - amount_cell($net); + amount_cell($value); end_row(); } //end while there are line items to print out -} +} else display_note(_("There are no line items on this invoice."), 1, 2); -$display_sub_tot = number_format2($sub_total,user_price_dec()); -$display_freight = number_format2($myrow["ov_freight"],user_price_dec()); +$display_sub_tot = price_format($sub_total); +$display_freight = price_format($myrow["ov_freight"]); /*Print out the invoice text entered */ -label_row(_("Sub-total"), $display_sub_tot, "colspan=6 align=right", +label_row(_("Sub-total"), $display_sub_tot, "colspan=6 align=right", "nowrap align=right width=15%"); label_row(_("Shipping"), $display_freight, "colspan=6 align=right", "nowrap align=right"); $tax_items = get_customer_trans_tax_details(10, $trans_id); display_customer_trans_tax_details($tax_items, 6); -$display_total = number_format2($myrow["ov_freight"]+$myrow["ov_gst"]+$myrow["ov_amount"],user_price_dec()); +$display_total = price_format($myrow["ov_freight"]+$myrow["ov_gst"]+$myrow["ov_amount"]+$myrow["ov_freight_tax"]); label_row(_("TOTAL INVOICE"), $display_total, "colspan=6 align=right", "nowrap align=right"); diff --git a/sales/view/view_receipt.php b/sales/view/view_receipt.php index 94e4d4f9..13797b0a 100644 --- a/sales/view/view_receipt.php +++ b/sales/view/view_receipt.php @@ -17,7 +17,7 @@ if (isset($_GET["trans_no"])) $receipt = get_customer_trans($trans_id, systypes::cust_payment()); -display_heading(_("Customer Payment") . " #$trans_id"); +display_heading(sprintf(_("Customer Payment #%d"),$trans_id)); echo "
"; start_table("$table_style width=80%"); @@ -28,8 +28,8 @@ label_cells(_("Date of Deposit"), sql2date($receipt['tran_date']), "class='table end_row(); start_row(); label_cells(_("Payment Currency"), $receipt['curr_code'], "class='tableheader2'"); -label_cells(_("Amount"), number_format2(-$receipt['ov_amount'], user_price_dec()), "class='tableheader2'"); -label_cells(_("Discount"), number_format2(-$receipt['ov_discount'], user_price_dec()), "class='tableheader2'"); +label_cells(_("Amount"), price_format($receipt['ov_amount']), "class='tableheader2'"); +label_cells(_("Discount"), price_format($receipt['ov_discount']), "class='tableheader2'"); end_row(); start_row(); label_cells(_("Payment Type"), $receipt['BankTransType'], "class='tableheader2'"); diff --git a/sales/view/view_sales_order.php b/sales/view/view_sales_order.php index a1b63862..333a1130 100644 --- a/sales/view/view_sales_order.php +++ b/sales/view/view_sales_order.php @@ -16,25 +16,22 @@ if ($use_popup_windows) page(_("View Sales Order"), true, false, "", $js); -display_heading(_("Sales Order") . " #" . $_GET['trans_no']); +display_heading(sprintf(_("Sales Order #%d"),$_GET['trans_no'])); if (isset($_SESSION['Items'])) { unset ($_SESSION['Items']); } -$_SESSION['Items'] = new cart; - -/*read in all the selected order into the Items cart */ -read_sales_order($_GET['trans_no'], $_SESSION['Items']); +$_SESSION['Items'] = new Cart(30, $_GET['trans_no'], true); start_table("$table_style2 width=95%", 5); echo ""; echo "";*/ - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + edit_button_cell("Edit".$myrow["id"], _("Edit")); + edit_button_cell("Delete".$myrow["id"], _("Delete")); end_row();; } end_table(); +end_form(); +echo '
'; //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Tax Group")); - start_form(); start_table($table_style2); @@ -178,8 +172,7 @@ if ($selected_id != -1) { //editing an existing status code - if (!isset($_POST['name'])) - { + if ($Mode == 'Edit') { $group = get_tax_group($selected_id); $_POST['name'] = $group["name"]; @@ -191,8 +184,7 @@ if ($selected_id != -1) while ($tax_item = db_fetch($items)) { $_POST['tax_type_id' . $i] = $tax_item["tax_type_id"]; - $_POST['rate' . $i] = $tax_item["rate"]; - $_POST['included' . $i] = $tax_item["included_in_price"]; + $_POST['rate' . $i] = percent_format($tax_item["rate"]); $i ++; } } @@ -207,34 +199,32 @@ end_table(); display_note(_("Select the taxes that are included in this group."), 1); start_table($table_style2); -$th = array(_("Tax"), _("Default Rate (%)"), _("Rate (%)"), _("Include in Price")); +$th = array(_("Tax"), _("Default Rate (%)"), _("Rate (%)")); table_header($th); for ($i = 0; $i < 5; $i++) { start_row(); if (!isset($_POST['tax_type_id' . $i])) $_POST['tax_type_id' . $i] = 0; - if (!isset($_POST['included' . $i])) - $_POST['included' . $i] = 0; - tax_types_list_cells(null, 'tax_type_id' . $i, $_POST['tax_type_id' . $i], true, _("None"), true); + tax_types_list_cells(null, 'tax_type_id' . $i, $_POST['tax_type_id' . $i], _("None"), true); if ($_POST['tax_type_id' . $i] != 0 && $_POST['tax_type_id' . $i] != reserved_words::get_all_numeric()) { $default_rate = get_tax_type_default_rate($_POST['tax_type_id' . $i]); - label_cell(number_format2($default_rate, user_percent_dec()), "nowrap align=right"); + label_cell(percent_format($default_rate), "nowrap align=right"); if (!isset($_POST['rate' . $i]) || $_POST['rate' . $i] == "") - $_POST['rate' . $i] = $default_rate; - text_cells(null, 'rate' . $i, $_POST['rate' . $i], 10, 10); - check_cells(null, 'included' . $i, $_POST['included' . $i]); + $_POST['rate' . $i] = percent_format($default_rate); + small_amount_cells(null, 'rate' . $i, $_POST['rate' . $i], null, null, + user_percent_dec()); } end_row(); } end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/taxes/tax_types.php b/taxes/tax_types.php index d5b5e60b..adfa7b9d 100644 --- a/taxes/tax_types.php +++ b/taxes/tax_types.php @@ -3,37 +3,26 @@ $page_security = 3; $path_to_root=".."; include($path_to_root . "/includes/session.inc"); - page(_("Tax Types")); include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/taxes/db/tax_types_db.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} +simple_page_mode(true); //----------------------------------------------------------------------------------- -function can_process() +function can_process() { - if (strlen($_POST['name']) == 0) + if (strlen($_POST['name']) == 0) { display_error(_("The tax type name cannot be empty.")); + set_focus('name'); return false; - } - elseif (!is_numeric($_POST['rate'])) - { - display_error( _("The default tax rate must be numeric.")); - return false; - } - elseif ($_POST['rate'] < 0) + } + elseif (!check_num('rate', 0)) { - display_error( _("The default tax rate cannot be less than zero.")); + display_error( _("The default tax rate must be numeric and not less than zero.")); + set_focus('rate'); return false; } @@ -42,22 +31,24 @@ function can_process() //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) && can_process()) +if ($Mode=='ADD_ITEM' && can_process()) { add_tax_type($_POST['name'], $_POST['sales_gl_code'], - $_POST['purchasing_gl_code'], $_POST['rate'], check_value('out')); - meta_forward($_SERVER['PHP_SELF']); + $_POST['purchasing_gl_code'], input_num('rate')); + display_notification(_('New tax type has been added')); + $Mode = 'RESET'; } //----------------------------------------------------------------------------------- -if (isset($_POST['UPDATE_ITEM']) && can_process()) +if ($Mode=='UPDATE_ITEM' && can_process()) { update_tax_type($selected_id, $_POST['name'], - $_POST['sales_gl_code'], $_POST['purchasing_gl_code'], $_POST['rate'], check_value('out')); - meta_forward($_SERVER['PHP_SELF']); + $_POST['sales_gl_code'], $_POST['purchasing_gl_code'], input_num('rate')); + display_notification(_('Selected tax type has been updated')); + $Mode = 'RESET'; } //----------------------------------------------------------------------------------- @@ -67,9 +58,10 @@ function can_delete($selected_id) $sql= "SELECT COUNT(*) FROM ".TB_PREF."tax_group_items WHERE tax_type_id=$selected_id"; $result = db_query($sql, "could not query tax groups"); $myrow = db_fetch_row($result); - if ($myrow[0] > 0) + if ($myrow[0] > 0) { display_error(_("Cannot delete this tax type because tax groups been created referring to it.")); + return false; } @@ -79,52 +71,54 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_tax_type($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected tax type has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //----------------------------------------------------------------------------------- $result = get_all_tax_types(); +start_form(); start_table($table_style); $th = array(_("Description"), _("Default Rate (%)"), - _("Sales GL Account"), _("Purchasing GL Account"), _("Outstanding"), "", ""); -table_header($th); + _("Sales GL Account"), _("Purchasing GL Account"), "", ""); +table_header($th); $k = 0; -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result)) { - if ($myrow['out'] == 1) - $out = _("Yes"); - else - $out = _("No"); alt_table_row_color($k); label_cell($myrow["name"]); - label_cell(number_format2($myrow["rate"],user_percent_dec()), "align=right"); + label_cell(percent_format($myrow["rate"]), "align=right"); label_cell($myrow["sales_gl_code"] . " " . $myrow["SalesAccountName"]); label_cell($myrow["purchasing_gl_code"] . " " . $myrow["PurchasingAccountName"]); - label_cell($out); - edit_link_cell("selected_id=".$myrow["id"]); - delete_link_cell("selected_id=".$myrow["id"]."&delete=1"); + edit_button_cell("Edit".$myrow["id"], _("Edit")); + edit_button_cell("Delete".$myrow["id"], _("Delete")); + end_row(); } end_table(); -//----------------------------------------------------------------------------------- - -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Tax Type")); +end_form(); +echo '
'; //----------------------------------------------------------------------------------- @@ -132,31 +126,29 @@ start_form(); start_table($table_style2); -if (isset($selected_id)) +if ($selected_id != -1) { - //editing an existing status code - - $myrow = get_tax_type($selected_id); + if ($Mode == 'Edit') { + //editing an existing status code - $_POST['name'] = $myrow["name"]; - $_POST['rate'] = $myrow["rate"]; - $_POST['sales_gl_code'] = $myrow["sales_gl_code"]; - $_POST['purchasing_gl_code'] = $myrow["purchasing_gl_code"]; - $_POST['out'] = $myrow["out"]; + $myrow = get_tax_type($selected_id); + $_POST['name'] = $myrow["name"]; + $_POST['rate'] = percent_format($myrow["rate"]); + $_POST['sales_gl_code'] = $myrow["sales_gl_code"]; + $_POST['purchasing_gl_code'] = $myrow["purchasing_gl_code"]; + } hidden('selected_id', $selected_id); } text_row_ex(_("Description:"), 'name', 50); -text_row_ex(_("Default Rate:"), 'rate', 10, 10, "", "%"); +small_amount_row(_("Default Rate:"), 'rate', '', "", "%", user_percent_dec()); gl_all_accounts_list_row(_("Sales GL Account:"), 'sales_gl_code', null); gl_all_accounts_list_row(_("Purchasing GL Account:"), 'purchasing_gl_code', null); -check_row(_("Outstanding:"), 'out', null); - end_table(1); -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/themes/aqua/default.css b/themes/aqua/default.css index 869aac2d..e7323a8a 100644 --- a/themes/aqua/default.css +++ b/themes/aqua/default.css @@ -19,7 +19,7 @@ body { font-family: Verdana, Arial, Helvetica; background: #518fad; - font-size: 10px; + font-size: 10px; margin: 5px 0 0 5px; padding: 0; } @@ -29,6 +29,10 @@ tr, td, th { line-height: 19px; } +table { + text-align: left; +} + textarea { font-size: 12px; } @@ -48,7 +52,7 @@ input.small { a { color: #0000bb; - font-size: 11px; + font-size: 11px; text-decoration: none; } @@ -93,7 +97,7 @@ a:hover { border: 0; margin: 0; padding: 0; - text-align: right; + /*text-align: right;*/ } .quick_menu_selected{ @@ -108,18 +112,18 @@ a:hover { } .logoutBar { - padding-right: 1em; - background: #a7d6ce; - color: black; - border-bottom: 1px solid #8cacbb; + padding-right: 1em; + background: #a7d6ce; + color: black; + border-bottom: 1px solid #8cacbb; width: 100%; } .bottomBar { - padding-right: 1em; - background: #a7d6ce; - color: black; - border-bottom: 1px solid #8cacbb; + padding-right: 1em; + background: #a7d6ce; + color: black; + border-bottom: 1px solid #8cacbb; width: 100%; } @@ -129,11 +133,11 @@ a:hover { } .bottomBar2 { - padding-right: 1em; - background: #a7d6ce; - color: black; - border-top: 1px solid #8cacbb; - border-bottom: 1px solid #8cacbb; + padding-right: 1em; + background: #a7d6ce; + color: black; + border-top: 1px solid #8cacbb; + border-bottom: 1px solid #8cacbb; width: 100%; } @@ -142,16 +146,16 @@ a:hover { } div.logoutBar { - padding-right: 1em; - background: #a7d6ce; - color: black; - border-bottom: 1px solid #8cacbb; + padding-right: 1em; + background: #a7d6ce; + color: black; + border-bottom: 1px solid #8cacbb; text-align: right; } div.logoutBar a { - font-weight: normal; - margin-left: 1em; - color: #436976; + font-weight: normal; + margin-left: 1em; + color: #436976; background-color: transparent; } div.logoutBar img { @@ -159,34 +163,34 @@ div.logoutBar img { } div.tabs { - padding: 0.5em 0 0 0; + padding: 3px 0 0 0; background: none transparent scroll repeat 0% 0%; - white-space: nowrap; - border-collapse: collapse; - border-bottom: 1px solid #8cacbb; + white-space: nowrap; + border-collapse: collapse; + border-bottom: 1px solid #8cacbb; } div.tabs a { - border: 1px solid #8cacbb; - padding: 0 1em 3px 1em; - font-weight: normal; + border: 1px solid #8cacbb; + padding: 3px 10px; + font-weight: normal; background: white scroll repeat 0% 0%; - color: #436976; + color: #436976; margin-right: 0.0em; height: 1.0em; } div.tabs a.selected { - border-top: 1px solid #8cacbb; - border-right: 1px solid #8cacbb; - border-bottom: 1px solid #dee7ec; - border-left: 1px solid #8cacbb; - font-weight: normal; - background: #a7d6ce; + border-top: 1px solid #8cacbb; + border-right: 1px solid #8cacbb; + border-bottom: 1px solid #a7d6ce; + border-left: 1px solid #8cacbb; + font-weight: normal; + background: #a7d6ce; color: #436976; } div.tabs a:hover { - background: #a7d6ce; - color: #436976; + background: #a7d6ce; + color: #436976; } .menu_group { @@ -194,7 +198,7 @@ div.tabs a:hover { padding: 0px; color: #000000; background-color: #a7d6ce; - padding-left: 3px; + padding-left: 3px; font-weight: bold; } @@ -237,30 +241,30 @@ div.tabs a:hover { .titletext { font-weight: bold; - font-size: 13px; + font-size: 13px; border-bottom: 1px solid #8cacbb; padding: 5px; } .headingtext { font-weight: bold; - font-size: 13; + font-size: 13px; color: black; } .headingtext2 { - font-size: 13px; + font-size: 13px; color: black; } .headingtext3 { font-weight: bold; - font-size: 10px; + font-size: 10px; color: black; } .errortext { - font-size: 13px; + font-size: 13px; color: #ff0000; font-weight: bold; } @@ -268,7 +272,13 @@ div.tabs a:hover { .inputsubmit { font-size: 8pt; border: 1px solid #0066cc; - padding: 1px 4px; + padding: 1px 4px; +} + +.ajaxsubmit { + font-size: 11px; + border: 1px #0066cc solid; + padding: 1px 4px; } .oddrow { @@ -277,32 +287,32 @@ div.tabs a:hover { .evenrow { background-color: #dddddd; -} +} .overduebg { background-color: #dd7777; -} +} .overduefg { color: #dd7777; -} +} .currentfg { color: #ff6666; -} +} .redfg { color: red; font-weight: bold; -} +} .settledbg { background-color: #00bb00; -} +} .settledfg { color: #00bb00; -} +} .inquirybg { background-color: #fdfeef; @@ -320,13 +330,116 @@ div.tabs a:hover { padding: 3px; border: 1px solid #8cacbb; border-collapse: collapse; -} +} .tablestyle2 { padding: 0 3px; border: 1px solid #ccc; border-collapse: collapse; -} +} .tablestyle_noborder { padding: 3px; -} \ No newline at end of file +} + +.amount { + font-family: Verdana, Arial, Helvetica; + font-size: 11px; + text-align: right; +} + +input.amount { + padding-right: 0px; + border-right: none; +} + +.editbutton { + color:#0000FF; + background-color:transparent; + border-style:none; + text-decoration:underline; + cursor: pointer; +} + +.navibutton[disabled] { + color:#808080; + cursor: auto; +} +.navibutton { + color:#0000FF; + padding: 3px; + background-color:transparent; + border-style:none; + text-decoration:underline; + cursor: pointer; +} + +.navibar { + padding: 3px; + border: 1px solid #cccccc; + border-collapse: collapse; + background-color: #dee7ec; +} + + +.listsubmit { + display: none; +} + +ul.ajaxtabs{ + padding: 3px 0 0 0; + margin: 3px 3px 0 3px; + font: 12px Tahoma,Verdana; + font-weight: bold; +} + +ul.ajaxtabs li{ + list-style: none; + margin: 0; + display: inline; +} + +ul.ajaxtabs li input{ + background-color: #dee7ec; +/* background-repeat: repeat-x; + background-position: top; */ + padding: 3px 8px; + margin: 0px; + border-top: 1px solid #8cacbb; + border-right: 1px solid #8cacbb; + border-bottom: none; + border-left: none; + font-weight: bold; +} + +ul.ajaxtabs li input:hover{ + border-top: 1px solid #8cacbb; + color:#FFFFFF; +} +div.spaceBox{ + background-color: #8cacbb; + height:8px; + border-bottom: 1px solid #8cacbb; + border-left: 1px solid #8cacbb; + border-right:1px solid #8cacbb; + margin: 0 3px 0px 3px +} + +div.contentBox{ + border: 1px solid #8cacbb; + margin: 0 3px 3px 3px +} + +ul.ajaxtabs li input.current, ul.ajaxtabs li input.current:hover{ + border-left: 1px solid #8cacbb; + background-color: #8cacbb; + color:#FFFFFF; +} +#hints { + font-size: 13px; + padding: 5px; + border-bottom: 1px solid #8cacbb; + margin: -4px -2px -2px; + border: 1px solid #8cacbb; + background-color: #FFFFE0; + white-space: nowrap; +} diff --git a/themes/aqua/images/button_ok.png b/themes/aqua/images/button_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..14c7ae1407050559f41546249215ef5fe64bbbc0 GIT binary patch literal 631 zcmV--0*L*IP)~+zohG;Y16qL3axP0l@Xl zB?e$oV$tPdDw~T6B0jboTf16k$qoD(0FworR~1V`A(@fAFsRHXFDx)Yti?ojKPE<( zGx5Y#dGb6|$3$K0Y&O(`GAH^1zy<)e(^s}77OkhHsZu^E%bcjfi5qe}QA$fw0Dz|6 zM@#R&-XHc>4q@ll7XXmyIaSMd7h@trJ}JupWFZoP&qK7$0ovwZUD4H50N(+4e|f-( z-Wcu(0T026gA<1r251g@*wgzj6kS~b@a;H!bOGGJdp~e2Hy)dq0DzDP9di(NE&aJ> z8!rJg0R&@B?3zQ{@|;bdhj4=ctzmC;U}#S@+gJmzI}ZLsWlprAJ0t8Hs@1df$GT&$ z1K0z=|EcnCbG2&?Ro$^3jePGNfbNkGCn{(g+BSeW03iVFB=GSI=y2<)@)Q4C3tw=9 Rq89)F002ovPDHLkV1nEr3WNXv literal 0 HcmV?d00001 diff --git a/themes/aqua/images/locate.png b/themes/aqua/images/locate.png new file mode 100644 index 0000000000000000000000000000000000000000..3df04db3263c21bef800ef2c9c81dcf10772d4a1 GIT binary patch literal 501 zcmV`obMF5LVO#u9B!>?Yo@<`& zAKQ_bm_gVU!nUX$)=aYKnLx_{C5xV^9@b3n-mv-vKMoqSF0R-=`9`P}p;mNcNbBN? ze7Q6pK-d-u&o$pqPiU!-@LmzbiW?aaYDJ_K^|xE(%cYU!^a+;ceHNT7?Kt9Ah2)** z+-XHyMbkBL(e=;|U2?WdA)O)6l8%;i(sFVSd*7JwTq7^90g&B$!rw80mMmo##^M9a z^%igTHgR710612P7tTDTOo4p4L~gypvz1q7BEdKxZGCDcmY<8piOn~7`^b>p zE^TikLU+3c?Qjm<;o`8|w)1^d&<>Z*4^d@zf-*1ow7rQayBpl~J~HFHPvwK)vOB?< z7kvA_#Mm#lO+Vvfzs$DsK}g_E=gjjy8Rvb2b~-yOvvF8%W53j<{BCgHSD-SR7cXAa z&)xa||Nk@p&wTv&5y&7ODE{a6a}5c0b_{Se(lcOYWME)W{3q&Ml$uzQnxasiS(2d; zl98(5?&%xAp!k!8m65@oK?kUa0px!Mwto)OKe*~h^`BT$bTY?k{)H7KUTdS)-_QxQ zxKg$M!G;PSz1ef`Zmv3;xBGsMc#Yrs+wXtusXPDv_y2~*rskH`w)T$BuI`@RzWxb) zIy$;jr%j(RbJpxRbLY)puyE1hB}NKDw%Wd_qe6Li{JM-?(|}_MN-;Zt0$7X6E3K=XiYo)$2EJ-@Siu zR$5$y^{Xc9hhM+{{QYN1xXB|j51kwPHa>* z=dwhv*_<=Vx;zt3960E}%B)}WhQG3|lz_s928ZTVzMHe|YCXxE7%u1FV8M8h<@)A~SiNG`%&E7x7d$>S*L(ZA zyI~VQy}EmP`}+I)8<@G}e0FSjc(_AYJMK)xhB?P3D7$+q@7$ECyj3r|?~E!3BK!py zxEMGXxPjsC;lRM4sxwW7uk(dsB@Y|N5%!OFVl-HDRwX2I?2C6>AgsY2(#YwyaE6Og zm$Q@bBy~Qvptj@{5^lUKEZi)-E!qrn3Igf^YK{oQrD$om3M~!Sqov^%v^3m_mWKP# z((o`^8lFH)!?S2\n"; + echo "\n"; + echo "\n"; + echo "
"; // outer table + start_table("class='tablestyle_noborder'"); -if (isset($_POST['New'])) +if ($new_customer) { - - hidden('New', 'Yes'); - $_POST['CustName'] = $_POST['address'] = $_POST['tax_id'] = ''; $_POST['dimension_id'] = 0; $_POST['dimension2_id'] = 0; $_POST['sales_type'] = -1; + $_POST['email'] = ''; $_POST['curr_code'] = get_company_currency(); $_POST['credit_status'] = -1; $_POST['payment_terms'] = ''; - $_POST['discount'] = $_POST['pymt_discount'] = 0; - $_POST['credit_limit'] = sys_prefs::default_credit_limit(); + $_POST['discount'] = $_POST['pymt_discount'] = percent_format(0); + $_POST['credit_limit'] = price_format(sys_prefs::default_credit_limit()); } else { @@ -265,9 +215,9 @@ else $_POST['curr_code'] = $myrow["curr_code"]; $_POST['credit_status'] = $myrow["credit_status"]; $_POST['payment_terms'] = $myrow["payment_terms"]; - $_POST['discount'] = $myrow["discount"] * 100; // Sherifoz 21.6.03 convert to displayable percentage - $_POST['pymt_discount'] = $myrow["pymt_discount"] * 100; // Sherifoz 21.6.03 convert to displayable percentage - $_POST['credit_limit'] = $myrow["credit_limit"]; + $_POST['discount'] = percent_format($myrow["discount"] * 100); + $_POST['pymt_discount'] = percent_format($myrow["pymt_discount"] * 100); + $_POST['credit_limit'] = price_format($myrow["credit_limit"]); } text_row(_("Customer Name:"), 'CustName', $_POST['CustName'], 40, 40); @@ -278,7 +228,7 @@ text_row(_("GSTNo:"), 'tax_id', null, 40, 40); // Sherifoz 23.09.03 currency can't be changed if editing -if (isset($_POST['New'])) +if ($new_customer) { currencies_list_row(_("Customer's Currency:"), 'curr_code', $_POST['curr_code']); } @@ -304,27 +254,34 @@ if ($dim < 1) if ($dim < 2) hidden('dimension2_id', 0); -text_row(_("Discount Percent:"), 'discount', $_POST['discount'], 5, 4); -text_row(_("Prompt Payment Discount Percent:"), 'pymt_discount', $_POST['pymt_discount'], 5, 4); -text_row(_("Credit Limit:"), 'credit_limit', $_POST['credit_limit'], 16, 14); +percent_row(_("Discount Percent:"), 'discount', $_POST['discount']); +percent_row(_("Prompt Payment Discount Percent:"), 'pymt_discount', $_POST['pymt_discount']); +amount_row(_("Credit Limit:"), 'credit_limit', $_POST['credit_limit']); payment_terms_list_row(_("Payment Terms:"), 'payment_terms', $_POST['payment_terms']); credit_status_list_row(_("Credit Status:"), 'credit_status', $_POST['credit_status']); - +if (!$new_customer) { +start_row(); + echo ''._('Customer branches').':
"; + echo "
"; display_order_summary($orderitems, $_SESSION['Items'], true); echo "
"; + echo "
"; display_delivery_details($_SESSION['Items']); echo "
"; // outer table + +/*Now the customer charged to details in a sub table*/ +start_table("$table_style width=100%"); +$th = array(_("Charge To")); +table_header($th); + +label_row(null, $myrow["DebtorName"] . "
" . nl2br($myrow["address"]), "nowrap"); + +end_table(); + +/*end of the small table showing charge to account details */ + +echo "
"; // outer table + +/*end of the main table showing the company name and charge to details */ + +start_table("$table_style width=100%"); +$th = array(_("Charge Branch")); +table_header($th); + +label_row(null, $branch["br_name"] . "
" . nl2br($branch["br_address"]), "nowrap"); +end_table(); + +echo "
"; // outer table + +start_table("$table_style width=100%"); +$th = array(_("Delivered To")); +table_header($th); + +label_row(null, $sales_order["deliver_to"] . "
" . nl2br($sales_order["delivery_address"]), + "nowrap"); +end_table(); + +echo "
"; // outer table + +start_table("$table_style width=100%"); +start_row(); +label_cells(_("Reference"), $myrow["reference"], "class='tableheader2'"); +label_cells(_("Currency"), $sales_order["curr_code"], "class='tableheader2'"); +label_cells(_("Our Order No"), + get_customer_trans_view_str(systypes::sales_order(),$sales_order["order_no"]), "class='tableheader2'"); +end_row(); +start_row(); +label_cells(_("Customer Order Ref."), $sales_order["customer_ref"], "class='tableheader2'"); +label_cells(_("Shipping Company"), $myrow["shipper_name"], "class='tableheader2'"); +label_cells(_("Sales Type"), $myrow["sales_type"], "class='tableheader2'"); +end_row(); +start_row(); +label_cells(_("Dispatch Date"), sql2date($myrow["tran_date"]), "class='tableheader2'", "nowrap"); +label_cells(_("Due Date"), sql2date($myrow["due_date"]), "class='tableheader2'", "nowrap"); +end_row(); +comments_display_row(13, $trans_id); +end_table(); + +echo "
"; display_heading2(_("Order Information")); echo ""; -display_heading2(_("Sales Invoices")); +display_heading2(_("Deliveries")); echo ""; -display_heading2(_("Credit Notes")); +display_heading2(_("Invoices/Credits")); echo "
"; @@ -42,20 +39,20 @@ echo "
"; start_table("$table_style width=95%"); label_row(_("Customer Name"), $_SESSION['Items']->customer_name, "class='tableheader2'", "colspan=3"); -start_row(); +start_row(); label_cells(_("Customer Order Ref."), $_SESSION['Items']->cust_ref, "class='tableheader2'"); label_cells(_("Deliver To Branch"), $_SESSION['Items']->deliver_to, "class='tableheader2'"); end_row(); start_row(); -label_cells(_("Ordered On"), $_SESSION['Items']->orig_order_date, "class='tableheader2'"); -label_cells(_("Requested Delivery"), $_SESSION['Items']->delivery_date, "class='tableheader2'"); +label_cells(_("Ordered On"), $_SESSION['Items']->document_date, "class='tableheader2'"); +label_cells(_("Requested Delivery"), $_SESSION['Items']->due_date, "class='tableheader2'"); end_row(); start_row(); label_cells(_("Order Currency"), $_SESSION['Items']->customer_currency, "class='tableheader2'"); label_cells(_("Deliver From Location"), $_SESSION['Items']->location_name, "class='tableheader2'"); end_row(); -label_row(_("Delivery Address"), nl2br($_SESSION['Items']->delivery_address), +label_row(_("Delivery Address"), nl2br($_SESSION['Items']->delivery_address), "class='tableheader2'", "colspan=3"); label_row(_("Telephone"), $_SESSION['Items']->phone, "class='tableheader2'", "colspan=3"); label_row(_("E-mail"), "email . "'>" . $_SESSION['Items']->email . "", @@ -66,6 +63,40 @@ end_table(); echo ""; start_table($table_style); +display_heading2(_("Delivery Notes")); + +$th = array(_("#"), _("Ref"), _("Date"), _("Total")); +table_header($th); + +$sql = "SELECT * FROM ".TB_PREF."debtor_trans WHERE type=13 AND order_=" . $_GET['trans_no']; +$result = db_query($sql,"The related delivery notes could not be retreived"); + +$delivery_total = 0; +$k = 0; + +while ($del_row = db_fetch($result)) +{ + + alt_table_row_color($k); + + $this_total = $del_row["ov_freight"]+ $del_row["ov_amount"] + $del_row["ov_freight_tax"] + $del_row["ov_gst"] ; + $delivery_total += $this_total; + + label_cell(get_customer_trans_view_str($del_row["type"], $del_row["trans_no"])); + label_cell($del_row["reference"]); + label_cell(sql2date($del_row["tran_date"])); + amount_cell($this_total); + end_row(); + +} + +label_row(null, price_format($delivery_total), "", "colspan=4 align=right"); + +end_table(); +echo ""; + +start_table($table_style); +display_heading2(_("Sales Invoices")); $th = array(_("#"), _("Ref"), _("Date"), _("Total")); table_header($th); @@ -76,12 +107,12 @@ $result = db_query($sql,"The related invoices could not be retreived"); $invoices_total = 0; $k = 0; -while ($inv_row = db_fetch($result)) +while ($inv_row = db_fetch($result)) { alt_table_row_color($k); - $this_total = $inv_row["ov_freight"] + $inv_row["ov_gst"] + $inv_row["ov_amount"]; + $this_total = $inv_row["ov_freight"] + $inv_row["ov_freight_tax"] + $inv_row["ov_gst"] + $inv_row["ov_amount"]; $invoices_total += $this_total; label_cell(get_customer_trans_view_str($inv_row["type"], $inv_row["trans_no"])); @@ -92,11 +123,12 @@ while ($inv_row = db_fetch($result)) } -label_row(null, number_format2($invoices_total,user_price_dec()), "", "colspan=4 align=right"); +label_row(null, price_format($invoices_total), "", "colspan=4 align=right"); end_table(); -echo ""; +display_heading2(_("Credit Notes")); + start_table($table_style); $th = array(_("#"), _("Ref"), _("Date"), _("Total")); table_header($th); @@ -107,12 +139,12 @@ $result = db_query($sql,"The related credit notes could not be retreived"); $credits_total = 0; $k = 0; -while ($credits_row = db_fetch($result)) +while ($credits_row = db_fetch($result)) { alt_table_row_color($k); - $this_total = $credits_row["ov_freight"] + $credits_row["ov_gst"] + $credits_row["ov_amount"]; + $this_total = $credits_row["ov_freight"] + $credits_row["ov_freight_tax"] + $credits_row["ov_gst"] + $credits_row["ov_amount"]; $credits_total += $this_total; label_cell(get_customer_trans_view_str($credits_row["type"], $credits_row["trans_no"])); @@ -123,7 +155,7 @@ while ($credits_row = db_fetch($result)) } -label_row(null, "" . number_format2(-$credits_total,user_price_dec()) . "", +label_row(null, "" . price_format(-$credits_total) . "", "", "colspan=4 align=right"); @@ -145,29 +177,31 @@ $k = 0; //row colour counter foreach ($_SESSION['Items']->line_items as $stock_item) { - $line_total = $stock_item->quantity * $stock_item->price * (1 - $stock_item->discount_percent); + $line_total = round($stock_item->quantity * $stock_item->price * (1 - $stock_item->discount_percent), + user_price_dec()); alt_table_row_color($k); label_cell($stock_item->stock_id); label_cell($stock_item->item_description); - qty_cell($stock_item->quantity); + $dec = get_qty_dec($stock_item->stock_id); + qty_cell($stock_item->quantity, false, $dec); label_cell($stock_item->units); amount_cell($stock_item->price); amount_cell($stock_item->discount_percent * 100); amount_cell($line_total); - - qty_cell($stock_item->qty_inv); + + qty_cell($stock_item->qty_done, false, $dec); end_row(); } $items_total = $_SESSION['Items']->get_items_total(); -$display_total = number_format2($items_total + $_SESSION['Items']->freight_cost,user_price_dec()); +$display_total = price_format($items_total + $_SESSION['Items']->freight_cost); -label_row(_("Shipping"), number_format2($_SESSION['Items']->freight_cost,user_price_dec()), +label_row(_("Shipping"), price_format($_SESSION['Items']->freight_cost), "align=right colspan=6", "nowrap align=right"); -label_row(_("Total Excluding Tax"), $display_total, "align=right colspan=6", +label_row(_("Total Order Value"), $display_total, "align=right colspan=6", "nowrap align=right"); end_table(2); diff --git a/sql/alter.sql b/sql/alter.sql new file mode 100644 index 00000000..ab30ca4f --- /dev/null +++ b/sql/alter.sql @@ -0,0 +1,67 @@ +-- phpMyAdmin SQL Dump +-- version 2.9.0.2 +-- http://www.phpmyadmin.net +-- +-- Host: localhost +-- Generation Time: Mar 20, 2007 at 11:10 AM +-- Server version: 4.1.21 +-- PHP Version: 4.4.2 +-- +-- Database: `frontacc_frontacc` +-- + +-- -------------------------------------------------------- + +-- +-- ALTER TABLE +-- + +ALTER TABLE `0_company` ADD `base_sales` INT( 11 ) DEFAULT '-1' NOT NULL AFTER `no_supplier_list` ; +ALTER TABLE `0_sales_types` ADD `factor` DOUBLE DEFAULT '1' NOT NULL AFTER `tax_included` ; + +DROP TABLE IF EXISTS `0_item_units`; +CREATE TABLE IF NOT EXISTS `0_item_units` ( + `abbr` varchar(20) NOT NULL, + `name` varchar(40) NOT NULL, + `decimals` tinyint(2) NOT NULL, + PRIMARY KEY (`abbr`), + UNIQUE KEY `name` (`name`) +) TYPE = MyISAM; + +INSERT INTO `0_item_units` (`abbr`, `name`, `decimals`) SELECT DISTINCT `units`, CONCAT(UPPER(SUBSTRING(`units`, 1, 1)), LOWER(SUBSTRING(`units`, 2))), 0 FROM `0_stock_master` ; +UPDATE `0_debtor_trans` SET `ov_amount`=-`ov_amount`, `ov_gst`=-`ov_gst`, `ov_freight`=-`ov_freight`, `ov_discount`=-`ov_discount` WHERE `ov_amount` < 0 AND `type` <> 10 AND `type` <> 13 ; + +DROP TABLE IF EXISTS `0_form_items`; + +ALTER TABLE `0_tax_types` DROP INDEX `name`, ADD UNIQUE `name` ( `name` , `rate` ); + +ALTER TABLE `0_tax_group_items` DROP `included_in_price`; +ALTER TABLE `0_debtor_trans` ADD `ov_freight_tax` DOUBLE DEFAULT '0' NOT NULL AFTER `ov_freight` ; +ALTER TABLE `0_sales_types` ADD `tax_included` INT( 1 ) DEFAULT '0' NOT NULL AFTER `sales_type` ; + +ALTER TABLE `0_bom` CHANGE `workcentre_added` `workcentre_added` INT( 11 ) NOT NULL DEFAULT '0'; +ALTER TABLE `0_wo_requirements` CHANGE `workcentre` `workcentre` INT( 11 ) NOT NULL DEFAULT '0'; + +ALTER TABLE `0_debtor_trans` ADD `version` TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL AFTER `type`; +ALTER TABLE `0_sales_orders` ADD `version` TINYINT(1) UNSIGNED DEFAULT '0' NOT NULL AFTER `order_no`; +ALTER TABLE `0_sales_orders` ADD `type` TINYINT(1) NOT NULL DEFAULT '0' AFTER `version`; + +ALTER TABLE `0_tax_types` DROP `out`; +ALTER TABLE `0_debtor_trans_details` ADD COLUMN `qty_done` double NOT NULL default '0'; + +ALTER TABLE `0_debtor_trans` ADD COLUMN `trans_link` int(11) NOT NULL default '0'; +INSERT INTO `0_sys_types` VALUES ('13', 'Delivery', '1', '1'); +ALTER TABLE `0_sales_order_details` CHANGE `qty_invoiced` `qty_sent` DOUBLE NOT NULL default '0'; + +ALTER TABLE `0_supp_invoice_items` CHANGE `gl_code` `gl_code` VARCHAR(11) NOT NULL DEFAULT '0'; +ALTER TABLE `0_sales_order_details` DROP PRIMARY KEY; +ALTER TABLE `0_sales_order_details` ADD `id` INTEGER(11) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`); + +ALTER TABLE `0_company` ADD `no_item_list` TINYINT(1) NOT NULL DEFAULT '0' AFTER `f_year`; +ALTER TABLE `0_company` ADD `no_customer_list` TINYINT(1) NOT NULL DEFAULT '0' AFTER `no_item_list`; +ALTER TABLE `0_company` ADD `no_supplier_list` TINYINT(1) NOT NULL DEFAULT '0' AFTER `no_customer_list`; + +ALTER TABLE `0_salesman` ADD `provision` DOUBLE NOT NULL DEFAULT '0' AFTER `salesman_email`; +ALTER TABLE `0_salesman` ADD `break_pt` DOUBLE NOT NULL DEFAULT '0' AFTER `provision`; +ALTER TABLE `0_salesman` ADD `provision2` DOUBLE NOT NULL DEFAULT '0' AFTER `break_pt`; + diff --git a/sql/alter2.sql b/sql/alter2.sql new file mode 100644 index 00000000..df5cd922 --- /dev/null +++ b/sql/alter2.sql @@ -0,0 +1 @@ +ALTER TABLE `0_users` ADD `show_hints` TINYINT(1) DEFAULT '0' NOT NULL AFTER `show_codes` ; diff --git a/sql/basic.sql b/sql/basic.sql deleted file mode 100644 index a7c1fdf5..00000000 --- a/sql/basic.sql +++ /dev/null @@ -1,1220 +0,0 @@ --- phpMyAdmin SQL Dump --- version 2.7.0-pl2 --- http://www.phpmyadmin.net --- --- Host: localhost --- Created: 09 februar 2007 at 10:35 --- Server Version: 4.1.11 --- PHP-version: 4.4.1 --- --- Database: `basic` --- - --- -------------------------------------------------------- - --- --- Structure for table `areas` --- - -DROP TABLE IF EXISTS `0_areas`; -CREATE TABLE IF NOT EXISTS `0_areas` ( - `area_code` int(11) NOT NULL auto_increment, - `description` varchar(60) NOT NULL default '', - PRIMARY KEY (`area_code`), - UNIQUE KEY `description` (`description`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `bank_accounts` --- - -DROP TABLE IF EXISTS `0_bank_accounts`; -CREATE TABLE IF NOT EXISTS `0_bank_accounts` ( - `account_code` varchar(11) NOT NULL default '', - `account_type` smallint(6) NOT NULL default '0', - `bank_account_name` varchar(60) NOT NULL default '', - `bank_account_number` varchar(100) NOT NULL default '', - `bank_name` varchar(60) NOT NULL default '', - `bank_address` tinytext, - `bank_curr_code` char(3) NOT NULL default '', - PRIMARY KEY (`account_code`), - KEY `bank_account_name` (`bank_account_name`), - KEY `bank_account_number` (`bank_account_number`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `bank_trans` --- - -DROP TABLE IF EXISTS `0_bank_trans`; -CREATE TABLE IF NOT EXISTS `0_bank_trans` ( - `id` int(11) NOT NULL auto_increment, - `type` smallint(6) default NULL, - `trans_no` int(11) default NULL, - `bank_act` varchar(11) default NULL, - `ref` varchar(40) default NULL, - `trans_date` date NOT NULL default '0000-00-00', - `bank_trans_type_id` int(10) unsigned default NULL, - `amount` double default NULL, - `dimension_id` int(11) NOT NULL default '0', - `dimension2_id` int(11) NOT NULL default '0', - `person_type_id` int(11) NOT NULL default '0', - `person_id` tinyblob, - PRIMARY KEY (`id`), - KEY `bank_act` (`bank_act`,`ref`), - KEY `type` (`type`,`trans_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `bank_trans_types` --- - -DROP TABLE IF EXISTS `0_bank_trans_types`; -CREATE TABLE IF NOT EXISTS `0_bank_trans_types` ( - `id` int(11) NOT NULL auto_increment, - `name` varchar(60) NOT NULL default '', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `bom` --- - -DROP TABLE IF EXISTS `0_bom`; -CREATE TABLE IF NOT EXISTS `0_bom` ( - `id` int(11) NOT NULL auto_increment, - `parent` char(20) NOT NULL default '', - `component` char(20) NOT NULL default '', - `workcentre_added` char(5) NOT NULL default '', - `loc_code` char(5) NOT NULL default '', - `quantity` double NOT NULL default '1', - PRIMARY KEY (`parent`,`component`,`workcentre_added`,`loc_code`), - KEY `component` (`component`), - KEY `id` (`id`), - KEY `loc_code` (`loc_code`), - KEY `parent` (`parent`,`loc_code`), - KEY `Parent_2` (`parent`), - KEY `workcentre_added` (`workcentre_added`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `budget_trans` --- - -DROP TABLE IF EXISTS `0_budget_trans`; -CREATE TABLE IF NOT EXISTS `0_budget_trans` ( - `counter` int(11) NOT NULL auto_increment, - `type` smallint(6) NOT NULL default '0', - `type_no` bigint(16) NOT NULL default '1', - `tran_date` date NOT NULL default '0000-00-00', - `account` varchar(11) NOT NULL default '', - `memo_` tinytext NOT NULL, - `amount` double NOT NULL default '0', - `dimension_id` int(11) default '0', - `dimension2_id` int(11) default '0', - `person_type_id` int(11) default NULL, - `person_id` tinyblob, - PRIMARY KEY (`counter`), - KEY `Type_and_Number` (`type`,`type_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `chart_class` --- - -DROP TABLE IF EXISTS `0_chart_class`; -CREATE TABLE IF NOT EXISTS `0_chart_class` ( - `cid` int(11) NOT NULL default '0', - `class_name` varchar(60) NOT NULL default '', - `balance_sheet` tinyint(1) NOT NULL default '0', - PRIMARY KEY (`cid`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `chart_master` --- - -DROP TABLE IF EXISTS `0_chart_master`; -CREATE TABLE IF NOT EXISTS `0_chart_master` ( - `account_code` varchar(11) NOT NULL default '', - `account_code2` varchar(11) default '', - `account_name` varchar(60) NOT NULL default '', - `account_type` int(11) NOT NULL default '0', - `tax_code` int(11) NOT NULL default '0', - PRIMARY KEY (`account_code`), - KEY `account_code` (`account_code`), - KEY `account_name` (`account_name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `chart_types` --- - -DROP TABLE IF EXISTS `0_chart_types`; -CREATE TABLE IF NOT EXISTS `0_chart_types` ( - `id` int(11) NOT NULL auto_increment, - `name` varchar(60) NOT NULL default '', - `class_id` tinyint(1) NOT NULL default '0', - `parent` int(11) NOT NULL default '-1', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `comments` --- - -DROP TABLE IF EXISTS `0_comments`; -CREATE TABLE IF NOT EXISTS `0_comments` ( - `type` int(11) NOT NULL default '0', - `id` int(11) NOT NULL default '0', - `date_` date default '0000-00-00', - `memo_` tinytext -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `company` --- - -DROP TABLE IF EXISTS `0_company`; -CREATE TABLE IF NOT EXISTS `0_company` ( - `coy_code` int(11) NOT NULL default '1', - `coy_name` varchar(60) NOT NULL default '', - `gst_no` varchar(25) NOT NULL default '', - `coy_no` varchar(25) NOT NULL default '0', - `tax_prd` int(11) NOT NULL default '1', - `tax_last` int(11) NOT NULL default '1', - `postal_address` tinytext NOT NULL, - `phone` varchar(30) NOT NULL default '', - `fax` varchar(30) NOT NULL default '', - `email` varchar(100) NOT NULL default '', - `coy_logo` varchar(100) NOT NULL default '', - `domicile` varchar(55) NOT NULL default '', - `curr_default` char(3) NOT NULL default '', - `debtors_act` varchar(11) NOT NULL default '', - `pyt_discount_act` varchar(11) NOT NULL default '', - `creditors_act` varchar(11) NOT NULL default '', - `grn_act` varchar(11) NOT NULL default '', - `exchange_diff_act` varchar(11) NOT NULL default '', - `purch_exchange_diff_act` varchar(11) NOT NULL default '', - `retained_earnings_act` varchar(11) NOT NULL default '', - `freight_act` varchar(11) NOT NULL default '', - `default_sales_act` varchar(11) NOT NULL default '', - `default_sales_discount_act` varchar(11) NOT NULL default '', - `default_prompt_payment_act` varchar(11) NOT NULL default '', - `default_inventory_act` varchar(11) NOT NULL default '', - `default_cogs_act` varchar(11) NOT NULL default '', - `default_adj_act` varchar(11) NOT NULL default '', - `default_inv_sales_act` varchar(11) NOT NULL default '', - `default_assembly_act` varchar(11) NOT NULL default '', - `payroll_act` varchar(11) NOT NULL default '', - `custom1_name` varchar(60) NOT NULL default '', - `custom2_name` varchar(60) NOT NULL default '', - `custom3_name` varchar(60) NOT NULL default '', - `custom1_value` varchar(100) NOT NULL default '', - `custom2_value` varchar(100) NOT NULL default '', - `custom3_value` varchar(100) NOT NULL default '', - `allow_negative_stock` tinyint(1) NOT NULL default '0', - `po_over_receive` int(11) NOT NULL default '10', - `po_over_charge` int(11) NOT NULL default '10', - `default_credit_limit` int(11) NOT NULL default '1000', - `default_workorder_required` int(11) NOT NULL default '20', - `default_dim_required` int(11) NOT NULL default '20', - `past_due_days` int(11) NOT NULL default '30', - `use_dimension` tinyint(1) default '0', - `f_year` int(11) NOT NULL default '1', - PRIMARY KEY (`coy_code`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `credit_status` --- - -DROP TABLE IF EXISTS `0_credit_status`; -CREATE TABLE IF NOT EXISTS `0_credit_status` ( - `id` int(11) NOT NULL auto_increment, - `reason_description` char(100) NOT NULL default '', - `dissallow_invoices` tinyint(1) NOT NULL default '0', - PRIMARY KEY (`id`), - UNIQUE KEY `reason_description` (`reason_description`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `currencies` --- - -DROP TABLE IF EXISTS `0_currencies`; -CREATE TABLE IF NOT EXISTS `0_currencies` ( - `currency` varchar(60) NOT NULL default '', - `curr_abrev` char(3) NOT NULL default '', - `curr_symbol` varchar(10) NOT NULL default '', - `country` varchar(100) NOT NULL default '', - `hundreds_name` varchar(15) NOT NULL default '', - PRIMARY KEY (`curr_abrev`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `cust_allocations` --- - -DROP TABLE IF EXISTS `0_cust_allocations`; -CREATE TABLE IF NOT EXISTS `0_cust_allocations` ( - `id` int(11) NOT NULL auto_increment, - `amt` double unsigned default NULL, - `date_alloc` date NOT NULL default '0000-00-00', - `trans_no_from` int(11) default NULL, - `trans_type_from` int(11) default NULL, - `trans_no_to` int(11) default NULL, - `trans_type_to` int(11) default NULL, - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `cust_branch` --- - -DROP TABLE IF EXISTS `0_cust_branch`; -CREATE TABLE IF NOT EXISTS `0_cust_branch` ( - `branch_code` int(11) NOT NULL auto_increment, - `debtor_no` int(11) NOT NULL default '0', - `br_name` varchar(60) NOT NULL default '', - `br_address` tinytext NOT NULL, - `area` int(11) default NULL, - `salesman` int(11) NOT NULL default '0', - `phone` varchar(30) NOT NULL default '', - `fax` varchar(30) NOT NULL default '', - `contact_name` varchar(60) NOT NULL default '', - `email` varchar(100) NOT NULL default '', - `default_location` varchar(5) NOT NULL default '', - `tax_group_id` int(11) default NULL, - `sales_account` varchar(11) default NULL, - `sales_discount_account` varchar(11) default NULL, - `receivables_account` varchar(11) default NULL, - `payment_discount_account` varchar(11) default NULL, - `default_ship_via` int(11) NOT NULL default '1', - `disable_trans` tinyint(4) NOT NULL default '0', - `br_post_address` tinytext NOT NULL, - PRIMARY KEY (`branch_code`,`debtor_no`), - KEY `branch_code` (`branch_code`), - KEY `br_name` (`br_name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `debtor_trans` --- - -DROP TABLE IF EXISTS `0_debtor_trans`; -CREATE TABLE IF NOT EXISTS `0_debtor_trans` ( - `trans_no` int(11) unsigned NOT NULL default '0', - `type` smallint(6) unsigned NOT NULL default '0', - `debtor_no` int(11) unsigned default NULL, - `branch_code` int(11) NOT NULL default '-1', - `tran_date` date NOT NULL default '0000-00-00', - `due_date` date NOT NULL default '0000-00-00', - `reference` varchar(60) NOT NULL default '', - `tpe` int(11) NOT NULL default '0', - `order_` int(11) NOT NULL default '0', - `ov_amount` double NOT NULL default '0', - `ov_gst` double NOT NULL default '0', - `ov_freight` double NOT NULL default '0', - `ov_discount` double NOT NULL default '0', - `alloc` double NOT NULL default '0', - `rate` double NOT NULL default '1', - `ship_via` int(11) default NULL, - PRIMARY KEY (`trans_no`,`type`), - KEY `debtor_no` (`debtor_no`,`branch_code`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `debtor_trans_details` --- - -DROP TABLE IF EXISTS `0_debtor_trans_details`; -CREATE TABLE IF NOT EXISTS `0_debtor_trans_details` ( - `id` int(11) NOT NULL auto_increment, - `debtor_trans_no` int(11) default NULL, - `debtor_trans_type` int(11) default NULL, - `stock_id` varchar(20) NOT NULL default '', - `description` tinytext, - `unit_price` double NOT NULL default '0', - `unit_tax` double NOT NULL default '0', - `quantity` double NOT NULL default '0', - `discount_percent` double NOT NULL default '0', - `standard_cost` double NOT NULL default '0', - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `debtor_trans_tax_details` --- - -DROP TABLE IF EXISTS `0_debtor_trans_tax_details`; -CREATE TABLE IF NOT EXISTS `0_debtor_trans_tax_details` ( - `id` int(11) NOT NULL auto_increment, - `debtor_trans_no` int(11) default NULL, - `debtor_trans_type` int(11) default NULL, - `tax_type_id` int(11) NOT NULL default '0', - `tax_type_name` varchar(60) default NULL, - `rate` double NOT NULL default '0', - `included_in_price` tinyint(1) NOT NULL default '0', - `amount` double NOT NULL default '0', - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `debtors_master` --- - -DROP TABLE IF EXISTS `0_debtors_master`; -CREATE TABLE IF NOT EXISTS `0_debtors_master` ( - `debtor_no` int(11) NOT NULL auto_increment, - `name` varchar(60) NOT NULL default '', - `address` tinytext, - `email` varchar(100) NOT NULL default '', - `tax_id` varchar(55) NOT NULL default '', - `curr_code` char(3) NOT NULL default '', - `sales_type` int(11) NOT NULL default '1', - `dimension_id` int(11) NOT NULL default '0', - `dimension2_id` int(11) NOT NULL default '0', - `credit_status` int(11) NOT NULL default '0', - `payment_terms` int(11) default NULL, - `discount` double NOT NULL default '0', - `pymt_discount` double NOT NULL default '0', - `credit_limit` float NOT NULL default '1000', - PRIMARY KEY (`debtor_no`), - UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `dimensions` --- - -DROP TABLE IF EXISTS `0_dimensions`; -CREATE TABLE IF NOT EXISTS `0_dimensions` ( - `id` int(11) NOT NULL auto_increment, - `reference` varchar(60) NOT NULL default '', - `name` varchar(60) NOT NULL default '', - `type_` tinyint(1) NOT NULL default '1', - `closed` tinyint(1) NOT NULL default '0', - `date_` date NOT NULL default '0000-00-00', - `due_date` date NOT NULL default '0000-00-00', - PRIMARY KEY (`id`), - UNIQUE KEY `reference` (`reference`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `exchange_rates` --- - -DROP TABLE IF EXISTS `0_exchange_rates`; -CREATE TABLE IF NOT EXISTS `0_exchange_rates` ( - `id` int(11) NOT NULL auto_increment, - `curr_code` char(3) NOT NULL default '', - `rate_buy` double NOT NULL default '0', - `rate_sell` double NOT NULL default '0', - `date_` date NOT NULL default '0000-00-00', - PRIMARY KEY (`id`), - UNIQUE KEY `curr_code` (`curr_code`,`date_`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `fiscal_year` --- - -DROP TABLE IF EXISTS `0_fiscal_year`; -CREATE TABLE IF NOT EXISTS `0_fiscal_year` ( - `id` int(11) NOT NULL auto_increment, - `begin` date default '0000-00-00', - `end` date default '0000-00-00', - `closed` tinyint(1) NOT NULL default '0', - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `form_items` --- - -DROP TABLE IF EXISTS `0_form_items`; -CREATE TABLE IF NOT EXISTS `0_form_items` ( - `form_id` int(11) NOT NULL default '0', - `form_type` int(11) NOT NULL default '0', - `trans_type` int(11) NOT NULL default '0', - `trans_id` int(11) NOT NULL default '0', - `param1` varchar(100) NOT NULL default '', - `param2` varchar(100) default NULL, - PRIMARY KEY (`form_id`,`form_type`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `gl_trans` --- - -DROP TABLE IF EXISTS `0_gl_trans`; -CREATE TABLE IF NOT EXISTS `0_gl_trans` ( - `counter` int(11) NOT NULL auto_increment, - `type` smallint(6) NOT NULL default '0', - `type_no` bigint(16) NOT NULL default '1', - `tran_date` date NOT NULL default '0000-00-00', - `account` varchar(11) NOT NULL default '', - `memo_` tinytext NOT NULL, - `amount` double NOT NULL default '0', - `dimension_id` int(11) NOT NULL default '0', - `dimension2_id` int(11) NOT NULL default '0', - `person_type_id` int(11) default NULL, - `person_id` tinyblob, - PRIMARY KEY (`counter`), - KEY `Type_and_Number` (`type`,`type_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `grn_batch` --- - -DROP TABLE IF EXISTS `0_grn_batch`; -CREATE TABLE IF NOT EXISTS `0_grn_batch` ( - `id` int(11) NOT NULL auto_increment, - `supplier_id` int(11) NOT NULL default '0', - `purch_order_no` int(11) default NULL, - `reference` varchar(60) NOT NULL default '', - `delivery_date` date NOT NULL default '0000-00-00', - `loc_code` varchar(5) default NULL, - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `grn_items` --- - -DROP TABLE IF EXISTS `0_grn_items`; -CREATE TABLE IF NOT EXISTS `0_grn_items` ( - `id` int(11) NOT NULL auto_increment, - `grn_batch_id` int(11) default NULL, - `po_detail_item` int(11) NOT NULL default '0', - `item_code` varchar(20) NOT NULL default '', - `description` tinytext, - `qty_recd` double NOT NULL default '0', - `quantity_inv` double NOT NULL default '0', - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `item_tax_type_exemptions` --- - -DROP TABLE IF EXISTS `0_item_tax_type_exemptions`; -CREATE TABLE IF NOT EXISTS `0_item_tax_type_exemptions` ( - `item_tax_type_id` int(11) NOT NULL default '0', - `tax_type_id` int(11) NOT NULL default '0', - PRIMARY KEY (`item_tax_type_id`,`tax_type_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `item_tax_types` --- - -DROP TABLE IF EXISTS `0_item_tax_types`; -CREATE TABLE IF NOT EXISTS `0_item_tax_types` ( - `id` int(11) NOT NULL auto_increment, - `name` varchar(60) NOT NULL default '', - `exempt` tinyint(1) NOT NULL default '0', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `loc_stock` --- - -DROP TABLE IF EXISTS `0_loc_stock`; -CREATE TABLE IF NOT EXISTS `0_loc_stock` ( - `loc_code` char(5) NOT NULL default '', - `stock_id` char(20) NOT NULL default '', - `reorder_level` bigint(20) NOT NULL default '0', - PRIMARY KEY (`loc_code`,`stock_id`), - KEY `stock_id` (`stock_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `locations` --- - -DROP TABLE IF EXISTS `0_locations`; -CREATE TABLE IF NOT EXISTS `0_locations` ( - `loc_code` varchar(5) NOT NULL default '', - `location_name` varchar(60) NOT NULL default '', - `delivery_address` tinytext NOT NULL, - `phone` varchar(30) NOT NULL default '', - `fax` varchar(30) NOT NULL default '', - `email` varchar(100) NOT NULL default '', - `contact` varchar(30) NOT NULL default '', - PRIMARY KEY (`loc_code`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `movement_types` --- - -DROP TABLE IF EXISTS `0_movement_types`; -CREATE TABLE IF NOT EXISTS `0_movement_types` ( - `id` int(11) NOT NULL auto_increment, - `name` varchar(60) NOT NULL default '', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `payment_terms` --- - -DROP TABLE IF EXISTS `0_payment_terms`; -CREATE TABLE IF NOT EXISTS `0_payment_terms` ( - `terms_indicator` int(11) NOT NULL auto_increment, - `terms` char(80) NOT NULL default '', - `days_before_due` smallint(6) NOT NULL default '0', - `day_in_following_month` smallint(6) NOT NULL default '0', - PRIMARY KEY (`terms_indicator`), - UNIQUE KEY `terms` (`terms`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `prices` --- - -DROP TABLE IF EXISTS `0_prices`; -CREATE TABLE IF NOT EXISTS `0_prices` ( - `id` int(11) NOT NULL auto_increment, - `stock_id` varchar(20) NOT NULL default '', - `sales_type_id` int(11) NOT NULL default '0', - `curr_abrev` char(3) NOT NULL default '', - `price` double NOT NULL default '0', - PRIMARY KEY (`id`), - UNIQUE KEY `price` (`stock_id`,`sales_type_id`,`curr_abrev`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `purch_data` --- - -DROP TABLE IF EXISTS `0_purch_data`; -CREATE TABLE IF NOT EXISTS `0_purch_data` ( - `supplier_id` int(11) NOT NULL default '0', - `stock_id` char(20) NOT NULL default '', - `price` double NOT NULL default '0', - `suppliers_uom` char(50) NOT NULL default '', - `conversion_factor` double NOT NULL default '1', - `supplier_description` char(50) NOT NULL default '', - PRIMARY KEY (`supplier_id`,`stock_id`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `purch_order_details` --- - -DROP TABLE IF EXISTS `0_purch_order_details`; -CREATE TABLE IF NOT EXISTS `0_purch_order_details` ( - `po_detail_item` int(11) NOT NULL auto_increment, - `order_no` int(11) NOT NULL default '0', - `item_code` varchar(20) NOT NULL default '', - `description` tinytext, - `delivery_date` date NOT NULL default '0000-00-00', - `qty_invoiced` double NOT NULL default '0', - `unit_price` double NOT NULL default '0', - `act_price` double NOT NULL default '0', - `std_cost_unit` double NOT NULL default '0', - `quantity_ordered` double NOT NULL default '0', - `quantity_received` double NOT NULL default '0', - PRIMARY KEY (`po_detail_item`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `purch_orders` --- - -DROP TABLE IF EXISTS `0_purch_orders`; -CREATE TABLE IF NOT EXISTS `0_purch_orders` ( - `order_no` int(11) NOT NULL auto_increment, - `supplier_id` int(11) NOT NULL default '0', - `comments` tinytext, - `ord_date` date NOT NULL default '0000-00-00', - `reference` tinytext NOT NULL, - `requisition_no` tinytext, - `into_stock_location` varchar(5) NOT NULL default '', - `delivery_address` tinytext NOT NULL, - PRIMARY KEY (`order_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `refs` --- - -DROP TABLE IF EXISTS `0_refs`; -CREATE TABLE IF NOT EXISTS `0_refs` ( - `id` int(11) NOT NULL default '0', - `type` int(11) NOT NULL default '0', - `reference` varchar(100) NOT NULL default '', - PRIMARY KEY (`id`,`type`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `sales_order_details` --- - -DROP TABLE IF EXISTS `0_sales_order_details`; -CREATE TABLE IF NOT EXISTS `0_sales_order_details` ( - `order_no` int(11) NOT NULL default '0', - `stk_code` varchar(20) NOT NULL default '', - `description` tinytext, - `qty_invoiced` double NOT NULL default '0', - `unit_price` double NOT NULL default '0', - `quantity` double NOT NULL default '0', - `discount_percent` double NOT NULL default '0', - PRIMARY KEY (`order_no`,`stk_code`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `sales_orders` --- - -DROP TABLE IF EXISTS `0_sales_orders`; -CREATE TABLE IF NOT EXISTS `0_sales_orders` ( - `order_no` int(11) NOT NULL auto_increment, - `debtor_no` int(11) NOT NULL default '0', - `branch_code` int(11) NOT NULL default '0', - `customer_ref` tinytext NOT NULL, - `comments` tinytext, - `ord_date` date NOT NULL default '0000-00-00', - `order_type` int(11) NOT NULL default '0', - `ship_via` int(11) NOT NULL default '0', - `delivery_address` tinytext NOT NULL, - `contact_phone` varchar(30) default NULL, - `contact_email` varchar(100) default NULL, - `deliver_to` tinytext NOT NULL, - `freight_cost` double NOT NULL default '0', - `from_stk_loc` varchar(5) NOT NULL default '', - `delivery_date` date NOT NULL default '0000-00-00', - PRIMARY KEY (`order_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `sales_types` --- - -DROP TABLE IF EXISTS `0_sales_types`; -CREATE TABLE IF NOT EXISTS `0_sales_types` ( - `id` int(11) NOT NULL auto_increment, - `sales_type` char(50) NOT NULL default '', - PRIMARY KEY (`id`), - UNIQUE KEY `sales_type` (`sales_type`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `salesman` --- - -DROP TABLE IF EXISTS `0_salesman`; -CREATE TABLE IF NOT EXISTS `0_salesman` ( - `salesman_code` int(11) NOT NULL auto_increment, - `salesman_name` char(60) NOT NULL default '', - `salesman_phone` char(30) NOT NULL default '', - `salesman_fax` char(30) NOT NULL default '', - `salesman_email` varchar(100) NOT NULL default '', - PRIMARY KEY (`salesman_code`), - UNIQUE KEY `salesman_name` (`salesman_name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `shippers` --- - -DROP TABLE IF EXISTS `0_shippers`; -CREATE TABLE IF NOT EXISTS `0_shippers` ( - `shipper_id` int(11) NOT NULL auto_increment, - `shipper_name` varchar(60) NOT NULL default '', - `phone` varchar(30) NOT NULL default '', - `contact` tinytext NOT NULL, - `address` tinytext NOT NULL, - PRIMARY KEY (`shipper_id`), - UNIQUE KEY `name` (`shipper_name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `stock_category` --- - -DROP TABLE IF EXISTS `0_stock_category`; -CREATE TABLE IF NOT EXISTS `0_stock_category` ( - `category_id` int(11) NOT NULL auto_increment, - `description` varchar(60) NOT NULL default '', - `stock_act` varchar(11) default NULL, - `cogs_act` varchar(11) default NULL, - `adj_gl_act` varchar(11) default NULL, - `purch_price_var_act` varchar(11) default NULL, - PRIMARY KEY (`category_id`), - UNIQUE KEY `description` (`description`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `stock_master` --- - -DROP TABLE IF EXISTS `0_stock_master`; -CREATE TABLE IF NOT EXISTS `0_stock_master` ( - `stock_id` varchar(20) NOT NULL default '', - `category_id` int(11) NOT NULL default '0', - `tax_type_id` int(11) NOT NULL default '0', - `description` varchar(200) NOT NULL default '', - `long_description` tinytext NOT NULL, - `units` varchar(20) NOT NULL default 'each', - `mb_flag` char(1) NOT NULL default 'B', - `sales_account` varchar(11) NOT NULL default '', - `cogs_account` varchar(11) NOT NULL default '', - `inventory_account` varchar(11) NOT NULL default '', - `adjustment_account` varchar(11) NOT NULL default '', - `assembly_account` varchar(11) NOT NULL default '', - `dimension_id` int(11) default NULL, - `dimension2_id` int(11) default NULL, - `actual_cost` double NOT NULL default '0', - `last_cost` double NOT NULL default '0', - `material_cost` double NOT NULL default '0', - `labour_cost` double NOT NULL default '0', - `overhead_cost` double NOT NULL default '0', - PRIMARY KEY (`stock_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `stock_moves` --- - -DROP TABLE IF EXISTS `0_stock_moves`; -CREATE TABLE IF NOT EXISTS `0_stock_moves` ( - `trans_id` int(11) NOT NULL auto_increment, - `trans_no` int(11) NOT NULL default '0', - `stock_id` char(20) NOT NULL default '', - `type` smallint(6) NOT NULL default '0', - `loc_code` char(5) NOT NULL default '', - `tran_date` date NOT NULL default '0000-00-00', - `person_id` int(11) default NULL, - `price` double NOT NULL default '0', - `reference` char(40) NOT NULL default '', - `qty` double NOT NULL default '1', - `discount_percent` double NOT NULL default '0', - `standard_cost` double NOT NULL default '0', - `visible` tinyint(1) NOT NULL default '1', - PRIMARY KEY (`trans_id`), - KEY `type` (`type`,`trans_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `supp_allocations` --- - -DROP TABLE IF EXISTS `0_supp_allocations`; -CREATE TABLE IF NOT EXISTS `0_supp_allocations` ( - `id` int(11) NOT NULL auto_increment, - `amt` double unsigned default NULL, - `date_alloc` date NOT NULL default '0000-00-00', - `trans_no_from` int(11) default NULL, - `trans_type_from` int(11) default NULL, - `trans_no_to` int(11) default NULL, - `trans_type_to` int(11) default NULL, - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `supp_invoice_items` --- - -DROP TABLE IF EXISTS `0_supp_invoice_items`; -CREATE TABLE IF NOT EXISTS `0_supp_invoice_items` ( - `id` int(11) NOT NULL auto_increment, - `supp_trans_no` int(11) default NULL, - `supp_trans_type` int(11) default NULL, - `gl_code` int(11) NOT NULL default '0', - `grn_item_id` int(11) default NULL, - `po_detail_item_id` int(11) default NULL, - `stock_id` varchar(20) NOT NULL default '', - `description` tinytext, - `quantity` double NOT NULL default '0', - `unit_price` double NOT NULL default '0', - `unit_tax` double NOT NULL default '0', - `memo_` tinytext, - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `supp_invoice_tax_items` --- - -DROP TABLE IF EXISTS `0_supp_invoice_tax_items`; -CREATE TABLE IF NOT EXISTS `0_supp_invoice_tax_items` ( - `id` int(11) NOT NULL auto_increment, - `supp_trans_no` int(11) default NULL, - `supp_trans_type` int(11) default NULL, - `tax_type_id` int(11) NOT NULL default '0', - `tax_type_name` varchar(60) default NULL, - `rate` double NOT NULL default '0', - `included_in_price` tinyint(1) NOT NULL default '0', - `amount` double NOT NULL default '0', - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `supp_trans` --- - -DROP TABLE IF EXISTS `0_supp_trans`; -CREATE TABLE IF NOT EXISTS `0_supp_trans` ( - `trans_no` int(11) unsigned NOT NULL default '0', - `type` smallint(6) unsigned NOT NULL default '0', - `supplier_id` int(11) unsigned default NULL, - `reference` tinytext NOT NULL, - `supp_reference` varchar(60) NOT NULL default '', - `tran_date` date NOT NULL default '0000-00-00', - `due_date` date NOT NULL default '0000-00-00', - `ov_amount` double NOT NULL default '0', - `ov_discount` double NOT NULL default '0', - `ov_gst` double NOT NULL default '0', - `rate` double NOT NULL default '1', - `alloc` double NOT NULL default '0', - PRIMARY KEY (`trans_no`,`type`), - KEY `supplier_id` (`supplier_id`), - KEY `SupplierID_2` (`supplier_id`,`supp_reference`), - KEY `type` (`type`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `suppliers` --- - -DROP TABLE IF EXISTS `0_suppliers`; -CREATE TABLE IF NOT EXISTS `0_suppliers` ( - `supplier_id` int(11) NOT NULL auto_increment, - `supp_name` varchar(60) NOT NULL default '', - `address` tinytext NOT NULL, - `email` varchar(100) NOT NULL default '', - `bank_account` varchar(60) NOT NULL default '', - `curr_code` char(3) default NULL, - `payment_terms` int(11) default NULL, - `dimension_id` int(11) default '0', - `dimension2_id` int(11) default '0', - `tax_group_id` int(11) default NULL, - `purchase_account` varchar(11) default NULL, - `payable_account` varchar(11) default NULL, - `payment_discount_account` varchar(11) default NULL, - PRIMARY KEY (`supplier_id`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `sys_types` --- - -DROP TABLE IF EXISTS `0_sys_types`; -CREATE TABLE IF NOT EXISTS `0_sys_types` ( - `type_id` smallint(6) NOT NULL default '0', - `type_name` varchar(60) NOT NULL default '', - `type_no` int(11) NOT NULL default '1', - `next_reference` varchar(100) NOT NULL default '', - PRIMARY KEY (`type_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `tax_group_items` --- - -DROP TABLE IF EXISTS `0_tax_group_items`; -CREATE TABLE IF NOT EXISTS `0_tax_group_items` ( - `tax_group_id` int(11) NOT NULL default '0', - `tax_type_id` int(11) NOT NULL default '0', - `rate` double NOT NULL default '0', - `included_in_price` tinyint(1) NOT NULL default '0', - PRIMARY KEY (`tax_group_id`,`tax_type_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `tax_groups` --- - -DROP TABLE IF EXISTS `0_tax_groups`; -CREATE TABLE IF NOT EXISTS `0_tax_groups` ( - `id` int(11) NOT NULL auto_increment, - `name` varchar(60) NOT NULL default '', - `tax_shipping` tinyint(1) NOT NULL default '0', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `tax_types` --- - -DROP TABLE IF EXISTS `0_tax_types`; -CREATE TABLE IF NOT EXISTS `0_tax_types` ( - `id` int(11) NOT NULL auto_increment, - `rate` double NOT NULL default '0', - `sales_gl_code` varchar(11) NOT NULL default '', - `purchasing_gl_code` varchar(11) NOT NULL default '', - `name` varchar(60) NOT NULL default '', - `out` tinyint(1) NOT NULL default '1', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `users` --- - -DROP TABLE IF EXISTS `0_users`; -CREATE TABLE IF NOT EXISTS `0_users` ( - `user_id` varchar(60) NOT NULL default '', - `password` varchar(100) NOT NULL default '', - `real_name` varchar(100) NOT NULL default '', - `full_access` int(11) NOT NULL default '1', - `phone` varchar(30) NOT NULL default '', - `email` varchar(100) default NULL, - `language` varchar(20) default NULL, - `date_format` tinyint(1) NOT NULL default '0', - `date_sep` tinyint(1) NOT NULL default '0', - `tho_sep` tinyint(1) NOT NULL default '0', - `dec_sep` tinyint(1) NOT NULL default '0', - `theme` varchar(20) NOT NULL default 'default', - `page_size` varchar(20) NOT NULL default 'A4', - `prices_dec` smallint(6) NOT NULL default '2', - `qty_dec` smallint(6) NOT NULL default '2', - `rates_dec` smallint(6) NOT NULL default '4', - `percent_dec` smallint(6) NOT NULL default '1', - `show_gl` tinyint(1) NOT NULL default '1', - `show_codes` tinyint(1) NOT NULL default '0', - `last_visit_date` datetime default NULL, - PRIMARY KEY (`user_id`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `voided` --- - -DROP TABLE IF EXISTS `0_voided`; -CREATE TABLE IF NOT EXISTS `0_voided` ( - `type` int(11) NOT NULL default '0', - `id` int(11) NOT NULL default '0', - `date_` date NOT NULL default '0000-00-00', - `memo_` tinytext NOT NULL, - UNIQUE KEY `id` (`type`,`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `wo_issue_items` --- - -DROP TABLE IF EXISTS `0_wo_issue_items`; -CREATE TABLE IF NOT EXISTS `0_wo_issue_items` ( - `id` int(11) NOT NULL auto_increment, - `stock_id` varchar(40) default NULL, - `issue_id` int(11) default NULL, - `qty_issued` double default NULL, - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `wo_issues` --- - -DROP TABLE IF EXISTS `0_wo_issues`; -CREATE TABLE IF NOT EXISTS `0_wo_issues` ( - `issue_no` int(11) NOT NULL auto_increment, - `workorder_id` int(11) NOT NULL default '0', - `reference` varchar(100) default NULL, - `issue_date` date default NULL, - `loc_code` varchar(5) default NULL, - `workcentre_id` int(11) default NULL, - PRIMARY KEY (`issue_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `wo_manufacture` --- - -DROP TABLE IF EXISTS `0_wo_manufacture`; -CREATE TABLE IF NOT EXISTS `0_wo_manufacture` ( - `id` int(11) NOT NULL auto_increment, - `reference` varchar(100) default NULL, - `workorder_id` int(11) NOT NULL default '0', - `quantity` double NOT NULL default '0', - `date_` date NOT NULL default '0000-00-00', - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `wo_requirements` --- - -DROP TABLE IF EXISTS `0_wo_requirements`; -CREATE TABLE IF NOT EXISTS `0_wo_requirements` ( - `id` int(11) NOT NULL auto_increment, - `workorder_id` int(11) NOT NULL default '0', - `stock_id` char(20) NOT NULL default '', - `workcentre` char(5) NOT NULL default '', - `units_req` double NOT NULL default '1', - `std_cost` double NOT NULL default '0', - `loc_code` char(5) NOT NULL default '', - `units_issued` double NOT NULL default '0', - PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `workcentres` --- - -DROP TABLE IF EXISTS `0_workcentres`; -CREATE TABLE IF NOT EXISTS `0_workcentres` ( - `id` int(11) NOT NULL auto_increment, - `name` char(40) NOT NULL default '', - `description` char(50) NOT NULL default '', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `workorders` --- - -DROP TABLE IF EXISTS `0_workorders`; -CREATE TABLE IF NOT EXISTS `0_workorders` ( - `id` int(11) NOT NULL auto_increment, - `wo_ref` varchar(60) NOT NULL default '', - `loc_code` varchar(5) NOT NULL default '', - `units_reqd` double NOT NULL default '1', - `stock_id` varchar(20) NOT NULL default '', - `date_` date NOT NULL default '0000-00-00', - `type` tinyint(4) NOT NULL default '0', - `required_by` date NOT NULL default '0000-00-00', - `released_date` date NOT NULL default '0000-00-00', - `units_issued` double NOT NULL default '0', - `closed` tinyint(1) NOT NULL default '0', - `released` tinyint(1) NOT NULL default '0', - `additional_costs` double NOT NULL default '0', - PRIMARY KEY (`id`), - UNIQUE KEY `wo_ref` (`wo_ref`) -) TYPE=InnoDB; diff --git a/sql/en_US-demo.sql b/sql/en_US-demo.sql index 93a564e8..514e2da7 100644 --- a/sql/en_US-demo.sql +++ b/sql/en_US-demo.sql @@ -1,37 +1,27 @@ --- phpMyAdmin SQL Dump --- version 2.7.0-pl2 --- http://www.phpmyadmin.net --- --- Host: localhost --- Created: 09 februar 2007 at 10:54 --- Server Version: 4.1.11 --- PHP-version: 4.4.1 --- --- Database: `en_US-demo` --- - --- -------------------------------------------------------- - --- --- Structure for table `areas` --- +# MySQL dump of database 'fa' on host 'localhost' +# Backup Date and Time: 2008-04-01 09:43 +# Built by FrontAccounting 2.0 Beta +# http://frontaccounting.net +# Company: Drill Company Inc. +# User: Administrator + + +### Structure of table `0_areas` ### DROP TABLE IF EXISTS `0_areas`; -CREATE TABLE IF NOT EXISTS `0_areas` ( + +CREATE TABLE `0_areas` ( `area_code` int(11) NOT NULL auto_increment, `description` varchar(60) NOT NULL default '', PRIMARY KEY (`area_code`), UNIQUE KEY `description` (`description`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=5 ; --- -------------------------------------------------------- - --- --- Structure for table `bank_accounts` --- +### Structure of table `0_bank_accounts` ### DROP TABLE IF EXISTS `0_bank_accounts`; -CREATE TABLE IF NOT EXISTS `0_bank_accounts` ( + +CREATE TABLE `0_bank_accounts` ( `account_code` varchar(11) NOT NULL default '', `account_type` smallint(6) NOT NULL default '0', `bank_account_name` varchar(60) NOT NULL default '', @@ -42,16 +32,13 @@ CREATE TABLE IF NOT EXISTS `0_bank_accounts` ( PRIMARY KEY (`account_code`), KEY `bank_account_name` (`bank_account_name`), KEY `bank_account_number` (`bank_account_number`) -) TYPE=MyISAM; +) TYPE=MyISAM ; --- -------------------------------------------------------- - --- --- Structure for table `bank_trans` --- +### Structure of table `0_bank_trans` ### DROP TABLE IF EXISTS `0_bank_trans`; -CREATE TABLE IF NOT EXISTS `0_bank_trans` ( + +CREATE TABLE `0_bank_trans` ( `id` int(11) NOT NULL auto_increment, `type` smallint(6) default NULL, `trans_no` int(11) default NULL, @@ -67,34 +54,28 @@ CREATE TABLE IF NOT EXISTS `0_bank_trans` ( PRIMARY KEY (`id`), KEY `bank_act` (`bank_act`,`ref`), KEY `type` (`type`,`trans_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=24 ; --- -------------------------------------------------------- - --- --- Structure for table `bank_trans_types` --- +### Structure of table `0_bank_trans_types` ### DROP TABLE IF EXISTS `0_bank_trans_types`; -CREATE TABLE IF NOT EXISTS `0_bank_trans_types` ( + +CREATE TABLE `0_bank_trans_types` ( `id` int(11) NOT NULL auto_increment, `name` varchar(60) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=4 ; --- -------------------------------------------------------- - --- --- Structure for table `bom` --- +### Structure of table `0_bom` ### DROP TABLE IF EXISTS `0_bom`; -CREATE TABLE IF NOT EXISTS `0_bom` ( + +CREATE TABLE `0_bom` ( `id` int(11) NOT NULL auto_increment, `parent` char(20) NOT NULL default '', `component` char(20) NOT NULL default '', - `workcentre_added` char(5) NOT NULL default '', + `workcentre_added` int(11) NOT NULL default '0', `loc_code` char(5) NOT NULL default '', `quantity` double NOT NULL default '1', PRIMARY KEY (`parent`,`component`,`workcentre_added`,`loc_code`), @@ -104,16 +85,13 @@ CREATE TABLE IF NOT EXISTS `0_bom` ( KEY `parent` (`parent`,`loc_code`), KEY `Parent_2` (`parent`), KEY `workcentre_added` (`workcentre_added`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=6 ; --- -------------------------------------------------------- - --- --- Structure for table `budget_trans` --- +### Structure of table `0_budget_trans` ### DROP TABLE IF EXISTS `0_budget_trans`; -CREATE TABLE IF NOT EXISTS `0_budget_trans` ( + +CREATE TABLE `0_budget_trans` ( `counter` int(11) NOT NULL auto_increment, `type` smallint(6) NOT NULL default '0', `type_no` bigint(16) NOT NULL default '1', @@ -127,30 +105,24 @@ CREATE TABLE IF NOT EXISTS `0_budget_trans` ( `person_id` tinyblob, PRIMARY KEY (`counter`), KEY `Type_and_Number` (`type`,`type_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; --- -------------------------------------------------------- - --- --- Structure for table `chart_class` --- +### Structure of table `0_chart_class` ### DROP TABLE IF EXISTS `0_chart_class`; -CREATE TABLE IF NOT EXISTS `0_chart_class` ( + +CREATE TABLE `0_chart_class` ( `cid` int(11) NOT NULL default '0', `class_name` varchar(60) NOT NULL default '', `balance_sheet` tinyint(1) NOT NULL default '0', PRIMARY KEY (`cid`) -) TYPE=MyISAM; +) TYPE=MyISAM ; --- -------------------------------------------------------- - --- --- Structure for table `chart_master` --- +### Structure of table `0_chart_master` ### DROP TABLE IF EXISTS `0_chart_master`; -CREATE TABLE IF NOT EXISTS `0_chart_master` ( + +CREATE TABLE `0_chart_master` ( `account_code` varchar(11) NOT NULL default '', `account_code2` varchar(11) default '', `account_name` varchar(60) NOT NULL default '', @@ -159,46 +131,37 @@ CREATE TABLE IF NOT EXISTS `0_chart_master` ( PRIMARY KEY (`account_code`), KEY `account_code` (`account_code`), KEY `account_name` (`account_name`) -) TYPE=MyISAM; +) TYPE=MyISAM ; --- -------------------------------------------------------- - --- --- Structure for table `chart_types` --- +### Structure of table `0_chart_types` ### DROP TABLE IF EXISTS `0_chart_types`; -CREATE TABLE IF NOT EXISTS `0_chart_types` ( + +CREATE TABLE `0_chart_types` ( `id` int(11) NOT NULL auto_increment, `name` varchar(60) NOT NULL default '', `class_id` tinyint(1) NOT NULL default '0', `parent` int(11) NOT NULL default '-1', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM AUTO_INCREMENT=53 ; --- --- Structure for table `comments` --- +### Structure of table `0_comments` ### DROP TABLE IF EXISTS `0_comments`; -CREATE TABLE IF NOT EXISTS `0_comments` ( + +CREATE TABLE `0_comments` ( `type` int(11) NOT NULL default '0', `id` int(11) NOT NULL default '0', `date_` date default '0000-00-00', `memo_` tinytext -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB ; --- --- Structure for table `company` --- +### Structure of table `0_company` ### DROP TABLE IF EXISTS `0_company`; -CREATE TABLE IF NOT EXISTS `0_company` ( + +CREATE TABLE `0_company` ( `coy_code` int(11) NOT NULL default '1', `coy_name` varchar(60) NOT NULL default '', `gst_no` varchar(25) NOT NULL default '', @@ -244,51 +207,43 @@ CREATE TABLE IF NOT EXISTS `0_company` ( `past_due_days` int(11) NOT NULL default '30', `use_dimension` tinyint(1) default '0', `f_year` int(11) NOT NULL default '1', - `no_item_list` TINYINT(1) NOT NULL DEFAULT '0', - `no_customer_list` TINYINT(1) NOT NULL DEFAULT '0', - `no_supplier_list` TINYINT(1) NOT NULL DEFAULT '0', + `no_item_list` tinyint(1) NOT NULL default '0', + `no_customer_list` tinyint(1) NOT NULL default '0', + `no_supplier_list` tinyint(1) NOT NULL default '0', + `base_sales` int(11) NOT NULL default '-1', PRIMARY KEY (`coy_code`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM ; --- --- Structure for table `credit_status` --- +### Structure of table `0_credit_status` ### DROP TABLE IF EXISTS `0_credit_status`; -CREATE TABLE IF NOT EXISTS `0_credit_status` ( + +CREATE TABLE `0_credit_status` ( `id` int(11) NOT NULL auto_increment, `reason_description` char(100) NOT NULL default '', `dissallow_invoices` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `reason_description` (`reason_description`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM AUTO_INCREMENT=5 ; --- --- Structure for table `currencies` --- +### Structure of table `0_currencies` ### DROP TABLE IF EXISTS `0_currencies`; -CREATE TABLE IF NOT EXISTS `0_currencies` ( + +CREATE TABLE `0_currencies` ( `currency` varchar(60) NOT NULL default '', `curr_abrev` char(3) NOT NULL default '', `curr_symbol` varchar(10) NOT NULL default '', `country` varchar(100) NOT NULL default '', `hundreds_name` varchar(15) NOT NULL default '', PRIMARY KEY (`curr_abrev`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM ; --- --- Structure for table `cust_allocations` --- +### Structure of table `0_cust_allocations` ### DROP TABLE IF EXISTS `0_cust_allocations`; -CREATE TABLE IF NOT EXISTS `0_cust_allocations` ( + +CREATE TABLE `0_cust_allocations` ( `id` int(11) NOT NULL auto_increment, `amt` double unsigned default NULL, `date_alloc` date NOT NULL default '0000-00-00', @@ -297,16 +252,13 @@ CREATE TABLE IF NOT EXISTS `0_cust_allocations` ( `trans_no_to` int(11) default NULL, `trans_type_to` int(11) default NULL, PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB AUTO_INCREMENT=9 ; --- --- Structure for table `cust_branch` --- +### Structure of table `0_cust_branch` ### DROP TABLE IF EXISTS `0_cust_branch`; -CREATE TABLE IF NOT EXISTS `0_cust_branch` ( + +CREATE TABLE `0_cust_branch` ( `branch_code` int(11) NOT NULL auto_increment, `debtor_no` int(11) NOT NULL default '0', `br_name` varchar(60) NOT NULL default '', @@ -329,18 +281,16 @@ CREATE TABLE IF NOT EXISTS `0_cust_branch` ( PRIMARY KEY (`branch_code`,`debtor_no`), KEY `branch_code` (`branch_code`), KEY `br_name` (`br_name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM AUTO_INCREMENT=8 ; --- --- Structure for table `debtor_trans` --- +### Structure of table `0_debtor_trans` ### DROP TABLE IF EXISTS `0_debtor_trans`; -CREATE TABLE IF NOT EXISTS `0_debtor_trans` ( + +CREATE TABLE `0_debtor_trans` ( `trans_no` int(11) unsigned NOT NULL default '0', `type` smallint(6) unsigned NOT NULL default '0', + `version` tinyint(1) unsigned NOT NULL default '0', `debtor_no` int(11) unsigned default NULL, `branch_code` int(11) NOT NULL default '-1', `tran_date` date NOT NULL default '0000-00-00', @@ -351,22 +301,21 @@ CREATE TABLE IF NOT EXISTS `0_debtor_trans` ( `ov_amount` double NOT NULL default '0', `ov_gst` double NOT NULL default '0', `ov_freight` double NOT NULL default '0', + `ov_freight_tax` double NOT NULL default '0', `ov_discount` double NOT NULL default '0', `alloc` double NOT NULL default '0', `rate` double NOT NULL default '1', `ship_via` int(11) default NULL, + `trans_link` int(11) NOT NULL default '0', PRIMARY KEY (`trans_no`,`type`), KEY `debtor_no` (`debtor_no`,`branch_code`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB ; --- --- Structure for table `debtor_trans_details` --- +### Structure of table `0_debtor_trans_details` ### DROP TABLE IF EXISTS `0_debtor_trans_details`; -CREATE TABLE IF NOT EXISTS `0_debtor_trans_details` ( + +CREATE TABLE `0_debtor_trans_details` ( `id` int(11) NOT NULL auto_increment, `debtor_trans_no` int(11) default NULL, `debtor_trans_type` int(11) default NULL, @@ -377,17 +326,15 @@ CREATE TABLE IF NOT EXISTS `0_debtor_trans_details` ( `quantity` double NOT NULL default '0', `discount_percent` double NOT NULL default '0', `standard_cost` double NOT NULL default '0', + `qty_done` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB AUTO_INCREMENT=46 ; --- --- Structure for table `debtor_trans_tax_details` --- +### Structure of table `0_debtor_trans_tax_details` ### DROP TABLE IF EXISTS `0_debtor_trans_tax_details`; -CREATE TABLE IF NOT EXISTS `0_debtor_trans_tax_details` ( + +CREATE TABLE `0_debtor_trans_tax_details` ( `id` int(11) NOT NULL auto_increment, `debtor_trans_no` int(11) default NULL, `debtor_trans_type` int(11) default NULL, @@ -397,16 +344,13 @@ CREATE TABLE IF NOT EXISTS `0_debtor_trans_tax_details` ( `included_in_price` tinyint(1) NOT NULL default '0', `amount` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=40 ; --- -------------------------------------------------------- - --- --- Structure for table `debtors_master` --- +### Structure of table `0_debtors_master` ### DROP TABLE IF EXISTS `0_debtors_master`; -CREATE TABLE IF NOT EXISTS `0_debtors_master` ( + +CREATE TABLE `0_debtors_master` ( `debtor_no` int(11) NOT NULL auto_increment, `name` varchar(60) NOT NULL default '', `address` tinytext, @@ -423,16 +367,13 @@ CREATE TABLE IF NOT EXISTS `0_debtors_master` ( `credit_limit` float NOT NULL default '1000', PRIMARY KEY (`debtor_no`), UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=5 ; --- -------------------------------------------------------- - --- --- Structure for table `dimensions` --- +### Structure of table `0_dimensions` ### DROP TABLE IF EXISTS `0_dimensions`; -CREATE TABLE IF NOT EXISTS `0_dimensions` ( + +CREATE TABLE `0_dimensions` ( `id` int(11) NOT NULL auto_increment, `reference` varchar(60) NOT NULL default '', `name` varchar(60) NOT NULL default '', @@ -442,16 +383,13 @@ CREATE TABLE IF NOT EXISTS `0_dimensions` ( `due_date` date NOT NULL default '0000-00-00', PRIMARY KEY (`id`), UNIQUE KEY `reference` (`reference`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=4 ; --- -------------------------------------------------------- - --- --- Structure for table `exchange_rates` --- +### Structure of table `0_exchange_rates` ### DROP TABLE IF EXISTS `0_exchange_rates`; -CREATE TABLE IF NOT EXISTS `0_exchange_rates` ( + +CREATE TABLE `0_exchange_rates` ( `id` int(11) NOT NULL auto_increment, `curr_code` char(3) NOT NULL default '', `rate_buy` double NOT NULL default '0', @@ -459,48 +397,25 @@ CREATE TABLE IF NOT EXISTS `0_exchange_rates` ( `date_` date NOT NULL default '0000-00-00', PRIMARY KEY (`id`), UNIQUE KEY `curr_code` (`curr_code`,`date_`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=13 ; --- -------------------------------------------------------- - --- --- Structure for table `fiscal_year` --- +### Structure of table `0_fiscal_year` ### DROP TABLE IF EXISTS `0_fiscal_year`; -CREATE TABLE IF NOT EXISTS `0_fiscal_year` ( + +CREATE TABLE `0_fiscal_year` ( `id` int(11) NOT NULL auto_increment, `begin` date default '0000-00-00', `end` date default '0000-00-00', `closed` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `form_items` --- +) TYPE=InnoDB AUTO_INCREMENT=7 ; -DROP TABLE IF EXISTS `0_form_items`; -CREATE TABLE IF NOT EXISTS `0_form_items` ( - `form_id` int(11) NOT NULL default '0', - `form_type` int(11) NOT NULL default '0', - `trans_type` int(11) NOT NULL default '0', - `trans_id` int(11) NOT NULL default '0', - `param1` varchar(100) NOT NULL default '', - `param2` varchar(100) default NULL, - PRIMARY KEY (`form_id`,`form_type`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `gl_trans` --- +### Structure of table `0_gl_trans` ### DROP TABLE IF EXISTS `0_gl_trans`; -CREATE TABLE IF NOT EXISTS `0_gl_trans` ( + +CREATE TABLE `0_gl_trans` ( `counter` int(11) NOT NULL auto_increment, `type` smallint(6) NOT NULL default '0', `type_no` bigint(16) NOT NULL default '1', @@ -514,16 +429,13 @@ CREATE TABLE IF NOT EXISTS `0_gl_trans` ( `person_id` tinyblob, PRIMARY KEY (`counter`), KEY `Type_and_Number` (`type`,`type_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB AUTO_INCREMENT=170 ; --- --- Structure for table `grn_batch` --- +### Structure of table `0_grn_batch` ### DROP TABLE IF EXISTS `0_grn_batch`; -CREATE TABLE IF NOT EXISTS `0_grn_batch` ( + +CREATE TABLE `0_grn_batch` ( `id` int(11) NOT NULL auto_increment, `supplier_id` int(11) NOT NULL default '0', `purch_order_no` int(11) default NULL, @@ -531,16 +443,13 @@ CREATE TABLE IF NOT EXISTS `0_grn_batch` ( `delivery_date` date NOT NULL default '0000-00-00', `loc_code` varchar(5) default NULL, PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB AUTO_INCREMENT=13 ; --- --- Structure for table `grn_items` --- +### Structure of table `0_grn_items` ### DROP TABLE IF EXISTS `0_grn_items`; -CREATE TABLE IF NOT EXISTS `0_grn_items` ( + +CREATE TABLE `0_grn_items` ( `id` int(11) NOT NULL auto_increment, `grn_batch_id` int(11) default NULL, `po_detail_item` int(11) NOT NULL default '0', @@ -549,59 +458,59 @@ CREATE TABLE IF NOT EXISTS `0_grn_items` ( `qty_recd` double NOT NULL default '0', `quantity_inv` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB AUTO_INCREMENT=17 ; --- --- Structure for table `item_tax_type_exemptions` --- +### Structure of table `0_item_tax_type_exemptions` ### DROP TABLE IF EXISTS `0_item_tax_type_exemptions`; -CREATE TABLE IF NOT EXISTS `0_item_tax_type_exemptions` ( + +CREATE TABLE `0_item_tax_type_exemptions` ( `item_tax_type_id` int(11) NOT NULL default '0', `tax_type_id` int(11) NOT NULL default '0', PRIMARY KEY (`item_tax_type_id`,`tax_type_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB ; --- --- Structure for table `item_tax_types` --- +### Structure of table `0_item_tax_types` ### DROP TABLE IF EXISTS `0_item_tax_types`; -CREATE TABLE IF NOT EXISTS `0_item_tax_types` ( + +CREATE TABLE `0_item_tax_types` ( `id` int(11) NOT NULL auto_increment, `name` varchar(60) NOT NULL default '', `exempt` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=3 ; + +### Structure of table `0_item_units` ### --- -------------------------------------------------------- +DROP TABLE IF EXISTS `0_item_units`; --- --- Structure for table `loc_stock` --- +CREATE TABLE `0_item_units` ( + `abbr` varchar(20) NOT NULL default '', + `name` varchar(40) NOT NULL default '', + `decimals` tinyint(2) NOT NULL default '0', + PRIMARY KEY (`abbr`), + UNIQUE KEY `name` (`name`) +) TYPE=MyISAM COMMENT='units of measure' ; + +### Structure of table `0_loc_stock` ### DROP TABLE IF EXISTS `0_loc_stock`; -CREATE TABLE IF NOT EXISTS `0_loc_stock` ( + +CREATE TABLE `0_loc_stock` ( `loc_code` char(5) NOT NULL default '', `stock_id` char(20) NOT NULL default '', `reorder_level` bigint(20) NOT NULL default '0', PRIMARY KEY (`loc_code`,`stock_id`), KEY `stock_id` (`stock_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB ; --- --- Structure for table `locations` --- +### Structure of table `0_locations` ### DROP TABLE IF EXISTS `0_locations`; -CREATE TABLE IF NOT EXISTS `0_locations` ( + +CREATE TABLE `0_locations` ( `loc_code` varchar(5) NOT NULL default '', `location_name` varchar(60) NOT NULL default '', `delivery_address` tinytext NOT NULL, @@ -610,46 +519,37 @@ CREATE TABLE IF NOT EXISTS `0_locations` ( `email` varchar(100) NOT NULL default '', `contact` varchar(30) NOT NULL default '', PRIMARY KEY (`loc_code`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM ; --- --- Structure for table `movement_types` --- +### Structure of table `0_movement_types` ### DROP TABLE IF EXISTS `0_movement_types`; -CREATE TABLE IF NOT EXISTS `0_movement_types` ( + +CREATE TABLE `0_movement_types` ( `id` int(11) NOT NULL auto_increment, `name` varchar(60) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM AUTO_INCREMENT=2 ; --- --- Structure for table `payment_terms` --- +### Structure of table `0_payment_terms` ### DROP TABLE IF EXISTS `0_payment_terms`; -CREATE TABLE IF NOT EXISTS `0_payment_terms` ( + +CREATE TABLE `0_payment_terms` ( `terms_indicator` int(11) NOT NULL auto_increment, `terms` char(80) NOT NULL default '', `days_before_due` smallint(6) NOT NULL default '0', `day_in_following_month` smallint(6) NOT NULL default '0', PRIMARY KEY (`terms_indicator`), UNIQUE KEY `terms` (`terms`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM AUTO_INCREMENT=5 ; --- --- Structure for table `prices` --- +### Structure of table `0_prices` ### DROP TABLE IF EXISTS `0_prices`; -CREATE TABLE IF NOT EXISTS `0_prices` ( + +CREATE TABLE `0_prices` ( `id` int(11) NOT NULL auto_increment, `stock_id` varchar(20) NOT NULL default '', `sales_type_id` int(11) NOT NULL default '0', @@ -657,16 +557,13 @@ CREATE TABLE IF NOT EXISTS `0_prices` ( `price` double NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `price` (`stock_id`,`sales_type_id`,`curr_abrev`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=13 ; --- -------------------------------------------------------- - --- --- Structure for table `purch_data` --- +### Structure of table `0_purch_data` ### DROP TABLE IF EXISTS `0_purch_data`; -CREATE TABLE IF NOT EXISTS `0_purch_data` ( + +CREATE TABLE `0_purch_data` ( `supplier_id` int(11) NOT NULL default '0', `stock_id` char(20) NOT NULL default '', `price` double NOT NULL default '0', @@ -674,16 +571,13 @@ CREATE TABLE IF NOT EXISTS `0_purch_data` ( `conversion_factor` double NOT NULL default '1', `supplier_description` char(50) NOT NULL default '', PRIMARY KEY (`supplier_id`,`stock_id`) -) TYPE=MyISAM; +) TYPE=MyISAM ; --- -------------------------------------------------------- - --- --- Structure for table `purch_order_details` --- +### Structure of table `0_purch_order_details` ### DROP TABLE IF EXISTS `0_purch_order_details`; -CREATE TABLE IF NOT EXISTS `0_purch_order_details` ( + +CREATE TABLE `0_purch_order_details` ( `po_detail_item` int(11) NOT NULL auto_increment, `order_no` int(11) NOT NULL default '0', `item_code` varchar(20) NOT NULL default '', @@ -696,17 +590,15 @@ CREATE TABLE IF NOT EXISTS `0_purch_order_details` ( `quantity_ordered` double NOT NULL default '0', `quantity_received` double NOT NULL default '0', PRIMARY KEY (`po_detail_item`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=18 ; --- -------------------------------------------------------- - --- --- Structure for table `purch_orders` --- +### Structure of table `0_purch_orders` ### DROP TABLE IF EXISTS `0_purch_orders`; -CREATE TABLE IF NOT EXISTS `0_purch_orders` ( + +CREATE TABLE `0_purch_orders` ( `order_no` int(11) NOT NULL auto_increment, + `version` tinyint(1) unsigned NOT NULL default '0', `supplier_id` int(11) NOT NULL default '0', `comments` tinytext, `ord_date` date NOT NULL default '0000-00-00', @@ -715,49 +607,43 @@ CREATE TABLE IF NOT EXISTS `0_purch_orders` ( `into_stock_location` varchar(5) NOT NULL default '', `delivery_address` tinytext NOT NULL, PRIMARY KEY (`order_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=14 ; --- -------------------------------------------------------- - --- --- Structure for table `refs` --- +### Structure of table `0_refs` ### DROP TABLE IF EXISTS `0_refs`; -CREATE TABLE IF NOT EXISTS `0_refs` ( + +CREATE TABLE `0_refs` ( `id` int(11) NOT NULL default '0', `type` int(11) NOT NULL default '0', `reference` varchar(100) NOT NULL default '', PRIMARY KEY (`id`,`type`) -) TYPE=InnoDB; +) TYPE=InnoDB ; --- -------------------------------------------------------- - --- --- Structure for table `sales_order_details` --- +### Structure of table `0_sales_order_details` ### DROP TABLE IF EXISTS `0_sales_order_details`; -CREATE TABLE IF NOT EXISTS `0_sales_order_details` ( + +CREATE TABLE `0_sales_order_details` ( + `id` int(11) NOT NULL auto_increment, `order_no` int(11) NOT NULL default '0', `stk_code` varchar(20) NOT NULL default '', `description` tinytext, - `qty_invoiced` double NOT NULL default '0', + `qty_sent` double NOT NULL default '0', `unit_price` double NOT NULL default '0', `quantity` double NOT NULL default '0', `discount_percent` double NOT NULL default '0', - PRIMARY KEY (`order_no`,`stk_code`) -) TYPE=InnoDB; - --- -------------------------------------------------------- + PRIMARY KEY (`id`) +) TYPE=InnoDB AUTO_INCREMENT=24 ; --- --- Structure for table `sales_orders` --- +### Structure of table `0_sales_orders` ### DROP TABLE IF EXISTS `0_sales_orders`; -CREATE TABLE IF NOT EXISTS `0_sales_orders` ( + +CREATE TABLE `0_sales_orders` ( `order_no` int(11) NOT NULL auto_increment, + `version` tinyint(1) unsigned NOT NULL default '0', + `type` tinyint(1) NOT NULL default '0', `debtor_no` int(11) NOT NULL default '0', `branch_code` int(11) NOT NULL default '0', `customer_ref` tinytext NOT NULL, @@ -773,47 +659,43 @@ CREATE TABLE IF NOT EXISTS `0_sales_orders` ( `from_stk_loc` varchar(5) NOT NULL default '', `delivery_date` date NOT NULL default '0000-00-00', PRIMARY KEY (`order_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB AUTO_INCREMENT=22 ; --- --- Structure for table `sales_types` --- +### Structure of table `0_sales_types` ### DROP TABLE IF EXISTS `0_sales_types`; -CREATE TABLE IF NOT EXISTS `0_sales_types` ( + +CREATE TABLE `0_sales_types` ( `id` int(11) NOT NULL auto_increment, `sales_type` char(50) NOT NULL default '', + `tax_included` int(1) NOT NULL default '0', + `factor` double NOT NULL default '1', PRIMARY KEY (`id`), UNIQUE KEY `sales_type` (`sales_type`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=3 ; --- -------------------------------------------------------- - --- --- Structure for table `salesman` --- +### Structure of table `0_salesman` ### DROP TABLE IF EXISTS `0_salesman`; -CREATE TABLE IF NOT EXISTS `0_salesman` ( + +CREATE TABLE `0_salesman` ( `salesman_code` int(11) NOT NULL auto_increment, - `salesman_name` char(60) NOT NULL default '', - `salesman_phone` char(30) NOT NULL default '', - `salesman_fax` char(30) NOT NULL default '', + `salesman_name` varchar(60) NOT NULL default '', + `salesman_phone` varchar(30) NOT NULL default '', + `salesman_fax` varchar(30) NOT NULL default '', `salesman_email` varchar(100) NOT NULL default '', + `provision` double NOT NULL default '0', + `break_pt` double NOT NULL default '0', + `provision2` double NOT NULL default '0', PRIMARY KEY (`salesman_code`), UNIQUE KEY `salesman_name` (`salesman_name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=3 ; --- -------------------------------------------------------- - --- --- Structure for table `shippers` --- +### Structure of table `0_shippers` ### DROP TABLE IF EXISTS `0_shippers`; -CREATE TABLE IF NOT EXISTS `0_shippers` ( + +CREATE TABLE `0_shippers` ( `shipper_id` int(11) NOT NULL auto_increment, `shipper_name` varchar(60) NOT NULL default '', `phone` varchar(30) NOT NULL default '', @@ -821,16 +703,13 @@ CREATE TABLE IF NOT EXISTS `0_shippers` ( `address` tinytext NOT NULL, PRIMARY KEY (`shipper_id`), UNIQUE KEY `name` (`shipper_name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=3 ; --- -------------------------------------------------------- - --- --- Structure for table `stock_category` --- +### Structure of table `0_stock_category` ### DROP TABLE IF EXISTS `0_stock_category`; -CREATE TABLE IF NOT EXISTS `0_stock_category` ( + +CREATE TABLE `0_stock_category` ( `category_id` int(11) NOT NULL auto_increment, `description` varchar(60) NOT NULL default '', `stock_act` varchar(11) default NULL, @@ -839,16 +718,13 @@ CREATE TABLE IF NOT EXISTS `0_stock_category` ( `purch_price_var_act` varchar(11) default NULL, PRIMARY KEY (`category_id`), UNIQUE KEY `description` (`description`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=5 ; --- -------------------------------------------------------- - --- --- Structure for table `stock_master` --- +### Structure of table `0_stock_master` ### DROP TABLE IF EXISTS `0_stock_master`; -CREATE TABLE IF NOT EXISTS `0_stock_master` ( + +CREATE TABLE `0_stock_master` ( `stock_id` varchar(20) NOT NULL default '', `category_id` int(11) NOT NULL default '0', `tax_type_id` int(11) NOT NULL default '0', @@ -869,16 +745,13 @@ CREATE TABLE IF NOT EXISTS `0_stock_master` ( `labour_cost` double NOT NULL default '0', `overhead_cost` double NOT NULL default '0', PRIMARY KEY (`stock_id`) -) TYPE=InnoDB; +) TYPE=InnoDB ; --- -------------------------------------------------------- - --- --- Structure for table `stock_moves` --- +### Structure of table `0_stock_moves` ### DROP TABLE IF EXISTS `0_stock_moves`; -CREATE TABLE IF NOT EXISTS `0_stock_moves` ( + +CREATE TABLE `0_stock_moves` ( `trans_id` int(11) NOT NULL auto_increment, `trans_no` int(11) NOT NULL default '0', `stock_id` char(20) NOT NULL default '', @@ -894,16 +767,13 @@ CREATE TABLE IF NOT EXISTS `0_stock_moves` ( `visible` tinyint(1) NOT NULL default '1', PRIMARY KEY (`trans_id`), KEY `type` (`type`,`trans_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=42 ; --- -------------------------------------------------------- - --- --- Structure for table `supp_allocations` --- +### Structure of table `0_supp_allocations` ### DROP TABLE IF EXISTS `0_supp_allocations`; -CREATE TABLE IF NOT EXISTS `0_supp_allocations` ( + +CREATE TABLE `0_supp_allocations` ( `id` int(11) NOT NULL auto_increment, `amt` double unsigned default NULL, `date_alloc` date NOT NULL default '0000-00-00', @@ -912,20 +782,17 @@ CREATE TABLE IF NOT EXISTS `0_supp_allocations` ( `trans_no_to` int(11) default NULL, `trans_type_to` int(11) default NULL, PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=10 ; --- -------------------------------------------------------- - --- --- Structure for table `supp_invoice_items` --- +### Structure of table `0_supp_invoice_items` ### DROP TABLE IF EXISTS `0_supp_invoice_items`; -CREATE TABLE IF NOT EXISTS `0_supp_invoice_items` ( + +CREATE TABLE `0_supp_invoice_items` ( `id` int(11) NOT NULL auto_increment, `supp_trans_no` int(11) default NULL, `supp_trans_type` int(11) default NULL, - `gl_code` int(11) NOT NULL default '0', + `gl_code` varchar(11) NOT NULL default '0', `grn_item_id` int(11) default NULL, `po_detail_item_id` int(11) default NULL, `stock_id` varchar(20) NOT NULL default '', @@ -935,16 +802,13 @@ CREATE TABLE IF NOT EXISTS `0_supp_invoice_items` ( `unit_tax` double NOT NULL default '0', `memo_` tinytext, PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=22 ; --- -------------------------------------------------------- - --- --- Structure for table `supp_invoice_tax_items` --- +### Structure of table `0_supp_invoice_tax_items` ### DROP TABLE IF EXISTS `0_supp_invoice_tax_items`; -CREATE TABLE IF NOT EXISTS `0_supp_invoice_tax_items` ( + +CREATE TABLE `0_supp_invoice_tax_items` ( `id` int(11) NOT NULL auto_increment, `supp_trans_no` int(11) default NULL, `supp_trans_type` int(11) default NULL, @@ -954,16 +818,13 @@ CREATE TABLE IF NOT EXISTS `0_supp_invoice_tax_items` ( `included_in_price` tinyint(1) NOT NULL default '0', `amount` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB AUTO_INCREMENT=5 ; --- --- Structure for table `supp_trans` --- +### Structure of table `0_supp_trans` ### DROP TABLE IF EXISTS `0_supp_trans`; -CREATE TABLE IF NOT EXISTS `0_supp_trans` ( + +CREATE TABLE `0_supp_trans` ( `trans_no` int(11) unsigned NOT NULL default '0', `type` smallint(6) unsigned NOT NULL default '0', `supplier_id` int(11) unsigned default NULL, @@ -980,16 +841,13 @@ CREATE TABLE IF NOT EXISTS `0_supp_trans` ( KEY `supplier_id` (`supplier_id`), KEY `SupplierID_2` (`supplier_id`,`supp_reference`), KEY `type` (`type`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB ; --- --- Structure for table `suppliers` --- +### Structure of table `0_suppliers` ### DROP TABLE IF EXISTS `0_suppliers`; -CREATE TABLE IF NOT EXISTS `0_suppliers` ( + +CREATE TABLE `0_suppliers` ( `supplier_id` int(11) NOT NULL auto_increment, `supp_name` varchar(60) NOT NULL default '', `address` tinytext NOT NULL, @@ -1004,79 +862,63 @@ CREATE TABLE IF NOT EXISTS `0_suppliers` ( `payable_account` varchar(11) default NULL, `payment_discount_account` varchar(11) default NULL, PRIMARY KEY (`supplier_id`) -) TYPE=MyISAM; - --- -------------------------------------------------------- +) TYPE=MyISAM AUTO_INCREMENT=5 ; --- --- Structure for table `sys_types` --- +### Structure of table `0_sys_types` ### DROP TABLE IF EXISTS `0_sys_types`; -CREATE TABLE IF NOT EXISTS `0_sys_types` ( + +CREATE TABLE `0_sys_types` ( `type_id` smallint(6) NOT NULL default '0', `type_name` varchar(60) NOT NULL default '', `type_no` int(11) NOT NULL default '1', `next_reference` varchar(100) NOT NULL default '', PRIMARY KEY (`type_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB ; --- --- Structure for table `tax_group_items` --- +### Structure of table `0_tax_group_items` ### DROP TABLE IF EXISTS `0_tax_group_items`; -CREATE TABLE IF NOT EXISTS `0_tax_group_items` ( + +CREATE TABLE `0_tax_group_items` ( `tax_group_id` int(11) NOT NULL default '0', `tax_type_id` int(11) NOT NULL default '0', `rate` double NOT NULL default '0', `included_in_price` tinyint(1) NOT NULL default '0', PRIMARY KEY (`tax_group_id`,`tax_type_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB ; --- --- Structure for table `tax_groups` --- +### Structure of table `0_tax_groups` ### DROP TABLE IF EXISTS `0_tax_groups`; -CREATE TABLE IF NOT EXISTS `0_tax_groups` ( + +CREATE TABLE `0_tax_groups` ( `id` int(11) NOT NULL auto_increment, `name` varchar(60) NOT NULL default '', `tax_shipping` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=InnoDB; - --- -------------------------------------------------------- +) TYPE=InnoDB AUTO_INCREMENT=5 ; --- --- Structure for table `tax_types` --- +### Structure of table `0_tax_types` ### DROP TABLE IF EXISTS `0_tax_types`; -CREATE TABLE IF NOT EXISTS `0_tax_types` ( + +CREATE TABLE `0_tax_types` ( `id` int(11) NOT NULL auto_increment, `rate` double NOT NULL default '0', `sales_gl_code` varchar(11) NOT NULL default '', `purchasing_gl_code` varchar(11) NOT NULL default '', `name` varchar(60) NOT NULL default '', `out` tinyint(1) NOT NULL default '1', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=InnoDB; - --- -------------------------------------------------------- + PRIMARY KEY (`id`) +) TYPE=InnoDB AUTO_INCREMENT=4 ; --- --- Structure for table `users` --- +### Structure of table `0_users` ### DROP TABLE IF EXISTS `0_users`; -CREATE TABLE IF NOT EXISTS `0_users` ( + +CREATE TABLE `0_users` ( `user_id` varchar(60) NOT NULL default '', `password` varchar(100) NOT NULL default '', `real_name` varchar(100) NOT NULL default '', @@ -1096,48 +938,40 @@ CREATE TABLE IF NOT EXISTS `0_users` ( `percent_dec` smallint(6) NOT NULL default '1', `show_gl` tinyint(1) NOT NULL default '1', `show_codes` tinyint(1) NOT NULL default '0', + `show_hints` tinyint(1) NOT NULL default '0', `last_visit_date` datetime default NULL, PRIMARY KEY (`user_id`) -) TYPE=MyISAM; +) TYPE=MyISAM ; --- -------------------------------------------------------- - --- --- Structure for table `voided` --- +### Structure of table `0_voided` ### DROP TABLE IF EXISTS `0_voided`; -CREATE TABLE IF NOT EXISTS `0_voided` ( + +CREATE TABLE `0_voided` ( `type` int(11) NOT NULL default '0', `id` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `memo_` tinytext NOT NULL, UNIQUE KEY `id` (`type`,`id`) -) TYPE=InnoDB; +) TYPE=InnoDB ; --- -------------------------------------------------------- - --- --- Structure for table `wo_issue_items` --- +### Structure of table `0_wo_issue_items` ### DROP TABLE IF EXISTS `0_wo_issue_items`; -CREATE TABLE IF NOT EXISTS `0_wo_issue_items` ( + +CREATE TABLE `0_wo_issue_items` ( `id` int(11) NOT NULL auto_increment, `stock_id` varchar(40) default NULL, `issue_id` int(11) default NULL, `qty_issued` double default NULL, PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=2 ; --- -------------------------------------------------------- - --- --- Structure for table `wo_issues` --- +### Structure of table `0_wo_issues` ### DROP TABLE IF EXISTS `0_wo_issues`; -CREATE TABLE IF NOT EXISTS `0_wo_issues` ( + +CREATE TABLE `0_wo_issues` ( `issue_no` int(11) NOT NULL auto_increment, `workorder_id` int(11) NOT NULL default '0', `reference` varchar(100) default NULL, @@ -1145,66 +979,54 @@ CREATE TABLE IF NOT EXISTS `0_wo_issues` ( `loc_code` varchar(5) default NULL, `workcentre_id` int(11) default NULL, PRIMARY KEY (`issue_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=2 ; --- -------------------------------------------------------- - --- --- Structure for table `wo_manufacture` --- +### Structure of table `0_wo_manufacture` ### DROP TABLE IF EXISTS `0_wo_manufacture`; -CREATE TABLE IF NOT EXISTS `0_wo_manufacture` ( + +CREATE TABLE `0_wo_manufacture` ( `id` int(11) NOT NULL auto_increment, `reference` varchar(100) default NULL, `workorder_id` int(11) NOT NULL default '0', `quantity` double NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=3 ; --- -------------------------------------------------------- - --- --- Structure for table `wo_requirements` --- +### Structure of table `0_wo_requirements` ### DROP TABLE IF EXISTS `0_wo_requirements`; -CREATE TABLE IF NOT EXISTS `0_wo_requirements` ( + +CREATE TABLE `0_wo_requirements` ( `id` int(11) NOT NULL auto_increment, `workorder_id` int(11) NOT NULL default '0', `stock_id` char(20) NOT NULL default '', - `workcentre` char(5) NOT NULL default '', + `workcentre` int(11) NOT NULL default '0', `units_req` double NOT NULL default '1', `std_cost` double NOT NULL default '0', `loc_code` char(5) NOT NULL default '', `units_issued` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=29 ; --- -------------------------------------------------------- - --- --- Structure for table `workcentres` --- +### Structure of table `0_workcentres` ### DROP TABLE IF EXISTS `0_workcentres`; -CREATE TABLE IF NOT EXISTS `0_workcentres` ( + +CREATE TABLE `0_workcentres` ( `id` int(11) NOT NULL auto_increment, `name` char(40) NOT NULL default '', `description` char(50) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=2 ; --- -------------------------------------------------------- - --- --- Structure for table `workorders` --- +### Structure of table `0_workorders` ### DROP TABLE IF EXISTS `0_workorders`; -CREATE TABLE IF NOT EXISTS `0_workorders` ( + +CREATE TABLE `0_workorders` ( `id` int(11) NOT NULL auto_increment, `wo_ref` varchar(60) NOT NULL default '', `loc_code` varchar(5) NOT NULL default '', @@ -1220,175 +1042,154 @@ CREATE TABLE IF NOT EXISTS `0_workorders` ( `additional_costs` double NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `wo_ref` (`wo_ref`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Data in table `areas` --- - -INSERT INTO `0_areas` VALUES (1, 'USA'); -INSERT INTO `0_areas` VALUES (2, 'Far East'); -INSERT INTO `0_areas` VALUES (3, 'Africa'); -INSERT INTO `0_areas` VALUES (4, 'Europe'); - --- --- Data in table `bank_accounts` --- - -INSERT INTO `0_bank_accounts` VALUES ('1700', 0, 'Current account', 'N/A', 'N/A', '', 'USD'); -INSERT INTO `0_bank_accounts` VALUES ('1705', 0, 'Petty Cash account', 'N/A', 'N/A', '', 'USD'); -INSERT INTO `0_bank_accounts` VALUES ('1710', 0, 'Saving account', '10001000', 'Saving Bank', '', 'GBP'); - --- --- Data in table `bank_trans` --- - -INSERT INTO `0_bank_trans` VALUES (1, 12, 2, '1700', '111', '2006-01-18', 1, 5000, 0, 0, 2, 0x31); -INSERT INTO `0_bank_trans` VALUES (2, 12, 3, '1700', '112', '2006-01-18', 1, 240, 0, 0, 2, 0x32); -INSERT INTO `0_bank_trans` VALUES (3, 12, 4, '1700', '113', '2006-01-18', 1, 360, 0, 0, 2, 0x32); -INSERT INTO `0_bank_trans` VALUES (4, 12, 5, '1700', '114', '2006-01-18', 1, 500, 0, 0, 2, 0x31); -INSERT INTO `0_bank_trans` VALUES (5, 1, 2, '1700', '1', '2006-01-18', 1, -25, 0, 0, 0, ''); -INSERT INTO `0_bank_trans` VALUES (6, 1, 3, '1705', '2', '2006-01-18', 1, -250, 0, 0, 0, ''); -INSERT INTO `0_bank_trans` VALUES (7, 1, 4, '1700', '3', '2006-01-18', 1, -555, 0, 0, 4, 0x31); -INSERT INTO `0_bank_trans` VALUES (8, 4, 2, '1700', '4', '2006-01-18', 1, -300, 0, 0, 0, ''); -INSERT INTO `0_bank_trans` VALUES (9, 4, 2, '1710', '4', '2006-01-18', 1, 250, 0, 0, 0, ''); -INSERT INTO `0_bank_trans` VALUES (10, 22, 2, '1700', '1', '2006-01-18', 1, -5000, 0, 0, 3, 0x31); -INSERT INTO `0_bank_trans` VALUES (11, 22, 3, '1710', '2', '2006-01-18', 1, -3300, 0, 0, 3, 0x32); -INSERT INTO `0_bank_trans` VALUES (12, 2, 2, '1700', '11', '2006-01-20', 1, 1050, 0, 0, 0, ''); -INSERT INTO `0_bank_trans` VALUES (13, 12, 6, '1700', '115', '2007-01-30', 1, 200, 0, 0, 2, 0x31); -INSERT INTO `0_bank_trans` VALUES (14, 1, 5, '1700', '4', '2007-01-30', 1, -200, 0, 0, 4, 0x31); -INSERT INTO `0_bank_trans` VALUES (15, 2, 3, '1700', '12', '2007-01-30', 3, 70, 0, 0, 4, 0x32); -INSERT INTO `0_bank_trans` VALUES (16, 4, 3, '1700', '5', '2007-03-09', 1, -222, 0, 0, 0, ''); -INSERT INTO `0_bank_trans` VALUES (17, 4, 3, '1705', '5', '2007-03-09', 1, 222, 0, 0, 0, ''); -INSERT INTO `0_bank_trans` VALUES (18, 2, 4, '1700', '13', '2007-03-09', 3, 200, 0, 0, 2, 0x31); -INSERT INTO `0_bank_trans` VALUES (19, 1, 6, '1700', '5', '2007-03-22', 1, -200, 0, 0, 3, 0x31); -INSERT INTO `0_bank_trans` VALUES (20, 1, 7, '1700', '6', '2007-03-22', 1, -125, 0, 0, 0, 0x67796c6c657472616e73706f7274); - --- --- Data in table `bank_trans_types` --- - -INSERT INTO `0_bank_trans_types` VALUES (1, 'Cash'); -INSERT INTO `0_bank_trans_types` VALUES (2, 'Cheque'); -INSERT INTO `0_bank_trans_types` VALUES (3, 'Transfer'); - --- --- Data in table `bom` --- - -INSERT INTO `0_bom` VALUES (1, '3400', '102', '1', 'DEF', 1); -INSERT INTO `0_bom` VALUES (2, '3400', '103', '1', 'DEF', 1); -INSERT INTO `0_bom` VALUES (3, '3400', '104', '1', 'DEF', 1); -INSERT INTO `0_bom` VALUES (4, '3400', '201', '1', 'DEF', 1); - --- --- Data in table `chart_class` --- - -INSERT INTO `0_chart_class` VALUES (1, 'Assets', 1); -INSERT INTO `0_chart_class` VALUES (2, 'Liabilities', 1); -INSERT INTO `0_chart_class` VALUES (3, 'Income', 0); -INSERT INTO `0_chart_class` VALUES (4, 'Costs', 0); -INSERT INTO `0_chart_class` VALUES (5, 'Gross', 0); - --- --- Data in table `chart_master` --- - -INSERT INTO `0_chart_master` VALUES ('3000', '', 'Sales', 1, 1); -INSERT INTO `0_chart_master` VALUES ('3010', '', 'Sales - Wholesale', 1, 1); -INSERT INTO `0_chart_master` VALUES ('3020', '', 'Sales of Other items', 1, 1); -INSERT INTO `0_chart_master` VALUES ('3400', '', 'Difference On Exchange', 1, 0); -INSERT INTO `0_chart_master` VALUES ('5000', '', 'Direct Labour', 2, 0); -INSERT INTO `0_chart_master` VALUES ('5050', '', 'Direct Labour Recovery', 2, 0); -INSERT INTO `0_chart_master` VALUES ('4200', '', 'Material Usage Varaiance', 2, 4); -INSERT INTO `0_chart_master` VALUES ('4210', '', 'Consumable Materials', 2, 4); -INSERT INTO `0_chart_master` VALUES ('4220', '', 'Purchase price Variance', 2, 0); -INSERT INTO `0_chart_master` VALUES ('4000', '', 'Purchases of materials', 2, 4); -INSERT INTO `0_chart_master` VALUES ('4250', '', 'Discounts Received', 2, 0); -INSERT INTO `0_chart_master` VALUES ('4260', '', 'Exchange Variation', 2, 0); -INSERT INTO `0_chart_master` VALUES ('4300', '', 'Freight Inwards', 2, 4); -INSERT INTO `0_chart_master` VALUES ('4010', '', 'Cost of Goods Sold - Retail', 2, 4); -INSERT INTO `0_chart_master` VALUES ('6790', '', 'Bank Charges', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6800', '', 'Entertainments', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6810', '', 'Legal Expenses', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6600', '', 'Repairs and Maintenance Office', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6730', '', 'phone', 5, 4); -INSERT INTO `0_chart_master` VALUES ('8200', '', 'Bank Interest', 52, 0); -INSERT INTO `0_chart_master` VALUES ('6840', '', 'Credit Control', 5, 0); -INSERT INTO `0_chart_master` VALUES ('7040', '', 'Depreciation Office Equipment', 51, 0); -INSERT INTO `0_chart_master` VALUES ('3800', '', 'Freight Outwards', 5, 4); -INSERT INTO `0_chart_master` VALUES ('4500', '', 'Packaging', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6400', '', 'Commissions', 5, 0); -INSERT INTO `0_chart_master` VALUES ('3200', '', 'Prompt Payment Discounts', 1, 0); -INSERT INTO `0_chart_master` VALUES ('6700', '', 'General Expenses', 5, 4); -INSERT INTO `0_chart_master` VALUES ('5200', '', 'Indirect Labour', 2, 0); -INSERT INTO `0_chart_master` VALUES ('5210', '', 'Overhead Recovery', 5, 0); -INSERT INTO `0_chart_master` VALUES ('1700', '', 'Bank account', 10, 0); -INSERT INTO `0_chart_master` VALUES ('1705', '', 'Petty Cash', 10, 0); -INSERT INTO `0_chart_master` VALUES ('1710', '', 'Foreign currency account', 10, 0); -INSERT INTO `0_chart_master` VALUES ('1500', '', 'Accounts Receivable', 20, 0); -INSERT INTO `0_chart_master` VALUES ('1400', '', 'Stocks of Raw Materials', 45, 0); -INSERT INTO `0_chart_master` VALUES ('1410', '', 'Stocks of Work In Progress', 45, 0); -INSERT INTO `0_chart_master` VALUES ('1420', '', 'Stocks of Finsihed Goods', 45, 0); -INSERT INTO `0_chart_master` VALUES ('1430', '', 'Goods Received Clearing account', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2630', '', 'Accounts Payable', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2660', '', 'VAT out 5', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2662', '', 'VAT out 1', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2664', '', 'VAT out 25', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2680', '', 'VAT In 5', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2682', '', 'VAT In 25', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2050', '', 'Retained Earnings', 50, 0); -INSERT INTO `0_chart_master` VALUES ('2000', '', 'Share Capital', 50, 0); - --- --- Data in table `chart_types` --- - -INSERT INTO `0_chart_types` VALUES (1, 'Sales', 3, -1); -INSERT INTO `0_chart_types` VALUES (2, 'Cost of Sales', 4, -1); -INSERT INTO `0_chart_types` VALUES (5, 'Expenses', 4, -1); -INSERT INTO `0_chart_types` VALUES (10, 'Cash/Bank', 1, -1); -INSERT INTO `0_chart_types` VALUES (20, 'Accounts Receivable', 1, -1); -INSERT INTO `0_chart_types` VALUES (30, 'Accounts Payable', 2, -1); -INSERT INTO `0_chart_types` VALUES (40, 'Fixed Assets', 1, -1); -INSERT INTO `0_chart_types` VALUES (45, 'Inventory', 1, -1); -INSERT INTO `0_chart_types` VALUES (50, 'Equity', 2, -1); -INSERT INTO `0_chart_types` VALUES (51, 'Depreciations', 4, -1); -INSERT INTO `0_chart_types` VALUES (52, 'Financials', 4, -1); - --- --- Data in table `comments` --- - -INSERT INTO `0_comments` VALUES (17, 2, '2006-01-18', 'initial balances'); -INSERT INTO `0_comments` VALUES (10, 6, '2007-01-30', 'Hi there you got it!'); -INSERT INTO `0_comments` VALUES (12, 6, '2007-01-30', 'This is good'); -INSERT INTO `0_comments` VALUES (1, 5, '2007-01-30', 'Totalgylle'); -INSERT INTO `0_comments` VALUES (40, 2, '0000-00-00', 'Gylle projevt'); -INSERT INTO `0_comments` VALUES (0, 6, '2007-02-02', 'A big memo'); -INSERT INTO `0_comments` VALUES (10, 7, '2007-02-03', 'Another big memo, which looks good.'); -INSERT INTO `0_comments` VALUES (4, 3, '2007-03-09', 'A little cash up front.'); - --- --- Data in table `company` --- - -INSERT INTO `0_company` VALUES (1, 'Drill Company Inc.', '987654321', '123123123', 1, 1, 'N/A', '202-122320', '202-18889123', 'delta@delta.com', 'logo_frontaccounting.jpg', 'DownTown', 'USD', '1500', '4250', '2630', '1430', '4260', '4220', '2050', '3800', '3000', '3000', '3200', '1420', '4010', '4210', '3000', '1410', '5000', '', '', '', '', '', '', 0, 10, 10, 1000, 20, 20, 30, 1, 2, 0, 0, 0); - --- --- Data in table `credit_status` --- - -INSERT INTO `0_credit_status` VALUES (1, 'Good History', 0); -INSERT INTO `0_credit_status` VALUES (3, 'No more work until payment received', 1); -INSERT INTO `0_credit_status` VALUES (4, 'In liquidation', 1); - --- --- Data in table `currencies` --- +) TYPE=InnoDB AUTO_INCREMENT=8 ; + +### Data of table `0_areas` ### + +INSERT INTO `0_areas` VALUES ('1', 'USA'); +INSERT INTO `0_areas` VALUES ('2', 'Far East'); +INSERT INTO `0_areas` VALUES ('3', 'Africa'); +INSERT INTO `0_areas` VALUES ('4', 'Europe'); + +### Data of table `0_bank_accounts` ### + +INSERT INTO `0_bank_accounts` VALUES ('1700', '0', 'Current account', 'N/A', 'N/A', NULL, 'USD'); +INSERT INTO `0_bank_accounts` VALUES ('1705', '0', 'Petty Cash account', 'N/A', 'N/A', NULL, 'USD'); +INSERT INTO `0_bank_accounts` VALUES ('1710', '0', 'Saving account', '10001000', 'Saving Bank', NULL, 'GBP'); + +### Data of table `0_bank_trans` ### + +INSERT INTO `0_bank_trans` VALUES ('1', '12', '2', '1700', '111', '2006-01-18', '1', '5000', '0', '0', '2', '1'); +INSERT INTO `0_bank_trans` VALUES ('2', '12', '3', '1700', '112', '2006-01-18', '1', '240', '0', '0', '2', '2'); +INSERT INTO `0_bank_trans` VALUES ('3', '12', '4', '1700', '113', '2006-01-18', '1', '360', '0', '0', '2', '2'); +INSERT INTO `0_bank_trans` VALUES ('4', '12', '5', '1700', '114', '2006-01-18', '1', '500', '0', '0', '2', '1'); +INSERT INTO `0_bank_trans` VALUES ('5', '1', '2', '1700', '1', '2006-01-18', '1', '-25', '0', '0', '0', NULL); +INSERT INTO `0_bank_trans` VALUES ('6', '1', '3', '1705', '2', '2006-01-18', '1', '-250', '0', '0', '0', NULL); +INSERT INTO `0_bank_trans` VALUES ('7', '1', '4', '1700', '3', '2006-01-18', '1', '-555', '0', '0', '4', '1'); +INSERT INTO `0_bank_trans` VALUES ('8', '4', '2', '1700', '4', '2006-01-18', '1', '-300', '0', '0', '0', NULL); +INSERT INTO `0_bank_trans` VALUES ('9', '4', '2', '1710', '4', '2006-01-18', '1', '250', '0', '0', '0', NULL); +INSERT INTO `0_bank_trans` VALUES ('10', '22', '2', '1700', '1', '2006-01-18', '1', '-5000', '0', '0', '3', '1'); +INSERT INTO `0_bank_trans` VALUES ('11', '22', '3', '1710', '2', '2006-01-18', '1', '-3300', '0', '0', '3', '2'); +INSERT INTO `0_bank_trans` VALUES ('12', '2', '2', '1700', '11', '2006-01-20', '1', '1050', '0', '0', '0', NULL); +INSERT INTO `0_bank_trans` VALUES ('13', '12', '6', '1700', '115', '2007-01-30', '1', '200', '0', '0', '2', '1'); +INSERT INTO `0_bank_trans` VALUES ('14', '1', '5', '1700', '4', '2007-01-30', '1', '-200', '0', '0', '4', '1'); +INSERT INTO `0_bank_trans` VALUES ('15', '2', '3', '1700', '12', '2007-01-30', '3', '70', '0', '0', '4', '2'); +INSERT INTO `0_bank_trans` VALUES ('16', '4', '3', '1700', '5', '2007-03-09', '1', '-222', '0', '0', '0', NULL); +INSERT INTO `0_bank_trans` VALUES ('17', '4', '3', '1705', '5', '2007-03-09', '1', '222', '0', '0', '0', NULL); +INSERT INTO `0_bank_trans` VALUES ('18', '2', '4', '1700', '13', '2007-03-09', '3', '200', '0', '0', '2', '1'); +INSERT INTO `0_bank_trans` VALUES ('19', '1', '6', '1700', '5', '2007-03-22', '1', '-200', '0', '0', '3', '1'); +INSERT INTO `0_bank_trans` VALUES ('20', '1', '7', '1700', '6', '2007-03-22', '1', '-125', '0', '0', '0', 'Gas Transport'); +INSERT INTO `0_bank_trans` VALUES ('21', '12', '7', '1700', '6', '2008-03-06', '1', '100', '0', '0', '2', '1'); +INSERT INTO `0_bank_trans` VALUES ('22', '12', '8', '1700', '7', '2008-03-06', '1', '100', '0', '0', '2', '4'); +INSERT INTO `0_bank_trans` VALUES ('23', '12', '9', '1700', '8', '2008-03-07', '1', '2000', '0', '0', '2', '1'); + +### Data of table `0_bank_trans_types` ### + +INSERT INTO `0_bank_trans_types` VALUES ('1', 'Cash'); +INSERT INTO `0_bank_trans_types` VALUES ('2', 'Cheque'); +INSERT INTO `0_bank_trans_types` VALUES ('3', 'Transfer'); + +### Data of table `0_bom` ### + +INSERT INTO `0_bom` VALUES ('1', '3400', '102', '1', 'DEF', '1'); +INSERT INTO `0_bom` VALUES ('2', '3400', '103', '1', 'DEF', '1'); +INSERT INTO `0_bom` VALUES ('3', '3400', '104', '1', 'DEF', '1'); +INSERT INTO `0_bom` VALUES ('4', '3400', '201', '1', 'DEF', '1'); +INSERT INTO `0_bom` VALUES ('5', '3400', '103', '1', 'CWA', '1'); + +### Data of table `0_chart_class` ### + +INSERT INTO `0_chart_class` VALUES ('1', 'Assets', '1'); +INSERT INTO `0_chart_class` VALUES ('2', 'Liabilities', '1'); +INSERT INTO `0_chart_class` VALUES ('3', 'Income', '0'); +INSERT INTO `0_chart_class` VALUES ('4', 'Costs', '0'); +INSERT INTO `0_chart_class` VALUES ('5', 'Gross', '0'); + +### Data of table `0_chart_master` ### + +INSERT INTO `0_chart_master` VALUES ('3000', NULL, 'Sales', '1', '1'); +INSERT INTO `0_chart_master` VALUES ('3010', NULL, 'Sales - Wholesale', '1', '1'); +INSERT INTO `0_chart_master` VALUES ('3020', NULL, 'Sales of Other items', '1', '1'); +INSERT INTO `0_chart_master` VALUES ('3400', NULL, 'Difference On Exchange', '1', '0'); +INSERT INTO `0_chart_master` VALUES ('5000', NULL, 'Direct Labour', '2', '0'); +INSERT INTO `0_chart_master` VALUES ('5050', NULL, 'Direct Labour Recovery', '2', '0'); +INSERT INTO `0_chart_master` VALUES ('4200', NULL, 'Material Usage Varaiance', '2', '4'); +INSERT INTO `0_chart_master` VALUES ('4210', NULL, 'Consumable Materials', '2', '4'); +INSERT INTO `0_chart_master` VALUES ('4220', NULL, 'Purchase price Variance', '2', '0'); +INSERT INTO `0_chart_master` VALUES ('4000', NULL, 'Purchases of materials', '2', '4'); +INSERT INTO `0_chart_master` VALUES ('4250', NULL, 'Discounts Received', '2', '0'); +INSERT INTO `0_chart_master` VALUES ('4260', NULL, 'Exchange Variation', '2', '0'); +INSERT INTO `0_chart_master` VALUES ('4300', NULL, 'Freight Inwards', '2', '4'); +INSERT INTO `0_chart_master` VALUES ('4010', NULL, 'Cost of Goods Sold - Retail', '2', '4'); +INSERT INTO `0_chart_master` VALUES ('6790', NULL, 'Bank Charges', '5', '4'); +INSERT INTO `0_chart_master` VALUES ('6800', NULL, 'Entertainments', '5', '4'); +INSERT INTO `0_chart_master` VALUES ('6810', NULL, 'Legal Expenses', '5', '4'); +INSERT INTO `0_chart_master` VALUES ('6600', NULL, 'Repairs and Maintenance Office', '5', '4'); +INSERT INTO `0_chart_master` VALUES ('6730', NULL, 'phone', '5', '4'); +INSERT INTO `0_chart_master` VALUES ('8200', NULL, 'Bank Interest', '52', '0'); +INSERT INTO `0_chart_master` VALUES ('6840', NULL, 'Credit Control', '5', '0'); +INSERT INTO `0_chart_master` VALUES ('7040', NULL, 'Depreciation Office Equipment', '51', '0'); +INSERT INTO `0_chart_master` VALUES ('3800', NULL, 'Freight Outwards', '5', '4'); +INSERT INTO `0_chart_master` VALUES ('4500', NULL, 'Packaging', '5', '4'); +INSERT INTO `0_chart_master` VALUES ('6400', NULL, 'Commissions', '5', '0'); +INSERT INTO `0_chart_master` VALUES ('3200', NULL, 'Prompt Payment Discounts', '1', '0'); +INSERT INTO `0_chart_master` VALUES ('6700', NULL, 'General Expenses', '5', '4'); +INSERT INTO `0_chart_master` VALUES ('5200', NULL, 'Indirect Labour', '2', '0'); +INSERT INTO `0_chart_master` VALUES ('5210', NULL, 'Overhead Recovery', '5', '0'); +INSERT INTO `0_chart_master` VALUES ('1700', NULL, 'Bank account', '10', '0'); +INSERT INTO `0_chart_master` VALUES ('1705', NULL, 'Petty Cash', '10', '0'); +INSERT INTO `0_chart_master` VALUES ('1710', NULL, 'Foreign currency account', '10', '0'); +INSERT INTO `0_chart_master` VALUES ('1500', NULL, 'Accounts Receivable', '20', '0'); +INSERT INTO `0_chart_master` VALUES ('1400', NULL, 'Stocks of Raw Materials', '45', '0'); +INSERT INTO `0_chart_master` VALUES ('1410', NULL, 'Stocks of Work In Progress', '45', '0'); +INSERT INTO `0_chart_master` VALUES ('1420', NULL, 'Stocks of Finsihed Goods', '45', '0'); +INSERT INTO `0_chart_master` VALUES ('1430', NULL, 'Goods Received Clearing account', '30', '0'); +INSERT INTO `0_chart_master` VALUES ('2630', NULL, 'Accounts Payable', '30', '0'); +INSERT INTO `0_chart_master` VALUES ('2660', NULL, 'VAT out 5', '30', '0'); +INSERT INTO `0_chart_master` VALUES ('2662', NULL, 'VAT out 1', '30', '0'); +INSERT INTO `0_chart_master` VALUES ('2664', NULL, 'VAT out 25', '30', '0'); +INSERT INTO `0_chart_master` VALUES ('2680', NULL, 'VAT In 5', '30', '0'); +INSERT INTO `0_chart_master` VALUES ('2682', NULL, 'VAT In 25', '30', '0'); +INSERT INTO `0_chart_master` VALUES ('2050', NULL, 'Retained Earnings', '50', '0'); +INSERT INTO `0_chart_master` VALUES ('2000', NULL, 'Share Capital', '50', '0'); + +### Data of table `0_chart_types` ### + +INSERT INTO `0_chart_types` VALUES ('1', 'Sales', '3', '-1'); +INSERT INTO `0_chart_types` VALUES ('2', 'Cost of Sales', '4', '-1'); +INSERT INTO `0_chart_types` VALUES ('5', 'Expenses', '4', '-1'); +INSERT INTO `0_chart_types` VALUES ('10', 'Cash/Bank', '1', '-1'); +INSERT INTO `0_chart_types` VALUES ('20', 'Accounts Receivable', '1', '-1'); +INSERT INTO `0_chart_types` VALUES ('30', 'Accounts Payable', '2', '-1'); +INSERT INTO `0_chart_types` VALUES ('40', 'Fixed Assets', '1', '-1'); +INSERT INTO `0_chart_types` VALUES ('45', 'Inventory', '1', '-1'); +INSERT INTO `0_chart_types` VALUES ('50', 'Equity', '2', '-1'); +INSERT INTO `0_chart_types` VALUES ('51', 'Depreciations', '4', '-1'); +INSERT INTO `0_chart_types` VALUES ('52', 'Financials', '4', '-1'); + +### Data of table `0_comments` ### + +INSERT INTO `0_comments` VALUES ('17', '2', '2006-01-18', 'initial balances'); +INSERT INTO `0_comments` VALUES ('10', '6', '2007-01-30', 'Hi there you got it!'); +INSERT INTO `0_comments` VALUES ('12', '6', '2007-01-30', 'This is good'); +INSERT INTO `0_comments` VALUES ('1', '5', '2007-01-30', 'Total Gas'); +INSERT INTO `0_comments` VALUES ('0', '6', '2007-02-02', 'A big memo'); +INSERT INTO `0_comments` VALUES ('10', '7', '2007-02-03', 'Another big memo, which looks good.'); +INSERT INTO `0_comments` VALUES ('4', '3', '2007-03-09', 'A little cash up front.'); +INSERT INTO `0_comments` VALUES ('26', '6', '2008-02-28', 'nowe '); +INSERT INTO `0_comments` VALUES ('40', '2', '0000-00-00', 'Another project'); + +### Data of table `0_company` ### + +INSERT INTO `0_company` VALUES ('1', 'Drill Company Inc.', '987654321', '123123123', '1', '1', 'N/A', '202-122320', '202-18889123', 'delta@delta.com', 'logo_frontaccounting.jpg', 'DownTown', 'USD', '1500', '4250', '2630', '1430', '4260', '4220', '2050', '3800', '3000', '3000', '3200', '1420', '4010', '4210', '3000', '1410', '5000', '', '', '', '', '', '', '0', '10', '10', '1000', '20', '20', '30', '1', '6', '0', '0', '0', -1); + +### Data of table `0_credit_status` ### + +INSERT INTO `0_credit_status` VALUES ('1', 'Good History', '0'); +INSERT INTO `0_credit_status` VALUES ('3', 'No more work until payment received', '1'); +INSERT INTO `0_credit_status` VALUES ('4', 'In liquidation', '1'); + +### Data of table `0_currencies` ### INSERT INTO `0_currencies` VALUES ('Kronor', 'SEK', 'kr', 'Sweden', '?ren'); INSERT INTO `0_currencies` VALUES ('Kroner', 'DKK', 'kr.', 'Denmark', '?re'); @@ -1396,745 +1197,789 @@ INSERT INTO `0_currencies` VALUES ('Euro', 'EUR', '?', 'Europe', 'Cents'); INSERT INTO `0_currencies` VALUES ('Pounds', 'GBP', '?', 'England', 'Pence'); INSERT INTO `0_currencies` VALUES ('US Dollars', 'USD', '$', 'United States', 'Cents'); --- --- Data in table `cust_allocations` --- - -INSERT INTO `0_cust_allocations` VALUES (1, 200, '2007-01-30', 6, 12, 6, 10); -INSERT INTO `0_cust_allocations` VALUES (4, 133, '2007-03-09', 4, 2, 6, 10); - --- --- Data in table `cust_branch` --- - -INSERT INTO `0_cust_branch` VALUES (1, 1, 'Main', '', 1, 1, '', '', 'Lucky Luke Inc.', 'joe@frontaccounting.com', 'DEF', 2, '3000', '3000', '1500', '3200', 1, 0, 'The Road'); -INSERT INTO `0_cust_branch` VALUES (2, 1, 'Branch 2', '', 1, 1, '', '', '', '', 'DEF', 3, '3000', '3000', '1500', '3200', 1, 0, 'Another Road'); -INSERT INTO `0_cust_branch` VALUES (3, 2, 'Main', '', 1, 1, '', '', 'Money Makers Ltd.', '', 'DEF', 3, '3000', '3000', '1500', '3200', 1, 0, ''); -INSERT INTO `0_cust_branch` VALUES (4, 2, 'Main', '', 1, 1, '', '', 'Money Makers Ltd.', '', 'DEF', 3, '3000', '3000', '1500', '3200', 1, 0, 'UK,UK'); -INSERT INTO `0_cust_branch` VALUES (5, 3, 'Main', '', 1, 1, '', '', 'Junk Beer ApS', '', 'DEF', 3, '3000', '3000', '1500', '3200', 1, 0, ''); - --- --- Data in table `debtor_trans` --- - -INSERT INTO `0_debtor_trans` VALUES (2, 10, 1, 1, '2006-01-18', '2006-01-18', '1', 1, 1, 1750, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (2, 11, 2, 3, '2006-01-18', '0000-00-00', '33', 1, 0, -1050, 0, 0, 0, 0, 1.2, 1); -INSERT INTO `0_debtor_trans` VALUES (2, 12, 1, 1, '2006-01-18', '0000-00-00', '111', 0, 0, -10000, 0, 0, 0, 0, 1, 0); -INSERT INTO `0_debtor_trans` VALUES (3, 10, 1, 1, '2006-01-18', '2006-01-18', '2', 1, 1, 1000, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (3, 12, 2, 3, '2006-01-18', '0000-00-00', '112', 0, 0, -200, 0, 0, 0, 0, 1.2, 0); -INSERT INTO `0_debtor_trans` VALUES (4, 2, 1, 1, '2007-03-09', '0000-00-00', '13', 0, 0, -200, 0, 0, 0, 133, 1, 0); -INSERT INTO `0_debtor_trans` VALUES (4, 10, 2, 3, '2006-01-18', '2006-01-18', '3', 1, 2, 1057.14285714, 52.8571428571, 0, 0, 0, 1.2, 1); -INSERT INTO `0_debtor_trans` VALUES (4, 12, 2, 3, '2006-01-18', '0000-00-00', '113', 0, 0, -300, 0, 0, 0, 0, 1.2, 0); -INSERT INTO `0_debtor_trans` VALUES (5, 10, 1, 1, '2007-01-28', '2007-01-28', '4', 1, 1, 93050, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (5, 12, 1, 1, '2006-01-18', '0000-00-00', '114', 0, 0, -500, 0, 0, 0, 0, 1, 0); -INSERT INTO `0_debtor_trans` VALUES (6, 10, 1, 1, '2007-01-30', '2007-01-30', '5', 1, 3, 333, 0, 0, 0, 333, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (6, 12, 1, 1, '2007-01-30', '0000-00-00', '115', 0, 0, -200, 0, 0, 0, 200, 1, 0); -INSERT INTO `0_debtor_trans` VALUES (7, 10, 1, 1, '2007-02-03', '2007-02-03', '6', 1, 4, 333, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (8, 10, 1, 1, '2007-02-03', '2007-02-03', '7', 1, 5, 333, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (9, 10, 2, 3, '2007-02-03', '2007-02-03', '8', 1, 6, 2857.1428571429, 142.85714285714, 0, 0, 0, 1.2, 1); -INSERT INTO `0_debtor_trans` VALUES (10, 10, 1, 1, '2007-02-04', '2007-02-04', '9', 1, 9, 333, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (11, 10, 1, 1, '2007-02-04', '2007-03-22', '10', 1, 10, 333, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (12, 10, 1, 1, '2007-02-06', '2007-03-22', '11', 1, 11, 333, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (13, 10, 1, 1, '2007-02-25', '2007-03-22', '12', 1, 12, 333, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (14, 10, 1, 1, '2007-03-04', '2007-03-22', '13', 1, 13, 333, 0, 0, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (15, 10, 1, 1, '2007-03-05', '2007-03-22', '14', 1, 14, 333, 0, 25, 0, 0, 1, 1); -INSERT INTO `0_debtor_trans` VALUES (16, 10, 1, 1, '2007-03-05', '2007-03-22', '15', 1, 15, 3000, 0, 44, 0, 0, 1, 1); - --- --- Data in table `debtor_trans_details` --- - -INSERT INTO `0_debtor_trans_details` VALUES (1, 2, 10, '102', '17 inch VGA Monitor', 250, 0, -2, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (2, 2, 10, '103', '32MB VGA Card', 3000, 0, -10, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (3, 2, 10, '104', '52x CD Drive', 50, 0, -5, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (4, 3, 10, '103', '32MB VGA Card', 3000, 0, -10, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (5, 2, 11, '102', '17 inch VGA Monitor', 210, 0, 5, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (6, 4, 10, '102', '17 inch VGA Monitor', 211.428571429, 10.5714285714, -5, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (7, 5, 10, '102', '17 inch VGA Monitor', 250, 0, -8, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (8, 5, 10, '103', '32MB VGA Card', 3000, 0, -30, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (9, 5, 10, '104', '52x CD Drive', 50, 0, -21, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (10, 6, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (11, 7, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (12, 8, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (13, 9, 10, '3400', 'P4 Business System', 2857.1428571429, 142.85714285714, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (14, 10, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (15, 11, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (16, 12, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (17, 13, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (18, 14, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (19, 15, 10, '102', '17 inch VGA Monitor', 333, 0, -1, 0, 0); -INSERT INTO `0_debtor_trans_details` VALUES (20, 16, 10, '103', '32MB VGA Card', 3000, 0, -1, 0, 0); - --- --- Data in table `debtor_trans_tax_details` --- - -INSERT INTO `0_debtor_trans_tax_details` VALUES (1, 4, 10, 1, NULL, 5, 1, 52.8571428571); -INSERT INTO `0_debtor_trans_tax_details` VALUES (2, 9, 10, 1, NULL, 5, 1, 142.85714285714); - --- --- Data in table `debtors_master` --- - -INSERT INTO `0_debtors_master` VALUES (1, 'Lucky Luke Inc.', '35 Waldorf Street\r\nTown 19358, AR', 'joe@frontaccounting.com', '12311231', 'USD', 1, 0, 0, 1, 1, 0, 0, 1000); -INSERT INTO `0_debtors_master` VALUES (2, 'Money Makers Ltd.', 'N/A', '', '9876543', 'GBP', 1, 0, 0, 1, 1, 0, 0, 1000); -INSERT INTO `0_debtors_master` VALUES (3, 'Junk Beer ApS', 'N/A', '', '123321123', 'DKK', 1, 0, 0, 1, 1, 0, 0, 1000); - --- --- Data in table `dimensions` --- - -INSERT INTO `0_dimensions` VALUES (1, '1', 'Development', 1, 0, '2006-01-18', '2006-02-07'); -INSERT INTO `0_dimensions` VALUES (2, '2', 'Support', 1, 0, '2006-01-18', '2007-03-07'); -INSERT INTO `0_dimensions` VALUES (3, '3', 'Training', 2, 0, '2006-01-18', '2007-03-07'); - --- --- Data in table `exchange_rates` --- - -INSERT INTO `0_exchange_rates` VALUES (1, 'LE', 0.149, 0.149, '2006-01-18'); -INSERT INTO `0_exchange_rates` VALUES (2, 'GBP', 1.2, 1.2, '2006-01-18'); -INSERT INTO `0_exchange_rates` VALUES (3, 'SEK', 0.1667, 0.1667, '2007-01-29'); -INSERT INTO `0_exchange_rates` VALUES (4, 'DKK', 0.2, 0.2, '2007-03-05'); -INSERT INTO `0_exchange_rates` VALUES (5, 'EUR', 1.1, 1.1, '2007-03-05'); - --- --- Data in table `fiscal_year` --- - -INSERT INTO `0_fiscal_year` VALUES (1, '2006-01-01', '2006-12-31', 0); -INSERT INTO `0_fiscal_year` VALUES (2, '2007-01-01', '2007-12-31', 0); -INSERT INTO `0_fiscal_year` VALUES (5, '2005-01-01', '2005-12-31', 1); - --- --- Data in table `form_items` --- - -INSERT INTO `0_form_items` VALUES (1, 10, 10, 2, '', NULL); -INSERT INTO `0_form_items` VALUES (1, 11, 11, 2, '', NULL); -INSERT INTO `0_form_items` VALUES (1, 18, 18, 1, '', NULL); -INSERT INTO `0_form_items` VALUES (1, 26, 26, 1, '', NULL); -INSERT INTO `0_form_items` VALUES (1, 30, 30, 1, '', NULL); -INSERT INTO `0_form_items` VALUES (1, 50, 1, 2, '', NULL); -INSERT INTO `0_form_items` VALUES (1, 51, 12, 2, '', NULL); -INSERT INTO `0_form_items` VALUES (1, 60, 16, 2, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (1, 61, 17, 2, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (1, 62, 11, 2, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (2, 10, 10, 3, '', NULL); -INSERT INTO `0_form_items` VALUES (2, 18, 18, 2, '', NULL); -INSERT INTO `0_form_items` VALUES (2, 26, 26, 2, '', NULL); -INSERT INTO `0_form_items` VALUES (2, 30, 30, 2, '', NULL); -INSERT INTO `0_form_items` VALUES (2, 50, 1, 3, '', NULL); -INSERT INTO `0_form_items` VALUES (2, 51, 12, 3, '', NULL); -INSERT INTO `0_form_items` VALUES (2, 60, 10, 2, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (2, 61, 16, 2, 'CWA', NULL); -INSERT INTO `0_form_items` VALUES (3, 10, 10, 4, '', NULL); -INSERT INTO `0_form_items` VALUES (3, 18, 18, 3, '', NULL); -INSERT INTO `0_form_items` VALUES (3, 26, 26, 3, '', NULL); -INSERT INTO `0_form_items` VALUES (3, 30, 30, 3, '', ''); -INSERT INTO `0_form_items` VALUES (3, 50, 1, 4, '', NULL); -INSERT INTO `0_form_items` VALUES (3, 51, 12, 4, '', NULL); -INSERT INTO `0_form_items` VALUES (3, 60, 10, 3, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (3, 61, 25, 1, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (4, 10, 10, 5, '', ''); -INSERT INTO `0_form_items` VALUES (4, 18, 18, 4, '', NULL); -INSERT INTO `0_form_items` VALUES (4, 26, 26, 4, '', ''); -INSERT INTO `0_form_items` VALUES (4, 30, 30, 4, '', ''); -INSERT INTO `0_form_items` VALUES (4, 50, 4, 2, '1700', NULL); -INSERT INTO `0_form_items` VALUES (4, 51, 12, 5, '', NULL); -INSERT INTO `0_form_items` VALUES (4, 60, 10, 4, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (4, 61, 25, 2, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (5, 10, 10, 6, '', ''); -INSERT INTO `0_form_items` VALUES (5, 18, 18, 5, '', NULL); -INSERT INTO `0_form_items` VALUES (5, 26, 26, 5, '', ''); -INSERT INTO `0_form_items` VALUES (5, 30, 30, 5, '', ''); -INSERT INTO `0_form_items` VALUES (5, 50, 22, 2, '', NULL); -INSERT INTO `0_form_items` VALUES (5, 51, 4, 2, '1710', NULL); -INSERT INTO `0_form_items` VALUES (5, 60, 28, 1, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (5, 61, 25, 3, 'DEF', NULL); -INSERT INTO `0_form_items` VALUES (6, 10, 10, 7, '', ''); -INSERT INTO `0_form_items` VALUES (6, 30, 30, 6, '', ''); -INSERT INTO `0_form_items` VALUES (6, 50, 22, 3, '', NULL); -INSERT INTO `0_form_items` VALUES (6, 51, 2, 2, '0', 'mr. mgoo'); -INSERT INTO `0_form_items` VALUES (6, 60, 10, 5, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (6, 61, 29, 1, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (7, 10, 10, 8, '', ''); -INSERT INTO `0_form_items` VALUES (7, 30, 30, 7, '', ''); -INSERT INTO `0_form_items` VALUES (7, 50, 1, 5, '4', '1'); -INSERT INTO `0_form_items` VALUES (7, 51, 12, 6, '2', '1'); -INSERT INTO `0_form_items` VALUES (7, 60, 10, 6, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (7, 61, 29, 2, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (8, 10, 10, 9, '', ''); -INSERT INTO `0_form_items` VALUES (8, 30, 30, 8, '', ''); -INSERT INTO `0_form_items` VALUES (8, 50, 4, 3, '1700', '1705'); -INSERT INTO `0_form_items` VALUES (8, 51, 2, 3, '4', '2'); -INSERT INTO `0_form_items` VALUES (8, 60, 10, 7, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (9, 10, 10, 10, '', ''); -INSERT INTO `0_form_items` VALUES (9, 30, 30, 9, '', ''); -INSERT INTO `0_form_items` VALUES (9, 50, 1, 6, '3', '1'); -INSERT INTO `0_form_items` VALUES (9, 51, 4, 3, '1705', '1700'); -INSERT INTO `0_form_items` VALUES (9, 60, 10, 8, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (10, 10, 10, 11, '', ''); -INSERT INTO `0_form_items` VALUES (10, 30, 30, 10, '', ''); -INSERT INTO `0_form_items` VALUES (10, 50, 1, 7, '0', 'gylle transport'); -INSERT INTO `0_form_items` VALUES (10, 51, 2, 4, '2', '1'); -INSERT INTO `0_form_items` VALUES (10, 60, 10, 9, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (11, 10, 10, 12, '', ''); -INSERT INTO `0_form_items` VALUES (11, 30, 30, 11, '', ''); -INSERT INTO `0_form_items` VALUES (11, 60, 10, 10, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (12, 10, 10, 13, '', ''); -INSERT INTO `0_form_items` VALUES (12, 30, 30, 12, '', ''); -INSERT INTO `0_form_items` VALUES (12, 60, 10, 11, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (13, 10, 10, 14, '', ''); -INSERT INTO `0_form_items` VALUES (13, 30, 30, 13, '', ''); -INSERT INTO `0_form_items` VALUES (13, 60, 10, 12, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (14, 10, 10, 15, '', ''); -INSERT INTO `0_form_items` VALUES (14, 30, 30, 14, '', ''); -INSERT INTO `0_form_items` VALUES (14, 60, 10, 13, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (15, 10, 10, 16, '', ''); -INSERT INTO `0_form_items` VALUES (15, 30, 30, 15, '', ''); -INSERT INTO `0_form_items` VALUES (15, 60, 10, 14, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (16, 60, 10, 15, 'DEF', ''); -INSERT INTO `0_form_items` VALUES (17, 60, 10, 16, 'DEF', ''); - --- --- Data in table `gl_trans` --- - -INSERT INTO `0_gl_trans` VALUES (1, 10, 2, '2006-01-18', '3000', '', -500, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (2, 10, 2, '2006-01-18', '3000', '', -1000, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (3, 10, 2, '2006-01-18', '3000', '', -250, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (4, 10, 2, '2006-01-18', '1500', '', 1750, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (5, 10, 3, '2006-01-18', '3000', '', -1000, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (6, 10, 3, '2006-01-18', '1500', '', 1000, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (7, 12, 2, '2006-01-18', '1700', '', 5000, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (8, 12, 2, '2006-01-18', '1500', '', -10000, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (9, 12, 3, '2006-01-18', '1700', '', 240, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (10, 12, 3, '2006-01-18', '1500', '', -240, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (11, 12, 4, '2006-01-18', '1700', '', 360, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (12, 12, 4, '2006-01-18', '1500', '', -360, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (13, 12, 5, '2006-01-18', '1700', '', 500, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (14, 12, 5, '2006-01-18', '1500', '', -500, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (15, 11, 2, '2006-01-18', '3000', '', 1260, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (16, 11, 2, '2006-01-18', '1500', '', -1260, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (17, 10, 4, '2006-01-18', '3000', '', -1268.57142857, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (18, 10, 4, '2006-01-18', '1500', '', 1332, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (19, 10, 4, '2006-01-18', '2660', '', -63.4285714286, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (20, 1, 2, '2006-01-18', '1700', '', -25, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (21, 1, 2, '2006-01-18', '6600', '', 10, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (22, 1, 2, '2006-01-18', '6730', '', 15, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (23, 1, 3, '2006-01-18', '1705', '', -250, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (24, 1, 3, '2006-01-18', '6810', '', 3000, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (25, 1, 3, '2006-01-18', '6700', '', 150, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (26, 1, 4, '2006-01-18', '1700', '', -555, 0, 0, 4, 0x31); -INSERT INTO `0_gl_trans` VALUES (27, 1, 4, '2006-01-18', '4500', '', 555, 0, 0, 4, 0x31); -INSERT INTO `0_gl_trans` VALUES (28, 4, 2, '2006-01-18', '1700', '', -300, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (29, 4, 2, '2006-01-18', '1710', '', 300, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (30, 22, 2, '2006-01-18', '2630', '', 5000, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (31, 22, 2, '2006-01-18', '1700', '', -5000, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (32, 22, 3, '2006-01-18', '2630', '', 3960, 0, 0, 3, 0x32); -INSERT INTO `0_gl_trans` VALUES (33, 22, 3, '2006-01-18', '1710', '', -3960, 0, 0, 3, 0x32); -INSERT INTO `0_gl_trans` VALUES (34, 20, 2, '2006-01-18', '2630', '', -3445, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (35, 20, 2, '2006-01-18', '1420', '', 1000, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (36, 20, 2, '2006-01-18', '1420', '', 2250, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (37, 20, 2, '2006-01-18', '2660', '', 162.5, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (38, 20, 2, '2006-01-18', '2660', '', 32.5, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (39, 20, 3, '2006-01-18', '2630', '', -26, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (40, 20, 3, '2006-01-18', '1420', '', 26, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (41, 2, 2, '2006-01-20', '1700', '', 1050, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (42, 2, 2, '2006-01-20', '4500', '', -1000, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (43, 2, 2, '2006-01-20', '6400', '', -50, 0, 0, 0, NULL); -INSERT INTO `0_gl_trans` VALUES (44, 10, 5, '2007-01-28', '3000', '', -2000, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (45, 10, 5, '2007-01-28', '3000', '', -90000, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (46, 10, 5, '2007-01-28', '3000', '', -1050, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (47, 10, 5, '2007-01-28', '1500', '', 93050, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (48, 10, 6, '2007-01-30', '3000', '', -333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (49, 10, 6, '2007-01-30', '1500', '', 333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (50, 12, 6, '2007-01-30', '1700', '', 200, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (51, 12, 6, '2007-01-30', '1500', '', -200, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (52, 1, 5, '2007-01-30', '1700', '', -200, 0, 0, 4, 0x31); -INSERT INTO `0_gl_trans` VALUES (53, 1, 5, '2007-01-30', '1400', 'Gylle', 200, 0, 0, 4, 0x31); -INSERT INTO `0_gl_trans` VALUES (54, 2, 3, '2007-01-30', '1700', '', 70, 0, 0, 4, 0x32); -INSERT INTO `0_gl_trans` VALUES (55, 2, 3, '2007-01-30', '4500', 'Packing', -50, 0, 0, 4, 0x32); -INSERT INTO `0_gl_trans` VALUES (56, 2, 3, '2007-01-30', '6400', '', -20, 0, 0, 4, 0x32); -INSERT INTO `0_gl_trans` VALUES (57, 20, 4, '2007-01-30', '2630', '', -17350, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (58, 20, 4, '2007-01-30', '1420', '', 15100, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (59, 20, 4, '2007-01-30', '1420', '', 2250, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (60, 0, 2, '2007-02-02', '3000', 'nana', -100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (61, 0, 2, '2007-02-02', '4010', 'jojo', 100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (62, 0, 3, '2007-02-02', '3000', '', -25, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (63, 0, 3, '2007-02-02', '4000', '', 25, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (64, 0, 4, '2007-03-01', '3000', '', 25, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (65, 0, 4, '2007-03-01', '4000', '', -25, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (66, 0, 5, '2007-02-02', '3000', '', -50, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (67, 0, 5, '2007-02-02', '4000', '', 50, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (68, 0, 6, '2007-02-02', '3020', 'Til Ejnar', -400, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (69, 0, 6, '2007-02-02', '1500', 'Opdate forrige linje', 400, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (70, 20, 5, '2007-02-03', '2630', '', -6644, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (71, 20, 5, '2007-02-03', '1420', '', 6644, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (72, 10, 7, '2007-02-03', '3000', '', -333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (73, 10, 7, '2007-02-03', '1500', '', 333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (74, 10, 8, '2007-02-03', '3000', '', -333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (75, 10, 8, '2007-02-03', '1500', '', 333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (76, 10, 9, '2007-02-03', '3000', '', -3428.5714285714, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (77, 10, 9, '2007-02-03', '1500', '', 3600, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (78, 10, 9, '2007-02-03', '2660', '', -171.42857142857, 0, 0, 2, 0x32); -INSERT INTO `0_gl_trans` VALUES (79, 10, 10, '2007-02-04', '3000', '', -333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (80, 10, 10, '2007-02-04', '1500', '', 333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (81, 10, 11, '2007-02-04', '3000', '', -333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (82, 10, 11, '2007-02-04', '1500', '', 333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (83, 10, 12, '2007-02-06', '3000', '', -333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (84, 10, 12, '2007-02-06', '1500', '', 333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (85, 0, 7, '2007-02-06', '1400', '', 100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (86, 0, 7, '2007-02-06', '1500', '', -100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (87, 0, 8, '2007-02-06', '1400', '', 100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (88, 0, 8, '2007-02-06', '2000', '', -100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (89, 0, 9, '2006-04-06', '1400', '', 100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (90, 0, 9, '2006-04-06', '2000', '', -100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (91, 0, 10, '2007-02-06', '1400', '', 100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (92, 0, 10, '2007-02-06', '2050', '', -100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (93, 0, 11, '2006-04-06', '1400', '', 100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (94, 0, 11, '2006-04-06', '3000', '', -100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (95, 0, 12, '2007-02-06', '1400', '', 100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (96, 0, 12, '2007-02-06', '3000', '', -100, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (97, 0, 13, '2007-02-13', '1400', '', 10, 1, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (98, 0, 13, '2007-02-13', '1400', '', -10, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (99, 10, 13, '2007-02-25', '3000', '', -333, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (100, 10, 13, '2007-02-25', '1500', '', 333, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (101, 0, 14, '2007-02-25', '1400', '', 10, 1, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (102, 0, 14, '2007-02-25', '3000', '', -10, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (103, 0, 15, '2007-03-02', '1400', '', 10, 1, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (104, 0, 15, '2007-03-02', '1400', '', -10, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (105, 0, 16, '2007-03-02', '3000', '', 100, 1, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (106, 0, 16, '2007-03-02', '1430', '', -100, 1, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (107, 10, 14, '2007-03-04', '3000', '', -333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (108, 10, 14, '2007-03-04', '1500', '', 333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (109, 10, 15, '2007-03-05', '3000', '', -333, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (110, 10, 15, '2007-03-05', '1500', '', 358, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (111, 10, 15, '2007-03-05', '3800', '', -25, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (112, 10, 16, '2007-03-05', '3000', '', -3000, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (113, 10, 16, '2007-03-05', '1500', '', 3044, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (114, 10, 16, '2007-03-05', '3800', '', -44, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (115, 20, 6, '2007-03-05', '2630', '', -33.34, 0, 0, 3, 0x33); -INSERT INTO `0_gl_trans` VALUES (116, 20, 6, '2007-03-05', '6730', '', 33.34, 1, 0, 3, 0x33); -INSERT INTO `0_gl_trans` VALUES (117, 4, 3, '2007-03-09', '1700', '', -222, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (118, 4, 3, '2007-03-09', '1705', '', 222, 0, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (119, 2, 4, '2007-03-09', '1700', '', 200, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (120, 2, 4, '2007-03-09', '1400', '', -200, 0, 0, 2, 0x31); -INSERT INTO `0_gl_trans` VALUES (121, 1, 6, '2007-03-22', '1700', '', -200, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (122, 1, 6, '2007-03-22', '2630', '', 200, 0, 0, 3, 0x31); -INSERT INTO `0_gl_trans` VALUES (123, 1, 7, '2007-03-22', '1700', '', -125, 0, 0, 0, 0x67796c6c657472616e73706f7274); -INSERT INTO `0_gl_trans` VALUES (124, 1, 7, '2007-03-22', '6700', '', 100, 0, 0, 0, 0x67796c6c657472616e73706f7274); -INSERT INTO `0_gl_trans` VALUES (125, 1, 7, '2007-03-22', '2682', '', 25, 0, 0, 0, 0x67796c6c657472616e73706f7274); -INSERT INTO `0_gl_trans` VALUES (126, 0, 17, '2007-03-25', '3000', '', -300, 1, 0, NULL, NULL); -INSERT INTO `0_gl_trans` VALUES (127, 0, 17, '2007-03-25', '4200', '', 300, 0, 0, NULL, NULL); - --- --- Data in table `grn_batch` --- - -INSERT INTO `0_grn_batch` VALUES (1, 1, 1, '1', '2006-01-18', 'DEF'); -INSERT INTO `0_grn_batch` VALUES (2, 1, 2, '2', '2006-01-18', 'DEF'); -INSERT INTO `0_grn_batch` VALUES (3, 1, 5, '3', '2006-01-18', 'DEF'); - --- --- Data in table `grn_items` --- - -INSERT INTO `0_grn_items` VALUES (1, 1, 1, '102', '17 inch VGA Monitor', 10, 10); -INSERT INTO `0_grn_items` VALUES (2, 1, 2, '103', '32MB VGA Card', 50, 50); -INSERT INTO `0_grn_items` VALUES (3, 2, 3, '104', '52x CD Drive', 1, 1); -INSERT INTO `0_grn_items` VALUES (4, 3, 6, '104', '52x CD Drive (upgraded)', 3020, 302); - --- --- Data in table `item_tax_types` --- - -INSERT INTO `0_item_tax_types` VALUES (1, 'Regular', 0); - --- --- Data in table `loc_stock` --- - -INSERT INTO `0_loc_stock` VALUES ('CWA', '102', 0); -INSERT INTO `0_loc_stock` VALUES ('CWA', '103', 0); -INSERT INTO `0_loc_stock` VALUES ('CWA', '104', 0); -INSERT INTO `0_loc_stock` VALUES ('CWA', '201', 0); -INSERT INTO `0_loc_stock` VALUES ('CWA', '3400', 0); -INSERT INTO `0_loc_stock` VALUES ('DEF', '102', 0); -INSERT INTO `0_loc_stock` VALUES ('DEF', '103', 0); -INSERT INTO `0_loc_stock` VALUES ('DEF', '104', 0); -INSERT INTO `0_loc_stock` VALUES ('DEF', '201', 0); -INSERT INTO `0_loc_stock` VALUES ('DEF', '3400', 0); - --- --- Data in table `locations` --- +### Data of table `0_cust_allocations` ### + +INSERT INTO `0_cust_allocations` VALUES ('1', '200', '2007-01-30', '6', '12', '6', '10'); +INSERT INTO `0_cust_allocations` VALUES ('4', '133', '2007-03-09', '4', '2', '6', '10'); +INSERT INTO `0_cust_allocations` VALUES ('5', '135', '2008-03-06', '1', '11', '5', '10'); +INSERT INTO `0_cust_allocations` VALUES ('6', '135', '2008-03-06', '2', '11', '6', '10'); +INSERT INTO `0_cust_allocations` VALUES ('7', '135', '2008-03-06', '3', '11', '4', '10'); +INSERT INTO `0_cust_allocations` VALUES ('8', '125', '2008-03-07', '4', '11', '4', '11'); + +### Data of table `0_cust_branch` ### + +INSERT INTO `0_cust_branch` VALUES ('1', '1', 'Main', '', '1', '1', '', '', 'Lucky Luke Inc.', 'lucky@luke.com', 'DEF', '1', '3000', '3000', '1500', '3200', '1', '0', 'The Road'); +INSERT INTO `0_cust_branch` VALUES ('2', '1', 'Service divison', '', '4', '1', '', '', '', '', 'DEF', '2', '3000', '3000', '1500', '3200', '1', '0', 'Another Road'); +INSERT INTO `0_cust_branch` VALUES ('3', '2', 'Main', '', '4', '2', '', '', 'Money Makers Ltd.', '', 'DEF', '2', '3000', '3000', '1500', '3200', '1', '0', ''); +INSERT INTO `0_cust_branch` VALUES ('5', '3', 'Main', '', '4', '1', '', '', 'Junk Beer ApS', '', 'CWA', '2', '3000', '3000', '1500', '3200', '1', '0', ''); +INSERT INTO `0_cust_branch` VALUES ('6', '4', 'Johny Bravo', 'Never Mind 13', '1', '1', '123', '', 'Johny Bravo', '', 'DEF', '1', '3000', '3000', '1500', '3200', '1', '0', 'Never Mind 13'); +INSERT INTO `0_cust_branch` VALUES ('7', '3', 'Junk Beer ApS', 'N/A', '1', '1', '1223123', '', 'junk@junkbeer.dk', '', 'DEF', '1', '3000', '3000', '1500', '3200', '1', '0', 'N/A'); + +### Data of table `0_debtor_trans` ### + +INSERT INTO `0_debtor_trans` VALUES ('1', '10', '0', '4', '6', '2008-03-06', '2008-03-16', '0', '1', '1', '125', '0', '10', '0', '0', '0', '1', '1', '1'); +INSERT INTO `0_debtor_trans` VALUES ('1', '11', '0', '4', '6', '2008-03-06', '0000-00-00', '0', '1', '5', '125', '0', '10', '0', '0', '0', '1', '1', '5'); +INSERT INTO `0_debtor_trans` VALUES ('1', '13', '1', '4', '6', '2008-03-06', '2008-03-16', '0', '1', '1', '125', '0', '10', '0', '0', '0', '1', '1', '1'); +INSERT INTO `0_debtor_trans` VALUES ('2', '10', '0', '4', '6', '2008-03-06', '2008-03-06', '1', '1', '2', '125', '0', '10', '0', '0', '0', '1', '1', '2'); +INSERT INTO `0_debtor_trans` VALUES ('2', '11', '0', '4', '6', '2008-03-06', '0000-00-00', '1', '1', '6', '125', '0', '10', '0', '0', '135', '1', '1', '6'); +INSERT INTO `0_debtor_trans` VALUES ('2', '13', '1', '4', '6', '2008-03-06', '2008-03-06', 'auto', '1', '2', '125', '0', '10', '0', '0', '0', '1', '1', '2'); +INSERT INTO `0_debtor_trans` VALUES ('3', '10', '0', '4', '6', '2008-03-06', '2008-03-06', '2', '1', '3', '125', '0', '10', '0', '0', '0', '1', '1', '3'); +INSERT INTO `0_debtor_trans` VALUES ('3', '11', '0', '4', '6', '2008-03-06', '0000-00-00', '2', '1', '4', '125', '0', '10', '0', '0', '135', '1', '1', '4'); +INSERT INTO `0_debtor_trans` VALUES ('3', '13', '1', '4', '6', '2008-03-06', '2008-03-06', 'auto', '1', '3', '125', '0', '10', '0', '0', '0', '1', '1', '3'); +INSERT INTO `0_debtor_trans` VALUES ('4', '10', '1', '4', '6', '2008-03-06', '2008-03-06', '3', '1', '4', '125', '0', '10', '0', '0', '135', '1', '1', '4'); +INSERT INTO `0_debtor_trans` VALUES ('4', '11', '0', '1', '1', '2008-03-07', '0000-00-00', '3', '1', '0', '100', '25', '0', '0', '0', '250', '1', '1', '0'); +INSERT INTO `0_debtor_trans` VALUES ('4', '13', '1', '4', '6', '2008-03-06', '2008-03-06', 'auto', '1', '4', '125', '0', '10', '0', '0', '0', '1', '1', '4'); +INSERT INTO `0_debtor_trans` VALUES ('5', '10', '1', '4', '6', '2008-03-06', '2008-03-06', '4', '1', '5', '125', '0', '10', '0', '0', '135', '1', '1', '5'); +INSERT INTO `0_debtor_trans` VALUES ('5', '13', '1', '4', '6', '2008-03-06', '2008-03-06', 'auto', '1', '5', '125', '0', '10', '0', '0', '0', '1', '1', '5'); +INSERT INTO `0_debtor_trans` VALUES ('6', '10', '1', '4', '6', '2008-03-06', '2008-03-06', '5', '1', '6', '125', '0', '10', '0', '0', '135', '1', '1', '6'); +INSERT INTO `0_debtor_trans` VALUES ('6', '13', '1', '4', '6', '2008-03-06', '2008-03-06', 'auto', '1', '6', '125', '0', '10', '0', '0', '0', '1', '1', '6'); +INSERT INTO `0_debtor_trans` VALUES ('7', '10', '0', '4', '6', '2008-03-08', '2008-03-08', '6', '1', '9', '125', '0', '10', '0', '0', '0', '1', '1', '9'); +INSERT INTO `0_debtor_trans` VALUES ('7', '12', '0', '1', '1', '2008-03-06', '0000-00-00', '6', '0', '0', '100', '0', '0', '0', '0', '0', '1', '0', '0'); +INSERT INTO `0_debtor_trans` VALUES ('7', '13', '0', '4', '6', '2008-03-06', '2008-03-06', '1', '1', '7', '125', '0', '10', '0', '0', '0', '1', '1', '0'); +INSERT INTO `0_debtor_trans` VALUES ('8', '10', '0', '4', '6', '2008-03-09', '2008-03-09', '7', '1', '10', '125', '0', '12.5', '0', '0', '0', '1', '1', '10'); +INSERT INTO `0_debtor_trans` VALUES ('8', '12', '0', '4', '6', '2008-03-06', '0000-00-00', '7', '0', '0', '100', '0', '0', '0', '0', '0', '1', '0', '0'); +INSERT INTO `0_debtor_trans` VALUES ('8', '13', '1', '4', '6', '2008-03-07', '2008-03-07', '2', '1', '8', '125', '0', '10', '0', '0', '0', '1', '1', '13'); +INSERT INTO `0_debtor_trans` VALUES ('9', '10', '0', '1', '1', '2008-03-09', '2008-03-09', '8', '2', '11', '100', '25', '10', '2.5', '0', '0', '1', '1', '11'); +INSERT INTO `0_debtor_trans` VALUES ('9', '12', '0', '1', '1', '2008-03-07', '0000-00-00', '8', '0', '0', '2000', '0', '0', '0', '0', '0', '1', '0', '0'); +INSERT INTO `0_debtor_trans` VALUES ('9', '13', '1', '4', '6', '2008-03-08', '2008-03-08', 'auto', '1', '9', '125', '0', '10', '0', '0', '0', '1', '1', '7'); +INSERT INTO `0_debtor_trans` VALUES ('10', '10', '0', '4', '6', '2008-03-09', '2008-03-09', '9', '1', '12', '125', '0', '10', '0', '0', '0', '1', '1', '12'); +INSERT INTO `0_debtor_trans` VALUES ('10', '13', '1', '4', '6', '2008-03-09', '2008-03-09', 'auto', '1', '10', '125', '0', '12.5', '0', '0', '0', '1', '1', '8'); +INSERT INTO `0_debtor_trans` VALUES ('11', '10', '0', '1', '1', '2008-03-10', '2008-03-20', '10', '2', '15', '100', '25', '0', '0', '0', '0', '1', '1', '14'); +INSERT INTO `0_debtor_trans` VALUES ('11', '13', '1', '1', '1', '2008-03-09', '2008-03-09', 'auto', '2', '11', '100', '25', '10', '2.5', '0', '0', '1', '1', '9'); +INSERT INTO `0_debtor_trans` VALUES ('12', '10', '0', '1', '1', '2008-03-10', '2008-03-29', '11', '2', '16', '100', '25', '0', '0', '0', '0', '1', '1', '15'); +INSERT INTO `0_debtor_trans` VALUES ('12', '13', '1', '4', '6', '2008-03-09', '2008-03-09', 'auto', '1', '12', '125', '0', '10', '0', '0', '0', '1', '1', '10'); +INSERT INTO `0_debtor_trans` VALUES ('13', '10', '0', '4', '6', '2008-03-07', '2008-03-07', '12', '1', '8', '125', '0', '10', '0', '0', '0', '1', '1', '8'); +INSERT INTO `0_debtor_trans` VALUES ('13', '13', '1', '4', '6', '2008-03-10', '2008-03-20', '3', '1', '14', '40', '0', '0', '0', '0', '0', '1', '1', '15'); +INSERT INTO `0_debtor_trans` VALUES ('14', '10', '0', '4', '6', '2008-03-10', '2008-03-10', '13', '1', '18', '125', '0', '10', '0', '0', '0', '1', '1', '17'); +INSERT INTO `0_debtor_trans` VALUES ('14', '13', '1', '1', '1', '2008-03-10', '2008-03-20', '4', '2', '15', '100', '25', '0', '0', '0', '0', '1', '1', '11'); +INSERT INTO `0_debtor_trans` VALUES ('15', '10', '0', '4', '6', '2008-03-10', '2008-04-17', '14', '1', '14', '40', '0', '0', '0', '0', '0', '1', '1', '13'); +INSERT INTO `0_debtor_trans` VALUES ('15', '13', '1', '1', '1', '2008-03-10', '2008-03-20', '5', '2', '16', '100', '25', '0', '0', '0', '0', '1', '1', '12'); +INSERT INTO `0_debtor_trans` VALUES ('16', '10', '0', '4', '6', '2008-03-17', '2008-04-17', '15', '1', '19', '125', '0', '10', '0', '0', '0', '1', '1', '18'); +INSERT INTO `0_debtor_trans` VALUES ('16', '13', '1', '3', '5', '2008-03-10', '2008-03-20', '6', '1', '17', '11', '0', '0', '0', '0', '0', '0.20563796227935', '1', '17'); +INSERT INTO `0_debtor_trans` VALUES ('17', '10', '0', '3', '5', '2008-03-10', '2008-04-17', '16', '1', '17', '11', '0', '0', '0', '0', '0', '0.20563796227935', '1', '16'); +INSERT INTO `0_debtor_trans` VALUES ('17', '13', '1', '4', '6', '2008-03-10', '2008-03-10', 'auto', '1', '18', '125', '0', '10', '0', '0', '0', '1', '1', '14'); +INSERT INTO `0_debtor_trans` VALUES ('18', '10', '0', '3', '5', '2008-03-29', '2008-04-17', '17', '1', '20', '0', '0', '0', '0', '0', '0', '0.20674817019223', '1', '19'); +INSERT INTO `0_debtor_trans` VALUES ('18', '13', '1', '4', '6', '2008-03-17', '2008-03-27', '7', '1', '19', '125', '0', '10', '0', '0', '0', '1', '1', '16'); +INSERT INTO `0_debtor_trans` VALUES ('19', '10', '0', '4', '6', '2008-03-29', '2008-04-17', '18', '1', '21', '125', '0', '0', '0', '0', '0', '1', '1', '20'); +INSERT INTO `0_debtor_trans` VALUES ('19', '13', '1', '3', '5', '2008-03-29', '2008-04-17', 'auto', '1', '20', '0', '0', '0', '0', '0', '0', '0.20674817019223', '1', '18'); +INSERT INTO `0_debtor_trans` VALUES ('20', '13', '1', '4', '6', '2008-03-29', '2008-04-08', '8', '1', '21', '125', '0', '0', '0', '0', '0', '1', '1', '19'); + +### Data of table `0_debtor_trans_details` ### + +INSERT INTO `0_debtor_trans_details` VALUES ('1', '1', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('2', '1', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('3', '2', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('4', '2', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('5', '3', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('6', '3', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('7', '4', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('8', '4', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('9', '5', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('10', '5', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('11', '1', '11', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('12', '6', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('13', '6', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('14', '7', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('15', '2', '11', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('16', '3', '11', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('17', '4', '11', '102', '17 inch VGA Monitor', '100', '25', '1', '0', '0', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('18', '8', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('19', '9', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('20', '7', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('21', '10', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('22', '8', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('23', '11', '13', '102', '17 inch VGA Monitor', '100', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('24', '9', '10', '102', '17 inch VGA Monitor', '100', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('25', '12', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('26', '10', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('27', '13', '13', '103', '32MB VGA Card', '40', '8', '1', '0', '20', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('28', '14', '13', '102', '17 inch VGA Monitor', '100', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('29', '11', '10', '102', '17 inch VGA Monitor', '100', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('30', '15', '13', '102', '17 inch VGA Monitor', '100', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('31', '12', '10', '102', '17 inch VGA Monitor', '100', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('32', '13', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('33', '16', '13', '102', '17 inch VGA Monitor', '11', '0', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('34', '17', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('35', '14', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('36', '15', '10', '103', '32MB VGA Card', '40', '8', '1', '0', '20', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('37', '18', '13', '102', '17 inch VGA Monitor', '125', '25', '0', '0', '-3.4114285714283', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('38', '18', '13', 'AA101', 'olie 5w40', '125', '25', '1', '0', '5.0599509174312', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('39', '16', '10', '102', '17 inch VGA Monitor', '125', '25', '0', '0', '-3.4114285714283', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('40', '16', '10', 'AA101', 'olie 5w40', '125', '25', '1', '0', '5.0599509174312', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('41', '17', '10', '102', '17 inch VGA Monitor', '11', '0', '1', '0', '80', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('42', '19', '13', '102', '17 inch VGA Monitor', '0', '0', '1', '0', '-3.4114285714283', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('43', '18', '10', '102', '17 inch VGA Monitor', '0', '0', '1', '0', '-3.4114285714283', '0'); +INSERT INTO `0_debtor_trans_details` VALUES ('44', '20', '13', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '-3.4114285714283', '1'); +INSERT INTO `0_debtor_trans_details` VALUES ('45', '19', '10', '102', '17 inch VGA Monitor', '125', '25', '1', '0', '-3.4114285714283', '0'); + +### Data of table `0_debtor_trans_tax_details` ### + +INSERT INTO `0_debtor_trans_tax_details` VALUES ('1', '1', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('2', '1', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('3', '2', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('4', '2', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('5', '3', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('6', '3', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('7', '4', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('8', '4', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('9', '5', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('10', '5', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('11', '1', '11', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('12', '6', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('13', '6', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('14', '7', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('15', '2', '11', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('16', '3', '11', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('17', '4', '11', '3', NULL, '25', '0', '25'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('18', '8', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('19', '9', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('20', '7', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('21', '10', '13', '3', NULL, '25', '1', '27.5'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('22', '8', '10', '3', NULL, '25', '1', '27.5'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('23', '11', '13', '3', NULL, '25', '0', '27.5'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('24', '9', '10', '3', NULL, '25', '0', '27.5'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('25', '12', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('26', '10', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('27', '13', '13', '3', NULL, '25', '1', '8'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('28', '14', '13', '3', NULL, '25', '0', '25'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('29', '11', '10', '3', NULL, '25', '0', '25'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('30', '15', '13', '3', NULL, '25', '0', '25'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('31', '12', '10', '3', NULL, '25', '0', '25'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('32', '13', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('33', '17', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('34', '14', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('35', '15', '10', '3', NULL, '25', '1', '8'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('36', '18', '13', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('37', '16', '10', '3', NULL, '25', '1', '27'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('38', '20', '13', '3', NULL, '25', '1', '25'); +INSERT INTO `0_debtor_trans_tax_details` VALUES ('39', '19', '10', '3', NULL, '25', '1', '25'); + +### Data of table `0_debtors_master` ### + +INSERT INTO `0_debtors_master` VALUES ('1', 'Lucky Luke Inc.', '35 Waldorf Street\r\nTown 19358, AR', 'joe@home.com', '12311231', 'USD', '2', '0', '0', '1', '1', '0', '0', '1000'); +INSERT INTO `0_debtors_master` VALUES ('2', 'Money Makers Ltd.', 'N/A', '', '9876543', 'GBP', '2', '0', '0', '1', '1', '0', '0', '1000'); +INSERT INTO `0_debtors_master` VALUES ('3', 'Junk Beer ApS', 'N/A', '', '123321123', 'DKK', '1', '0', '0', '1', '1', '0', '0', '1000'); +INSERT INTO `0_debtors_master` VALUES ('4', 'Retail clients', 'Never Mind 13', '', '', 'USD', '1', '0', '0', '1', '1', '0', '0', '1000'); + +### Data of table `0_dimensions` ### + +INSERT INTO `0_dimensions` VALUES ('1', '1', 'Development', '1', '0', '2006-01-18', '2006-02-07'); +INSERT INTO `0_dimensions` VALUES ('2', '2', 'Support', '1', '0', '2006-01-18', '2007-03-07'); +INSERT INTO `0_dimensions` VALUES ('3', '3', 'Training', '2', '0', '2006-01-18', '2007-03-07'); + +### Data of table `0_exchange_rates` ### + +INSERT INTO `0_exchange_rates` VALUES ('1', 'LE', '0.149', '0.149', '2006-01-18'); +INSERT INTO `0_exchange_rates` VALUES ('2', 'GBP', '1.2', '1.2', '2006-01-18'); +INSERT INTO `0_exchange_rates` VALUES ('3', 'SEK', '0.1667', '0.1667', '2007-01-29'); +INSERT INTO `0_exchange_rates` VALUES ('4', 'DKK', '0.2', '0.2', '2007-03-05'); +INSERT INTO `0_exchange_rates` VALUES ('5', 'EUR', '1.1', '1.1', '2007-03-05'); +INSERT INTO `0_exchange_rates` VALUES ('6', 'DKK', '0.20563796227935', '0.20563796227935', '2008-03-06'); +INSERT INTO `0_exchange_rates` VALUES ('7', 'EUR', '1.5561', '1.5561', '2008-03-15'); +INSERT INTO `0_exchange_rates` VALUES ('8', 'DKK', '0.20867920985932', '0.20867920985932', '2008-03-16'); +INSERT INTO `0_exchange_rates` VALUES ('9', 'GBP', '1.9816266221251', '1.9816266221251', '2008-03-24'); +INSERT INTO `0_exchange_rates` VALUES ('10', 'DKK', '0.20674817019223', '0.20674817019223', '2008-03-24'); +INSERT INTO `0_exchange_rates` VALUES ('11', 'EUR', '1.5569', '1.5569', '2008-03-25'); +INSERT INTO `0_exchange_rates` VALUES ('12', 'EUR', '1.5796', '1.5796', '2008-03-28'); + +### Data of table `0_fiscal_year` ### + +INSERT INTO `0_fiscal_year` VALUES ('1', '2006-01-01', '2006-12-31', '0'); +INSERT INTO `0_fiscal_year` VALUES ('2', '2007-01-01', '2007-12-31', '0'); +INSERT INTO `0_fiscal_year` VALUES ('5', '2005-01-01', '2005-12-31', '1'); +INSERT INTO `0_fiscal_year` VALUES ('6', '2008-01-01', '2008-12-31', '0'); + +### Data of table `0_gl_trans` ### + +INSERT INTO `0_gl_trans` VALUES ('1', '13', '1', '2008-03-06', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('2', '13', '1', '2008-03-06', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('3', '10', '1', '2008-03-06', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('4', '10', '1', '2008-03-06', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('5', '10', '1', '2008-03-06', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('6', '10', '1', '2008-03-06', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('7', '13', '2', '2008-03-06', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('8', '13', '2', '2008-03-06', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('9', '10', '2', '2008-03-06', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('10', '10', '2', '2008-03-06', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('11', '10', '2', '2008-03-06', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('12', '10', '2', '2008-03-06', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('13', '13', '3', '2008-03-06', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('14', '13', '3', '2008-03-06', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('15', '10', '3', '2008-03-06', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('16', '10', '3', '2008-03-06', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('17', '10', '3', '2008-03-06', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('18', '10', '3', '2008-03-06', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('19', '13', '4', '2008-03-06', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('20', '13', '4', '2008-03-06', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('21', '10', '4', '2008-03-06', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('22', '10', '4', '2008-03-06', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('23', '10', '4', '2008-03-06', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('24', '10', '4', '2008-03-06', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('25', '13', '5', '2008-03-06', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('26', '13', '5', '2008-03-06', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('27', '10', '5', '2008-03-06', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('28', '10', '5', '2008-03-06', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('29', '10', '5', '2008-03-06', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('30', '10', '5', '2008-03-06', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('31', '11', '1', '2008-03-06', '4010', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('32', '11', '1', '2008-03-06', '1420', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('33', '11', '1', '2008-03-06', '3000', '', '125', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('34', '11', '1', '0000-00-00', '1500', '', '-10', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('35', '11', '1', '0000-00-00', '3800', '', '8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('36', '11', '1', '0000-00-00', '2664', '', '27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('37', '13', '6', '2008-03-06', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('38', '13', '6', '2008-03-06', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('39', '10', '6', '2008-03-06', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('40', '10', '6', '2008-03-06', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('41', '10', '6', '2008-03-06', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('42', '10', '6', '2008-03-06', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('43', '13', '7', '2008-03-06', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('44', '13', '7', '2008-03-06', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('45', '12', '7', '2008-03-06', '1700', '', '100', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('46', '12', '7', '2008-03-06', '1500', '', '-100', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('47', '12', '8', '2008-03-06', '1700', '', '100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('48', '12', '8', '2008-03-06', '1500', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('49', '20', '7', '2008-03-06', '2630', '', '-550', '0', '0', '3', '1'); +INSERT INTO `0_gl_trans` VALUES ('50', '20', '7', '2008-03-06', '1420', '', '250', '0', '0', '3', '1'); +INSERT INTO `0_gl_trans` VALUES ('51', '20', '7', '2008-03-06', '1420', '', '300', '0', '0', '3', '1'); +INSERT INTO `0_gl_trans` VALUES ('52', '11', '2', '2008-03-06', '4010', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('53', '11', '2', '2008-03-06', '1420', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('54', '11', '2', '2008-03-06', '3000', '', '125', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('55', '11', '2', '2008-03-06', '1500', '', '-135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('56', '11', '2', '2008-03-06', '3800', '', '8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('57', '11', '2', '0000-00-00', '2664', '', '27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('58', '11', '3', '2008-03-06', '4010', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('59', '11', '3', '2008-03-06', '1420', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('60', '11', '3', '2008-03-06', '3000', '', '100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('61', '11', '3', '2008-03-06', '1500', '', '-135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('62', '11', '3', '2008-03-06', '3800', '', '8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('63', '11', '3', '0000-00-00', '2664', '', '27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('64', '12', '9', '2008-03-07', '1700', '', '2000', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('65', '12', '9', '2008-03-07', '1500', '', '-2000', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('66', '11', '4', '2008-03-07', '3000', '', '100', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('67', '11', '4', '2008-03-07', '1500', '', '-125', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('68', '11', '4', '0000-00-00', '2664', '', '25', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('69', '26', '7', '2008-03-07', '1420', '', '-80', '0', '0', NULL, NULL); +INSERT INTO `0_gl_trans` VALUES ('70', '26', '7', '2008-03-07', '1420', '', '-20', '0', '0', NULL, NULL); +INSERT INTO `0_gl_trans` VALUES ('71', '26', '7', '2008-03-07', '1420', '', '-18', '0', '0', NULL, NULL); +INSERT INTO `0_gl_trans` VALUES ('72', '26', '7', '2008-03-07', '1420', '', '118', '0', '0', NULL, NULL); +INSERT INTO `0_gl_trans` VALUES ('73', '0', '18', '2008-03-07', '1400', '', '20', '0', '0', NULL, NULL); +INSERT INTO `0_gl_trans` VALUES ('74', '0', '18', '2008-03-07', '3010', '', '-20', '0', '0', NULL, NULL); +INSERT INTO `0_gl_trans` VALUES ('75', '13', '8', '2008-03-07', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('76', '13', '8', '2008-03-07', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('77', '13', '9', '2008-03-08', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('78', '13', '9', '2008-03-08', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('79', '10', '7', '2008-03-08', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('80', '10', '7', '2008-03-08', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('81', '10', '7', '2008-03-08', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('82', '10', '7', '2008-03-08', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('83', '13', '10', '2008-03-09', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('84', '13', '10', '2008-03-09', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('85', '10', '8', '2008-03-09', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('86', '10', '8', '2008-03-09', '1500', '', '137.5', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('87', '10', '8', '2008-03-09', '3800', '', '-10', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('88', '10', '8', '2008-03-09', '2664', '', '-27.5', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('89', '13', '11', '2008-03-09', '4010', '', '80', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('90', '13', '11', '2008-03-09', '1420', '', '-80', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('91', '10', '9', '2008-03-09', '3000', '', '-100', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('92', '10', '9', '2008-03-09', '1500', '', '137.5', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('93', '10', '9', '2008-03-09', '3800', '', '-10', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('94', '10', '9', '2008-03-09', '2664', '', '-27.5', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('95', '13', '12', '2008-03-09', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('96', '13', '12', '2008-03-09', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('97', '10', '10', '2008-03-09', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('98', '10', '10', '2008-03-09', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('99', '10', '10', '2008-03-09', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('100', '10', '10', '2008-03-09', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('103', '13', '13', '2008-03-10', '4010', '', '20', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('104', '13', '13', '2008-03-10', '1420', '', '-20', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('105', '13', '14', '2008-03-10', '4010', '', '80', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('106', '13', '14', '2008-03-10', '1420', '', '-80', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('107', '10', '11', '2008-03-10', '3000', '', '-100', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('108', '10', '11', '2008-03-10', '1500', '', '125', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('109', '10', '11', '2008-03-10', '2664', '', '-25', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('110', '13', '15', '2008-03-10', '4010', '', '80', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('111', '13', '15', '2008-03-10', '1420', '', '-80', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('112', '10', '12', '2008-03-10', '3000', '', '-100', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('113', '10', '12', '2008-03-10', '1500', '', '125', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('114', '10', '12', '2008-03-10', '2664', '', '-25', '0', '0', '2', '1'); +INSERT INTO `0_gl_trans` VALUES ('115', '10', '13', '2008-03-07', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('116', '10', '13', '2008-03-07', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('117', '10', '13', '2008-03-07', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('118', '10', '13', '2008-03-07', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('119', '13', '16', '2008-03-10', '4010', '', '80', '0', '0', '2', '3'); +INSERT INTO `0_gl_trans` VALUES ('120', '13', '16', '2008-03-10', '1420', '', '-80', '0', '0', '2', '3'); +INSERT INTO `0_gl_trans` VALUES ('121', '13', '17', '2008-03-10', '4010', '', '80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('122', '13', '17', '2008-03-10', '1420', '', '-80', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('123', '10', '14', '2008-03-10', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('124', '10', '14', '2008-03-10', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('125', '10', '14', '2008-03-10', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('126', '10', '14', '2008-03-10', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('127', '10', '15', '2008-03-10', '3000', '', '-32', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('128', '10', '15', '2008-03-10', '1500', '', '40', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('129', '10', '15', '2008-03-10', '2664', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('133', '20', '8', '2008-03-20', '2630', '', '0', '0', '0', '3', '2'); +INSERT INTO `0_gl_trans` VALUES ('134', '20', '8', '2008-03-20', '1420', '', '0', '0', '0', '3', '2'); +INSERT INTO `0_gl_trans` VALUES ('135', '20', '9', '2008-03-25', '2630', '', '-19.82', '0', '0', '3', '2'); +INSERT INTO `0_gl_trans` VALUES ('136', '20', '9', '2008-03-25', '1420', '', '19.82', '0', '0', '3', '2'); +INSERT INTO `0_gl_trans` VALUES ('149', '20', '10', '2008-03-25', '2630', '', '-40.48', '0', '0', '3', '4'); +INSERT INTO `0_gl_trans` VALUES ('150', '20', '10', '2008-03-25', '1420', '', '40.48', '0', '0', '3', '4'); +INSERT INTO `0_gl_trans` VALUES ('151', '20', '10', '2008-03-25', '2682', '', '8.1', '0', '0', '3', '4'); +INSERT INTO `0_gl_trans` VALUES ('152', '20', '11', '2008-03-28', '2630', '', '-2618.19', '0', '0', '3', '4'); +INSERT INTO `0_gl_trans` VALUES ('153', '20', '11', '2008-03-28', '1420', '', '2094.55', '0', '0', '3', '4'); +INSERT INTO `0_gl_trans` VALUES ('154', '20', '11', '2008-03-28', '2682', '', '523.64', '0', '0', '3', '4'); +INSERT INTO `0_gl_trans` VALUES ('155', '13', '18', '2008-03-17', '4010', '', '5.0599509174312', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('156', '13', '18', '2008-03-17', '1420', '', '-5.0599509174312', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('157', '10', '16', '2008-03-17', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('158', '10', '16', '2008-03-17', '1500', '', '135', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('159', '10', '16', '2008-03-17', '3800', '', '-8', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('160', '10', '16', '2008-03-17', '2664', '', '-27', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('161', '10', '17', '2008-03-10', '3000', '', '-2.26', '0', '0', '2', '3'); +INSERT INTO `0_gl_trans` VALUES ('162', '10', '17', '2008-03-10', '1500', '', '2.26', '0', '0', '2', '3'); +INSERT INTO `0_gl_trans` VALUES ('163', '13', '19', '2008-03-29', '4010', '', '-3.4114285714283', '0', '0', '2', '3'); +INSERT INTO `0_gl_trans` VALUES ('164', '13', '19', '2008-03-29', '1420', '', '3.4114285714283', '0', '0', '2', '3'); +INSERT INTO `0_gl_trans` VALUES ('165', '13', '20', '2008-03-29', '4010', '', '-3.4114285714283', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('166', '13', '20', '2008-03-29', '1420', '', '3.4114285714283', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('167', '10', '19', '2008-03-29', '3000', '', '-100', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('168', '10', '19', '2008-03-29', '1500', '', '125', '0', '0', '2', '4'); +INSERT INTO `0_gl_trans` VALUES ('169', '10', '19', '2008-03-29', '2664', '', '-25', '0', '0', '2', '4'); + +### Data of table `0_grn_batch` ### + +INSERT INTO `0_grn_batch` VALUES ('1', '1', '1', '1', '2006-01-18', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('2', '1', '2', '2', '2006-01-18', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('3', '1', '5', '3', '2006-01-18', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('4', '1', '6', '4', '2008-03-06', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('5', '4', '8', '5', '2008-03-17', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('6', '4', '8', '6', '2008-03-19', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('7', '2', '9', '7', '2008-03-20', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('8', '2', '10', '8', '2008-03-25', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('9', '4', '11', '9', '2008-03-25', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('10', '4', '13', '10', '2008-03-25', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('11', '4', '12', '11', '2008-03-25', 'DEF'); +INSERT INTO `0_grn_batch` VALUES ('12', '4', '13', '12', '2008-03-28', 'DEF'); + +### Data of table `0_grn_items` ### + +INSERT INTO `0_grn_items` VALUES ('1', '1', '1', '102', '17 inch VGA Monitor', '10', '10'); +INSERT INTO `0_grn_items` VALUES ('2', '1', '2', '103', '32MB VGA Card', '50', '50'); +INSERT INTO `0_grn_items` VALUES ('3', '2', '3', '104', '52x CD Drive', '1', '1'); +INSERT INTO `0_grn_items` VALUES ('4', '3', '6', '104', '52x CD Drive (upgraded)', '3020', '302'); +INSERT INTO `0_grn_items` VALUES ('5', '4', '7', '102', '17 inch VGA Monitor', '10', '10'); +INSERT INTO `0_grn_items` VALUES ('6', '4', '8', '103', '32MB VGA Card', '10', '10'); +INSERT INTO `0_grn_items` VALUES ('7', '4', '9', '104', '52x CD Drive', '10', '0'); +INSERT INTO `0_grn_items` VALUES ('8', '4', '10', '202', 'Electric stimulator', '10', '0'); +INSERT INTO `0_grn_items` VALUES ('9', '5', '12', 'AA101', 'olie 5w40', '8', '8'); +INSERT INTO `0_grn_items` VALUES ('10', '6', '12', 'AA101', 'olie 5w40', '408', '408'); +INSERT INTO `0_grn_items` VALUES ('11', '7', '13', '102', '17 inch VGA Monitor', '5', '5'); +INSERT INTO `0_grn_items` VALUES ('12', '8', '14', '102', '17 inch VGA Monitor', '1', '1'); +INSERT INTO `0_grn_items` VALUES ('13', '9', '15', 'AA101', 'olie 5w40', '20', '0'); +INSERT INTO `0_grn_items` VALUES ('14', '10', '17', '102', '17 inch VGA Monitor', '5', '0'); +INSERT INTO `0_grn_items` VALUES ('15', '11', '16', '102', '17 inch VGA Monitor', '1', '0'); +INSERT INTO `0_grn_items` VALUES ('16', '12', '17', '102', '17 inch VGA Monitor', '5', '0'); + +### Data of table `0_item_tax_type_exemptions` ### + +INSERT INTO `0_item_tax_type_exemptions` VALUES ('1', '1'); +INSERT INTO `0_item_tax_type_exemptions` VALUES ('1', '2'); +INSERT INTO `0_item_tax_type_exemptions` VALUES ('2', '2'); +INSERT INTO `0_item_tax_type_exemptions` VALUES ('2', '3'); + +### Data of table `0_item_tax_types` ### + +INSERT INTO `0_item_tax_types` VALUES ('1', 'Regular', '0'); +INSERT INTO `0_item_tax_types` VALUES ('2', 'Recovery equipment', '0'); + +### Data of table `0_item_units` ### + +INSERT INTO `0_item_units` VALUES ('each', 'each', '0'); +INSERT INTO `0_item_units` VALUES ('m', 'meters', '2'); +INSERT INTO `0_item_units` VALUES ('kgg', 'kilograms', '3'); +INSERT INTO `0_item_units` VALUES ('tons', 'tons', '2'); +INSERT INTO `0_item_units` VALUES ('lbs', 'pounds', '2'); +INSERT INTO `0_item_units` VALUES ('l', 'liters', '3'); +INSERT INTO `0_item_units` VALUES ('dozen', 'dozens', '0'); +INSERT INTO `0_item_units` VALUES ('pack', 'packs', '0'); +INSERT INTO `0_item_units` VALUES ('hrs', 'hours', '1'); +INSERT INTO `0_item_units` VALUES ('dz', 'dozijn', '0'); + +### Data of table `0_loc_stock` ### + +INSERT INTO `0_loc_stock` VALUES ('CWA', '102', '0'); +INSERT INTO `0_loc_stock` VALUES ('CWA', '103', '0'); +INSERT INTO `0_loc_stock` VALUES ('CWA', '104', '0'); +INSERT INTO `0_loc_stock` VALUES ('CWA', '201', '0'); +INSERT INTO `0_loc_stock` VALUES ('CWA', '202', '0'); +INSERT INTO `0_loc_stock` VALUES ('CWA', '3400', '0'); +INSERT INTO `0_loc_stock` VALUES ('CWA', 'AA101', '0'); +INSERT INTO `0_loc_stock` VALUES ('DEF', '102', '0'); +INSERT INTO `0_loc_stock` VALUES ('DEF', '103', '0'); +INSERT INTO `0_loc_stock` VALUES ('DEF', '104', '0'); +INSERT INTO `0_loc_stock` VALUES ('DEF', '201', '0'); +INSERT INTO `0_loc_stock` VALUES ('DEF', '202', '0'); +INSERT INTO `0_loc_stock` VALUES ('DEF', '3400', '0'); +INSERT INTO `0_loc_stock` VALUES ('DEF', 'AA101', '0'); + +### Data of table `0_locations` ### INSERT INTO `0_locations` VALUES ('DEF', 'Default', 'N/A', '', '', '', ''); INSERT INTO `0_locations` VALUES ('CWA', 'Cool Warehouse', '', '', '', '', ''); --- --- Data in table `movement_types` --- - -INSERT INTO `0_movement_types` VALUES (1, 'Adjustment'); - --- --- Data in table `payment_terms` --- - -INSERT INTO `0_payment_terms` VALUES (1, 'Due 15th Of the Following Month', 0, 17); -INSERT INTO `0_payment_terms` VALUES (2, 'Due By End Of The Following Month', 0, 30); -INSERT INTO `0_payment_terms` VALUES (3, 'Payment due within 10 days', 10, 0); -INSERT INTO `0_payment_terms` VALUES (4, 'Cash Only', 1, 0); - --- --- Data in table `prices` --- - -INSERT INTO `0_prices` VALUES (1, '102', 1, 'USD', 333); -INSERT INTO `0_prices` VALUES (2, '103', 1, 'USD', 3000); -INSERT INTO `0_prices` VALUES (3, '104', 1, 'USD', 34); -INSERT INTO `0_prices` VALUES (4, '201', 1, 'USD', 40); -INSERT INTO `0_prices` VALUES (5, '3400', 1, 'USD', 600); - --- --- Data in table `purch_order_details` --- - -INSERT INTO `0_purch_order_details` VALUES (1, 1, '102', '17 inch VGA Monitor', '2006-01-28', 10, 3020, 3020, 0, 3000, 10); -INSERT INTO `0_purch_order_details` VALUES (2, 1, '103', '32MB VGA Card', '2006-01-28', 50, 90, 90, 0, 300, 50); -INSERT INTO `0_purch_order_details` VALUES (3, 2, '104', '52x CD Drive', '2006-01-28', 1, 26, 26, 0, 1, 1); -INSERT INTO `0_purch_order_details` VALUES (4, 3, '104', '52x CD Drive', '2006-01-28', 0, 22, 0, 0, 1, 0); -INSERT INTO `0_purch_order_details` VALUES (6, 5, '104', '52x CD Drive', '2006-01-28', 302, 22, 22, 0, 330, 3020); - --- --- Data in table `purch_orders` --- - -INSERT INTO `0_purch_orders` VALUES (1, 1, '', '2006-01-18', '3', '333', 'DEF', 'N/A'); -INSERT INTO `0_purch_orders` VALUES (2, 1, '', '2006-01-18', '4', '44', 'DEF', 'N/A'); -INSERT INTO `0_purch_orders` VALUES (3, 1, '', '2006-01-18', '5', '', 'DEF', 'N/A'); -INSERT INTO `0_purch_orders` VALUES (5, 1, '', '2006-01-18', '7', '', 'DEF', 'N/A'); - --- --- Data in table `refs` --- - -INSERT INTO `0_refs` VALUES (2, 0, 'Joe'); -INSERT INTO `0_refs` VALUES (3, 0, '19'); -INSERT INTO `0_refs` VALUES (4, 0, '19'); -INSERT INTO `0_refs` VALUES (5, 0, '20'); -INSERT INTO `0_refs` VALUES (6, 0, '21'); -INSERT INTO `0_refs` VALUES (7, 0, '22'); -INSERT INTO `0_refs` VALUES (8, 0, '23'); -INSERT INTO `0_refs` VALUES (9, 0, '24'); -INSERT INTO `0_refs` VALUES (10, 0, '25'); -INSERT INTO `0_refs` VALUES (11, 0, '26'); -INSERT INTO `0_refs` VALUES (12, 0, '27'); -INSERT INTO `0_refs` VALUES (13, 0, '28'); -INSERT INTO `0_refs` VALUES (14, 0, '29'); -INSERT INTO `0_refs` VALUES (15, 0, '30'); -INSERT INTO `0_refs` VALUES (16, 0, '31'); -INSERT INTO `0_refs` VALUES (17, 0, '32'); - --- --- Data in table `sales_order_details` --- - -INSERT INTO `0_sales_order_details` VALUES (1, '102', '17 inch VGA Monitor', 10, 250, 10, 0); -INSERT INTO `0_sales_order_details` VALUES (1, '103', '32MB VGA Card', 50, 3000, 50, 0); -INSERT INTO `0_sales_order_details` VALUES (1, '104', '52x CD Drive', 26, 50, 26, 0); -INSERT INTO `0_sales_order_details` VALUES (2, '102', '17 inch VGA Monitor', 5, 222, 25, 0); -INSERT INTO `0_sales_order_details` VALUES (3, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (4, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (5, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (6, '3400', 'P4 Business System', 1, 3000, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (7, '102', '17 inch VGA Monitor', 0, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (8, '102', '17 inch VGA Monitor', 0, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (9, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (10, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (11, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (12, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (13, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (14, '102', '17 inch VGA Monitor', 1, 333, 1, 0); -INSERT INTO `0_sales_order_details` VALUES (15, '103', '32MB VGA Card', 1, 3000, 1, 0); - --- --- Data in table `sales_orders` --- - -INSERT INTO `0_sales_orders` VALUES (1, 1, 1, '', '', '2006-01-18', 1, 1, 'The same', '', '', 'Main', 0, 'DEF', '2006-01-18'); -INSERT INTO `0_sales_orders` VALUES (2, 2, 3, '', '', '2006-01-18', 1, 1, 'His Addy', '', '', 'Main', 0, 'DEF', '2006-01-18'); -INSERT INTO `0_sales_orders` VALUES (3, 1, 1, 'Oops', 'This is a lot of stuff.', '2007-01-30', 1, 1, 'The Road\r\n333 33 Downtown', '040-365045', '', 'Main', 0, 'DEF', '2007-01-30'); -INSERT INTO `0_sales_orders` VALUES (4, 1, 1, '', '', '2007-02-03', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-02-03'); -INSERT INTO `0_sales_orders` VALUES (5, 1, 1, '', '', '2007-02-03', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-02-03'); -INSERT INTO `0_sales_orders` VALUES (6, 2, 3, '', '', '2007-02-03', 1, 1, 'Street', '', '', 'Main', 0, 'DEF', '2007-02-03'); -INSERT INTO `0_sales_orders` VALUES (7, 1, 1, '', '', '2007-02-03', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-02-03'); -INSERT INTO `0_sales_orders` VALUES (8, 1, 1, '', '', '2007-02-03', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-02-03'); -INSERT INTO `0_sales_orders` VALUES (9, 1, 1, '', '', '2007-02-04', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-02-04'); -INSERT INTO `0_sales_orders` VALUES (10, 1, 1, '', '', '2007-02-04', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-02-04'); -INSERT INTO `0_sales_orders` VALUES (11, 1, 1, '', '', '2007-02-06', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-02-06'); -INSERT INTO `0_sales_orders` VALUES (12, 1, 1, '', '', '2007-02-25', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-02-25'); -INSERT INTO `0_sales_orders` VALUES (13, 1, 1, '', '', '2007-03-04', 1, 1, 'The Road', '', '', 'Main', 0, 'DEF', '2007-03-04'); -INSERT INTO `0_sales_orders` VALUES (14, 1, 1, '', '', '2007-03-05', 1, 1, 'The Road', '', '', 'Main', 25, 'DEF', '2007-03-05'); -INSERT INTO `0_sales_orders` VALUES (15, 1, 1, '', '', '2007-03-05', 1, 1, 'The Road', '', '', 'Main', 44, 'DEF', '2007-03-05'); - --- --- Data in table `sales_types` --- - -INSERT INTO `0_sales_types` VALUES (1, 'Retail'); -INSERT INTO `0_sales_types` VALUES (2, 'Wholesale'); - --- --- Data in table `salesman` --- - -INSERT INTO `0_salesman` VALUES (1, 'Sparc Menser', '', '', ''); -INSERT INTO `0_salesman` VALUES (2, 'Joe Hunt', '', '', ''); - --- --- Data in table `shippers` --- - -INSERT INTO `0_shippers` VALUES (1, 'UPS', '', '', ''); -INSERT INTO `0_shippers` VALUES (2, 'Internet', '', '', ''); - --- --- Data in table `stock_category` --- - -INSERT INTO `0_stock_category` VALUES (1, 'Components', NULL, NULL, NULL, NULL); -INSERT INTO `0_stock_category` VALUES (2, 'Charges', NULL, NULL, NULL, NULL); -INSERT INTO `0_stock_category` VALUES (3, 'Systems', NULL, NULL, NULL, NULL); -INSERT INTO `0_stock_category` VALUES (4, 'Services', NULL, NULL, NULL, NULL); - --- --- Data in table `stock_master` --- - -INSERT INTO `0_stock_master` VALUES ('102', 1, 1, '17 inch VGA Monitor', '', 'each', 'B', '3000', '4010', '1420', '4210', '0', NULL, NULL, 0, 0, 0, 0, 0); -INSERT INTO `0_stock_master` VALUES ('103', 1, 1, '32MB VGA Card', '', 'each', 'B', '3000', '4010', '1420', '4210', '0', NULL, NULL, 0, 0, 0, 0, 0); -INSERT INTO `0_stock_master` VALUES ('104', 1, 1, '52x CD Drive', '', 'each', 'B', '3000', '4010', '1420', '4210', '0', NULL, NULL, 0, 0, 0, 0, 0); -INSERT INTO `0_stock_master` VALUES ('201', 2, 1, 'Assembly Labour', '', 'each', 'D', '3000', '4010', '1420', '4210', '0', NULL, NULL, 0, 0, 0, 0, 0); -INSERT INTO `0_stock_master` VALUES ('3400', 3, 1, 'P4 Business System', '', 'each', 'M', '3000', '4010', '1420', '4210', '1400', NULL, NULL, 0, 0, 0, 0, 0); - --- --- Data in table `stock_moves` --- - -INSERT INTO `0_stock_moves` VALUES (1, 2, '102', 17, 'DEF', '2006-01-18', 1, 0, '1', 3000, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (2, 2, '103', 17, 'DEF', '2006-01-18', 1, 0, '1', 3000, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (3, 2, '104', 17, 'DEF', '2006-01-18', 1, 0, '1', 150, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (4, 2, '3400', 17, 'DEF', '2006-01-18', 1, 0, '1', 50, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (5, 2, '102', 16, 'DEF', '2006-01-18', 1, 0, '1', -25, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (6, 2, '102', 16, 'CWA', '2006-01-18', 1, 0, '1', 25, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (7, 2, '102', 10, 'DEF', '2006-01-18', 0, 250, '', -2, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (8, 2, '103', 10, 'DEF', '2006-01-18', 0, 3000, '', -10, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (9, 2, '104', 10, 'DEF', '2006-01-18', 0, 50, '', -5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (10, 3, '103', 10, 'DEF', '2006-01-18', 0, 3000, '', -10, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (11, 2, '102', 11, 'DEF', '2006-01-18', 0, 210, '', 5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (12, 4, '102', 10, 'DEF', '2006-01-18', 0, 222, '', -5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (13, 1, '102', 26, 'DEF', '2006-01-18', 0, 0, '1', -20, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (14, 1, '103', 26, 'DEF', '2006-01-18', 0, 0, '1', -20, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (15, 1, '104', 26, 'DEF', '2006-01-18', 0, 0, '1', -20, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (16, 1, '3400', 26, 'DEF', '2006-01-18', 0, 0, '1', 20, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (17, 2, '102', 26, 'DEF', '2006-01-18', 0, 0, '2', -5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (18, 2, '103', 26, 'DEF', '2006-01-18', 0, 0, '2', -5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (19, 2, '104', 26, 'DEF', '2006-01-18', 0, 0, '2', -5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (20, 2, '3400', 26, 'DEF', '2006-01-18', 0, 0, '2', 5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (21, 1, '102', 25, 'DEF', '2006-01-18', 1, 3020, '', 10, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (22, 1, '103', 25, 'DEF', '2006-01-18', 1, 90, '', 50, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (23, 2, '104', 25, 'DEF', '2006-01-18', 1, 26, '', 1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (24, 3, '104', 25, 'DEF', '2006-01-18', 1, 22, '', 3020, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (25, 1, '102', 28, 'DEF', '2006-01-20', 0, 0, '', -10, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (26, 5, '102', 10, 'DEF', '2007-01-28', 0, 250, '', -8, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (27, 5, '103', 10, 'DEF', '2007-01-28', 0, 3000, '', -30, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (28, 5, '104', 10, 'DEF', '2007-01-28', 0, 50, '', -21, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (29, 6, '102', 10, 'DEF', '2007-01-30', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (30, 4, '102', 26, 'DEF', '2007-01-30', 0, 0, '4', -5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (31, 4, '103', 26, 'DEF', '2007-01-30', 0, 0, '4', -5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (32, 4, '104', 26, 'DEF', '2007-01-30', 0, 0, '4', -5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (33, 4, '3400', 26, 'DEF', '2007-01-30', 0, 0, '4', 5, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (34, 1, '3400', 29, 'DEF', '2007-01-30', 0, 0, '', 50, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (35, 2, '3400', 29, 'DEF', '2007-01-30', 0, 0, '', 20, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (36, 7, '102', 10, 'DEF', '2007-02-03', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (37, 8, '102', 10, 'DEF', '2007-02-03', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (38, 9, '3400', 10, 'DEF', '2007-02-03', 0, 3000, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (39, 10, '102', 10, 'DEF', '2007-02-04', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (40, 11, '102', 10, 'DEF', '2007-02-04', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (41, 12, '102', 10, 'DEF', '2007-02-06', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (42, 13, '102', 10, 'DEF', '2007-02-25', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (43, 14, '102', 10, 'DEF', '2007-03-04', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (44, 15, '102', 10, 'DEF', '2007-03-05', 0, 333, '', -1, 0, 0, 1); -INSERT INTO `0_stock_moves` VALUES (45, 16, '103', 10, 'DEF', '2007-03-05', 0, 3000, '', -1, 0, 0, 1); - --- --- Data in table `supp_allocations` --- - -INSERT INTO `0_supp_allocations` VALUES (7, 1529, '2007-01-30', 2, 22, 4, 20); -INSERT INTO `0_supp_allocations` VALUES (8, 3445, '2007-01-30', 2, 22, 2, 20); -INSERT INTO `0_supp_allocations` VALUES (9, 26, '2007-01-30', 2, 22, 3, 20); - --- --- Data in table `supp_invoice_items` --- - -INSERT INTO `0_supp_invoice_items` VALUES (1, 2, 20, 0, 1, 1, '102', '17 inch VGA Monitor', 5, 3020, 0, ''); -INSERT INTO `0_supp_invoice_items` VALUES (2, 2, 20, 0, 2, 2, '103', '32MB VGA Card', 25, 90, 0, ''); -INSERT INTO `0_supp_invoice_items` VALUES (3, 3, 20, 0, 3, 3, '104', '52x CD Drive', 1, 26, 0, ''); -INSERT INTO `0_supp_invoice_items` VALUES (4, 4, 20, 0, 1, 1, '102', '17 inch VGA Monitor', 5, 3020, 0, ''); -INSERT INTO `0_supp_invoice_items` VALUES (5, 4, 20, 0, 2, 2, '103', '32MB VGA Card', 25, 90, 0, ''); -INSERT INTO `0_supp_invoice_items` VALUES (6, 5, 20, 0, 4, 6, '104', '52x CD Drive (upgraded)', 302, 22, 0, ''); -INSERT INTO `0_supp_invoice_items` VALUES (7, 6, 20, 6730, 0, 0, '', '', 0, 200, 0, 'yes'); - --- --- Data in table `supp_invoice_tax_items` --- - -INSERT INTO `0_supp_invoice_tax_items` VALUES (1, 2, 20, 1, NULL, 5, 0, 162.5); -INSERT INTO `0_supp_invoice_tax_items` VALUES (2, 2, 20, 2, NULL, 1, 0, 32.5); - --- --- Data in table `supp_trans` --- - -INSERT INTO `0_supp_trans` VALUES (2, 20, 1, '22', '22', '2006-01-18', '2006-02-22', 3250, 0, 195, 1, 3445); -INSERT INTO `0_supp_trans` VALUES (2, 22, 1, '1', '', '2006-01-18', '2006-01-18', -5000, 0, 0, 1, 5000); -INSERT INTO `0_supp_trans` VALUES (3, 20, 1, '23', 'asdf', '2006-01-18', '2006-02-22', 26, 0, 0, 1, 26); -INSERT INTO `0_supp_trans` VALUES (3, 22, 2, '2', '', '2006-01-18', '2006-01-18', -3300, 0, 0, 1.2, 0); -INSERT INTO `0_supp_trans` VALUES (4, 20, 1, '24', 'Hamselv', '2007-01-30', '2007-02-22', 17350, 0, 0, 1, 1529); -INSERT INTO `0_supp_trans` VALUES (5, 20, 1, '25', '6789', '2007-02-03', '2007-03-22', 6644, 0, 0, 1, 0); -INSERT INTO `0_supp_trans` VALUES (6, 1, 1, '5', '', '2007-03-22', '0000-00-00', -200, 0, 0, 1, 0); -INSERT INTO `0_supp_trans` VALUES (6, 20, 3, '26', '333333', '2007-03-05', '2007-03-12', 200, 0, 0, 0.2, 0); - --- --- Data in table `suppliers` --- - -INSERT INTO `0_suppliers` VALUES (1, 'Ghostbusters Corp.', '', '', '123456789', 'USD', 1, 0, 0, 2, '4000', '2630', '4250'); -INSERT INTO `0_suppliers` VALUES (2, 'Beefeater Ltd.', '', '', '987654321', 'GBP', 1, 0, 0, 2, '4000', '2630', '4250'); -INSERT INTO `0_suppliers` VALUES (3, 'Super Trooper AB', 'Adress', 'sven@sven.sve', '123456', 'SEK', 3, 0, 0, 2, '4000', '2630', '4250'); - --- --- Data in table `sys_types` --- - -INSERT INTO `0_sys_types` VALUES (0, 'Journal - GL', 17, '33'); -INSERT INTO `0_sys_types` VALUES (1, 'Payment - GL', 7, '7'); -INSERT INTO `0_sys_types` VALUES (2, 'Receipt - GL', 4, '14'); -INSERT INTO `0_sys_types` VALUES (4, 'Funds Transfer', 3, '6'); -INSERT INTO `0_sys_types` VALUES (10, 'Sales Invoice', 16, '16'); -INSERT INTO `0_sys_types` VALUES (11, 'Credit Note', 2, '34'); -INSERT INTO `0_sys_types` VALUES (12, 'Receipt', 6, '116'); -INSERT INTO `0_sys_types` VALUES (16, 'Location Transfer', 2, '2'); -INSERT INTO `0_sys_types` VALUES (17, 'Inventory Adjustment', 2, '2'); -INSERT INTO `0_sys_types` VALUES (18, 'Purchase Order', 1, '8'); -INSERT INTO `0_sys_types` VALUES (20, 'Supplier Invoice', 6, '27'); -INSERT INTO `0_sys_types` VALUES (21, 'Supplier Credit Note', 1, '2'); -INSERT INTO `0_sys_types` VALUES (22, 'Supplier Payment', 3, '3'); -INSERT INTO `0_sys_types` VALUES (25, 'Purchase Order Delivery', 1, '4'); -INSERT INTO `0_sys_types` VALUES (26, 'Work Order', 1, '6'); -INSERT INTO `0_sys_types` VALUES (28, 'Work Order Issue', 1, '2'); -INSERT INTO `0_sys_types` VALUES (29, 'Work Order Production', 1, '201'); -INSERT INTO `0_sys_types` VALUES (30, 'Sales Order', 1, '1'); -INSERT INTO `0_sys_types` VALUES (35, 'Cost Update', 1, '1'); -INSERT INTO `0_sys_types` VALUES (40, 'Dimension', 1, '3'); - --- --- Data in table `tax_group_items` --- - -INSERT INTO `0_tax_group_items` VALUES (1, 1, 5, 0); -INSERT INTO `0_tax_group_items` VALUES (1, 2, 1, 0); -INSERT INTO `0_tax_group_items` VALUES (3, 1, 5, 1); -INSERT INTO `0_tax_group_items` VALUES (4, 3, 25, 0); - --- --- Data in table `tax_groups` --- - -INSERT INTO `0_tax_groups` VALUES (1, 'Tax out', 0); -INSERT INTO `0_tax_groups` VALUES (2, 'Tax-Free', 0); -INSERT INTO `0_tax_groups` VALUES (3, 'Tax Included', 0); -INSERT INTO `0_tax_groups` VALUES (4, 'Tax In', 0); - --- --- Data in table `tax_types` --- - -INSERT INTO `0_tax_types` VALUES (1, 5, '2660', '2680', 'VAT out 5', 1); -INSERT INTO `0_tax_types` VALUES (2, 1, '2662', '2680', 'Manufact tax 1', 1); -INSERT INTO `0_tax_types` VALUES (3, 25, '2664', '2660', 'VAT out 25', 1); -INSERT INTO `0_tax_types` VALUES (4, 5, '2660', '2680', 'VAT in 5', 0); -INSERT INTO `0_tax_types` VALUES (5, 25, '2660', '2682', 'VAT in 25', 0); - --- --- Data in table `users` --- - -INSERT INTO `0_users` VALUES ('demouser', '5f4dcc3b5aa765d61d8327deb882cf99', 'Demo User', 1, '999-999-999', 'demo@demo.nu', 'en_US', 0, 0, 0, 0, 'default', 'Letter', 2, 2, 3, 1, 1, 0, '2007-02-06 19:02:35'); -INSERT INTO `0_users` VALUES ('admin', '5f4dcc3b5aa765d61d8327deb882cf99', 'Administrator', 2, '', 'info@frontaccounting.com', 'en_US', 0, 0, 0, 0, 'default', 'Letter', 2, 2, 4, 1, 1, 0, '2007-03-20 10:52:46'); - --- --- Data in table `wo_issue_items` --- - -INSERT INTO `0_wo_issue_items` VALUES (1, '102', 1, 10); - --- --- Data in table `wo_issues` --- - -INSERT INTO `0_wo_issues` VALUES (1, 3, '1', '2006-01-20', 'DEF', 1); - --- --- Data in table `wo_manufacture` --- - -INSERT INTO `0_wo_manufacture` VALUES (1, 'ab200', 3, 50, '2007-01-30'); -INSERT INTO `0_wo_manufacture` VALUES (2, 'ab201', 5, 20, '2007-01-30'); - --- --- Data in table `wo_requirements` --- - -INSERT INTO `0_wo_requirements` VALUES (1, 1, '102', '1', 1, 0, 'DEF', 20); -INSERT INTO `0_wo_requirements` VALUES (2, 1, '103', '1', 1, 0, 'DEF', 20); -INSERT INTO `0_wo_requirements` VALUES (3, 1, '104', '1', 1, 0, 'DEF', 20); -INSERT INTO `0_wo_requirements` VALUES (4, 1, '201', '1', 1, 0, 'DEF', 20); -INSERT INTO `0_wo_requirements` VALUES (5, 2, '102', '1', 1, 0, 'DEF', 5); -INSERT INTO `0_wo_requirements` VALUES (6, 2, '103', '1', 1, 0, 'DEF', 5); -INSERT INTO `0_wo_requirements` VALUES (7, 2, '104', '1', 1, 0, 'DEF', 5); -INSERT INTO `0_wo_requirements` VALUES (8, 2, '201', '1', 1, 0, 'DEF', 5); -INSERT INTO `0_wo_requirements` VALUES (9, 3, '102', '1', 1, 0, 'DEF', 0); -INSERT INTO `0_wo_requirements` VALUES (10, 3, '103', '1', 1, 0, 'DEF', 0); -INSERT INTO `0_wo_requirements` VALUES (11, 3, '104', '1', 1, 0, 'DEF', 0); -INSERT INTO `0_wo_requirements` VALUES (12, 3, '201', '1', 1, 0, 'DEF', 0); -INSERT INTO `0_wo_requirements` VALUES (13, 4, '102', '1', 1, 0, 'DEF', 5); -INSERT INTO `0_wo_requirements` VALUES (14, 4, '103', '1', 1, 0, 'DEF', 5); -INSERT INTO `0_wo_requirements` VALUES (15, 4, '104', '1', 1, 0, 'DEF', 5); -INSERT INTO `0_wo_requirements` VALUES (16, 4, '201', '1', 1, 0, 'DEF', 5); -INSERT INTO `0_wo_requirements` VALUES (17, 5, '102', '1', 1, 0, 'DEF', 0); -INSERT INTO `0_wo_requirements` VALUES (18, 5, '103', '1', 1, 0, 'DEF', 0); -INSERT INTO `0_wo_requirements` VALUES (19, 5, '104', '1', 1, 0, 'DEF', 0); -INSERT INTO `0_wo_requirements` VALUES (20, 5, '201', '1', 1, 0, 'DEF', 0); - --- --- Data in table `workcentres` --- - -INSERT INTO `0_workcentres` VALUES (1, 'work centre', ''); - --- --- Data in table `workorders` --- - -INSERT INTO `0_workorders` VALUES (1, '1', 'DEF', 20, '3400', '2006-01-18', 0, '2006-01-18', '2006-01-18', 20, 1, 1, 0); -INSERT INTO `0_workorders` VALUES (2, '2', 'DEF', 5, '3400', '2006-01-18', 0, '2006-01-18', '2006-01-18', 5, 1, 1, 0); -INSERT INTO `0_workorders` VALUES (3, '3', 'DEF', 50, '3400', '2006-01-18', 2, '2006-02-07', '2006-01-20', 50, 1, 1, 0); -INSERT INTO `0_workorders` VALUES (4, '4', 'DEF', 5, '3400', '2007-01-30', 0, '2007-01-30', '2007-01-30', 5, 1, 1, 0); -INSERT INTO `0_workorders` VALUES (5, '5', 'DEF', 20, '3400', '2007-01-30', 2, '2007-02-19', '2007-01-30', 20, 1, 1, 0); +### Data of table `0_movement_types` ### + +INSERT INTO `0_movement_types` VALUES ('1', 'Adjustment'); + +### Data of table `0_payment_terms` ### + +INSERT INTO `0_payment_terms` VALUES ('1', 'Due 15th Of the Following Month', '0', '17'); +INSERT INTO `0_payment_terms` VALUES ('2', 'Due By End Of The Following Month', '0', '30'); +INSERT INTO `0_payment_terms` VALUES ('3', 'Payment due within 10 days', '10', '0'); +INSERT INTO `0_payment_terms` VALUES ('4', 'Cash Only', '1', '0'); + +### Data of table `0_prices` ### + +INSERT INTO `0_prices` VALUES ('1', '102', '1', 'USD', '125'); +INSERT INTO `0_prices` VALUES ('2', '103', '1', 'USD', '40'); +INSERT INTO `0_prices` VALUES ('3', '104', '1', 'USD', '34'); +INSERT INTO `0_prices` VALUES ('4', '201', '1', 'USD', '40'); +INSERT INTO `0_prices` VALUES ('5', '3400', '1', 'USD', '600'); +INSERT INTO `0_prices` VALUES ('6', '102', '2', 'USD', '100'); +INSERT INTO `0_prices` VALUES ('7', '202', '2', 'USD', '50'); +INSERT INTO `0_prices` VALUES ('8', '202', '1', 'USD', '52.5'); +INSERT INTO `0_prices` VALUES ('9', '103', '2', 'USD', '30'); +INSERT INTO `0_prices` VALUES ('10', '104', '2', 'USD', '25'); +INSERT INTO `0_prices` VALUES ('11', '201', '2', 'USD', '30'); +INSERT INTO `0_prices` VALUES ('12', '3400', '2', 'USD', '450'); + +### Data of table `0_purch_order_details` ### + +INSERT INTO `0_purch_order_details` VALUES ('1', '1', '102', '17 inch VGA Monitor', '2006-01-28', '10', '3020', '3020', '0', '3000', '10'); +INSERT INTO `0_purch_order_details` VALUES ('2', '1', '103', '32MB VGA Card', '2006-01-28', '50', '90', '90', '0', '300', '50'); +INSERT INTO `0_purch_order_details` VALUES ('3', '2', '104', '52x CD Drive', '2006-01-28', '1', '26', '26', '0', '1', '1'); +INSERT INTO `0_purch_order_details` VALUES ('4', '3', '104', '52x CD Drive', '2006-01-28', '0', '22', '0', '0', '1', '0'); +INSERT INTO `0_purch_order_details` VALUES ('6', '5', '104', '52x CD Drive', '2006-01-28', '302', '22', '22', '0', '330', '3020'); +INSERT INTO `0_purch_order_details` VALUES ('7', '6', '102', '17 inch VGA Monitor', '2008-03-16', '10', '25', '25', '80', '10', '10'); +INSERT INTO `0_purch_order_details` VALUES ('8', '6', '103', '32MB VGA Card', '2008-03-16', '10', '30', '30', '20', '10', '10'); +INSERT INTO `0_purch_order_details` VALUES ('9', '6', '104', '52x CD Drive', '2008-03-16', '0', '20', '0', '18', '10', '10'); +INSERT INTO `0_purch_order_details` VALUES ('10', '6', '202', 'Electric stimulator', '2008-03-16', '0', '50', '0', '30', '10', '10'); +INSERT INTO `0_purch_order_details` VALUES ('12', '8', 'AA101', 'olie 5w40', '2008-03-25', '416', '3.25', '3.25', '0', '416', '416'); +INSERT INTO `0_purch_order_details` VALUES ('13', '9', '102', '17 inch VGA Monitor', '2008-03-30', '5', '0', '0', '80', '5', '5'); +INSERT INTO `0_purch_order_details` VALUES ('14', '10', '102', '17 inch VGA Monitor', '2008-04-04', '1', '10', '10', '-120', '1', '1'); +INSERT INTO `0_purch_order_details` VALUES ('15', '11', 'AA101', 'olie 5w40', '2008-04-04', '0', '3.25', '0', '5.0599485576923', '20', '20'); +INSERT INTO `0_purch_order_details` VALUES ('16', '12', '102', '17 inch VGA Monitor', '2008-04-04', '0', '10', '0', '-17.79125', '1', '1'); +INSERT INTO `0_purch_order_details` VALUES ('17', '13', '102', '17 inch VGA Monitor', '2008-04-04', '0', '10', '0', '-73.393333333333', '10', '10'); + +### Data of table `0_purch_orders` ### + +INSERT INTO `0_purch_orders` VALUES ('1', '0', '1', NULL, '2006-01-18', '3', '333', 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('2', '0', '1', NULL, '2006-01-18', '4', '44', 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('3', '0', '1', NULL, '2006-01-18', '5', NULL, 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('5', '0', '1', NULL, '2006-01-18', '7', NULL, 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('6', '0', '1', NULL, '2008-03-06', '8', NULL, 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('8', '0', '4', NULL, '2008-03-15', '9', NULL, 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('9', '0', '2', NULL, '2008-03-20', '10', NULL, 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('10', '0', '2', NULL, '2008-03-25', '11', NULL, 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('11', '0', '4', NULL, '2008-03-25', '12', NULL, 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('12', '0', '4', NULL, '2008-03-25', '13', NULL, 'DEF', 'N/A'); +INSERT INTO `0_purch_orders` VALUES ('13', '0', '4', NULL, '2008-03-25', '14', NULL, 'DEF', 'N/A'); + +### Data of table `0_refs` ### + +INSERT INTO `0_refs` VALUES ('2', '0', 'Joe'); +INSERT INTO `0_refs` VALUES ('3', '0', '19'); +INSERT INTO `0_refs` VALUES ('4', '0', '19'); +INSERT INTO `0_refs` VALUES ('5', '0', '20'); +INSERT INTO `0_refs` VALUES ('6', '0', '21'); +INSERT INTO `0_refs` VALUES ('7', '0', '22'); +INSERT INTO `0_refs` VALUES ('8', '0', '23'); +INSERT INTO `0_refs` VALUES ('9', '0', '24'); +INSERT INTO `0_refs` VALUES ('10', '0', '25'); +INSERT INTO `0_refs` VALUES ('11', '0', '26'); +INSERT INTO `0_refs` VALUES ('12', '0', '27'); +INSERT INTO `0_refs` VALUES ('13', '0', '28'); +INSERT INTO `0_refs` VALUES ('14', '0', '29'); +INSERT INTO `0_refs` VALUES ('15', '0', '30'); +INSERT INTO `0_refs` VALUES ('16', '0', '31'); +INSERT INTO `0_refs` VALUES ('17', '0', '32'); +INSERT INTO `0_refs` VALUES ('18', '0', '33'); + +### Data of table `0_sales_order_details` ### + +INSERT INTO `0_sales_order_details` VALUES ('1', '1', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('2', '2', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('3', '3', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('4', '4', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('5', '5', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('6', '6', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('7', '7', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('8', '8', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('9', '9', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('10', '10', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('11', '11', '102', '17 inch VGA Monitor', '1', '100', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('12', '12', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('13', '13', '102', '17 inch VGA Monitor', '0', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('14', '14', '103', '32MB VGA Card', '1', '40', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('15', '15', '102', '17 inch VGA Monitor', '1', '100', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('16', '16', '102', '17 inch VGA Monitor', '1', '100', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('17', '17', '102', '17 inch VGA Monitor', '1', '11', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('18', '18', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('20', '19', '102', '17 inch VGA Monitor', '0', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('21', '19', 'AA101', 'olie 5w40', '1', '125', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('22', '20', '102', '17 inch VGA Monitor', '1', '0', '1', '0'); +INSERT INTO `0_sales_order_details` VALUES ('23', '21', '102', '17 inch VGA Monitor', '1', '125', '1', '0'); + +### Data of table `0_sales_orders` ### + +INSERT INTO `0_sales_orders` VALUES ('1', '1', '1', '4', '6', '', NULL, '2008-03-06', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-16'); +INSERT INTO `0_sales_orders` VALUES ('2', '1', '0', '4', '6', '', NULL, '2008-03-06', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-06'); +INSERT INTO `0_sales_orders` VALUES ('3', '1', '0', '4', '6', '', NULL, '2008-03-06', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-06'); +INSERT INTO `0_sales_orders` VALUES ('4', '1', '0', '4', '6', '', NULL, '2008-03-06', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-06'); +INSERT INTO `0_sales_orders` VALUES ('5', '1', '1', '4', '6', '', NULL, '2008-03-06', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-06'); +INSERT INTO `0_sales_orders` VALUES ('6', '1', '0', '4', '6', '', NULL, '2008-03-06', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-06'); +INSERT INTO `0_sales_orders` VALUES ('7', '1', '0', '4', '6', '', NULL, '2008-03-06', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-06'); +INSERT INTO `0_sales_orders` VALUES ('8', '1', '0', '4', '6', '', NULL, '2008-03-07', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-07'); +INSERT INTO `0_sales_orders` VALUES ('9', '1', '0', '4', '6', '', NULL, '2008-03-08', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-08'); +INSERT INTO `0_sales_orders` VALUES ('10', '1', '0', '4', '6', '', NULL, '2008-03-09', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '12.5', 'DEF', '2008-03-09'); +INSERT INTO `0_sales_orders` VALUES ('11', '1', '0', '1', '1', '', NULL, '2008-03-09', '2', '1', 'The Road', NULL, NULL, 'Main', '10', 'DEF', '2008-03-09'); +INSERT INTO `0_sales_orders` VALUES ('12', '1', '0', '4', '6', '', NULL, '2008-03-09', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-09'); +INSERT INTO `0_sales_orders` VALUES ('13', '0', '0', '4', '6', '', NULL, '2008-03-10', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '0', 'DEF', '2008-03-20'); +INSERT INTO `0_sales_orders` VALUES ('14', '1', '0', '4', '6', '', NULL, '2008-03-10', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '0', 'DEF', '2008-03-20'); +INSERT INTO `0_sales_orders` VALUES ('15', '1', '0', '1', '1', '', NULL, '2008-03-10', '2', '1', 'The Road', NULL, NULL, 'Main', '0', 'DEF', '2008-03-20'); +INSERT INTO `0_sales_orders` VALUES ('16', '1', '0', '1', '1', '', NULL, '2008-03-10', '2', '1', 'The Road', NULL, NULL, 'Main', '0', 'DEF', '2008-03-20'); +INSERT INTO `0_sales_orders` VALUES ('17', '1', '0', '3', '5', '', NULL, '2008-03-10', '1', '1', 'N/A', NULL, NULL, 'Main', '0', 'CWA', '2008-03-20'); +INSERT INTO `0_sales_orders` VALUES ('18', '1', '0', '4', '6', '', NULL, '2008-03-10', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-10'); +INSERT INTO `0_sales_orders` VALUES ('19', '2', '0', '4', '6', '', NULL, '2008-03-17', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '10', 'DEF', '2008-03-27'); +INSERT INTO `0_sales_orders` VALUES ('20', '1', '0', '3', '5', '', NULL, '2008-03-29', '1', '1', 'N/A', NULL, NULL, 'Main', '0', 'CWA', '2008-04-17'); +INSERT INTO `0_sales_orders` VALUES ('21', '1', '0', '4', '6', '', NULL, '2008-03-29', '1', '1', 'Never Mind 13', '123', NULL, 'Johny Bravo', '0', 'DEF', '2008-04-08'); + +### Data of table `0_sales_types` ### + +INSERT INTO `0_sales_types` VALUES ('1', 'Retail', '1', 1); +INSERT INTO `0_sales_types` VALUES ('2', 'Wholesale', '0', 1); + +### Data of table `0_salesman` ### + +INSERT INTO `0_salesman` VALUES ('1', 'Sparc Menser', '', '', '', '5', '1000', '4'); +INSERT INTO `0_salesman` VALUES ('2', 'Joe Hunt', '', '', '', '4', '500', '3'); + +### Data of table `0_shippers` ### + +INSERT INTO `0_shippers` VALUES ('1', 'UPS', '', '', ''); +INSERT INTO `0_shippers` VALUES ('2', 'Internet', '', '', ''); + +### Data of table `0_stock_category` ### + +INSERT INTO `0_stock_category` VALUES ('1', 'Components', NULL, NULL, NULL, NULL); +INSERT INTO `0_stock_category` VALUES ('2', 'Charges', NULL, NULL, NULL, NULL); +INSERT INTO `0_stock_category` VALUES ('3', 'Systems', NULL, NULL, NULL, NULL); +INSERT INTO `0_stock_category` VALUES ('4', 'Services', NULL, NULL, NULL, NULL); + +### Data of table `0_stock_master` ### + +INSERT INTO `0_stock_master` VALUES ('102', '1', '1', '17 inch VGA Monitor', '', 'each', 'B', '3000', '4010', '1420', '4210', '0', NULL, NULL, '0', '0', '-3.4114285714283', '0', '0'); +INSERT INTO `0_stock_master` VALUES ('103', '1', '1', '32MB VGA Card', '', 'each', 'B', '3000', '4010', '1420', '4210', '0', NULL, NULL, '0', '0', '20', '0', '0'); +INSERT INTO `0_stock_master` VALUES ('104', '1', '1', '52x CD Drive', '', 'each', 'B', '3000', '4010', '1420', '4210', '0', NULL, NULL, '0', '0', '18', '0', '0'); +INSERT INTO `0_stock_master` VALUES ('201', '2', '1', 'Assembly Labour', '', 'each', 'D', '3000', '4010', '1420', '4210', '0', NULL, NULL, '0', '0', '0', '0', '0'); +INSERT INTO `0_stock_master` VALUES ('202', '1', '2', 'Electric stimulator', '', 'ea.', 'B', '3000', '4010', '1420', '4210', '1410', '0', '0', '0', '0', '30', '0', '0'); +INSERT INTO `0_stock_master` VALUES ('3400', '3', '1', 'P4 Business System', '', 'each', 'M', '3000', '4010', '1420', '4210', '1400', NULL, NULL, '0', '160', '100', '30', '10'); +INSERT INTO `0_stock_master` VALUES ('AA101', '1', '1', 'olie 5w40', 'Shell Helix 5w40', 'l', 'B', '3000', '4010', '1420', '4210', '1410', '0', '0', '0', '0', '5.0599509174312', '0', '0'); + +### Data of table `0_stock_moves` ### + +INSERT INTO `0_stock_moves` VALUES ('1', '4', '102', '25', 'DEF', '2008-03-06', '1', '25', '', '10', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('2', '4', '103', '25', 'DEF', '2008-03-06', '1', '30', '', '10', '0', '20', '1'); +INSERT INTO `0_stock_moves` VALUES ('3', '4', '104', '25', 'DEF', '2008-03-06', '1', '20', '', '10', '0', '18', '1'); +INSERT INTO `0_stock_moves` VALUES ('4', '4', '202', '25', 'DEF', '2008-03-06', '1', '50', '', '10', '0', '30', '1'); +INSERT INTO `0_stock_moves` VALUES ('5', '1', '102', '13', 'DEF', '2008-03-06', '0', '125', '0', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('6', '2', '102', '13', 'DEF', '2008-03-06', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('7', '3', '102', '13', 'DEF', '2008-03-06', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('8', '4', '102', '13', 'DEF', '2008-03-06', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('9', '5', '102', '13', 'DEF', '2008-03-06', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('10', '1', '102', '11', 'DEF', '2008-03-06', '0', '125', 'Return Ex Inv: 5', '1', '0', '80', '0'); +INSERT INTO `0_stock_moves` VALUES ('11', '6', '102', '13', 'DEF', '2008-03-06', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('12', '7', '102', '13', 'DEF', '2008-03-06', '0', '125', '1', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('13', '2', '102', '11', 'DEF', '2008-03-06', '0', '125', 'Return Ex Inv: 6', '1', '0', '80', '0'); +INSERT INTO `0_stock_moves` VALUES ('14', '3', '102', '11', 'DEF', '2008-03-06', '0', '125', 'Return Ex Inv: 4', '1', '0', '80', '0'); +INSERT INTO `0_stock_moves` VALUES ('15', '4', '102', '11', 'CWA', '2008-03-07', '0', '125', 'Return', '1', '0', '0', '0'); +INSERT INTO `0_stock_moves` VALUES ('16', '7', '102', '26', 'DEF', '2008-03-07', '0', '0', '7', '-1', '0', '0', '1'); +INSERT INTO `0_stock_moves` VALUES ('17', '7', '103', '26', 'DEF', '2008-03-07', '0', '0', '7', '-1', '0', '0', '1'); +INSERT INTO `0_stock_moves` VALUES ('18', '7', '104', '26', 'DEF', '2008-03-07', '0', '0', '7', '-1', '0', '0', '1'); +INSERT INTO `0_stock_moves` VALUES ('19', '7', '3400', '26', 'DEF', '2008-03-07', '0', '0', '7', '1', '0', '0', '1'); +INSERT INTO `0_stock_moves` VALUES ('20', '8', '102', '13', 'DEF', '2008-03-07', '0', '125', '2', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('21', '9', '102', '13', 'DEF', '2008-03-08', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('22', '10', '102', '13', 'DEF', '2008-03-09', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('23', '11', '102', '13', 'DEF', '2008-03-09', '0', '100', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('24', '12', '102', '13', 'DEF', '2008-03-09', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('26', '13', '103', '13', 'DEF', '2008-03-10', '0', '40', '3', '-1', '0', '20', '1'); +INSERT INTO `0_stock_moves` VALUES ('27', '14', '102', '13', 'DEF', '2008-03-10', '0', '100', '4', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('28', '15', '102', '13', 'DEF', '2008-03-10', '0', '100', '5', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('29', '16', '102', '13', 'CWA', '2008-03-10', '0', '11', '6', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('30', '17', '102', '13', 'DEF', '2008-03-10', '0', '125', 'auto', '-1', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('31', '5', 'AA101', '25', 'DEF', '2008-03-17', '4', '3.25', '', '8', '0', '0', '1'); +INSERT INTO `0_stock_moves` VALUES ('32', '6', 'AA101', '25', 'DEF', '2008-03-19', '4', '3.25', '', '408', '0', '0', '1'); +INSERT INTO `0_stock_moves` VALUES ('33', '7', '102', '25', 'DEF', '2008-03-20', '2', '0', '', '5', '0', '80', '1'); +INSERT INTO `0_stock_moves` VALUES ('34', '8', '102', '25', 'DEF', '2008-03-25', '2', '10', '', '1', '0', '-120', '1'); +INSERT INTO `0_stock_moves` VALUES ('35', '9', 'AA101', '25', 'DEF', '2008-03-25', '4', '3.25', '', '20', '0', '5.0599485576923', '1'); +INSERT INTO `0_stock_moves` VALUES ('36', '10', '102', '25', 'DEF', '2008-03-25', '4', '10', '', '5', '0', '-73.393333333333', '1'); +INSERT INTO `0_stock_moves` VALUES ('37', '11', '102', '25', 'DEF', '2008-03-25', '4', '10', '', '1', '0', '-17.79125', '1'); +INSERT INTO `0_stock_moves` VALUES ('38', '12', '102', '25', 'DEF', '2008-03-28', '4', '10', '', '5', '0', '-73.393333333333', '1'); +INSERT INTO `0_stock_moves` VALUES ('39', '18', 'AA101', '13', 'DEF', '2008-03-17', '0', '125', '7', '-1', '0', '5.0599509174312', '1'); +INSERT INTO `0_stock_moves` VALUES ('40', '19', '102', '13', 'CWA', '2008-03-29', '0', '0', 'auto', '-1', '0', '-3.4114285714283', '1'); +INSERT INTO `0_stock_moves` VALUES ('41', '20', '102', '13', 'DEF', '2008-03-29', '0', '125', '8', '-1', '0', '-3.4114285714283', '1'); + +### Data of table `0_supp_allocations` ### + +INSERT INTO `0_supp_allocations` VALUES ('7', '1529', '2007-01-30', '2', '22', '4', '20'); +INSERT INTO `0_supp_allocations` VALUES ('8', '3445', '2007-01-30', '2', '22', '2', '20'); +INSERT INTO `0_supp_allocations` VALUES ('9', '26', '2007-01-30', '2', '22', '3', '20'); + +### Data of table `0_supp_invoice_items` ### + +INSERT INTO `0_supp_invoice_items` VALUES ('1', '2', '20', '0', '1', '1', '102', '17 inch VGA Monitor', '5', '3020', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('2', '2', '20', '0', '2', '2', '103', '32MB VGA Card', '25', '90', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('3', '3', '20', '0', '3', '3', '104', '52x CD Drive', '1', '26', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('4', '4', '20', '0', '1', '1', '102', '17 inch VGA Monitor', '5', '3020', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('5', '4', '20', '0', '2', '2', '103', '32MB VGA Card', '25', '90', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('6', '5', '20', '0', '4', '6', '104', '52x CD Drive (upgraded)', '302', '22', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('7', '6', '20', '6730', '0', '0', '', NULL, '0', '200', '0', 'yes'); +INSERT INTO `0_supp_invoice_items` VALUES ('8', '7', '20', '0', '5', '7', '102', '17 inch VGA Monitor', '10', '25', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('9', '7', '20', '0', '6', '8', '103', '32MB VGA Card', '10', '30', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('12', '8', '20', '0', '11', '13', '102', '17 inch VGA Monitor', '5', '0', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('13', '9', '20', '0', '12', '14', '102', '17 inch VGA Monitor', '1', '10', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('20', '10', '20', '0', '9', '12', 'AA101', 'olie 5w40', '8', '3.25', '0', NULL); +INSERT INTO `0_supp_invoice_items` VALUES ('21', '11', '20', '0', '10', '12', 'AA101', 'olie 5w40', '408', '3.25', '0.81', NULL); + +### Data of table `0_supp_invoice_tax_items` ### + +INSERT INTO `0_supp_invoice_tax_items` VALUES ('1', '2', '20', '1', NULL, '5', '0', '162.5'); +INSERT INTO `0_supp_invoice_tax_items` VALUES ('2', '2', '20', '2', NULL, '1', '0', '32.5'); +INSERT INTO `0_supp_invoice_tax_items` VALUES ('3', '10', '20', '3', NULL, '25', '0', '5.2'); +INSERT INTO `0_supp_invoice_tax_items` VALUES ('4', '11', '20', '3', NULL, '25', '0', '331.5'); + +### Data of table `0_supp_trans` ### + +INSERT INTO `0_supp_trans` VALUES ('2', '20', '1', '22', '22', '2006-01-18', '2006-02-22', '3250', '0', '195', '1', '3445'); +INSERT INTO `0_supp_trans` VALUES ('2', '22', '1', '1', '', '2006-01-18', '2006-01-18', '-5000', '0', '0', '1', '5000'); +INSERT INTO `0_supp_trans` VALUES ('3', '20', '1', '23', 'asdf', '2006-01-18', '2006-02-22', '26', '0', '0', '1', '26'); +INSERT INTO `0_supp_trans` VALUES ('3', '22', '2', '2', '', '2006-01-18', '2006-01-18', '-3300', '0', '0', '1.2', '0'); +INSERT INTO `0_supp_trans` VALUES ('4', '20', '1', '24', 'Himself', '2007-01-30', '2007-02-22', '17350', '0', '0', '1', '1529'); +INSERT INTO `0_supp_trans` VALUES ('5', '20', '1', '25', '6789', '2007-02-03', '2007-03-22', '6644', '0', '0', '1', '0'); +INSERT INTO `0_supp_trans` VALUES ('6', '1', '1', '5', '', '2007-03-22', '0000-00-00', '-200', '0', '0', '1', '0'); +INSERT INTO `0_supp_trans` VALUES ('6', '20', '3', '26', '333333', '2007-03-05', '2007-03-12', '200', '0', '0', '0.2', '0'); +INSERT INTO `0_supp_trans` VALUES ('7', '20', '1', '27', 'eee', '2008-03-06', '2008-04-17', '550', '0', '0', '1', '0'); +INSERT INTO `0_supp_trans` VALUES ('8', '20', '2', '28', '213', '2008-03-20', '2008-04-17', '0', '0', '0', '1.2', '0'); +INSERT INTO `0_supp_trans` VALUES ('9', '20', '2', '29', 'aaa', '2008-03-25', '2008-04-17', '10', '0', '0', '1.9816266221251', '0'); +INSERT INTO `0_supp_trans` VALUES ('10', '20', '4', '30', '12w', '2008-03-25', '2008-04-17', '20.8', '0', '5.2', '1.5569', '0'); +INSERT INTO `0_supp_trans` VALUES ('11', '20', '4', '31', 'jan', '2008-03-28', '2008-04-17', '1326', '0', '331.5', '1.5796', '0'); + +### Data of table `0_suppliers` ### + +INSERT INTO `0_suppliers` VALUES ('1', 'Ghostbusters Corp.', '', '', '123456789', 'USD', '1', '0', '0', '1', '4000', '2630', '4250'); +INSERT INTO `0_suppliers` VALUES ('2', 'Beefeater Ltd.', '', '', '987654321', 'GBP', '1', '0', '0', '2', '4000', '2630', '4250'); +INSERT INTO `0_suppliers` VALUES ('3', 'Super Trooper AB', 'Adress', 'sven@sven.sve', '123456', 'SEK', '3', '0', '0', '2', '4000', '2630', '4250'); +INSERT INTO `0_suppliers` VALUES ('4', 'Brezan', 'N/A', 'info@brezan.tv', '', 'EUR', '1', '0', '0', '1', '4010', '2630', '4250'); + +### Data of table `0_sys_types` ### + +INSERT INTO `0_sys_types` VALUES ('0', 'Journal - GL', '18', '34'); +INSERT INTO `0_sys_types` VALUES ('1', 'Payment - GL', '7', '7'); +INSERT INTO `0_sys_types` VALUES ('2', 'Receipt - GL', '4', '14'); +INSERT INTO `0_sys_types` VALUES ('4', 'Funds Transfer', '3', '6'); +INSERT INTO `0_sys_types` VALUES ('10', 'Sales Invoice', '19', '19'); +INSERT INTO `0_sys_types` VALUES ('11', 'Credit Note', '4', '4'); +INSERT INTO `0_sys_types` VALUES ('12', 'Receipt', '9', '9'); +INSERT INTO `0_sys_types` VALUES ('13', 'Delivery', '20', '9'); +INSERT INTO `0_sys_types` VALUES ('16', 'Location Transfer', '2', '2'); +INSERT INTO `0_sys_types` VALUES ('17', 'Inventory Adjustment', '2', '2'); +INSERT INTO `0_sys_types` VALUES ('18', 'Purchase Order', '1', '15'); +INSERT INTO `0_sys_types` VALUES ('20', 'Supplier Invoice', '11', '32'); +INSERT INTO `0_sys_types` VALUES ('21', 'Supplier Credit Note', '1', '2'); +INSERT INTO `0_sys_types` VALUES ('22', 'Supplier Payment', '3', '3'); +INSERT INTO `0_sys_types` VALUES ('25', 'Purchase Order Delivery', '1', '13'); +INSERT INTO `0_sys_types` VALUES ('26', 'Work Order', '1', '8'); +INSERT INTO `0_sys_types` VALUES ('28', 'Work Order Issue', '1', '2'); +INSERT INTO `0_sys_types` VALUES ('29', 'Work Order Production', '1', '201'); +INSERT INTO `0_sys_types` VALUES ('30', 'Sales Order', '1', '1'); +INSERT INTO `0_sys_types` VALUES ('35', 'Cost Update', '5', '1'); +INSERT INTO `0_sys_types` VALUES ('40', 'Dimension', '1', '3'); + +### Data of table `0_tax_group_items` ### + +INSERT INTO `0_tax_group_items` VALUES ('1', '1', '5', '0'); +INSERT INTO `0_tax_group_items` VALUES ('1', '3', '25', '0'); +INSERT INTO `0_tax_group_items` VALUES ('4', '3', '25', '0'); + +### Data of table `0_tax_groups` ### + +INSERT INTO `0_tax_groups` VALUES ('1', 'VAT', '0'); +INSERT INTO `0_tax_groups` VALUES ('2', 'Tax-Free', '0'); +INSERT INTO `0_tax_groups` VALUES ('4', 'Shipping', '1'); + +### Data of table `0_tax_types` ### + +INSERT INTO `0_tax_types` VALUES ('1', '5', '2660', '2680', 'VAT', '1'); +INSERT INTO `0_tax_types` VALUES ('2', '1', '2662', '2680', 'Manufact tax 1', '1'); +INSERT INTO `0_tax_types` VALUES ('3', '25', '2664', '2682', 'VAT', '1'); + +### Data of table `0_users` ### + +INSERT INTO `0_users` VALUES('demouser', '5f4dcc3b5aa765d61d8327deb882cf99', 'Demo User', 1, '999-999-999', 'demo@demo.nu', 'en_US', 0, 0, 0, 0, 'default', 'Letter', 2, 2, 3, 1, 1, 0, 0, '2008-02-06 19:02:35'); +INSERT INTO `0_users` VALUES('admin', '5f4dcc3b5aa765d61d8327deb882cf99', 'Administrator', 2, '', 'adm@adm.com', 'en_US', 0, 0, 0, 0, 'default', 'Letter', 2, 2, 4, 1, 1, 0, 0, '2008-03-20 10:52:46'); + +### Data of table `0_wo_issue_items` ### + +INSERT INTO `0_wo_issue_items` VALUES ('1', '102', '1', '10'); + +### Data of table `0_wo_issues` ### + +INSERT INTO `0_wo_issues` VALUES ('1', '3', '1', '2006-01-20', 'DEF', '1'); + +### Data of table `0_wo_manufacture` ### + +INSERT INTO `0_wo_manufacture` VALUES ('1', 'ab200', '3', '50', '2007-01-30'); +INSERT INTO `0_wo_manufacture` VALUES ('2', 'ab201', '5', '20', '2007-01-30'); + +### Data of table `0_wo_requirements` ### + +INSERT INTO `0_wo_requirements` VALUES ('1', '1', '102', '1', '1', '0', 'DEF', '20'); +INSERT INTO `0_wo_requirements` VALUES ('2', '1', '103', '1', '1', '0', 'DEF', '20'); +INSERT INTO `0_wo_requirements` VALUES ('3', '1', '104', '1', '1', '0', 'DEF', '20'); +INSERT INTO `0_wo_requirements` VALUES ('4', '1', '201', '1', '1', '0', 'DEF', '20'); +INSERT INTO `0_wo_requirements` VALUES ('5', '2', '102', '1', '1', '0', 'DEF', '5'); +INSERT INTO `0_wo_requirements` VALUES ('6', '2', '103', '1', '1', '0', 'DEF', '5'); +INSERT INTO `0_wo_requirements` VALUES ('7', '2', '104', '1', '1', '0', 'DEF', '5'); +INSERT INTO `0_wo_requirements` VALUES ('8', '2', '201', '1', '1', '0', 'DEF', '5'); +INSERT INTO `0_wo_requirements` VALUES ('9', '3', '102', '1', '1', '0', 'DEF', '0'); +INSERT INTO `0_wo_requirements` VALUES ('10', '3', '103', '1', '1', '0', 'DEF', '0'); +INSERT INTO `0_wo_requirements` VALUES ('11', '3', '104', '1', '1', '0', 'DEF', '0'); +INSERT INTO `0_wo_requirements` VALUES ('12', '3', '201', '1', '1', '0', 'DEF', '0'); +INSERT INTO `0_wo_requirements` VALUES ('13', '4', '102', '1', '1', '0', 'DEF', '5'); +INSERT INTO `0_wo_requirements` VALUES ('14', '4', '103', '1', '1', '0', 'DEF', '5'); +INSERT INTO `0_wo_requirements` VALUES ('15', '4', '104', '1', '1', '0', 'DEF', '5'); +INSERT INTO `0_wo_requirements` VALUES ('16', '4', '201', '1', '1', '0', 'DEF', '5'); +INSERT INTO `0_wo_requirements` VALUES ('17', '5', '102', '1', '1', '0', 'DEF', '0'); +INSERT INTO `0_wo_requirements` VALUES ('18', '5', '103', '1', '1', '0', 'DEF', '0'); +INSERT INTO `0_wo_requirements` VALUES ('19', '5', '104', '1', '1', '0', 'DEF', '0'); +INSERT INTO `0_wo_requirements` VALUES ('20', '5', '201', '1', '1', '0', 'DEF', '0'); +INSERT INTO `0_wo_requirements` VALUES ('21', '6', '102', '1', '1', '0', 'DEF', '10'); +INSERT INTO `0_wo_requirements` VALUES ('22', '6', '103', '1', '1', '0', 'DEF', '10'); +INSERT INTO `0_wo_requirements` VALUES ('23', '6', '104', '1', '1', '0', 'DEF', '10'); +INSERT INTO `0_wo_requirements` VALUES ('24', '6', '201', '1', '1', '0', 'DEF', '10'); +INSERT INTO `0_wo_requirements` VALUES ('25', '7', '102', '1', '1', '0', 'DEF', '1'); +INSERT INTO `0_wo_requirements` VALUES ('26', '7', '103', '1', '1', '0', 'DEF', '1'); +INSERT INTO `0_wo_requirements` VALUES ('27', '7', '104', '1', '1', '0', 'DEF', '1'); +INSERT INTO `0_wo_requirements` VALUES ('28', '7', '201', '1', '1', '0', 'DEF', '1'); + +### Data of table `0_workcentres` ### + +INSERT INTO `0_workcentres` VALUES ('1', 'work centre', ''); + +### Data of table `0_workorders` ### + +INSERT INTO `0_workorders` VALUES ('1', '1', 'DEF', '20', '3400', '2006-01-18', '0', '2006-01-18', '2006-01-18', '20', '1', '1', '0'); +INSERT INTO `0_workorders` VALUES ('2', '2', 'DEF', '5', '3400', '2006-01-18', '0', '2006-01-18', '2006-01-18', '5', '1', '1', '0'); +INSERT INTO `0_workorders` VALUES ('3', '3', 'DEF', '50', '3400', '2006-01-18', '2', '2006-02-07', '2006-01-20', '50', '1', '1', '0'); +INSERT INTO `0_workorders` VALUES ('4', '4', 'DEF', '5', '3400', '2007-01-30', '0', '2007-01-30', '2007-01-30', '5', '1', '1', '0'); +INSERT INTO `0_workorders` VALUES ('5', '5', 'DEF', '20', '3400', '2007-01-30', '2', '2007-02-19', '2007-01-30', '20', '1', '1', '0'); +INSERT INTO `0_workorders` VALUES ('6', '6', 'DEF', '10', '3400', '2008-02-28', '0', '2008-02-28', '2008-02-28', '10', '1', '1', '234'); +INSERT INTO `0_workorders` VALUES ('7', '7', 'DEF', '1', '3400', '2008-03-07', '0', '2008-03-07', '2008-03-07', '1', '1', '1', '0'); diff --git a/sql/en_US-new.sql b/sql/en_US-new.sql index 2a8cc246..9cd561fa 100644 --- a/sql/en_US-new.sql +++ b/sql/en_US-new.sql @@ -1,20 +1,21 @@ -- phpMyAdmin SQL Dump --- version 2.7.0-pl2 +-- version 2.11.4 -- http://www.phpmyadmin.net --- +-- -- Host: localhost --- Created: 09 februar 2007 at 11:03 --- Server Version: 4.1.11 --- PHP-version: 4.4.1 --- --- Database: `en_US-new` --- +-- Generation Time: Apr 04, 2008 at 12:35 PM +-- Server version: 5.0.45 +-- PHP Version: 5.2.4 + +-- +-- Database: `en_US-new.sql, release 2.0` +-- -- -------------------------------------------------------- --- --- Structure for table `areas` --- +-- +-- Table structure for table `0_areas` +-- DROP TABLE IF EXISTS `0_areas`; CREATE TABLE IF NOT EXISTS `0_areas` ( @@ -22,13 +23,13 @@ CREATE TABLE IF NOT EXISTS `0_areas` ( `description` varchar(60) NOT NULL default '', PRIMARY KEY (`area_code`), UNIQUE KEY `description` (`description`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=2 ; -- -------------------------------------------------------- --- --- Structure for table `bank_accounts` --- +-- +-- Table structure for table `0_bank_accounts` +-- DROP TABLE IF EXISTS `0_bank_accounts`; CREATE TABLE IF NOT EXISTS `0_bank_accounts` ( @@ -46,9 +47,9 @@ CREATE TABLE IF NOT EXISTS `0_bank_accounts` ( -- -------------------------------------------------------- --- --- Structure for table `bank_trans` --- +-- +-- Table structure for table `0_bank_trans` +-- DROP TABLE IF EXISTS `0_bank_trans`; CREATE TABLE IF NOT EXISTS `0_bank_trans` ( @@ -67,13 +68,13 @@ CREATE TABLE IF NOT EXISTS `0_bank_trans` ( PRIMARY KEY (`id`), KEY `bank_act` (`bank_act`,`ref`), KEY `type` (`type`,`trans_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `bank_trans_types` --- +-- +-- Table structure for table `0_bank_trans_types` +-- DROP TABLE IF EXISTS `0_bank_trans_types`; CREATE TABLE IF NOT EXISTS `0_bank_trans_types` ( @@ -81,20 +82,20 @@ CREATE TABLE IF NOT EXISTS `0_bank_trans_types` ( `name` varchar(60) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=3 ; -- -------------------------------------------------------- --- --- Structure for table `bom` --- +-- +-- Table structure for table `0_bom` +-- DROP TABLE IF EXISTS `0_bom`; CREATE TABLE IF NOT EXISTS `0_bom` ( `id` int(11) NOT NULL auto_increment, `parent` char(20) NOT NULL default '', `component` char(20) NOT NULL default '', - `workcentre_added` char(5) NOT NULL default '', + `workcentre_added` int(11) NOT NULL default '0', `loc_code` char(5) NOT NULL default '', `quantity` double NOT NULL default '1', PRIMARY KEY (`parent`,`component`,`workcentre_added`,`loc_code`), @@ -104,13 +105,13 @@ CREATE TABLE IF NOT EXISTS `0_bom` ( KEY `parent` (`parent`,`loc_code`), KEY `Parent_2` (`parent`), KEY `workcentre_added` (`workcentre_added`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `budget_trans` --- +-- +-- Table structure for table `0_budget_trans` +-- DROP TABLE IF EXISTS `0_budget_trans`; CREATE TABLE IF NOT EXISTS `0_budget_trans` ( @@ -127,13 +128,13 @@ CREATE TABLE IF NOT EXISTS `0_budget_trans` ( `person_id` tinyblob, PRIMARY KEY (`counter`), KEY `Type_and_Number` (`type`,`type_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `chart_class` --- +-- +-- Table structure for table `0_chart_class` +-- DROP TABLE IF EXISTS `0_chart_class`; CREATE TABLE IF NOT EXISTS `0_chart_class` ( @@ -145,9 +146,9 @@ CREATE TABLE IF NOT EXISTS `0_chart_class` ( -- -------------------------------------------------------- --- --- Structure for table `chart_master` --- +-- +-- Table structure for table `0_chart_master` +-- DROP TABLE IF EXISTS `0_chart_master`; CREATE TABLE IF NOT EXISTS `0_chart_master` ( @@ -163,9 +164,9 @@ CREATE TABLE IF NOT EXISTS `0_chart_master` ( -- -------------------------------------------------------- --- --- Structure for table `chart_types` --- +-- +-- Table structure for table `0_chart_types` +-- DROP TABLE IF EXISTS `0_chart_types`; CREATE TABLE IF NOT EXISTS `0_chart_types` ( @@ -175,13 +176,13 @@ CREATE TABLE IF NOT EXISTS `0_chart_types` ( `parent` int(11) NOT NULL default '-1', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=53 ; -- -------------------------------------------------------- --- --- Structure for table `comments` --- +-- +-- Table structure for table `0_comments` +-- DROP TABLE IF EXISTS `0_comments`; CREATE TABLE IF NOT EXISTS `0_comments` ( @@ -193,9 +194,9 @@ CREATE TABLE IF NOT EXISTS `0_comments` ( -- -------------------------------------------------------- --- --- Structure for table `company` --- +-- +-- Table structure for table `0_company` +-- DROP TABLE IF EXISTS `0_company`; CREATE TABLE IF NOT EXISTS `0_company` ( @@ -244,17 +245,18 @@ CREATE TABLE IF NOT EXISTS `0_company` ( `past_due_days` int(11) NOT NULL default '30', `use_dimension` tinyint(1) default '0', `f_year` int(11) NOT NULL default '1', - `no_item_list` TINYINT(1) NOT NULL DEFAULT '0', - `no_customer_list` TINYINT(1) NOT NULL DEFAULT '0', - `no_supplier_list` TINYINT(1) NOT NULL DEFAULT '0', + `no_item_list` tinyint(1) NOT NULL default '0', + `no_customer_list` tinyint(1) NOT NULL default '0', + `no_supplier_list` tinyint(1) NOT NULL default '0', + `base_sales` int(11) NOT NULL default '-1', PRIMARY KEY (`coy_code`) ) TYPE=MyISAM; -- -------------------------------------------------------- --- --- Structure for table `credit_status` --- +-- +-- Table structure for table `0_credit_status` +-- DROP TABLE IF EXISTS `0_credit_status`; CREATE TABLE IF NOT EXISTS `0_credit_status` ( @@ -263,13 +265,13 @@ CREATE TABLE IF NOT EXISTS `0_credit_status` ( `dissallow_invoices` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `reason_description` (`reason_description`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=5 ; -- -------------------------------------------------------- --- --- Structure for table `currencies` --- +-- +-- Table structure for table `0_currencies` +-- DROP TABLE IF EXISTS `0_currencies`; CREATE TABLE IF NOT EXISTS `0_currencies` ( @@ -283,9 +285,9 @@ CREATE TABLE IF NOT EXISTS `0_currencies` ( -- -------------------------------------------------------- --- --- Structure for table `cust_allocations` --- +-- +-- Table structure for table `0_cust_allocations` +-- DROP TABLE IF EXISTS `0_cust_allocations`; CREATE TABLE IF NOT EXISTS `0_cust_allocations` ( @@ -297,13 +299,13 @@ CREATE TABLE IF NOT EXISTS `0_cust_allocations` ( `trans_no_to` int(11) default NULL, `trans_type_to` int(11) default NULL, PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `cust_branch` --- +-- +-- Table structure for table `0_cust_branch` +-- DROP TABLE IF EXISTS `0_cust_branch`; CREATE TABLE IF NOT EXISTS `0_cust_branch` ( @@ -329,18 +331,45 @@ CREATE TABLE IF NOT EXISTS `0_cust_branch` ( PRIMARY KEY (`branch_code`,`debtor_no`), KEY `branch_code` (`branch_code`), KEY `br_name` (`br_name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_debtors_master` +-- + +DROP TABLE IF EXISTS `0_debtors_master`; +CREATE TABLE IF NOT EXISTS `0_debtors_master` ( + `debtor_no` int(11) NOT NULL auto_increment, + `name` varchar(60) NOT NULL default '', + `address` tinytext, + `email` varchar(100) NOT NULL default '', + `tax_id` varchar(55) NOT NULL default '', + `curr_code` char(3) NOT NULL default '', + `sales_type` int(11) NOT NULL default '1', + `dimension_id` int(11) NOT NULL default '0', + `dimension2_id` int(11) NOT NULL default '0', + `credit_status` int(11) NOT NULL default '0', + `payment_terms` int(11) default NULL, + `discount` double NOT NULL default '0', + `pymt_discount` double NOT NULL default '0', + `credit_limit` float NOT NULL default '1000', + PRIMARY KEY (`debtor_no`), + UNIQUE KEY `name` (`name`) +) TYPE=MyISAM AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `debtor_trans` --- +-- +-- Table structure for table `0_debtor_trans` +-- DROP TABLE IF EXISTS `0_debtor_trans`; CREATE TABLE IF NOT EXISTS `0_debtor_trans` ( `trans_no` int(11) unsigned NOT NULL default '0', `type` smallint(6) unsigned NOT NULL default '0', + `version` tinyint(1) unsigned NOT NULL default '0', `debtor_no` int(11) unsigned default NULL, `branch_code` int(11) NOT NULL default '-1', `tran_date` date NOT NULL default '0000-00-00', @@ -351,19 +380,21 @@ CREATE TABLE IF NOT EXISTS `0_debtor_trans` ( `ov_amount` double NOT NULL default '0', `ov_gst` double NOT NULL default '0', `ov_freight` double NOT NULL default '0', + `ov_freight_tax` double NOT NULL default '0', `ov_discount` double NOT NULL default '0', `alloc` double NOT NULL default '0', `rate` double NOT NULL default '1', `ship_via` int(11) default NULL, + `trans_link` int(11) NOT NULL default '0', PRIMARY KEY (`trans_no`,`type`), KEY `debtor_no` (`debtor_no`,`branch_code`) ) TYPE=InnoDB; -- -------------------------------------------------------- --- --- Structure for table `debtor_trans_details` --- +-- +-- Table structure for table `0_debtor_trans_details` +-- DROP TABLE IF EXISTS `0_debtor_trans_details`; CREATE TABLE IF NOT EXISTS `0_debtor_trans_details` ( @@ -377,14 +408,15 @@ CREATE TABLE IF NOT EXISTS `0_debtor_trans_details` ( `quantity` double NOT NULL default '0', `discount_percent` double NOT NULL default '0', `standard_cost` double NOT NULL default '0', + `qty_done` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `debtor_trans_tax_details` --- +-- +-- Table structure for table `0_debtor_trans_tax_details` +-- DROP TABLE IF EXISTS `0_debtor_trans_tax_details`; CREATE TABLE IF NOT EXISTS `0_debtor_trans_tax_details` ( @@ -397,39 +429,13 @@ CREATE TABLE IF NOT EXISTS `0_debtor_trans_tax_details` ( `included_in_price` tinyint(1) NOT NULL default '0', `amount` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `debtors_master` --- - -DROP TABLE IF EXISTS `0_debtors_master`; -CREATE TABLE IF NOT EXISTS `0_debtors_master` ( - `debtor_no` int(11) NOT NULL auto_increment, - `name` varchar(60) NOT NULL default '', - `address` tinytext, - `email` varchar(100) NOT NULL default '', - `tax_id` varchar(55) NOT NULL default '', - `curr_code` char(3) NOT NULL default '', - `sales_type` int(11) NOT NULL default '1', - `dimension_id` int(11) NOT NULL default '0', - `dimension2_id` int(11) NOT NULL default '0', - `credit_status` int(11) NOT NULL default '0', - `payment_terms` int(11) default NULL, - `discount` double NOT NULL default '0', - `pymt_discount` double NOT NULL default '0', - `credit_limit` float NOT NULL default '1000', - PRIMARY KEY (`debtor_no`), - UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `dimensions` --- +-- +-- Table structure for table `0_dimensions` +-- DROP TABLE IF EXISTS `0_dimensions`; CREATE TABLE IF NOT EXISTS `0_dimensions` ( @@ -442,13 +448,13 @@ CREATE TABLE IF NOT EXISTS `0_dimensions` ( `due_date` date NOT NULL default '0000-00-00', PRIMARY KEY (`id`), UNIQUE KEY `reference` (`reference`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `exchange_rates` --- +-- +-- Table structure for table `0_exchange_rates` +-- DROP TABLE IF EXISTS `0_exchange_rates`; CREATE TABLE IF NOT EXISTS `0_exchange_rates` ( @@ -459,13 +465,13 @@ CREATE TABLE IF NOT EXISTS `0_exchange_rates` ( `date_` date NOT NULL default '0000-00-00', PRIMARY KEY (`id`), UNIQUE KEY `curr_code` (`curr_code`,`date_`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `fiscal_year` --- +-- +-- Table structure for table `0_fiscal_year` +-- DROP TABLE IF EXISTS `0_fiscal_year`; CREATE TABLE IF NOT EXISTS `0_fiscal_year` ( @@ -474,30 +480,13 @@ CREATE TABLE IF NOT EXISTS `0_fiscal_year` ( `end` date default '0000-00-00', `closed` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=2 ; -- -------------------------------------------------------- --- --- Structure for table `form_items` --- - -DROP TABLE IF EXISTS `0_form_items`; -CREATE TABLE IF NOT EXISTS `0_form_items` ( - `form_id` int(11) NOT NULL default '0', - `form_type` int(11) NOT NULL default '0', - `trans_type` int(11) NOT NULL default '0', - `trans_id` int(11) NOT NULL default '0', - `param1` varchar(100) NOT NULL default '', - `param2` varchar(100) default NULL, - PRIMARY KEY (`form_id`,`form_type`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `gl_trans` --- +-- +-- Table structure for table `0_gl_trans` +-- DROP TABLE IF EXISTS `0_gl_trans`; CREATE TABLE IF NOT EXISTS `0_gl_trans` ( @@ -514,13 +503,13 @@ CREATE TABLE IF NOT EXISTS `0_gl_trans` ( `person_id` tinyblob, PRIMARY KEY (`counter`), KEY `Type_and_Number` (`type`,`type_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `grn_batch` --- +-- +-- Table structure for table `0_grn_batch` +-- DROP TABLE IF EXISTS `0_grn_batch`; CREATE TABLE IF NOT EXISTS `0_grn_batch` ( @@ -531,13 +520,13 @@ CREATE TABLE IF NOT EXISTS `0_grn_batch` ( `delivery_date` date NOT NULL default '0000-00-00', `loc_code` varchar(5) default NULL, PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `grn_items` --- +-- +-- Table structure for table `0_grn_items` +-- DROP TABLE IF EXISTS `0_grn_items`; CREATE TABLE IF NOT EXISTS `0_grn_items` ( @@ -549,26 +538,13 @@ CREATE TABLE IF NOT EXISTS `0_grn_items` ( `qty_recd` double NOT NULL default '0', `quantity_inv` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `item_tax_type_exemptions` --- - -DROP TABLE IF EXISTS `0_item_tax_type_exemptions`; -CREATE TABLE IF NOT EXISTS `0_item_tax_type_exemptions` ( - `item_tax_type_id` int(11) NOT NULL default '0', - `tax_type_id` int(11) NOT NULL default '0', - PRIMARY KEY (`item_tax_type_id`,`tax_type_id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `item_tax_types` --- +-- +-- Table structure for table `0_item_tax_types` +-- DROP TABLE IF EXISTS `0_item_tax_types`; CREATE TABLE IF NOT EXISTS `0_item_tax_types` ( @@ -577,28 +553,41 @@ CREATE TABLE IF NOT EXISTS `0_item_tax_types` ( `exempt` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `loc_stock` --- +-- +-- Table structure for table `0_item_tax_type_exemptions` +-- -DROP TABLE IF EXISTS `0_loc_stock`; -CREATE TABLE IF NOT EXISTS `0_loc_stock` ( - `loc_code` char(5) NOT NULL default '', - `stock_id` char(20) NOT NULL default '', - `reorder_level` bigint(20) NOT NULL default '0', - PRIMARY KEY (`loc_code`,`stock_id`), - KEY `stock_id` (`stock_id`) +DROP TABLE IF EXISTS `0_item_tax_type_exemptions`; +CREATE TABLE IF NOT EXISTS `0_item_tax_type_exemptions` ( + `item_tax_type_id` int(11) NOT NULL default '0', + `tax_type_id` int(11) NOT NULL default '0', + PRIMARY KEY (`item_tax_type_id`,`tax_type_id`) ) TYPE=InnoDB; -- -------------------------------------------------------- --- --- Structure for table `locations` --- +-- +-- Table structure for table `0_item_units` +-- + +DROP TABLE IF EXISTS `0_item_units`; +CREATE TABLE IF NOT EXISTS `0_item_units` ( + `abbr` varchar(20) NOT NULL, + `name` varchar(40) NOT NULL, + `decimals` tinyint(2) NOT NULL, + PRIMARY KEY (`abbr`), + UNIQUE KEY `name` (`name`) +) TYPE=MyISAM; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_locations` +-- DROP TABLE IF EXISTS `0_locations`; CREATE TABLE IF NOT EXISTS `0_locations` ( @@ -614,9 +603,24 @@ CREATE TABLE IF NOT EXISTS `0_locations` ( -- -------------------------------------------------------- --- --- Structure for table `movement_types` --- +-- +-- Table structure for table `0_loc_stock` +-- + +DROP TABLE IF EXISTS `0_loc_stock`; +CREATE TABLE IF NOT EXISTS `0_loc_stock` ( + `loc_code` char(5) NOT NULL default '', + `stock_id` char(20) NOT NULL default '', + `reorder_level` bigint(20) NOT NULL default '0', + PRIMARY KEY (`loc_code`,`stock_id`), + KEY `stock_id` (`stock_id`) +) TYPE=InnoDB; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_movement_types` +-- DROP TABLE IF EXISTS `0_movement_types`; CREATE TABLE IF NOT EXISTS `0_movement_types` ( @@ -624,13 +628,13 @@ CREATE TABLE IF NOT EXISTS `0_movement_types` ( `name` varchar(60) NOT NULL default '', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=2 ; -- -------------------------------------------------------- --- --- Structure for table `payment_terms` --- +-- +-- Table structure for table `0_payment_terms` +-- DROP TABLE IF EXISTS `0_payment_terms`; CREATE TABLE IF NOT EXISTS `0_payment_terms` ( @@ -640,13 +644,13 @@ CREATE TABLE IF NOT EXISTS `0_payment_terms` ( `day_in_following_month` smallint(6) NOT NULL default '0', PRIMARY KEY (`terms_indicator`), UNIQUE KEY `terms` (`terms`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=5 ; -- -------------------------------------------------------- --- --- Structure for table `prices` --- +-- +-- Table structure for table `0_prices` +-- DROP TABLE IF EXISTS `0_prices`; CREATE TABLE IF NOT EXISTS `0_prices` ( @@ -657,13 +661,13 @@ CREATE TABLE IF NOT EXISTS `0_prices` ( `price` double NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `price` (`stock_id`,`sales_type_id`,`curr_abrev`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `purch_data` --- +-- +-- Table structure for table `0_purch_data` +-- DROP TABLE IF EXISTS `0_purch_data`; CREATE TABLE IF NOT EXISTS `0_purch_data` ( @@ -678,9 +682,28 @@ CREATE TABLE IF NOT EXISTS `0_purch_data` ( -- -------------------------------------------------------- --- --- Structure for table `purch_order_details` --- +-- +-- Table structure for table `0_purch_orders` +-- + +DROP TABLE IF EXISTS `0_purch_orders`; +CREATE TABLE IF NOT EXISTS `0_purch_orders` ( + `order_no` int(11) NOT NULL auto_increment, + `supplier_id` int(11) NOT NULL default '0', + `comments` tinytext, + `ord_date` date NOT NULL default '0000-00-00', + `reference` tinytext NOT NULL, + `requisition_no` tinytext, + `into_stock_location` varchar(5) NOT NULL default '', + `delivery_address` tinytext NOT NULL, + PRIMARY KEY (`order_no`) +) TYPE=InnoDB AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_purch_order_details` +-- DROP TABLE IF EXISTS `0_purch_order_details`; CREATE TABLE IF NOT EXISTS `0_purch_order_details` ( @@ -696,32 +719,13 @@ CREATE TABLE IF NOT EXISTS `0_purch_order_details` ( `quantity_ordered` double NOT NULL default '0', `quantity_received` double NOT NULL default '0', PRIMARY KEY (`po_detail_item`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `purch_orders` --- - -DROP TABLE IF EXISTS `0_purch_orders`; -CREATE TABLE IF NOT EXISTS `0_purch_orders` ( - `order_no` int(11) NOT NULL auto_increment, - `supplier_id` int(11) NOT NULL default '0', - `comments` tinytext, - `ord_date` date NOT NULL default '0000-00-00', - `reference` tinytext NOT NULL, - `requisition_no` tinytext, - `into_stock_location` varchar(5) NOT NULL default '', - `delivery_address` tinytext NOT NULL, - PRIMARY KEY (`order_no`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `refs` --- +-- +-- Table structure for table `0_refs` +-- DROP TABLE IF EXISTS `0_refs`; CREATE TABLE IF NOT EXISTS `0_refs` ( @@ -733,31 +737,35 @@ CREATE TABLE IF NOT EXISTS `0_refs` ( -- -------------------------------------------------------- --- --- Structure for table `sales_order_details` --- +-- +-- Table structure for table `0_salesman` +-- -DROP TABLE IF EXISTS `0_sales_order_details`; -CREATE TABLE IF NOT EXISTS `0_sales_order_details` ( - `order_no` int(11) NOT NULL default '0', - `stk_code` varchar(20) NOT NULL default '', - `description` tinytext, - `qty_invoiced` double NOT NULL default '0', - `unit_price` double NOT NULL default '0', - `quantity` double NOT NULL default '0', - `discount_percent` double NOT NULL default '0', - PRIMARY KEY (`order_no`,`stk_code`) -) TYPE=InnoDB; +DROP TABLE IF EXISTS `0_salesman`; +CREATE TABLE IF NOT EXISTS `0_salesman` ( + `salesman_code` int(11) NOT NULL auto_increment, + `salesman_name` char(60) NOT NULL default '', + `salesman_phone` char(30) NOT NULL default '', + `salesman_fax` char(30) NOT NULL default '', + `salesman_email` varchar(100) NOT NULL default '', + `provision` double NOT NULL default '0', + `break_pt` double NOT NULL default '0', + `provision2` double NOT NULL default '0', + PRIMARY KEY (`salesman_code`), + UNIQUE KEY `salesman_name` (`salesman_name`) +) TYPE=MyISAM AUTO_INCREMENT=2 ; -- -------------------------------------------------------- --- --- Structure for table `sales_orders` --- +-- +-- Table structure for table `0_sales_orders` +-- DROP TABLE IF EXISTS `0_sales_orders`; CREATE TABLE IF NOT EXISTS `0_sales_orders` ( `order_no` int(11) NOT NULL auto_increment, + `version` tinyint(1) unsigned NOT NULL default '0', + `type` tinyint(1) NOT NULL default '0', `debtor_no` int(11) NOT NULL default '0', `branch_code` int(11) NOT NULL default '0', `customer_ref` tinytext NOT NULL, @@ -773,44 +781,48 @@ CREATE TABLE IF NOT EXISTS `0_sales_orders` ( `from_stk_loc` varchar(5) NOT NULL default '', `delivery_date` date NOT NULL default '0000-00-00', PRIMARY KEY (`order_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_sales_order_details` +-- + +DROP TABLE IF EXISTS `0_sales_order_details`; +CREATE TABLE IF NOT EXISTS `0_sales_order_details` ( + `id` int(11) NOT NULL auto_increment, + `order_no` int(11) NOT NULL default '0', + `stk_code` varchar(20) NOT NULL default '', + `description` tinytext, + `qty_sent` double NOT NULL default '0', + `unit_price` double NOT NULL default '0', + `quantity` double NOT NULL default '0', + `discount_percent` double NOT NULL default '0', + PRIMARY KEY (`id`) +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `sales_types` --- +-- +-- Table structure for table `0_sales_types` +-- DROP TABLE IF EXISTS `0_sales_types`; CREATE TABLE IF NOT EXISTS `0_sales_types` ( `id` int(11) NOT NULL auto_increment, `sales_type` char(50) NOT NULL default '', + `tax_included` int(1) NOT NULL default '0', + `factor` double NOT NULL default '1', PRIMARY KEY (`id`), UNIQUE KEY `sales_type` (`sales_type`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `salesman` --- - -DROP TABLE IF EXISTS `0_salesman`; -CREATE TABLE IF NOT EXISTS `0_salesman` ( - `salesman_code` int(11) NOT NULL auto_increment, - `salesman_name` char(60) NOT NULL default '', - `salesman_phone` char(30) NOT NULL default '', - `salesman_fax` char(30) NOT NULL default '', - `salesman_email` varchar(100) NOT NULL default '', - PRIMARY KEY (`salesman_code`), - UNIQUE KEY `salesman_name` (`salesman_name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=3 ; -- -------------------------------------------------------- --- --- Structure for table `shippers` --- +-- +-- Table structure for table `0_shippers` +-- DROP TABLE IF EXISTS `0_shippers`; CREATE TABLE IF NOT EXISTS `0_shippers` ( @@ -821,13 +833,13 @@ CREATE TABLE IF NOT EXISTS `0_shippers` ( `address` tinytext NOT NULL, PRIMARY KEY (`shipper_id`), UNIQUE KEY `name` (`shipper_name`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=2 ; -- -------------------------------------------------------- --- --- Structure for table `stock_category` --- +-- +-- Table structure for table `0_stock_category` +-- DROP TABLE IF EXISTS `0_stock_category`; CREATE TABLE IF NOT EXISTS `0_stock_category` ( @@ -839,13 +851,13 @@ CREATE TABLE IF NOT EXISTS `0_stock_category` ( `purch_price_var_act` varchar(11) default NULL, PRIMARY KEY (`category_id`), UNIQUE KEY `description` (`description`) -) TYPE=MyISAM; +) TYPE=MyISAM AUTO_INCREMENT=5 ; -- -------------------------------------------------------- --- --- Structure for table `stock_master` --- +-- +-- Table structure for table `0_stock_master` +-- DROP TABLE IF EXISTS `0_stock_master`; CREATE TABLE IF NOT EXISTS `0_stock_master` ( @@ -873,9 +885,9 @@ CREATE TABLE IF NOT EXISTS `0_stock_master` ( -- -------------------------------------------------------- --- --- Structure for table `stock_moves` --- +-- +-- Table structure for table `0_stock_moves` +-- DROP TABLE IF EXISTS `0_stock_moves`; CREATE TABLE IF NOT EXISTS `0_stock_moves` ( @@ -894,13 +906,37 @@ CREATE TABLE IF NOT EXISTS `0_stock_moves` ( `visible` tinyint(1) NOT NULL default '1', PRIMARY KEY (`trans_id`), KEY `type` (`type`,`trans_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_suppliers` +-- + +DROP TABLE IF EXISTS `0_suppliers`; +CREATE TABLE IF NOT EXISTS `0_suppliers` ( + `supplier_id` int(11) NOT NULL auto_increment, + `supp_name` varchar(60) NOT NULL default '', + `address` tinytext NOT NULL, + `email` varchar(100) NOT NULL default '', + `bank_account` varchar(60) NOT NULL default '', + `curr_code` char(3) default NULL, + `payment_terms` int(11) default NULL, + `dimension_id` int(11) default '0', + `dimension2_id` int(11) default '0', + `tax_group_id` int(11) default NULL, + `purchase_account` varchar(11) default NULL, + `payable_account` varchar(11) default NULL, + `payment_discount_account` varchar(11) default NULL, + PRIMARY KEY (`supplier_id`) +) TYPE=MyISAM AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `supp_allocations` --- +-- +-- Table structure for table `0_supp_allocations` +-- DROP TABLE IF EXISTS `0_supp_allocations`; CREATE TABLE IF NOT EXISTS `0_supp_allocations` ( @@ -912,20 +948,20 @@ CREATE TABLE IF NOT EXISTS `0_supp_allocations` ( `trans_no_to` int(11) default NULL, `trans_type_to` int(11) default NULL, PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `supp_invoice_items` --- +-- +-- Table structure for table `0_supp_invoice_items` +-- DROP TABLE IF EXISTS `0_supp_invoice_items`; CREATE TABLE IF NOT EXISTS `0_supp_invoice_items` ( `id` int(11) NOT NULL auto_increment, `supp_trans_no` int(11) default NULL, `supp_trans_type` int(11) default NULL, - `gl_code` int(11) NOT NULL default '0', + `gl_code` varchar(11) NOT NULL default '0', `grn_item_id` int(11) default NULL, `po_detail_item_id` int(11) default NULL, `stock_id` varchar(20) NOT NULL default '', @@ -935,13 +971,13 @@ CREATE TABLE IF NOT EXISTS `0_supp_invoice_items` ( `unit_tax` double NOT NULL default '0', `memo_` tinytext, PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `supp_invoice_tax_items` --- +-- +-- Table structure for table `0_supp_invoice_tax_items` +-- DROP TABLE IF EXISTS `0_supp_invoice_tax_items`; CREATE TABLE IF NOT EXISTS `0_supp_invoice_tax_items` ( @@ -954,13 +990,13 @@ CREATE TABLE IF NOT EXISTS `0_supp_invoice_tax_items` ( `included_in_price` tinyint(1) NOT NULL default '0', `amount` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `supp_trans` --- +-- +-- Table structure for table `0_supp_trans` +-- DROP TABLE IF EXISTS `0_supp_trans`; CREATE TABLE IF NOT EXISTS `0_supp_trans` ( @@ -984,33 +1020,9 @@ CREATE TABLE IF NOT EXISTS `0_supp_trans` ( -- -------------------------------------------------------- --- --- Structure for table `suppliers` --- - -DROP TABLE IF EXISTS `0_suppliers`; -CREATE TABLE IF NOT EXISTS `0_suppliers` ( - `supplier_id` int(11) NOT NULL auto_increment, - `supp_name` varchar(60) NOT NULL default '', - `address` tinytext NOT NULL, - `email` varchar(100) NOT NULL default '', - `bank_account` varchar(60) NOT NULL default '', - `curr_code` char(3) default NULL, - `payment_terms` int(11) default NULL, - `dimension_id` int(11) default '0', - `dimension2_id` int(11) default '0', - `tax_group_id` int(11) default NULL, - `purchase_account` varchar(11) default NULL, - `payable_account` varchar(11) default NULL, - `payment_discount_account` varchar(11) default NULL, - PRIMARY KEY (`supplier_id`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `sys_types` --- +-- +-- Table structure for table `0_sys_types` +-- DROP TABLE IF EXISTS `0_sys_types`; CREATE TABLE IF NOT EXISTS `0_sys_types` ( @@ -1023,24 +1035,9 @@ CREATE TABLE IF NOT EXISTS `0_sys_types` ( -- -------------------------------------------------------- --- --- Structure for table `tax_group_items` --- - -DROP TABLE IF EXISTS `0_tax_group_items`; -CREATE TABLE IF NOT EXISTS `0_tax_group_items` ( - `tax_group_id` int(11) NOT NULL default '0', - `tax_type_id` int(11) NOT NULL default '0', - `rate` double NOT NULL default '0', - `included_in_price` tinyint(1) NOT NULL default '0', - PRIMARY KEY (`tax_group_id`,`tax_type_id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `tax_groups` --- +-- +-- Table structure for table `0_tax_groups` +-- DROP TABLE IF EXISTS `0_tax_groups`; CREATE TABLE IF NOT EXISTS `0_tax_groups` ( @@ -1049,13 +1046,27 @@ CREATE TABLE IF NOT EXISTS `0_tax_groups` ( `tax_shipping` tinyint(1) NOT NULL default '0', PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) +) TYPE=InnoDB AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_tax_group_items` +-- + +DROP TABLE IF EXISTS `0_tax_group_items`; +CREATE TABLE IF NOT EXISTS `0_tax_group_items` ( + `tax_group_id` int(11) NOT NULL default '0', + `tax_type_id` int(11) NOT NULL default '0', + `rate` double NOT NULL default '0', + PRIMARY KEY (`tax_group_id`,`tax_type_id`) ) TYPE=InnoDB; -- -------------------------------------------------------- --- --- Structure for table `tax_types` --- +-- +-- Table structure for table `0_tax_types` +-- DROP TABLE IF EXISTS `0_tax_types`; CREATE TABLE IF NOT EXISTS `0_tax_types` ( @@ -1064,16 +1075,15 @@ CREATE TABLE IF NOT EXISTS `0_tax_types` ( `sales_gl_code` varchar(11) NOT NULL default '', `purchasing_gl_code` varchar(11) NOT NULL default '', `name` varchar(60) NOT NULL default '', - `out` tinyint(1) NOT NULL default '1', PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=InnoDB; + UNIQUE KEY `name` (`name`,`rate`) +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `users` --- +-- +-- Table structure for table `0_users` +-- DROP TABLE IF EXISTS `0_users`; CREATE TABLE IF NOT EXISTS `0_users` ( @@ -1096,15 +1106,16 @@ CREATE TABLE IF NOT EXISTS `0_users` ( `percent_dec` smallint(6) NOT NULL default '1', `show_gl` tinyint(1) NOT NULL default '1', `show_codes` tinyint(1) NOT NULL default '0', + `show_hints` tinyint(1) NOT NULL default '0', `last_visit_date` datetime default NULL, PRIMARY KEY (`user_id`) ) TYPE=MyISAM; -- -------------------------------------------------------- --- --- Structure for table `voided` --- +-- +-- Table structure for table `0_voided` +-- DROP TABLE IF EXISTS `0_voided`; CREATE TABLE IF NOT EXISTS `0_voided` ( @@ -1117,24 +1128,49 @@ CREATE TABLE IF NOT EXISTS `0_voided` ( -- -------------------------------------------------------- --- --- Structure for table `wo_issue_items` --- +-- +-- Table structure for table `0_workcentres` +-- -DROP TABLE IF EXISTS `0_wo_issue_items`; -CREATE TABLE IF NOT EXISTS `0_wo_issue_items` ( +DROP TABLE IF EXISTS `0_workcentres`; +CREATE TABLE IF NOT EXISTS `0_workcentres` ( `id` int(11) NOT NULL auto_increment, - `stock_id` varchar(40) default NULL, - `issue_id` int(11) default NULL, - `qty_issued` double default NULL, - PRIMARY KEY (`id`) -) TYPE=InnoDB; + `name` char(40) NOT NULL default '', + `description` char(50) NOT NULL default '', + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`) +) TYPE=MyISAM AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_workorders` +-- + +DROP TABLE IF EXISTS `0_workorders`; +CREATE TABLE IF NOT EXISTS `0_workorders` ( + `id` int(11) NOT NULL auto_increment, + `wo_ref` varchar(60) NOT NULL default '', + `loc_code` varchar(5) NOT NULL default '', + `units_reqd` double NOT NULL default '1', + `stock_id` varchar(20) NOT NULL default '', + `date_` date NOT NULL default '0000-00-00', + `type` tinyint(4) NOT NULL default '0', + `required_by` date NOT NULL default '0000-00-00', + `released_date` date NOT NULL default '0000-00-00', + `units_issued` double NOT NULL default '0', + `closed` tinyint(1) NOT NULL default '0', + `released` tinyint(1) NOT NULL default '0', + `additional_costs` double NOT NULL default '0', + PRIMARY KEY (`id`), + UNIQUE KEY `wo_ref` (`wo_ref`) +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `wo_issues` --- +-- +-- Table structure for table `0_wo_issues` +-- DROP TABLE IF EXISTS `0_wo_issues`; CREATE TABLE IF NOT EXISTS `0_wo_issues` ( @@ -1145,13 +1181,28 @@ CREATE TABLE IF NOT EXISTS `0_wo_issues` ( `loc_code` varchar(5) default NULL, `workcentre_id` int(11) default NULL, PRIMARY KEY (`issue_no`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `wo_manufacture` --- +-- +-- Table structure for table `0_wo_issue_items` +-- + +DROP TABLE IF EXISTS `0_wo_issue_items`; +CREATE TABLE IF NOT EXISTS `0_wo_issue_items` ( + `id` int(11) NOT NULL auto_increment, + `stock_id` varchar(40) default NULL, + `issue_id` int(11) default NULL, + `qty_issued` double default NULL, + PRIMARY KEY (`id`) +) TYPE=InnoDB AUTO_INCREMENT=1 ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `0_wo_manufacture` +-- DROP TABLE IF EXISTS `0_wo_manufacture`; CREATE TABLE IF NOT EXISTS `0_wo_manufacture` ( @@ -1161,269 +1212,234 @@ CREATE TABLE IF NOT EXISTS `0_wo_manufacture` ( `quantity` double NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', PRIMARY KEY (`id`) -) TYPE=InnoDB; +) TYPE=InnoDB AUTO_INCREMENT=1 ; -- -------------------------------------------------------- --- --- Structure for table `wo_requirements` --- +-- +-- Table structure for table `0_wo_requirements` +-- DROP TABLE IF EXISTS `0_wo_requirements`; CREATE TABLE IF NOT EXISTS `0_wo_requirements` ( `id` int(11) NOT NULL auto_increment, `workorder_id` int(11) NOT NULL default '0', `stock_id` char(20) NOT NULL default '', - `workcentre` char(5) NOT NULL default '', + `workcentre` int(11) NOT NULL default '0', `units_req` double NOT NULL default '1', `std_cost` double NOT NULL default '0', `loc_code` char(5) NOT NULL default '', `units_issued` double NOT NULL default '0', PRIMARY KEY (`id`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Structure for table `workcentres` --- - -DROP TABLE IF EXISTS `0_workcentres`; -CREATE TABLE IF NOT EXISTS `0_workcentres` ( - `id` int(11) NOT NULL auto_increment, - `name` char(40) NOT NULL default '', - `description` char(50) NOT NULL default '', - PRIMARY KEY (`id`), - UNIQUE KEY `name` (`name`) -) TYPE=MyISAM; - --- -------------------------------------------------------- - --- --- Structure for table `workorders` --- - -DROP TABLE IF EXISTS `0_workorders`; -CREATE TABLE IF NOT EXISTS `0_workorders` ( - `id` int(11) NOT NULL auto_increment, - `wo_ref` varchar(60) NOT NULL default '', - `loc_code` varchar(5) NOT NULL default '', - `units_reqd` double NOT NULL default '1', - `stock_id` varchar(20) NOT NULL default '', - `date_` date NOT NULL default '0000-00-00', - `type` tinyint(4) NOT NULL default '0', - `required_by` date NOT NULL default '0000-00-00', - `released_date` date NOT NULL default '0000-00-00', - `units_issued` double NOT NULL default '0', - `closed` tinyint(1) NOT NULL default '0', - `released` tinyint(1) NOT NULL default '0', - `additional_costs` double NOT NULL default '0', - PRIMARY KEY (`id`), - UNIQUE KEY `wo_ref` (`wo_ref`) -) TYPE=InnoDB; - --- -------------------------------------------------------- - --- --- Data in table `areas` --- - -INSERT INTO `0_areas` VALUES (1, 'USA'); - --- --- Data in table `bank_accounts` --- - -INSERT INTO `0_bank_accounts` VALUES ('1700', 0, 'Current account', 'N/A', 'N/A', NULL, 'USD'); -INSERT INTO `0_bank_accounts` VALUES ('1705', 0, 'Petty Cash account', 'N/A', 'N/A', NULL, 'USD'); - --- --- Data in table `bank_trans_types` --- - -INSERT INTO `0_bank_trans_types` VALUES (1, 'Cash'); -INSERT INTO `0_bank_trans_types` VALUES (2, 'Transfer'); - --- --- Data in table `chart_class` --- - -INSERT INTO `0_chart_class` VALUES (1, 'Assets', 1); -INSERT INTO `0_chart_class` VALUES (2, 'Liabilities', 1); -INSERT INTO `0_chart_class` VALUES (3, 'Income', 0); -INSERT INTO `0_chart_class` VALUES (4, 'Costs', 0); - --- --- Data in table `chart_master` --- - -INSERT INTO `0_chart_master` VALUES ('3000', NULL, 'Sales', 1, 1); -INSERT INTO `0_chart_master` VALUES ('3010', NULL, 'Sales - Wholesale', 1, 1); -INSERT INTO `0_chart_master` VALUES ('3020', NULL, 'Sales of Other items', 1, 1); -INSERT INTO `0_chart_master` VALUES ('3400', NULL, 'Difference On Exchange', 1, 0); -INSERT INTO `0_chart_master` VALUES ('5000', NULL, 'Direct Labour', 2, 0); -INSERT INTO `0_chart_master` VALUES ('5050', NULL, 'Direct Labour Recovery', 2, 0); -INSERT INTO `0_chart_master` VALUES ('4200', NULL, 'Material Usage Varaiance', 2, 4); -INSERT INTO `0_chart_master` VALUES ('4210', NULL, 'Consumable Materials', 2, 4); -INSERT INTO `0_chart_master` VALUES ('4220', NULL, 'Purchase price Variance', 2, 0); -INSERT INTO `0_chart_master` VALUES ('4000', NULL, 'Purchases of materials', 2, 4); -INSERT INTO `0_chart_master` VALUES ('4250', NULL, 'Discounts Received', 2, 0); -INSERT INTO `0_chart_master` VALUES ('4260', NULL, 'Exchange Variation', 2, 0); -INSERT INTO `0_chart_master` VALUES ('4300', NULL, 'Freight Inwards', 2, 4); -INSERT INTO `0_chart_master` VALUES ('4010', NULL, 'Cost of Goods Sold - Retail', 2, 4); -INSERT INTO `0_chart_master` VALUES ('6790', NULL, 'Bank Charges', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6800', NULL, 'Entertainments', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6810', NULL, 'Legal Expenses', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6600', NULL, 'Repairs and Maintenance Office', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6730', NULL, 'phone', 5, 4); -INSERT INTO `0_chart_master` VALUES ('8200', NULL, 'Bank Interest', 52, 0); -INSERT INTO `0_chart_master` VALUES ('6840', NULL, 'Credit Control', 5, 0); -INSERT INTO `0_chart_master` VALUES ('7040', NULL, 'Depreciation Office Equipment', 51, 0); -INSERT INTO `0_chart_master` VALUES ('3800', NULL, 'Freight Outwards', 5, 4); -INSERT INTO `0_chart_master` VALUES ('4500', NULL, 'Packaging', 5, 4); -INSERT INTO `0_chart_master` VALUES ('6400', NULL, 'Commissions', 5, 0); -INSERT INTO `0_chart_master` VALUES ('3200', NULL, 'Prompt Payment Discounts', 1, 0); -INSERT INTO `0_chart_master` VALUES ('6700', NULL, 'General Expenses', 5, 4); -INSERT INTO `0_chart_master` VALUES ('5200', NULL, 'Indirect Labour', 2, 0); -INSERT INTO `0_chart_master` VALUES ('5210', NULL, 'Overhead Recovery', 5, 0); -INSERT INTO `0_chart_master` VALUES ('1700', NULL, 'Bank account', 10, 0); -INSERT INTO `0_chart_master` VALUES ('1705', NULL, 'Petty Cash', 10, 0); -INSERT INTO `0_chart_master` VALUES ('1710', NULL, 'Foreign currency account', 10, 0); -INSERT INTO `0_chart_master` VALUES ('1500', NULL, 'Accounts Receivable', 20, 0); -INSERT INTO `0_chart_master` VALUES ('1400', NULL, 'Stocks of Raw Materials', 45, 0); -INSERT INTO `0_chart_master` VALUES ('1410', NULL, 'Stocks of Work In Progress', 45, 0); -INSERT INTO `0_chart_master` VALUES ('1420', NULL, 'Stocks of Finsihed Goods', 45, 0); -INSERT INTO `0_chart_master` VALUES ('1430', NULL, 'Goods Received Clearing account', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2630', NULL, 'Accounts Payable', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2660', NULL, 'VAT out 5', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2662', NULL, 'VAT out 1', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2664', NULL, 'VAT out 25', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2680', NULL, 'VAT In 5', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2682', NULL, 'VAT In 25', 30, 0); -INSERT INTO `0_chart_master` VALUES ('2050', NULL, 'Retained Earnings', 50, 0); -INSERT INTO `0_chart_master` VALUES ('2000', NULL, 'Share Capital', 50, 0); - --- --- Data in table `chart_types` --- - -INSERT INTO `0_chart_types` VALUES (1, 'Sales', 3, -1); -INSERT INTO `0_chart_types` VALUES (2, 'Cost of Sales', 4, -1); -INSERT INTO `0_chart_types` VALUES (5, 'Expenses', 4, -1); -INSERT INTO `0_chart_types` VALUES (10, 'Cash/Bank', 1, -1); -INSERT INTO `0_chart_types` VALUES (20, 'Accounts Receivable', 1, -1); -INSERT INTO `0_chart_types` VALUES (30, 'Accounts Payable', 2, -1); -INSERT INTO `0_chart_types` VALUES (40, 'Fixed Assets', 1, -1); -INSERT INTO `0_chart_types` VALUES (45, 'Inventory', 1, -1); -INSERT INTO `0_chart_types` VALUES (50, 'Equity', 2, -1); -INSERT INTO `0_chart_types` VALUES (51, 'Depreciations', 4, -1); -INSERT INTO `0_chart_types` VALUES (52, 'Financials', 4, -1); - --- --- Data in table `company` --- - -INSERT INTO `0_company` VALUES (1, 'Company name', '', '', 1, 1, 'N/A', '', '', '', '', '', 'USD', '1500', '4250', '2630', '1430', '4260', '4220', '2050', '3800', '3000', '3000', '3200', '1420', '4010', '4210', '3000', '1410', '5000', '', '', '', '', '', '', 0, 10, 10, 1000, 20, 20, 30, 1, 1, 0, 0, 0); - --- --- Data in table `credit_status` --- - -INSERT INTO `0_credit_status` VALUES (1, 'Good History', 0); -INSERT INTO `0_credit_status` VALUES (3, 'No more work until payment received', 1); -INSERT INTO `0_credit_status` VALUES (4, 'In liquidation', 1); - --- --- Data in table `currencies` --- - -INSERT INTO `0_currencies` VALUES ('Euro', 'EUR', '?', 'Europe', 'Cents'); -INSERT INTO `0_currencies` VALUES ('Pounds', 'GBP', '?', 'England', 'Pence'); -INSERT INTO `0_currencies` VALUES ('US Dollars', 'USD', '$', 'United States', 'Cents'); - --- --- Data in table `fiscal_year` --- - -INSERT INTO `0_fiscal_year` VALUES (1, '2007-01-01', '2007-12-31', 0); - --- --- Data in table `locations` --- - -INSERT INTO `0_locations` VALUES ('DEF', 'Default', 'N/A', '', '', '', ''); - --- --- Data in table `movement_types` --- - -INSERT INTO `0_movement_types` VALUES (1, 'Adjustment'); - --- --- Data in table `payment_terms` --- - -INSERT INTO `0_payment_terms` VALUES (1, 'Due 15th Of the Following Month', 0, 17); -INSERT INTO `0_payment_terms` VALUES (2, 'Due By End Of The Following Month', 0, 30); -INSERT INTO `0_payment_terms` VALUES (3, 'Payment due within 10 days', 10, 0); -INSERT INTO `0_payment_terms` VALUES (4, 'Cash Only', 1, 0); - --- --- Data in table `sales_types` --- - -INSERT INTO `0_sales_types` VALUES (1, 'Retail'); -INSERT INTO `0_sales_types` VALUES (2, 'Wholesale'); - --- --- Data in table `salesman` --- - -INSERT INTO `0_salesman` VALUES (1, 'Sales Person', '', '', ''); - --- --- Data in table `shippers` --- - -INSERT INTO `0_shippers` VALUES (1, 'Default', '', '', ''); - --- --- Data in table `stock_category` --- - -INSERT INTO `0_stock_category` VALUES (1, 'Components', NULL, NULL, NULL, NULL); -INSERT INTO `0_stock_category` VALUES (2, 'Charges', NULL, NULL, NULL, NULL); -INSERT INTO `0_stock_category` VALUES (3, 'Systems', NULL, NULL, NULL, NULL); -INSERT INTO `0_stock_category` VALUES (4, 'Services', NULL, NULL, NULL, NULL); - --- --- Data in table `sys_types` --- - -INSERT INTO `0_sys_types` VALUES (0, 'Journal - GL', 17, '1'); -INSERT INTO `0_sys_types` VALUES (1, 'Payment - GL', 7, '1'); -INSERT INTO `0_sys_types` VALUES (2, 'Receipt - GL', 4, '1'); -INSERT INTO `0_sys_types` VALUES (4, 'Funds Transfer', 3, '1'); -INSERT INTO `0_sys_types` VALUES (10, 'Sales Invoice', 16, '1'); -INSERT INTO `0_sys_types` VALUES (11, 'Credit Note', 2, '1'); -INSERT INTO `0_sys_types` VALUES (12, 'Receipt', 6, '1'); -INSERT INTO `0_sys_types` VALUES (16, 'Location Transfer', 2, '1'); -INSERT INTO `0_sys_types` VALUES (17, 'Inventory Adjustment', 2, '1'); -INSERT INTO `0_sys_types` VALUES (18, 'Purchase Order', 1, '1'); -INSERT INTO `0_sys_types` VALUES (20, 'Supplier Invoice', 6, '1'); -INSERT INTO `0_sys_types` VALUES (21, 'Supplier Credit Note', 1, '1'); -INSERT INTO `0_sys_types` VALUES (22, 'Supplier Payment', 3, '1'); -INSERT INTO `0_sys_types` VALUES (25, 'Purchase Order Delivery', 1, '1'); -INSERT INTO `0_sys_types` VALUES (26, 'Work Order', 1, '1'); -INSERT INTO `0_sys_types` VALUES (28, 'Work Order Issue', 1, '1'); -INSERT INTO `0_sys_types` VALUES (29, 'Work Order Production', 1, '1'); -INSERT INTO `0_sys_types` VALUES (30, 'Sales Order', 1, '1'); -INSERT INTO `0_sys_types` VALUES (35, 'Cost Update', 1, '1'); -INSERT INTO `0_sys_types` VALUES (40, 'Dimension', 1, '1'); - --- --- Data in table `users` --- - -INSERT INTO `0_users` VALUES ('admin', '5f4dcc3b5aa765d61d8327deb882cf99', 'Administrator', 2, '', 'info@frontaccounting.com', 'en_US', 0, 0, 0, 0, 'default', 'Letter', 2, 2, 4, 1, 1, 0, '2007-03-20 10:52:46'); +) TYPE=InnoDB AUTO_INCREMENT=1 ; + +-- +-- Dumping data for table `0_areas` +-- + +INSERT INTO `0_areas` VALUES(1, 'USA'); + +-- +-- Dumping data for table `0_bank_accounts` +-- + +INSERT INTO `0_bank_accounts` VALUES('1700', 0, 'Current account', 'N/A', 'N/A', NULL, 'USD'); +INSERT INTO `0_bank_accounts` VALUES('1705', 0, 'Petty Cash account', 'N/A', 'N/A', NULL, 'USD'); + +-- +-- Dumping data for table `0_bank_trans_types` +-- + +INSERT INTO `0_bank_trans_types` VALUES(1, 'Cash'); +INSERT INTO `0_bank_trans_types` VALUES(2, 'Transfer'); + +-- +-- Dumping data for table `0_chart_class` +-- + +INSERT INTO `0_chart_class` VALUES(1, 'Assets', 1); +INSERT INTO `0_chart_class` VALUES(2, 'Liabilities', 1); +INSERT INTO `0_chart_class` VALUES(3, 'Income', 0); +INSERT INTO `0_chart_class` VALUES(4, 'Costs', 0); + +-- +-- Dumping data for table `0_chart_master` +-- + +INSERT INTO `0_chart_master` VALUES('3000', NULL, 'Sales', 1, 1); +INSERT INTO `0_chart_master` VALUES('3010', NULL, 'Sales - Wholesale', 1, 1); +INSERT INTO `0_chart_master` VALUES('3020', NULL, 'Sales of Other items', 1, 1); +INSERT INTO `0_chart_master` VALUES('3400', NULL, 'Difference On Exchange', 1, 0); +INSERT INTO `0_chart_master` VALUES('5000', NULL, 'Direct Labour', 2, 0); +INSERT INTO `0_chart_master` VALUES('5050', NULL, 'Direct Labour Recovery', 2, 0); +INSERT INTO `0_chart_master` VALUES('4200', NULL, 'Material Usage Varaiance', 2, 4); +INSERT INTO `0_chart_master` VALUES('4210', NULL, 'Consumable Materials', 2, 4); +INSERT INTO `0_chart_master` VALUES('4220', NULL, 'Purchase price Variance', 2, 0); +INSERT INTO `0_chart_master` VALUES('4000', NULL, 'Purchases of materials', 2, 4); +INSERT INTO `0_chart_master` VALUES('4250', NULL, 'Discounts Received', 2, 0); +INSERT INTO `0_chart_master` VALUES('4260', NULL, 'Exchange Variation', 2, 0); +INSERT INTO `0_chart_master` VALUES('4300', NULL, 'Freight Inwards', 2, 4); +INSERT INTO `0_chart_master` VALUES('4010', NULL, 'Cost of Goods Sold - Retail', 2, 4); +INSERT INTO `0_chart_master` VALUES('6790', NULL, 'Bank Charges', 5, 4); +INSERT INTO `0_chart_master` VALUES('6800', NULL, 'Entertainments', 5, 4); +INSERT INTO `0_chart_master` VALUES('6810', NULL, 'Legal Expenses', 5, 4); +INSERT INTO `0_chart_master` VALUES('6600', NULL, 'Repairs and Maintenance Office', 5, 4); +INSERT INTO `0_chart_master` VALUES('6730', NULL, 'phone', 5, 4); +INSERT INTO `0_chart_master` VALUES('8200', NULL, 'Bank Interest', 52, 0); +INSERT INTO `0_chart_master` VALUES('6840', NULL, 'Credit Control', 5, 0); +INSERT INTO `0_chart_master` VALUES('7040', NULL, 'Depreciation Office Equipment', 51, 0); +INSERT INTO `0_chart_master` VALUES('3800', NULL, 'Freight Outwards', 5, 4); +INSERT INTO `0_chart_master` VALUES('4500', NULL, 'Packaging', 5, 4); +INSERT INTO `0_chart_master` VALUES('6400', NULL, 'Commissions', 5, 0); +INSERT INTO `0_chart_master` VALUES('3200', NULL, 'Prompt Payment Discounts', 1, 0); +INSERT INTO `0_chart_master` VALUES('6700', NULL, 'General Expenses', 5, 4); +INSERT INTO `0_chart_master` VALUES('5200', NULL, 'Indirect Labour', 2, 0); +INSERT INTO `0_chart_master` VALUES('5210', NULL, 'Overhead Recovery', 5, 0); +INSERT INTO `0_chart_master` VALUES('1700', NULL, 'Bank account', 10, 0); +INSERT INTO `0_chart_master` VALUES('1705', NULL, 'Petty Cash', 10, 0); +INSERT INTO `0_chart_master` VALUES('1710', NULL, 'Foreign currency account', 10, 0); +INSERT INTO `0_chart_master` VALUES('1500', NULL, 'Accounts Receivable', 20, 0); +INSERT INTO `0_chart_master` VALUES('1400', NULL, 'Stocks of Raw Materials', 45, 0); +INSERT INTO `0_chart_master` VALUES('1410', NULL, 'Stocks of Work In Progress', 45, 0); +INSERT INTO `0_chart_master` VALUES('1420', NULL, 'Stocks of Finsihed Goods', 45, 0); +INSERT INTO `0_chart_master` VALUES('1430', NULL, 'Goods Received Clearing account', 30, 0); +INSERT INTO `0_chart_master` VALUES('2630', NULL, 'Accounts Payable', 30, 0); +INSERT INTO `0_chart_master` VALUES('2660', NULL, 'VAT out 5', 30, 0); +INSERT INTO `0_chart_master` VALUES('2662', NULL, 'VAT out 1', 30, 0); +INSERT INTO `0_chart_master` VALUES('2664', NULL, 'VAT out 25', 30, 0); +INSERT INTO `0_chart_master` VALUES('2680', NULL, 'VAT In 5', 30, 0); +INSERT INTO `0_chart_master` VALUES('2682', NULL, 'VAT In 25', 30, 0); +INSERT INTO `0_chart_master` VALUES('2050', NULL, 'Retained Earnings', 50, 0); +INSERT INTO `0_chart_master` VALUES('2000', NULL, 'Share Capital', 50, 0); + +-- +-- Dumping data for table `0_chart_types` +-- + +INSERT INTO `0_chart_types` VALUES(1, 'Sales', 3, -1); +INSERT INTO `0_chart_types` VALUES(2, 'Cost of Sales', 4, -1); +INSERT INTO `0_chart_types` VALUES(5, 'Expenses', 4, -1); +INSERT INTO `0_chart_types` VALUES(10, 'Cash/Bank', 1, -1); +INSERT INTO `0_chart_types` VALUES(20, 'Accounts Receivable', 1, -1); +INSERT INTO `0_chart_types` VALUES(30, 'Accounts Payable', 2, -1); +INSERT INTO `0_chart_types` VALUES(40, 'Fixed Assets', 1, -1); +INSERT INTO `0_chart_types` VALUES(45, 'Inventory', 1, -1); +INSERT INTO `0_chart_types` VALUES(50, 'Equity', 2, -1); +INSERT INTO `0_chart_types` VALUES(51, 'Depreciations', 4, -1); +INSERT INTO `0_chart_types` VALUES(52, 'Financials', 4, -1); + +-- +-- Dumping data for table `0_company` +-- + +INSERT INTO `0_company` VALUES(1, 'Company name', '', '', 1, 1, 'N/A', '', '', '', '', '', 'USD', '1500', '4250', '2630', '1430', '4260', '4220', '2050', '3800', '3000', '3000', '3200', '1420', '4010', '4210', '3000', '1410', '5000', '', '', '', '', '', '', 0, 10, 10, 1000, 20, 20, 30, 1, 1, 0, 0, 0, -1); + +-- +-- Dumping data for table `0_credit_status` +-- + +INSERT INTO `0_credit_status` VALUES(1, 'Good History', 0); +INSERT INTO `0_credit_status` VALUES(3, 'No more work until payment received', 1); +INSERT INTO `0_credit_status` VALUES(4, 'In liquidation', 1); + +-- +-- Dumping data for table `0_currencies` +-- + +INSERT INTO `0_currencies` VALUES('Euro', 'EUR', '?', 'Europe', 'Cents'); +INSERT INTO `0_currencies` VALUES('Pounds', 'GBP', '?', 'England', 'Pence'); +INSERT INTO `0_currencies` VALUES('US Dollars', 'USD', '$', 'United States', 'Cents'); + +-- +-- Dumping data for table `0_fiscal_year` +-- + +INSERT INTO `0_fiscal_year` VALUES(1, '2008-01-01', '2008-12-31', 0); + +-- +-- Dumping data for table `0_item_units` +-- + +INSERT INTO `0_item_units` VALUES('ea.', 'Each', 0); + +-- +-- Dumping data for table `0_locations` +-- + +INSERT INTO `0_locations` VALUES('DEF', 'Default', 'N/A', '', '', '', ''); + +-- +-- Dumping data for table `0_movement_types` +-- + +INSERT INTO `0_movement_types` VALUES(1, 'Adjustment'); + +-- +-- Dumping data for table `0_payment_terms` +-- + +INSERT INTO `0_payment_terms` VALUES(1, 'Due 15th Of the Following Month', 0, 17); +INSERT INTO `0_payment_terms` VALUES(2, 'Due By End Of The Following Month', 0, 30); +INSERT INTO `0_payment_terms` VALUES(3, 'Payment due within 10 days', 10, 0); +INSERT INTO `0_payment_terms` VALUES(4, 'Cash Only', 1, 0); + +-- +-- Dumping data for table `0_salesman` +-- + +INSERT INTO `0_salesman` VALUES(1, 'Sales Person', '', '', '', 5, 1000, 4); + +-- +-- Dumping data for table `0_sales_types` +-- + +INSERT INTO `0_sales_types` VALUES(1, 'Retail', 0, 1); +INSERT INTO `0_sales_types` VALUES(2, 'Wholesale', 0, 1); + +-- +-- Dumping data for table `0_shippers` +-- + +INSERT INTO `0_shippers` VALUES(1, 'Default', '', '', ''); + +-- +-- Dumping data for table `0_stock_category` +-- + +INSERT INTO `0_stock_category` VALUES(1, 'Components', NULL, NULL, NULL, NULL); +INSERT INTO `0_stock_category` VALUES(2, 'Charges', NULL, NULL, NULL, NULL); +INSERT INTO `0_stock_category` VALUES(3, 'Systems', NULL, NULL, NULL, NULL); +INSERT INTO `0_stock_category` VALUES(4, 'Services', NULL, NULL, NULL, NULL); + +-- +-- Dumping data for table `0_sys_types` +-- + +INSERT INTO `0_sys_types` VALUES(0, 'Journal - GL', 17, '1'); +INSERT INTO `0_sys_types` VALUES(1, 'Payment - GL', 7, '1'); +INSERT INTO `0_sys_types` VALUES(2, 'Receipt - GL', 4, '1'); +INSERT INTO `0_sys_types` VALUES(4, 'Funds Transfer', 3, '1'); +INSERT INTO `0_sys_types` VALUES(10, 'Sales Invoice', 16, '1'); +INSERT INTO `0_sys_types` VALUES(11, 'Credit Note', 2, '1'); +INSERT INTO `0_sys_types` VALUES(12, 'Receipt', 6, '1'); +INSERT INTO `0_sys_types` VALUES(13, 'Delivery', 1, '1'); +INSERT INTO `0_sys_types` VALUES(16, 'Location Transfer', 2, '1'); +INSERT INTO `0_sys_types` VALUES(17, 'Inventory Adjustment', 2, '1'); +INSERT INTO `0_sys_types` VALUES(18, 'Purchase Order', 1, '1'); +INSERT INTO `0_sys_types` VALUES(20, 'Supplier Invoice', 6, '1'); +INSERT INTO `0_sys_types` VALUES(21, 'Supplier Credit Note', 1, '1'); +INSERT INTO `0_sys_types` VALUES(22, 'Supplier Payment', 3, '1'); +INSERT INTO `0_sys_types` VALUES(25, 'Purchase Order Delivery', 1, '1'); +INSERT INTO `0_sys_types` VALUES(26, 'Work Order', 1, '1'); +INSERT INTO `0_sys_types` VALUES(28, 'Work Order Issue', 1, '1'); +INSERT INTO `0_sys_types` VALUES(29, 'Work Order Production', 1, '1'); +INSERT INTO `0_sys_types` VALUES(30, 'Sales Order', 1, '1'); +INSERT INTO `0_sys_types` VALUES(35, 'Cost Update', 1, '1'); +INSERT INTO `0_sys_types` VALUES(40, 'Dimension', 1, '1'); + +-- +-- Dumping data for table `0_users` +-- + +INSERT INTO `0_users` VALUES('admin', '5f4dcc3b5aa765d61d8327deb882cf99', 'Administrator', 2, '', 'adm@adm.com', 'en_US', 0, 0, 0, 0, 'default', 'Letter', 2, 2, 4, 1, 1, 0, 0, '2008-04-04 12:34:29'); diff --git a/taxes/db/item_tax_types_db.inc b/taxes/db/item_tax_types_db.inc index 486bfc78..24a5eedd 100644 --- a/taxes/db/item_tax_types_db.inc +++ b/taxes/db/item_tax_types_db.inc @@ -5,7 +5,7 @@ function add_item_tax_type($name, $exempt, $exempt_from) begin_transaction(); $sql = "INSERT INTO ".TB_PREF."item_tax_types (name, exempt) - VALUES ('$name',$exempt)"; + VALUES (".db_escape($name).",$exempt)"; db_query($sql, "could not add item tax type"); @@ -21,7 +21,8 @@ function update_item_tax_type($id, $name, $exempt, $exempt_from) { begin_transaction(); - $sql = "UPDATE ".TB_PREF."item_tax_types SET name='$name', exempt=$exempt WHERE id=$id"; + $sql = "UPDATE ".TB_PREF."item_tax_types SET name=".db_escape($name). + ", exempt=$exempt WHERE id=$id"; db_query($sql, "could not update item tax type"); diff --git a/taxes/db/tax_groups_db.inc b/taxes/db/tax_groups_db.inc index e23ab752..10f0256a 100644 --- a/taxes/db/tax_groups_db.inc +++ b/taxes/db/tax_groups_db.inc @@ -1,29 +1,39 @@ \ No newline at end of file diff --git a/taxes/db/tax_types_db.inc b/taxes/db/tax_types_db.inc index c5408af0..5cd18ebb 100644 --- a/taxes/db/tax_types_db.inc +++ b/taxes/db/tax_types_db.inc @@ -1,66 +1,66 @@ \ No newline at end of file diff --git a/taxes/item_tax_types.php b/taxes/item_tax_types.php index f274556d..31237f81 100644 --- a/taxes/item_tax_types.php +++ b/taxes/item_tax_types.php @@ -12,18 +12,10 @@ include_once($path_to_root . "/taxes/db/tax_types_db.inc"); include($path_to_root . "/includes/ui.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} - +simple_page_mode(true); //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { $input_error = 0; @@ -32,6 +24,7 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error(_("The item tax type description cannot be empty.")); + set_focus('name'); } if ($input_error != 1) @@ -52,17 +45,17 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) } } - if (isset($selected_id)) - { - + if ($selected_id != -1) + { update_item_tax_type($selected_id, $_POST['name'], $_POST['exempt'], $exempt_from); + display_notification(_('Selected item tax type has been updated')); } else { - add_item_tax_type($_POST['name'], $_POST['exempt'], $exempt_from); + display_notification(_('New item tax type has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -85,26 +78,34 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_item_tax_type($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected item tax type has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //----------------------------------------------------------------------------------- -$result = get_all_item_tax_types(); +$result2 = $result = get_all_item_tax_types(); +start_form(); start_table("$table_style width=30%"); -$th = array(_("Name"), _("Tax exempt"), "", ""); +$th = array(_("Name"), _("Tax exempt"),'',''); + table_header($th); $k = 0; -while ($myrow = db_fetch($result)) +while ($myrow = db_fetch($result2)) { alt_table_row_color($k); @@ -120,41 +121,39 @@ while ($myrow = db_fetch($result)) label_cell($myrow["name"]); label_cell($disallow_text); - edit_link_cell("selected_id=" . $myrow["id"]); - delete_link_cell("selected_id=" . $myrow["id"]. "&delete=1"); + edit_button_cell("Edit".$myrow["id"], _("Edit")); + edit_button_cell("Delete".$myrow["id"], _("Delete")); end_row(); } end_table(); +end_form(); +echo '
'; //----------------------------------------------------------------------------------- -hyperlink_no_params($_SERVER['PHP_SELF'], _("New Item Tax type")); - start_form(); start_table($table_style2); -if (isset($selected_id)) +if ($selected_id != -1) { - - if (!isset($_POST['name'])) - { - $myrow = get_item_tax_type($selected_id); + if ($Mode == 'Edit') { + $myrow = get_item_tax_type($selected_id); - $_POST['name'] = $myrow["name"]; - $_POST['exempt'] = $myrow["exempt"]; + $_POST['name'] = $myrow["name"]; + $_POST['exempt'] = $myrow["exempt"]; - // read the exemptions and check the ones that are on - $exemptions = get_item_tax_type_exemptions($selected_id); + // read the exemptions and check the ones that are on + $exemptions = get_item_tax_type_exemptions($selected_id); - if (db_num_rows($exemptions) > 0) - { - while ($exmp = db_fetch($exemptions)) - { - $_POST['ExemptTax' . $exmp["tax_type_id"]] = 1; - } - } + if (db_num_rows($exemptions) > 0) + { + while ($exmp = db_fetch($exemptions)) + { + $_POST['ExemptTax' . $exmp["tax_type_id"]] = 1; + } + } } hidden('selected_id', $selected_id); @@ -172,7 +171,7 @@ if (!isset($_POST['exempt']) || $_POST['exempt'] == 0) display_note(_("Select which taxes this item tax type is exempt from."), 0, 1); start_table($table_style2); - $th = array(_("Tax Name"), _("Is exempt")); + $th = array(_("Tax Name"), _("Rate"), _("Is exempt")); table_header($th); $tax_types = get_all_tax_types_simple(); @@ -183,6 +182,7 @@ if (!isset($_POST['exempt']) || $_POST['exempt'] == 0) alt_table_row_color($k); label_cell($myrow["name"]); + label_cell(percent_format($myrow["rate"])." %", "nowrap align=right"); check_cells("", 'ExemptTax' . $myrow["id"], null); end_row(); } @@ -190,7 +190,7 @@ if (!isset($_POST['exempt']) || $_POST['exempt'] == 0) end_table(1); } -submit_add_or_update_center(!isset($selected_id)); +submit_add_or_update_center($selected_id == -1, '', true); end_form(); diff --git a/taxes/tax_calc.inc b/taxes/tax_calc.inc index 1f00b8a0..9d1ba576 100644 --- a/taxes/tax_calc.inc +++ b/taxes/tax_calc.inc @@ -7,8 +7,8 @@ include_once($path_to_root . "/taxes/db/item_tax_types_db.inc"); //--------------------------------------------------------------------------------- // returns the tax cost for a given item - -/*function get_tax_value_for_item($stock_id, $price, $tax_group) +/* +function get_tax_value_for_item($stock_id, $price, $tax_group) { // if price is zero, then can't be taxed if ($price == 0) @@ -28,18 +28,23 @@ include_once($path_to_root . "/taxes/db/item_tax_types_db.inc"); } return $price * ($tax_multiplier / 100); -}*/ - +} +*/ //--------------------------------------------------------------------------------- // returns the price of a given item minus any included taxes +// for item $stock_id with line price $price, +// with applicable tax rates $tax_group_array or group id $tax_group +// -function get_tax_free_price_for_item($stock_id, $price, $tax_group, $tax_group_array=null) +function get_tax_free_price_for_item($stock_id, $price, $tax_group, $tax_included, $tax_group_array=null) { // if price is zero, then can't be taxed ! if ($price == 0) return 0; + if ($tax_included==0) return $price; + // if array already read, then make a copy and use that if ($tax_group_array) $ret_tax_array = $tax_group_array; @@ -59,16 +64,49 @@ function get_tax_free_price_for_item($stock_id, $price, $tax_group, $tax_group_a foreach ($tax_array as $taxitem) { - if ($taxitem["included_in_price"]) $tax_multiplier += $taxitem["rate"]; } - return $price / (1 + ($tax_multiplier / 100)); + return round($price / (1 + ($tax_multiplier / 100)), user_price_dec()); } +// +// Full price (incl. VAT) for item $stock_id with line price $price, +// with tax rates $tax_group_array or applicable group $tax_group +// +function get_full_price_for_item($stock_id, $price, $tax_group, $tax_included, $tax_group_array=null) +{ + // if price is zero, then can't be taxed ! + if ($price == 0) + return 0; -//--------------------------------------------------------------------------------- + if ($tax_included==1) return $price; + // if array already read, then make a copy and use that + if ($tax_group_array) + $ret_tax_array = $tax_group_array; + else + $ret_tax_array = get_tax_group_items_as_array($tax_group); + + //print_r($ret_tax_array); + $tax_array = get_taxes_for_item($stock_id, $ret_tax_array); + // if no exemptions or taxgroup is empty, then no included/excluded taxes + if ($tax_array == null) + return $price; + + $tax_multiplier = 0; + + // loop for all items + + foreach ($tax_array as $taxitem) + { + $tax_multiplier += $taxitem["rate"]; + } + + return round($price * (1 + ($tax_multiplier / 100)), user_price_dec()); +} + +//--------------------------------------------------------------------------------- // return an array of (tax_type_id, tax_type_name, sales_gl_code, purchasing_gl_code, rate) function get_taxes_for_item($stock_id, $tax_group_items_array) @@ -116,26 +154,33 @@ function get_taxes_for_item($stock_id, $tax_group_items_array) return $ret_tax_array; } - //----------------------------------------------------------------------------------- - // return an array of (tax_type_id, tax_type_name, sales_gl_code, purchasing_gl_code, rate, included_in_price, Value) -function get_tax_for_items($items, $prices, $shipping_cost, $tax_group) +function get_tax_for_items($items, $prices, $shipping_cost, $tax_group, $tax_included=null, $tax_items_array=null) { // first create and set an array with all the tax types of the tax group - $ret_tax_array = get_tax_group_items_as_array($tax_group); + if($tax_items_array!=null) + $ret_tax_array = $tax_items_array; + else + $ret_tax_array = get_tax_group_items_as_array($tax_group); // loop for all items for ($i = 0; $i < count($items); $i++) { $item_taxes = get_taxes_for_item($items[$i], $ret_tax_array); + if ($item_taxes != null) { foreach ($item_taxes as $item_tax) { $index = $item_tax['tax_type_id']; - $ret_tax_array[$index]['Value'] += $prices[$i] * $item_tax['rate'] / 100; + if($tax_included==1) + $ret_tax_array[$index]['Value'] += round($prices[$i] * $item_tax['rate'] + / ($item_tax['rate'] + 100), user_price_dec()); + else + $ret_tax_array[$index]['Value'] += + round($prices[$i] * $item_tax['rate'] / 100, user_price_dec()); } } } @@ -143,13 +188,20 @@ function get_tax_for_items($items, $prices, $shipping_cost, $tax_group) // add the shipping taxes, only if non-zero, and only if tax group taxes shipping if ($shipping_cost != 0) { - $tax_group = get_tax_group($tax_group); - if ($tax_group['tax_shipping']) + $item_taxes = get_shipping_tax_as_array(); + if ($item_taxes != null) { - foreach ($ret_tax_array as $item_tax) + foreach ($item_taxes as $item_tax) { $index = $item_tax['tax_type_id']; - $ret_tax_array[$index]['Value'] += $shipping_cost * $item_tax['rate'] / 100; + if(isset($ret_tax_array[$index])) { + if($tax_included==1) + $ret_tax_array[$index]['Value'] += round($shipping_cost * $item_tax['rate'] + / ($item_tax['rate'] + 100), user_price_dec()); + else + $ret_tax_array[$index]['Value'] += + round($shipping_cost * $item_tax['rate'] / 100, user_price_dec()); + } } } } diff --git a/taxes/tax_groups.php b/taxes/tax_groups.php index e3393912..335691e1 100644 --- a/taxes/tax_groups.php +++ b/taxes/tax_groups.php @@ -13,22 +13,13 @@ include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/taxes/db/tax_groups_db.inc"); include_once($path_to_root . "/taxes/db/tax_types_db.inc"); -if (isset($_GET['selected_id'])) -{ - $selected_id = $_GET['selected_id']; -} -elseif(isset($_POST['selected_id'])) -{ - $selected_id = $_POST['selected_id']; -} -else - $selected_id = -1; +simple_page_mode(true); check_db_has_tax_types(_("There are no tax types defined. Define tax types before defining tax groups.")); //----------------------------------------------------------------------------------- -if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) +if ($Mode=='ADD_ITEM' || $Mode=='UPDATE_ITEM') { //initialise no input errors assumed initially before we test @@ -38,6 +29,7 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { $input_error = 1; display_error(_("The tax group name cannot be empty.")); + set_focus('name'); } else { @@ -46,11 +38,12 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) { if (isset($_POST['tax_type_id' . $i]) && $_POST['tax_type_id' . $i] != reserved_words::get_all_numeric() && - (!is_numeric($_POST['rate' . $i]) || $_POST['rate' . $i] < 0)) + !check_num('rate' . $i, 0)) { - display_error( _("An entered tax rate is invalid or less than zero.")); + display_error( _("An entered tax rate is invalid or less than zero.")); $input_error = 1; - break; + set_focus('rate'); + break; } } } @@ -61,7 +54,6 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) // create an array of the taxes and array of rates $taxes = array(); $rates = array(); - $included = array(); for ($i = 0; $i < 5; $i++) { @@ -69,28 +61,23 @@ if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) $_POST['tax_type_id' . $i] != reserved_words::get_any_numeric()) { $taxes[] = $_POST['tax_type_id' . $i]; - $rates[] = $_POST['rate' . $i]; - if (isset($_POST['included' . $i])) - $included[] = 1; - else - $included[] = 0; + $rates[] = input_num('rate' . $i); } } if ($selected_id != -1) { - - update_tax_group($selected_id, $_POST['name'], $_POST['tax_shipping'], $taxes, - $rates, $included); - + update_tax_group($selected_id, $_POST['name'], $_POST['tax_shipping'], $taxes, + $rates); + display_notification(_('Selected tax group has been updated')); } else { - - add_tax_group($_POST['name'], $_POST['tax_shipping'], $taxes, $rates, $included); + add_tax_group($_POST['name'], $_POST['tax_shipping'], $taxes, $rates); + display_notification(_('New tax group has been added')); } - meta_forward($_SERVER['PHP_SELF']); + $Mode = 'RESET'; } } @@ -125,20 +112,27 @@ function can_delete($selected_id) //----------------------------------------------------------------------------------- -if (isset($_GET['delete'])) +if ($Mode == 'Delete') { if (can_delete($selected_id)) { delete_tax_group($selected_id); - meta_forward($_SERVER['PHP_SELF']); + display_notification(_('Selected tax group has been deleted')); } + $Mode = 'RESET'; } +if ($Mode == 'RESET') +{ + $selected_id = -1; + unset($_POST); +} //----------------------------------------------------------------------------------- $result = get_all_tax_groups(); +start_form(); start_table($table_style); $th = array(_("Description"), _("Tax Shipping"), "", ""); table_header($th); @@ -159,17 +153,17 @@ while ($myrow = db_fetch($result)) if ($myrow["type" . $i] != reserved_words::get_all_numeric()) echo "
" . $myrow["type" . $i] . "
\n"; + + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if (!$no_menu) + { + $local_path_to_root = $path_to_root; + $sel_app = $_SESSION['sel_app']; + echo "
"; + echo "
"; + foreach($applications as $app => $name) + { + echo "" .$name . ""; + } + echo "
"; + + echo "
"; + + echo ""; + echo ""; + echo "
" . $db_connections[$_SESSION["wa_current_user"]->company]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "" . _("Preferences") . "   \n"; + echo " " . _("Change password") . "   \n"; + + if ($help_base_url != null) + { + echo "" . _("Help") . "   "; + } + echo "" . _("Logout") . "   "; + echo "
"; + } + echo "
"; + + if ($title && !$no_menu && !$is_index) + { + echo "
" + ."" + ."
$title" + .(user_hints() ? "" : '') + ."
"; + } + + if (!$is_index) + echo "
"; + } - function menu_footer(&$menu) + function menu_footer($no_menu, $is_index) { + global $version, $allow_demo_mode, $app_title, $power_url, $power_by, $path_to_root; + include_once($path_to_root . "/includes/date_functions.inc"); + + if ($no_menu == false) + { + if ($is_index) + echo "\n"; + else + echo "
\n"; + echo ""; + if (isset($_SESSION['wa_current_user'])) + echo "\n"; + echo "
" . Today() . " | " . Now() . "
\n"; + } + echo "
\n"; + if ($no_menu == false) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($allow_demo_mode==true) + { + echo "\n"; + //echo "\n"; + echo "\n"; + } + echo "

\n"; + } } - function display_applications(&$waapp) + function display_applications(&$waapp) { - $selected_app = &$waapp->get_selected_application(); + $selected_app = $waapp->get_selected_application(); - foreach ($selected_app->modules as $module) + foreach ($selected_app->modules as $module) { // image echo ""; @@ -36,22 +127,19 @@ echo ""; echo ""; - foreach ($module->lappfunctions as $appfunction) + foreach ($module->lappfunctions as $appfunction) { if ($_SESSION["wa_current_user"]->can_access_page($appfunction->access)) echo "
" . $appfunction->label . "
"; } echo ""; - //echo "\nOA_current_user name = " . $_SESSION["wa_current_user"]->username; - if (sizeof($module->rappfunctions) > 0) + if (sizeof($module->rappfunctions) > 0) { echo ""; - foreach ($module->rappfunctions as $appfunction) + foreach ($module->rappfunctions as $appfunction) { if ($_SESSION["wa_current_user"]->can_access_page($appfunction->access)) echo " " . $appfunction->label . "
"; - else - echo " "; } echo ""; } diff --git a/themes/cool/default.css b/themes/cool/default.css index 53606648..fc84e8b9 100644 --- a/themes/cool/default.css +++ b/themes/cool/default.css @@ -19,7 +19,7 @@ body { font-family: Verdana, Arial, Helvetica; background: #60687b; - font-size: 10px; + font-size: 10px; margin: 5px 0 0 5px; padding: 0; } @@ -29,13 +29,17 @@ tr, td, th { line-height: 19px; } +table { + text-align: left; +} + textarea { font-size: 12px; } input, select { font-size: 11px; - padding: 1px; + padding: 1px; } input.big { @@ -48,7 +52,7 @@ input.small { a { color: #0000bb; - font-size: 11px; + font-size: 11px; text-decoration: none; } @@ -94,7 +98,7 @@ a:hover { border: 0; margin: 0; padding: 0; - text-align: right; + /*text-align: right;*/ } .quick_menu_selected { @@ -109,18 +113,18 @@ a:hover { } .logoutBar { - padding-right: 1em; - background: #e4ecec; - color: black; - border-bottom: 1px solid #cccccc; + padding-right: 1em; + background: #e4ecec; + color: black; + border-bottom: 1px solid #cccccc; width: 100%; } .bottomBar { - padding-right: 1em; - background: #e4ecec; - color: black; - border-bottom: 1px solid #cccccc; + padding-right: 1em; + background: #e4ecec; + color: black; + border-bottom: 1px solid #cccccc; width: 100%; } @@ -130,11 +134,11 @@ a:hover { } .bottomBar2 { - padding-right: 1em; - background: #e4ecec; - color: black; - border-top: 1px solid #cccccc; - border-bottom: 1px solid #cccccc; + padding-right: 1em; + background: #e4ecec; + color: black; + border-top: 1px solid #cccccc; + border-bottom: 1px solid #cccccc; width: 100%; } @@ -143,16 +147,16 @@ a:hover { } div.logoutBar { - padding-right: 1em; - background: #e4ecec; - color: black; - border-bottom: 1px solid #cccccc; + padding-right: 1em; + background: #e4ecec; + color: black; + border-bottom: 1px solid #cccccc; text-align: right; } div.logoutBar a { - font-weight: normal; - margin-left: 1em; - color: #436976; + font-weight: normal; + margin-left: 1em; + color: #436976; background-color: transparent; } div.logoutBar img { @@ -160,38 +164,38 @@ div.logoutBar img { } div.tabs { - padding: 0.5em 0 0 0; - background: none transparent scroll repeat 0% 0%; - white-space: nowrap; - border-collapse: collapse; - border-bottom: 1px solid #cccccc; + padding: 3px 0 0 0; + background: none transparent scroll repeat 0% 0%; + white-space: nowrap; + border-collapse: collapse; + border-bottom: 1px solid #cccccc; } div.tabs a { - border: 1px solid #cccccc; - padding: 0 1em 3px 1em; - font-weight: normal; - background: white scroll repeat 0% 0%; - color: #436976; - margin-right: 0.0em; + border: 1px solid #cccccc; + padding: 3px 10px; + font-weight: normal; + background: white scroll repeat 0% 0%; + color: #436976; + margin-right: 0.0em; height: 1.0em; } div.tabs a.selected { - border-top: 1px solid #cccccc; - border-right: 1px solid #cccccc; + border-top: 1px solid #cccccc; + border-right: 1px solid #cccccc; border-bottom: 1px solid #e4ecec; - border-left: 1px solid #cccccc; - font-weight: normal; - background: #e4ecec; - color: #436976; + border-left: 1px solid #cccccc; + font-weight: normal; + background: #e4ecec; + color: #436976; } div.tabs a:hover { - border-top-color: #cccccc; + border-top-color: #cccccc; border-right-color: #cccccc; - border-bottom-color: #e4ecec; - border-left-color: #cccccc; - background: #e4ecec; - color: #436976; + border-bottom-color: #e4ecec; + border-left-color: #cccccc; + background: #e4ecec; + color: #436976; } .menu_group { @@ -199,7 +203,7 @@ div.tabs a:hover { padding: 0px; color: #455372; background-color: #e4ecec; - PADDING-LEFT: 3px; + PADDING-LEFT: 3px; font-weight: bold; } @@ -242,7 +246,7 @@ div.tabs a:hover { .titletext { font-weight: bold; - font-size: 13px; + font-size: 13px; color: #455372; border-bottom: 1px solid #cccccc; padding: 5px; @@ -250,23 +254,23 @@ div.tabs a:hover { .headingtext { font-weight: bold; - font-size: 13px; + font-size: 13px; color: #455372; } .headingtext2 { - font-size: 13px; + font-size: 13px; color: #455372; } .headingtext3 { font-weight: bold; - font-size: 10px; + font-size: 10px; color: #455372; } .errortext { - font-size: 13px; + font-size: 13px; color: #ff0000; font-weight: bold; } @@ -274,7 +278,13 @@ div.tabs a:hover { .inputsubmit { font-size: 11px; border: 1px solid #0066cc; - padding: 1px 4px; + padding: 1px 4px; +} + +.ajaxsubmit { + font-size: 11px; + border: 1px solid #0066cc; + padding: 1px 4px; } .oddrow { @@ -283,32 +293,32 @@ div.tabs a:hover { .evenrow { background-color: #eaedf1; -} +} .overduebg { background-color: pink; -} +} .overduefg { color: #dd7777; -} +} .currentfg { color: #ff6666; -} +} .redfg { color: red; font-weight: bold; -} +} .settledbg { background-color: #00bb00; -} +} .settledfg { color: #00bb00; -} +} .inquirybg { background-color: #fdfeef; @@ -326,13 +336,116 @@ div.tabs a:hover { padding: 3px; border: 1px solid #cccccc; border-collapse: collapse; -} +} .tablestyle2 { padding: 0 3px; border: 1px solid #ccc; border-collapse: collapse; -} +} .tablestyle_noborder { padding: 3px; -} \ No newline at end of file +} + +.amount { + font-family: Verdana, Arial, Helvetica; + font-size: 11px; + text-align: right; +} + +input.amount { + padding-right: 0px; + border-right: none; +} + +.editbutton { + color:#0000FF; + background-color:transparent; + border-style:none; + text-decoration:underline; + cursor: pointer; +} + +.navibutton[disabled] { + color:#808080; + cursor: auto; +} +.navibutton { + color:#0000FF; + padding: 3px; + background-color:transparent; + border-style:none; + text-decoration:underline; + cursor: pointer; +} + +.navibar { + padding: 3px; + border: 1px solid #cccccc; + border-collapse: collapse; + background-color: #dee7ec; +} + + +.listsubmit { + display: none; +} + +ul.ajaxtabs{ + padding: 3px 0 0 0; + margin: 3px 3px 0 3px; + font: 12px Tahoma,Verdana; + font-weight: bold; +} + +ul.ajaxtabs li{ + list-style: none; + margin: 0; + display: inline; +} + +ul.ajaxtabs li input{ + background-color: #dee7ec; +/* background-repeat: repeat-x; + background-position: top; */ + padding: 3px 8px; + margin: 0px; + border-top: 1px solid #8cacbb; + border-right: 1px solid #8cacbb; + border-bottom: none; + border-left: none; + font-weight: bold; +} + +ul.ajaxtabs li input:hover{ + border-top: 1px solid #8cacbb; + color:#FFFFFF; +} +div.spaceBox{ + background-color: #8cacbb; + height:8px; + border-bottom: 1px solid #8cacbb; + border-left: 1px solid #8cacbb; + border-right:1px solid #8cacbb; + margin: 0 3px 0px 3px +} + +div.contentBox{ + border: 1px solid #8cacbb; + margin: 0 3px 3px 3px +} + +ul.ajaxtabs li input.current, ul.ajaxtabs li input.current:hover{ + border-left: 1px solid #8cacbb; + background-color: #8cacbb; + color:#FFFFFF; +} +#hints { + font-size: 13px; + padding: 5px; + border-bottom: 1px solid #8cacbb; + margin: -4px -2px -2px; + border: 1px solid #8cacbb; + background-color: #FFFFE0; + white-space: nowrap; +} diff --git a/themes/cool/images/button_ok.png b/themes/cool/images/button_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..97aea83e7a5549e4f292990935a8953063f981dd GIT binary patch literal 658 zcmV;D0&V??P)W2(-~*{m^m}&%sKDdM#IP~@!nr>KM&XKGmK7-5mna3mT@FZB1FeW;|nw6Xd5n$xU&6jHgbdV9Nvrly-?O1i_< z+I$XB0Exta0Imx?I@;5dZ8t&za=8z=&8?|hQreS1RY+-%=krUP&UU9~X6s`LIqdfb zCN<5ts`-PXnar_M9UU3g*4FuAPEBlWO^+z#3}6BH45QPRN)FCvvwdBT(`0dRwxpE1 z9giRHYHv>iu)12JRGNNStL5+Sz>VGWG+mD&MC44!NDc^1BNk7!#9K3o79)h`NlbH@ zjg7BQYgYaqs5!vi`yWl$V+8cLPpR;gU@(A^5+xTj+3svU8{K>(!`rP6|DS>^-VDLny9z};6QfO?}~`ThEY<1~i=%H?nMM&rj_r&)Oh zECcdyZfLq513(wCq*8%P+f}pHs2A=u-OcB~%0ck21^@~*Zdu>Uj#IwrdbKw|ao2}~ s;@h)EACLw-pz=TPZw+>U;$heL6IUtl4W}rgD*ylh07*qoM6N<$f@qKo1`vEoRqfMKRs|DKk)ILoE(u+S^g8M|3FF=y7!--A7U6_>U(i?a1x|c!5Bk# zN~yxp!ATft@ciPAd93xMi5>3|msd)3{5$gtd6KrJ9jBzJBWksW z0>pP4rBtEOcmu#WPnvk*C}Cqu57h7J!r}fg#o`hGx!f$}N|Dv|GFoeNWrw-kd>Cpl z=pX3H4gj^&8W)#mSQq!2WK?!khVANJ*skt{>#Mu4P$-4&`*8qFXJ!UM#sUn3h)IS? y2ocs+b^&NcuUHogG3hi4Ap$^dw(vJVe|!O7{F*p1v&XIg0000On~7`^b>p zE^TikLU+3c?Qjm<;o`8|w)1^d&<>Z*4^d@zf-*1ow7rQayBpl~J~HFHPvwK)vOB?< z7kvA_#Mm#lO+Vvfzs$DsK}g_E=gjjy8Rvb2b~-yOvvF8%W53j<{BCgHSD-SR7cXAa z&)xa||Nk@p&wTv&5y&7ODE{a6a}5c0b_{Se(lcOYWME)W{3q&Ml$uzQnxasiS(2d; zl98(5?&%xAp!k!8m65@oK?kUa0px!Mwto)OKe*~h^`BT$bTY?k{)H7KUTdS)-_QxQ zxKg$M!G;PSz1ef`Zmv3;xBGsMc#Yrs+wXtusXPDv_y2~*rskH`w)T$BuI`@RzWxb) zIy$;jr%j(RbJpxRbLY)puyE1hB}NKDw%Wd_qe6Li{JM-?(|}_MN-;Zt0$7X6E3K=XiYo)$2EJ-@Siu zR$5$y^{Xc9hhM+{{QYN1xXB|j51kwPHa>* z=dwhv*_<=Vx;zt3960E}%B)}WhQG3|lz_s928ZTVzMHe|YCXxE7%u1FV8M8h<@)A~SiNG`%&E7x7d$>S*L(ZA zyI~VQy}EmP`}+I)8<@G}e0FSjc(_AYJMK)xhB?P3D7$+q@7$ECyj3r|?~E!3BK!py zxEMGXxPjsC;lRM4sxwW7uk(dsB@Y|N5%!OFVl-HDRwX2I?2C6>AgsY2(#YwyaE6Og zm$Q@bBy~Qvptj@{5^lUKEZi)-E!qrn3Igf^YK{oQrD$om3M~!Sqov^%v^3m_mWKP# z((o`^8lFH)!?S2\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if (!$no_menu) + { + $local_path_to_root = $path_to_root; + $sel_app = $_SESSION['sel_app']; + echo "
"; + echo "
"; + foreach($applications as $app => $name) + { + echo "" .$name . ""; + } + echo "
"; + + echo "
"; + + echo ""; + echo ""; + echo "
" . $db_connections[$_SESSION["wa_current_user"]->company]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "" . _("Preferences") . "   \n"; + echo " " . _("Change password") . "   \n"; + + if ($help_base_url != null) + { + echo "" . _("Help") . "   "; + } + echo "" . _("Logout") . "   "; + echo "
"; + } + echo "
"; + + if ($title && !$no_menu && !$is_index) + { + echo "
" + ."" + ."
$title" + .(user_hints() ? "" : '') + ."
"; + } + + if (!$is_index) + echo "
"; + } - function menu_footer(&$menu) + function menu_footer($no_menu, $is_index) { + global $version, $allow_demo_mode, $app_title, $power_url, $power_by, $path_to_root; + include_once($path_to_root . "/includes/date_functions.inc"); + + if ($no_menu == false) + { + if ($is_index) + echo "\n"; + else + echo "
\n"; + echo ""; + if (isset($_SESSION['wa_current_user'])) + echo "\n"; + echo "
" . Today() . " | " . Now() . "
\n"; + } + echo "
\n"; + echo "\n"; + if ($no_menu == false) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($allow_demo_mode==true) + { + echo "\n"; + //echo "\n"; + echo "\n"; + } + echo "

\n"; + } } - function display_applications(&$waapp) + function display_applications(&$waapp) { - $selected_app = &$waapp->get_selected_application(); + $selected_app = $waapp->get_selected_application(); - foreach ($selected_app->modules as $module) + foreach ($selected_app->modules as $module) { // image echo ""; @@ -37,22 +127,19 @@ echo ""; echo ""; - foreach ($module->lappfunctions as $appfunction) + foreach ($module->lappfunctions as $appfunction) { if ($_SESSION["wa_current_user"]->can_access_page($appfunction->access)) echo "
" . $appfunction->label . "
"; } echo ""; - //echo "\nOA_current_user name = " . $_SESSION["wa_current_user"]->username; - if (sizeof($module->rappfunctions) > 0) + if (sizeof($module->rappfunctions) > 0) { echo ""; - foreach ($module->rappfunctions as $appfunction) + foreach ($module->rappfunctions as $appfunction) { if ($_SESSION["wa_current_user"]->can_access_page($appfunction->access)) echo " " . $appfunction->label . "
"; - else - echo " "; } echo ""; } diff --git a/themes/default/default.css b/themes/default/default.css index 1aad1825..a32fa4e9 100644 --- a/themes/default/default.css +++ b/themes/default/default.css @@ -29,13 +29,17 @@ tr, td, th { line-height: 19px; } +table { + text-align: left; +} + textarea { font-size: 12px; } input, select { font-size: 11px; - padding: 1px; + padding: 1px; } input.big { @@ -93,7 +97,7 @@ a:hover { border: 0; margin: 0; padding: 0; - text-align: right; + /*text-align: right;*/ } .quick_menu_selected { @@ -108,18 +112,18 @@ a:hover { } .logoutBar { - padding-right: 1em; - background: #dee7ec; - color: black; - border-bottom: 1px solid #8cacbb; + padding-right: 1em; + background: #dee7ec; + color: black; + border-bottom: 1px solid #8cacbb; width: 100%; } .bottomBar { - padding-right: 1em; - background: #dee7ec; - color: black; - border-bottom: 1px solid #8cacbb; + padding-right: 1em; + background: #dee7ec; + color: black; + border-bottom: 1px solid #8cacbb; width: 100%; } @@ -129,11 +133,11 @@ a:hover { } .bottomBar2 { - padding-right: 1em; - background: #dee7ec; - color: black; - border-top: 1px solid #8cacbb; - border-bottom: 1px solid #8cacbb; + padding-right: 1em; + background: #dee7ec; + color: black; + border-top: 1px solid #8cacbb; + border-bottom: 1px solid #8cacbb; width: 100%; } @@ -142,16 +146,16 @@ a:hover { } div.logoutBar { - padding-right: 1em; - background: #dee7ec; - color: black; - border-bottom: 1px solid #8cacbb; + padding-right: 1em; + background: #dee7ec; + color: black; + border-bottom: 1px solid #8cacbb; text-align: right; } div.logoutBar a { - font-weight: normal; - margin-left: 1em; - color: #436976; + font-weight: normal; + margin-left: 1em; + color: #436976; background-color: transparent; } div.logoutBar img { @@ -159,34 +163,34 @@ div.logoutBar img { } div.tabs { - padding: 0.5em 0 0 0; - background: none transparent scroll repeat 0% 0%; - white-space: nowrap; - border-collapse: collapse; - border-bottom: 1px solid #8cacbb; + padding: 3px 0 0 0; + background: none transparent scroll repeat 0% 0%; + white-space: nowrap; + border-collapse: collapse; + border-bottom: 1px solid #8cacbb; } div.tabs a { - border: 1px solid #8cacbb; - padding: 0 1em 3px 1em; - font-weight: normal; - background: white scroll repeat 0% 0%; - color: #436976; - margin-right: 0.0em; - height: 1.0em; + border: 1px solid #8cacbb; + padding: 3px 10px; + font-weight: normal; + background: white scroll repeat 0% 0%; + color: #436976; + margin-right: 0; + height: 10px; } div.tabs a.selected { - border-top: 1px solid #8cacbb; - border-right: 1px solid #8cacbb; + border-top: 1px solid #8cacbb; + border-right: 1px solid #8cacbb; border-bottom: 1px solid #dee7ec; - border-left: 1px solid #8cacbb; - font-weight: normal; - background: #dee7ec; - color: #436976; + border-left: 1px solid #8cacbb; + font-weight: normal; + background: #dee7ec; + color: #436976; } div.tabs a:hover { - background: #dee7ec; - color: #436976; + background: #dee7ec; + color: #436976; } .menu_group { @@ -194,7 +198,7 @@ div.tabs a:hover { padding: 0px; color: #000000; background-color: #dee7ec; - padding-left: 3px; + padding-left: 3px; font-weight: bold; } @@ -237,30 +241,30 @@ div.tabs a:hover { .titletext { font-weight: bold; - font-size: 13px; + font-size: 13px; border-bottom: 1px solid #8cacbb; padding: 5px; } .headingtext { font-weight: bold; - font-size: 13px; + font-size: 13px; color: black; } .headingtext2 { - font-size: 13px; + font-size: 13px; color: black; } .headingtext3 { font-weight: bold; - font-size: 10px; + font-size: 10px; color: black; } .errortext { - font-size: 13px; + font-size: 13px; color: #ff0000; font-weight: bold; } @@ -268,7 +272,13 @@ div.tabs a:hover { .inputsubmit { font-size: 11px; border: 1px #0066cc solid; - padding: 1px 4px; + padding: 1px 4px; +} + +.ajaxsubmit { + font-size: 11px; + border: 1px #0066cc solid; + padding: 1px 4px; } .oddrow { @@ -277,32 +287,32 @@ div.tabs a:hover { .evenrow { background-color: #dddddd; -} +} .overduebg { background-color: #dd7777; -} +} .overduefg { color: #dd7777; -} +} .currentfg { color: #ff6666; -} +} .redfg { color: red; font-weight: bold; -} +} .settledbg { background-color: #00bb00; -} +} .settledfg { color: #00bb00; -} +} .inquirybg { background-color: #fdfeef; @@ -320,13 +330,116 @@ div.tabs a:hover { padding: 3px; border: 1px solid #8cacbb; border-collapse: collapse; -} +} .tablestyle2 { - padding: 0 3px; - border: 1px solid #ccc; + padding: 3px; + border: 1px solid #cccccc; border-collapse: collapse; -} +} .tablestyle_noborder { padding: 3px; -} \ No newline at end of file +} + +.amount { + font-family: Verdana, Arial, Helvetica; + font-size: 11px; + text-align: right; +} + +input.amount { + padding-right: 0px; + border-right: none; +} + +.editbutton { + color:#0000FF; + background-color:transparent; + border-style:none; + text-decoration:underline; + cursor: pointer; +} + +.navibutton[disabled] { + color:#808080; + cursor: auto; +} +.navibutton { + color:#0000FF; + padding: 3px; + background-color:transparent; + border-style:none; + text-decoration:underline; + cursor: pointer; +} + +.navibar { + padding: 3px; + border: 1px solid #cccccc; + border-collapse: collapse; + background-color: #dee7ec; +} + + +.listsubmit { + display: none; +} + +ul.ajaxtabs{ + padding: 3px 0 0 0; + margin: 3px 3px 0 3px; + font: 12px Tahoma,Verdana; + font-weight: bold; +} + +ul.ajaxtabs li{ + list-style: none; + margin: 0; + display: inline; +} + +ul.ajaxtabs li input{ + background-color: #dee7ec; +/* background-repeat: repeat-x; + background-position: top; */ + padding: 3px 8px; + margin: 0px; + border-top: 1px solid #8cacbb; + border-right: 1px solid #8cacbb; + border-bottom: none; + border-left: none; + font-weight: bold; +} + +ul.ajaxtabs li input:hover{ + border-top: 1px solid #8cacbb; + color:#FFFFFF; +} +div.spaceBox{ + background-color: #8cacbb; + height:8px; + border-bottom: 1px solid #8cacbb; + border-left: 1px solid #8cacbb; + border-right:1px solid #8cacbb; + margin: 0 3px 0px 3px +} + +div.contentBox{ + border: 1px solid #8cacbb; + margin: 0 3px 3px 3px +} + +ul.ajaxtabs li input.current, ul.ajaxtabs li input.current:hover{ + border-left: 1px solid #8cacbb; + background-color: #8cacbb; + color:#FFFFFF; +} +#hints { + font-size: 13px; + padding: 5px; + border-bottom: 1px solid #8cacbb; + margin: -4px -2px -2px; + border: 1px solid #8cacbb; + background-color: #FFFFE0; + white-space: nowrap; +} diff --git a/themes/default/images/button_ok.png b/themes/default/images/button_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..72790e15c2d5887515ce7d34e71fb0db872c5e3d GIT binary patch literal 619 zcmV-x0+juUP)7go890q7!y+SuL?}EJRLG(NiyC-Y5Onbn5f~jh zl+=PQne>Ga*jlJHs*R;3I!wnDS0h&jm6fe`-+Mb~QK3d&`k$W5@6Yq`f8c*h#nCH9 zE+78%PgGNz0ZDYASML$1+&M~7xsNg5sx-w@)M`yGqy9)&(1G>=+8WK9%CvR0AeEY=dNJnEt=}R=6E9MR%#mS(Jc+I%)AeM zUbCibOQ}@6hUn`dhP}7FO3wuciC74bnQd9c{_|nB9VsCZ17F(*GO4eWZ7pHt22iUZ z{0yF6zk|R1)GVC%F`Wn~ypMD-6}2N7U~_{RmD-FTLP~~_2QcWmhQGZ92m`5K*CPP1 zVyy}(--cv>Tn4gfNXKEI69(^IqVLuj;1!VmbH5@0U*36`7)oMUr3Ge8UUX*}?mkV> za}}5XGIJeh#$cdRW{Js5V!Do84g#(?qfbsU-g^Uh1LWq5hVZj0vYOCJI|x1gM(EKA zUOvAGOfCffu8q5`RNFpMXte>$=MB|@e*qT2v>15N`VNCxv_}2FOn~7`^b>p zE^TikLU+3c?Qjm<;o`8|w)1^d&<>Z*4^d@zf-*1ow7rQayBpl~J~HFHPvwK)vOB?< z7kvA_#Mm#lO+Vvfzs$DsK}g_E=gjjy8Rvb2b~-yOvvF8%W53j<{BCgHSD-SR7cXAa z&)xa||Nk@p&wTv&5y&7ODE{a6a}5c0b_{Se(lcOYWME)W{3q&Ml$uzQnxasiS(2d; zl98(5?&%xAp!k!8m65@oK?kUa0px!Mwto)OKe*~h^`BT$bTY?k{)H7KUTdS)-_QxQ zxKg$M!G;PSz1ef`Zmv3;xBGsMc#Yrs+wXtusXPDv_y2~*rskH`w)T$BuI`@RzWxb) zIy$;jr%j(RbJpxRbLY)puyE1hB}NKDw%Wd_qe6Li{JM-?(|}_MN-;Zt0$7X6E3K=XiYo)$2EJ-@Siu zR$5$y^{Xc9hhM+{{QYN1xXB|j51kwPHa>* z=dwhv*_<=Vx;zt3960E}%B)}WhQG3|lz_s928ZTVzMHe|YCXxE7%u1FV8M8h<@)A~SiNG`%&E7x7d$>S*L(ZA zyI~VQy}EmP`}+I)8<@G}e0FSjc(_AYJMK)xhB?P3D7$+q@7$ECyj3r|?~E!3BK!py zxEMGXxPjsC;lRM4sxwW7uk(dsB@Y|N5%!OFVl-HDRwX2I?2C6>AgsY2(#YwyaE6Og zm$Q@bBy~Qvptj@{5^lUKEZi)-E!qrn3Igf^YK{oQrD$om3M~!Sqov^%v^3m_mWKP# z((o`^8lFH)!?S2get_selected_application(); - foreach ($selected_app->modules as $module) - { - // image - echo ""; - // values - echo ""; - echo ""; - echo ""; - echo ""; - //echo "\nOA_current_user name = " . $_SESSION["wa_current_user"]->username; - if (sizeof($module->rappfunctions) > 0) - { - echo ""; - } - - echo "
"; - } - - echo ""; - } - } - +\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "
\n"; + echo "\n"; + echo "\n"; + echo "
\n"; + if (!$no_menu) + { + $local_path_to_root = $path_to_root; + $sel_app = $_SESSION['sel_app']; + echo "
"; + echo "
"; + foreach($applications as $app => $name) + { + echo "" .$name . ""; + } + echo "
"; + echo "
"; + + echo ""; + echo ""; + + echo "
" . $db_connections[$_SESSION["wa_current_user"]->company]["name"] . " | " . $_SERVER['SERVER_NAME'] . " | " . $_SESSION["wa_current_user"]->name . "" . _("Preferences") . "   \n"; + echo " " . _("Change password") . "   \n"; + + if ($help_base_url != null) + { + echo "" . _("Help") . "   "; + } + echo "" . _("Logout") . "   "; + echo "
"; + } + echo "
"; + + if ($title && !$no_menu && !$is_index) + { + echo "
" + ."" + ."
$title" + .(user_hints() ? "" : '') + ."
"; + } + + if (!$is_index) + echo "
"; + + } + + function menu_footer($no_menu, $is_index) + { + global $version, $allow_demo_mode, $app_title, $power_url, $power_by, $path_to_root; + include_once($path_to_root . "/includes/date_functions.inc"); + + if ($no_menu == false) + { + if ($is_index) + echo "\n"; + else + echo "
\n"; + echo ""; + if (isset($_SESSION['wa_current_user'])) + echo "\n"; + echo "
" . Today() . " | " . Now() . "
\n"; + } + echo "
\n"; + echo "\n"; + if ($no_menu == false) + { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if ($allow_demo_mode==true) + { + echo "\n"; + //echo "\n"; + echo "\n"; + } + echo "

\n"; + } + } + + function display_applications(&$waapp) + { + + $selected_app = $waapp->get_selected_application(); + + foreach ($selected_app->modules as $module) + { + // image + echo ""; + // values + echo ""; + echo ""; + echo ""; + echo ""; + if (sizeof($module->rappfunctions) > 0) + { + echo ""; + } + + echo "
"; + } + + echo ""; + } + } + ?> \ No newline at end of file diff --git a/update.html b/update.html index e6114b00..2c070204 100644 --- a/update.html +++ b/update.html @@ -1,14 +1,9 @@ - - - + - - FrontAccounting Update - - + FrontAccounting Update
FrontAccounting Update

@@ -17,43 +12,49 @@

Important Notes

    -
  • You can easily upload all the files to your installation folder on the -server overwriting the existing files, if you take these important -steps: +
  • You can easily upload all the files to your installation folder on the +server overwriting the existing files, if you take these important +steps:
      -
    1. Backup  (download) the following files to another folder: +
    2. Backup  (download) the following files to another folder:
        -
      1. config_db.php (contains information about the companies and -connection info). +
      2. config_db.php (contains information about the companies and +connection info).
      3. -
      4. config.php (contains various settings. You only need to -backup this file if you have done manually changes to it. +
      5. config.php (contains various settings. You only need to +backup this file if you have done manually changes to it.
      6. -
      7. /lang/installed_languages.inc (contains information about the -installed languages) +
      8. /lang/installed_languages.inc (contains information about the +installed languages)
      9. -
      10. /modules/installed_modules.php (contains information about -installed modules, only vers. 1.1) +
      11. /modules/installed_modules.php (contains information about +installed modules, only vers. 1.1)
      12. -
      13. if you have made changes to other files, like themes or so, backup +
      14. if you have made changes to other files, like themes or so, backup these files too.
    3. -
    4. Upload all the new files. +
    5. Upload all the new files.
    6. -
    7. Restore the files mentioned in #1. Be careful with - config.db. Look into variances. There might be new variables in -the new version. It might be easier to manually change your former values in -the new file. +
    8. Restore the files mentioned in #1. Be careful with + config.db. Look into variances. There might be new variables in +the new version. It might be easier to manually change your former values in +the new file.
    9. -
    10. Rename or remove the /install folder (you have already performed the install +
    11. Rename or remove the /install folder (you have already performed the install process earlier).
  • +
  • If there are changes to the database structure, please run the script update_db.php +from FrontAccounting root installation, Enter the database user and the +password and choose the update script from the local harddisk.
  • +
  • When updating release 1.XX to release 2.0, you must run the update_db.php script and select the file - alter.sql - that are located in the sql folder. You must +do this, before entering FrontAccounting! +Enter the database user and the password and choose the alter.sql +script.  Do the same for the alter2.sql script. If you have +already updated release 2.0 Beta, you can just run the alter2.sql script.
    You must also manuelly ensure that you have write permission to the new folder /company/0.

 

- - - + \ No newline at end of file diff --git a/update_db.php b/update_db.php new file mode 100644 index 00000000..26c14ee5 --- /dev/null +++ b/update_db.php @@ -0,0 +1,157 @@ +\n" + . "function fixPNG(myImage)\n" + . "{\n" + . " var arVersion = navigator.appVersion.split(\"MSIE\")\n" + . " var version = parseFloat(arVersion[1])\n" + . " if ((version >= 5.5) && (version < 7) && (document.body.filters))\n" + . " {\n" + . " var imgID = (myImage.id) ? \"id='\" + myImage.id + \"' \" : \"\"\n" + . " var imgClass = (myImage.className) ? \"class='\" + myImage.className + \"' \" : \"\"\n" + . " var imgTitle = (myImage.title) ?\n" + . " \"title='\" + myImage.title + \"' \" : \"title='\" + myImage.alt + \"' \"\n" + . " var imgStyle = \"display:inline-block;\" + myImage.style.cssText\n" + . " var strNewHTML = \"\"\n" + . " myImage.outerHTML = strNewHTML\n" + . " }\n" + . "}\n" + . "\n"; + return $js; +} + +function get_js_set_focus($name) +{ + $js = "\n\n"; + return $js; +} + +function display_error($msg, $center=true) +{ + echo "
+ + + +
$msg

\n"; +} + +function display_notification($msg, $center=true) +{ + echo "
+ + + +
$msg

\n"; +} + + +function db_open($conn) +{ + $db = mysql_connect($conn["host"] ,$conn["dbuser"], $conn["dbpassword"]); + if (!$db) + return false; + if (!mysql_select_db($conn["dbname"], $db)) + return false; + return $db; +} + +echo "\n"; +echo "$title\n"; +echo "\n"; +echo "\n"; +echo $js; +echo " \n"; +echo ""; + +echo "



"; +echo "\n"; +echo "\n"; +echo "
FrontAccounting
\n"; + +echo "

"; +echo "
$title
\n"; +echo "
"; + +if (isset($_POST["submit"])) +{ + if (!isset($_FILES['uploadfile']['tmp_name']) || !is_uploaded_file($_FILES['uploadfile']['tmp_name'])) + { + display_error("You must select an SQL script for update");; + } + else + { + include_once($path_to_root."/config_db.php"); + if (!isset($_POST['user']) || !isset($_POST['passwd']) || $_POST['user'] == "") + { + display_error("You must select a user name and an optional password"); + } + else + { + foreach($db_connections as $id => $conn) + { + $conn['dbuser'] = $_POST['user']; + $conn['dbpassword'] = $_POST['passwd']; + if (!($db = db_open($conn))) + { + display_error("Wrong user name or password - ".mysql_error()); + } + else + { + if (!db_import($_FILES['uploadfile']['tmp_name'], $conn)) + display_error("Bad SQL file or you have already updated the company: " + . $id . " " . $conn['name']." - ".mysql_error()); + else + display_notification("Database has been updated for company: " + . $id . " " . $conn['name']); + } + } + } + } +} +if (!isset($_POST['passwd'])) + $_POST['passwd'] = ""; +if (!isset($_POST['user'])) + $_POST['user'] = ""; + +echo "
\n"; + +echo "\n"; + +echo ""; +echo ""; +echo ""; +echo ""; + +echo "
Database User
Password
Upload Script
 
\n";; + +echo "

"; +echo "
Choose from Database update scripts in SQL folder. No Datase is updated without a script.
\n"; +echo "
"; + +echo "
\n"; + +echo "\n"; +?> \ No newline at end of file -- 2.30.2