Changes to 'refs/tags/v1.2'
by pshah
Changes since v1.0-beta1:
Prashant P Shah (123):
Added default voucher type to custom helper functions
Removed unwanted account config file
Added user access verification helper
Added check_access to Groups
Added check_access to Ledgers
Added check_access to Logs
Added check_access to Reports
Added check_access to Tags
Added check_access to Settings
Added check_access to Vouchers
Added User login and logout actions
Added list of valid permissions strings
Unset all session variables explicitly on logout
Added change active account action
Renamed db_active_label session variable to active_account
Use the new account change form
Show manage accounts link
Removed change accounts from admin section
Changed admin top link from Accounts to 'Back to Accounts'
Added Ledger Balance type tooltip hint
Added User management
Added users directory status checks
Added settings to enable or disable logging
Include logged in username to logs
Added Help for enabling or disabling logging
Removed account details from admin welcome controller
Using the real user login procedure
Updated messages
Added 'accounts' string to user config files
Check user status during user login
Filtering out bogus accounts received in $_POST
Added user profile and account check
Added CHANGELOG.txt file
Temporary Removed support for Draft voucher
Added voucher auto numbering when adding voucher
Fixed a UI issue
Removed all references to draft vouchers
Added account locked to account settings
Implement the account locked feature
Added Help question for account locked
Added numbers to Invalid voucher type messages
Removed RSS Feeds
Converted group model to active records
Converted ledger model to active records
Converted tag model to active records
Converted setting model to active records
Converted voucher model to active records
Converted all views to active records
Converted group controller to active records
Converted setting controller to active records
Converted log controller to active records
Converted tag controller to active records
Converted pending tag controller to active records
Converted ledger controller to active records
Converted report controller to active records
Converted welcome controller to active records
Converted voucher controller to active records
Converted pending voucher controller to active records
Updated Status messages
Added Ledger id check for Ledger St
Updated CHANGELOG.txt file
Added reconciliation database table
Added reconciliation option to Ledger controller
Deleting reconciliation data if not required
Using reconciliation column instead of separate table
Added ledger model methods and form helpers for reconciliation
Added basic reconciliation structure
Added custom date helpers and date validation for reconciliation
Added Ledger account reconciliation
Updated reconciliation summary
Added Print Preview for reconciliation
Updated voucher name as Ledger model method
Updated opposite voucher name as Ledger model method
Added application version
Renamed some initial groups
Added download csv for reconciliation statement
Comment out the buggy error message and add it to TODO
Added ajax loading image for adding ledger row in vouchers
Notify user of previous reconciliations on voucher update
Fixed styling issues
Fixed styling issues
Updated CHANGELOG.txt
Moved account file check to separate library
Moved user file check to separate library
Updated user selection of accounts
Updated CHANGELOG.txt
Removed beta status and updated version number to v1.0
Updated footer website link to webzash.org
Added default gmail settings to FAQ
Fixed account creation errors
Fixed account carry forward errors
Receipt and Payment vouchers must have one non Bank or Cash A/C
Check if Contra Vouchers on removing Bank or Cash Account status
Added better database connection error checking on Startup
Changed Liabilities to Liabilities and Owners Equity
Added javascript hotkey library
Added user customizable javascript shortcut file
Include the javascript shortcut library in all templates
Cannot edit or delete System Group A/C's
Updated database query to use active records
Display all actions on voucher add
Display all actions on voucher edit
Removed Print, Email, Download from Voucher add and edit
Updated application version to 1.1
Added basic structure of dynamic voucher types
Updated Add and Delete Voucher to dynamic voucher types
Updated Edit Voucher to use dynamic voucher types
Updated Download Voucher to use dynamic voucher types
Updated Email and Print Voucher to use dynamic voucher type
Updated Reports to use dynamic voucher type
Updated database schema to use dynamic voucher types
Renaming voucher table column from type to voucher_type
Updated template to use dynamic voucher types
Allow editing and deleting of System created Group A/C
Split setting to separate controllers and added Voucher Types
Added New Voucher Type action
Added Voucher Types Edit action
Added Voucher Type delete action
Updated Voucher Type zero padding
Updated to use Voucher Type auto numbering if enabled
Allow empty Voucher numbers
Fixed UI issue
Updated CHANGELOG.txt
---
CHANGELOG.txt | 40
TODO.txt | 3
config/accounts/sample.ini | 2
config/accounts/test.ini | 7
config/settings/general.ini | 1
config/users/admin.ini | 8
config/users/guest.ini | 8
config/users/index.html | 10
db-update.txt | 32
system/application/assets/css/admin-style.css | 16
system/application/assets/css/printreport.css | 27
system/application/assets/css/style.css | 18
system/application/assets/css/tables.css | 26
system/application/assets/images/icons/ajax.gif |binary
system/application/assets/js/shortcuts.js | 10
system/application/assets/js/shortcutslibrary.js | 163 ++
system/application/config/autoload.php | 2
system/application/config/config.php | 10
system/application/controllers/admin/active.php | 128 --
system/application/controllers/admin/create.php | 57
system/application/controllers/admin/initialize.sql | 12
system/application/controllers/admin/manage.php | 31
system/application/controllers/admin/schema.sql | 28
system/application/controllers/admin/setting.php | 23
system/application/controllers/admin/status.php | 11
system/application/controllers/admin/user.php | 387 ++++++
system/application/controllers/admin/welcome.php | 140 --
system/application/controllers/group.php | 104 +
system/application/controllers/ledger.php | 156 ++
system/application/controllers/log.php | 50
system/application/controllers/report.php | 436 ++++++-
system/application/controllers/setting.php | 938 ----------------
system/application/controllers/setting/account.php | 175 ++
system/application/controllers/setting/backup.php | 56
system/application/controllers/setting/cf.php | 390 ++++++
system/application/controllers/setting/email.php | 134 ++
system/application/controllers/setting/printer.php | 225 +++
system/application/controllers/setting/vouchertypes.php | 442 +++++++
system/application/controllers/setting/welcome.php | 29
system/application/controllers/tag.php | 85 +
system/application/controllers/user.php | 212 +++
system/application/controllers/voucher.php | 843 ++++++++------
system/application/controllers/welcome.php | 7
system/application/helpers/MY_date_helper.php | 8
system/application/helpers/MY_form_helper.php | 2
system/application/helpers/access_helper.php | 121 ++
system/application/helpers/custom_helper.php | 105 +
system/application/libraries/Accountlist.php | 9
system/application/libraries/General.php | 204 +++
system/application/libraries/Logger.php | 20
system/application/libraries/MY_Form_validation.php | 81 -
system/application/libraries/Startup.php | 159 --
system/application/libraries/Statuscheck.php | 38
system/application/models/group_model.php | 9
system/application/models/ledger_model.php | 126 +-
system/application/models/setting_model.php | 3
system/application/models/tag_model.php | 27
system/application/models/voucher_model.php | 26
system/application/views/admin/active.php | 22
system/application/views/admin/manage/index.php | 11
system/application/views/admin/setting.php | 4
system/application/views/admin/user/add.php | 45
system/application/views/admin/user/edit.php | 45
system/application/views/admin/user/index.php | 76 +
system/application/views/admin/welcome.php | 12
system/application/views/admin_template.php | 47
system/application/views/help/index.php | 30
system/application/views/ledger/add.php | 16
system/application/views/ledger/edit.php | 16
system/application/views/log/index.php | 8
system/application/views/report/balancesheet.php | 4
system/application/views/report/ledgerst.php | 80 -
system/application/views/report/profitandloss.php | 12
system/application/views/report/reconciliation.php | 197 +++
system/application/views/setting/account.php | 7
system/application/views/setting/change.php | 34
system/application/views/setting/index.php | 4
system/application/views/setting/vouchertypes/add.php | 67 +
system/application/views/setting/vouchertypes/edit.php | 67 +
system/application/views/setting/vouchertypes/index.php | 25
system/application/views/tag/index.php | 3
system/application/views/template.php | 97 +
system/application/views/user/account.php | 23
system/application/views/user/login.php | 25
system/application/views/user/profile.php | 27
system/application/views/user_template.php | 132 ++
system/application/views/voucher/add.php | 41
system/application/views/voucher/downloadpreview.php | 8
system/application/views/voucher/edit.php | 42
system/application/views/voucher/email.php | 4
system/application/views/voucher/emailpreview.php | 10
system/application/views/voucher/index.php | 70 -
system/application/views/voucher/printpreview.php | 8
system/application/views/voucher/view.php | 19
system/application/views/welcome.php | 61 -
todo.txt | 5
96 files changed, 5474 insertions(+), 2350 deletions(-)
---
13 years, 2 months
Changes to 'refs/tags/v1.1'
by pshah
Changes since v1.0-beta1:
Prashant P Shah (104):
Added default voucher type to custom helper functions
Removed unwanted account config file
Added user access verification helper
Added check_access to Groups
Added check_access to Ledgers
Added check_access to Logs
Added check_access to Reports
Added check_access to Tags
Added check_access to Settings
Added check_access to Vouchers
Added User login and logout actions
Added list of valid permissions strings
Unset all session variables explicitly on logout
Added change active account action
Renamed db_active_label session variable to active_account
Use the new account change form
Show manage accounts link
Removed change accounts from admin section
Changed admin top link from Accounts to 'Back to Accounts'
Added Ledger Balance type tooltip hint
Added User management
Added users directory status checks
Added settings to enable or disable logging
Include logged in username to logs
Added Help for enabling or disabling logging
Removed account details from admin welcome controller
Using the real user login procedure
Updated messages
Added 'accounts' string to user config files
Check user status during user login
Filtering out bogus accounts received in $_POST
Added user profile and account check
Added CHANGELOG.txt file
Temporary Removed support for Draft voucher
Added voucher auto numbering when adding voucher
Fixed a UI issue
Removed all references to draft vouchers
Added account locked to account settings
Implement the account locked feature
Added Help question for account locked
Added numbers to Invalid voucher type messages
Removed RSS Feeds
Converted group model to active records
Converted ledger model to active records
Converted tag model to active records
Converted setting model to active records
Converted voucher model to active records
Converted all views to active records
Converted group controller to active records
Converted setting controller to active records
Converted log controller to active records
Converted tag controller to active records
Converted pending tag controller to active records
Converted ledger controller to active records
Converted report controller to active records
Converted welcome controller to active records
Converted voucher controller to active records
Converted pending voucher controller to active records
Updated Status messages
Added Ledger id check for Ledger St
Updated CHANGELOG.txt file
Added reconciliation database table
Added reconciliation option to Ledger controller
Deleting reconciliation data if not required
Using reconciliation column instead of separate table
Added ledger model methods and form helpers for reconciliation
Added basic reconciliation structure
Added custom date helpers and date validation for reconciliation
Added Ledger account reconciliation
Updated reconciliation summary
Added Print Preview for reconciliation
Updated voucher name as Ledger model method
Updated opposite voucher name as Ledger model method
Added application version
Renamed some initial groups
Added download csv for reconciliation statement
Comment out the buggy error message and add it to TODO
Added ajax loading image for adding ledger row in vouchers
Notify user of previous reconciliations on voucher update
Fixed styling issues
Fixed styling issues
Updated CHANGELOG.txt
Moved account file check to separate library
Moved user file check to separate library
Updated user selection of accounts
Updated CHANGELOG.txt
Removed beta status and updated version number to v1.0
Updated footer website link to webzash.org
Added default gmail settings to FAQ
Fixed account creation errors
Fixed account carry forward errors
Receipt and Payment vouchers must have one non Bank or Cash A/C
Check if Contra Vouchers on removing Bank or Cash Account status
Added better database connection error checking on Startup
Changed Liabilities to Liabilities and Owners Equity
Added javascript hotkey library
Added user customizable javascript shortcut file
Include the javascript shortcut library in all templates
Cannot edit or delete System Group A/C's
Updated database query to use active records
Display all actions on voucher add
Display all actions on voucher edit
Removed Print, Email, Download from Voucher add and edit
Updated application version to 1.1
---
CHANGELOG.txt | 32 +
TODO.txt | 3
config/accounts/sample.ini | 2
config/accounts/test.ini | 7
config/settings/general.ini | 1
config/users/admin.ini | 8
config/users/guest.ini | 8
config/users/index.html | 10
db-update.txt | 6
system/application/assets/css/admin-style.css | 16
system/application/assets/css/printreport.css | 27 +
system/application/assets/css/style.css | 18
system/application/assets/css/tables.css | 26 +
system/application/assets/images/icons/ajax.gif |binary
system/application/assets/js/shortcuts.js | 10
system/application/assets/js/shortcutslibrary.js | 163 +++++++
system/application/config/autoload.php | 2
system/application/config/config.php | 10
system/application/controllers/admin/active.php | 128 -----
system/application/controllers/admin/create.php | 52 +-
system/application/controllers/admin/initialize.sql | 8
system/application/controllers/admin/manage.php | 31 -
system/application/controllers/admin/schema.sql | 3
system/application/controllers/admin/setting.php | 23 -
system/application/controllers/admin/status.php | 11
system/application/controllers/admin/user.php | 387 ++++++++++++++++++
system/application/controllers/admin/welcome.php | 140 ------
system/application/controllers/group.php | 104 +++-
system/application/controllers/ledger.php | 148 ++++++
system/application/controllers/log.php | 50 +-
system/application/controllers/report.php | 428 ++++++++++++++++----
system/application/controllers/setting.php | 177 +++++---
system/application/controllers/tag.php | 85 +++
system/application/controllers/user.php | 212 +++++++++
system/application/controllers/voucher.php | 428 ++++++++++++--------
system/application/controllers/welcome.php | 7
system/application/helpers/MY_date_helper.php | 8
system/application/helpers/MY_form_helper.php | 2
system/application/helpers/access_helper.php | 121 +++++
system/application/helpers/custom_helper.php | 2
system/application/libraries/Accountlist.php | 11
system/application/libraries/General.php | 176 ++++++++
system/application/libraries/Logger.php | 20
system/application/libraries/MY_Form_validation.php | 81 ++-
system/application/libraries/Startup.php | 152 ++-----
system/application/libraries/Statuscheck.php | 38 +
system/application/models/group_model.php | 9
system/application/models/ledger_model.php | 124 ++++-
system/application/models/setting_model.php | 3
system/application/models/tag_model.php | 27 -
system/application/models/voucher_model.php | 24 -
system/application/views/admin/active.php | 22 -
system/application/views/admin/manage/index.php | 11
system/application/views/admin/setting.php | 4
system/application/views/admin/user/add.php | 45 ++
system/application/views/admin/user/edit.php | 45 ++
system/application/views/admin/user/index.php | 76 +++
system/application/views/admin/welcome.php | 12
system/application/views/admin_template.php | 47 +-
system/application/views/help/index.php | 30 +
system/application/views/ledger/add.php | 16
system/application/views/ledger/edit.php | 16
system/application/views/log/index.php | 8
system/application/views/report/balancesheet.php | 4
system/application/views/report/ledgerst.php | 74 ---
system/application/views/report/profitandloss.php | 12
system/application/views/report/reconciliation.php | 195 +++++++++
system/application/views/setting/account.php | 7
system/application/views/setting/change.php | 34 -
system/application/views/tag/index.php | 3
system/application/views/template.php | 66 +--
system/application/views/user/account.php | 23 +
system/application/views/user/login.php | 25 +
system/application/views/user/profile.php | 27 +
system/application/views/user_template.php | 132 ++++++
system/application/views/voucher/add.php | 26 -
system/application/views/voucher/edit.php | 21
system/application/views/voucher/email.php | 2
system/application/views/voucher/index.php | 24 -
system/application/views/voucher/view.php | 5
system/application/views/welcome.php | 61 +-
todo.txt | 5
82 files changed, 3494 insertions(+), 1153 deletions(-)
---
13 years, 2 months
Changes to 'refs/tags/v1.0-beta3'
by pshah
Changes since v1.0-beta1:
Prashant P Shah (82):
Added default voucher type to custom helper functions
Removed unwanted account config file
Added user access verification helper
Added check_access to Groups
Added check_access to Ledgers
Added check_access to Logs
Added check_access to Reports
Added check_access to Tags
Added check_access to Settings
Added check_access to Vouchers
Added User login and logout actions
Added list of valid permissions strings
Unset all session variables explicitly on logout
Added change active account action
Renamed db_active_label session variable to active_account
Use the new account change form
Show manage accounts link
Removed change accounts from admin section
Changed admin top link from Accounts to 'Back to Accounts'
Added Ledger Balance type tooltip hint
Added User management
Added users directory status checks
Added settings to enable or disable logging
Include logged in username to logs
Added Help for enabling or disabling logging
Removed account details from admin welcome controller
Using the real user login procedure
Updated messages
Added 'accounts' string to user config files
Check user status during user login
Filtering out bogus accounts received in $_POST
Added user profile and account check
Added CHANGELOG.txt file
Temporary Removed support for Draft voucher
Added voucher auto numbering when adding voucher
Fixed a UI issue
Removed all references to draft vouchers
Added account locked to account settings
Implement the account locked feature
Added Help question for account locked
Added numbers to Invalid voucher type messages
Removed RSS Feeds
Converted group model to active records
Converted ledger model to active records
Converted tag model to active records
Converted setting model to active records
Converted voucher model to active records
Converted all views to active records
Converted group controller to active records
Converted setting controller to active records
Converted log controller to active records
Converted tag controller to active records
Converted pending tag controller to active records
Converted ledger controller to active records
Converted report controller to active records
Converted welcome controller to active records
Converted voucher controller to active records
Converted pending voucher controller to active records
Updated Status messages
Added Ledger id check for Ledger St
Updated CHANGELOG.txt file
Added reconciliation database table
Added reconciliation option to Ledger controller
Deleting reconciliation data if not required
Using reconciliation column instead of separate table
Added ledger model methods and form helpers for reconciliation
Added basic reconciliation structure
Added custom date helpers and date validation for reconciliation
Added Ledger account reconciliation
Updated reconciliation summary
Added Print Preview for reconciliation
Updated voucher name as Ledger model method
Updated opposite voucher name as Ledger model method
Added application version
Renamed some initial groups
Added download csv for reconciliation statement
Comment out the buggy error message and add it to TODO
Added ajax loading image for adding ledger row in vouchers
Notify user of previous reconciliations on voucher update
Fixed styling issues
Fixed styling issues
Updated CHANGELOG.txt
---
CHANGELOG.txt | 19
TODO.txt | 5
config/accounts/sample.ini | 2
config/accounts/test.ini | 7
config/settings/general.ini | 1
config/users/admin.ini | 8
config/users/guest.ini | 8
config/users/index.html | 10
db-update.txt | 6
system/application/assets/css/admin-style.css | 16
system/application/assets/css/printreport.css | 27 +
system/application/assets/css/style.css | 18
system/application/assets/css/tables.css | 26 +
system/application/assets/images/icons/ajax.gif |binary
system/application/config/autoload.php | 2
system/application/config/config.php | 10
system/application/controllers/admin/active.php | 128 ------
system/application/controllers/admin/create.php | 13
system/application/controllers/admin/initialize.sql | 4
system/application/controllers/admin/manage.php | 31 -
system/application/controllers/admin/schema.sql | 3
system/application/controllers/admin/setting.php | 23 -
system/application/controllers/admin/status.php | 11
system/application/controllers/admin/user.php | 397 ++++++++++++++++++
system/application/controllers/admin/welcome.php | 140 ------
system/application/controllers/group.php | 96 +++-
system/application/controllers/ledger.php | 135 +++++-
system/application/controllers/log.php | 50 +-
system/application/controllers/report.php | 424 ++++++++++++++++----
system/application/controllers/setting.php | 138 +++---
system/application/controllers/tag.php | 85 +++-
system/application/controllers/user.php | 314 ++++++++++++++
system/application/controllers/voucher.php | 269 ++++++++----
system/application/controllers/welcome.php | 7
system/application/helpers/MY_date_helper.php | 8
system/application/helpers/MY_form_helper.php | 2
system/application/helpers/access_helper.php | 121 +++++
system/application/helpers/custom_helper.php | 2
system/application/libraries/Logger.php | 17
system/application/libraries/MY_Form_validation.php | 44 +-
system/application/libraries/Startup.php | 32 +
system/application/libraries/Statuscheck.php | 38 +
system/application/models/group_model.php | 9
system/application/models/ledger_model.php | 124 +++++
system/application/models/setting_model.php | 3
system/application/models/tag_model.php | 27 -
system/application/models/voucher_model.php | 24 -
system/application/views/admin/active.php | 22 -
system/application/views/admin/manage/index.php | 11
system/application/views/admin/setting.php | 4
system/application/views/admin/user/add.php | 45 ++
system/application/views/admin/user/edit.php | 45 ++
system/application/views/admin/user/index.php | 76 +++
system/application/views/admin/welcome.php | 12
system/application/views/admin_template.php | 39 +
system/application/views/help/index.php | 18
system/application/views/ledger/add.php | 14
system/application/views/ledger/edit.php | 14
system/application/views/log/index.php | 8
system/application/views/report/ledgerst.php | 74 ---
system/application/views/report/profitandloss.php | 12
system/application/views/report/reconciliation.php | 195 +++++++++
system/application/views/setting/account.php | 7
system/application/views/setting/change.php | 34 -
system/application/views/tag/index.php | 3
system/application/views/template.php | 58 +-
system/application/views/user/account.php | 23 +
system/application/views/user/login.php | 25 +
system/application/views/user/profile.php | 27 +
system/application/views/user_template.php | 125 +++++
system/application/views/voucher/add.php | 15
system/application/views/voucher/edit.php | 10
system/application/views/voucher/view.php | 5
system/application/views/welcome.php | 61 +-
todo.txt | 5
75 files changed, 2980 insertions(+), 891 deletions(-)
---
13 years, 2 months
Changes to 'refs/tags/v1.0-beta1'
by pshah
Tag 'v1.0-beta1' created by Prashant P Shah <pshah.mumbai(a)gmail.com> at 2011-01-01 17:07 +0000
Released v1.0-beta1
Changes since the dawn of time:
Prashant P Shah (331):
Initial commit. Importing CodeIgnitor 1.7.2 code
Added custom assets path helper
Set the $config['base_url'] parameter
Autoload helpers and libraries
Added Webzash logo
Added basic theme template
Changed main menu item from Home to Dashboard
Cleaned the template
Added database settings
Added "Accounts" controller
Added icons
Load html helper
Table based Chart of accounts
Added custom uniqueness validation
Added form helper to autoload
Added group controller and new group creation action
Updated the header tempate and css to display messages
Fixed some alignment issue with the chart of accounts
Added jQuery JavaScript Library v1.4.3
Updated the header template
Added group deletion action
Corrected the id check
Added group edit action
Cleaned up the Dashboard and Account views
Added Group model
Using Group model
Added Ledger controller and view
Added debit credit and currency validation
Added Dr/Cr Form helper dropdown
Updated to better status messages for Group controller
Added conversion from D/C to Dr/Cr helper
Updated the account controller to display op balance
Added Ledger add and edit actions
Moved convert_dc helper to a seperate custom helper
Matched table style to overall theme
Renamed css from accounts.css to talbles.css
Added Voucher model, controller and views
Added New Voucher
Removed the extra / from URL's
Changed class to generaltable
Added jQuery date picker
Setup the datepicker plugin
Removed all jQuery UI based datepicker code
Added new jQuery based datepicker
Corrected the datepicker css
Autoload date helper
Added is_date validation
Custom date helpers
Updated the new voucher forms
Voucher repopulating after POST request
Updated the Voucher listing page
Added messages library to handle messages
Replaced default with new Messages library in header
Updated vouchers to use the new Messages library
Updated code to use the new Messages library
Cleaned up some CSS
Added Template library
Moved to new Template library
Deleted old template header and footer
Added Settings model, controller and views
Custom mysql to php date conversion function
Updated to save timezone settigns to database
Added account info in the template
Added get_ledger_balance function to Ledger model
Added reports
Added Ledger Statement structure
Updated ledger statement
Added TODO file
Changed company to account
Updated travel_group to account_st_short
Updated a link style
Updated code to use custom functions
Added converting voucher number - voucher type helper
Added custom validation for unique voucher number
Updated the code to use uniquevoucherno validation
Removed unused debugging code
Added voucher deletion
Added dynamic table row addition and deletion to voucher
Added seperate css for new table rows
Remove index.php from URL
Using site_url function
Added basic voucher printing
Added title to links and email voucher link
Updated vouchers to save as draft
Javascript to updated the Debit and Credit Total
Updated the voucher javascript code
Javascript : Added Dr - Cr and Ledger change handlers
Updated voucher code
Added different color for draft vouchers
Corrected the comment message
Added ajax based current ledger balance in vouchers
Added basic voucher email
Javascript works correctly on add new rows
Added basic voucher update functionality
Updated date helper
Updated add voucher to handle repopulation of data
Updated variable names in edit voucher
Corrected submit button name from Create to Update
Updated Voucher edit
Voucher list shows first ledger name
Added Print settings
Added flickr style pagination to Voucher list
Filtering url data
Added Pagination to Ledger Statement
Ledger Statement is shown as descending by voucher number
Using Accountlist model for Account list
Removed old Account list generation code
Sample Balance sheet
Added sample profit and loss statement
Added DB transactions support to Account Groups
Refactored the Group controller and views
Refactored Account Ledgers
Validation - only positive amount allowed
Display correct Dr/Cr in Charts of accounts
More informative status messages
Updated Trial Balance report
Added O/P and C/L Balance to Ledger statement
Added transcation support to Voucher add
Added transaction support to Voucher deletion
Added transaction support to Voucher edit
Added Closing Balance to trial balance statement
Added Ledger Statement that is not correct
Updated correct Ledger statement with draft and summary
Added convert currency helper function
Fixed UI problems
Added Voucher view
Updated Ledger statement to link to voucher view
Added jQuery Superfish based menu
Added subsuper plugin for variable width sub menu
Added cash / bank type to Ledgers
Added Email settings link
Updated Voucher email
Added Administer link on top
Check for valid database and load account settings
Added basic admin structure
Added basic Admin create account structure
Check for valid database details when creating new account
Added create account database script
Added creation of new database
Added currently active account details to admin welcome view
Added XSS Filter string
Added basic account management
Updated the anchor code to show title
Dummy change account list
Setting $db['default']['db_debug'] to FALSE
Checking for valid database settings
Style the secondary navigation links
Style the admin section secondary navigation links
Check for voucher type in voucher show action
Check for voucher type in all voucher actions
Fixed the final closing balance value in ledger st
Added XSS Filtering to input data
Added return statements to all contorllers
No need to make ajax call for ledger balance when ledger id is 0
Cleanup menu links and nav links
Updated Balance Sheet with P&L A/C
Added Difference in OP in Chart of accounts
Converting currency in proper format
Added more space in Chart of accounts tree
Undo the last commit
Added Diff in OP Balance to Balance Sheet
Convert 0.00 to 0
Updated Profit and Loss Statement with correct net value
Added Difference in OP Balance as error message
Removed Closing Balance from Group Accounts
Added style for fieldset
Updated groups to affect gross profit / loss calculations
Updated Profit and Loss statement to separate Gross and Net
Moved Ledger Summary to top
Converted Ledger Summary from table to plain text
Added Tagging Management
Added basic voucher tagging
Added rounded border to tags
Added Tags to Voucher view
Upadate the Tag list page
Updated database to create tags table
Updated the code to use new session based database settings
Updated the active account to simple session variable
Added Label to account list
Added creating account database settings configuration file
Updated Manage accounts to use new session bases settings
Creating database settings file as part of create account
Show currently active account
Removed unsed view file
Updated database to include tag_id in vouchers
Added favicon ya !
Added basic account carry forward structure
Updated the save settings file to handle newline
Updated account carry forward
Fixed typo
Added basic Email settings
Updated Email settings
Ledger accounts cannot have primary groups as parent
Updated TODO.txt to point to Online Project Plan
Added basic printer settings
Enabled Global XSS Filter
Cleanup : Removed extra php closing tag from end of view files
Cleanup : Moved form_close outside of div
Cleanup : Added closing comment to all controllers
Added General application settings link
Added row count settings
Loading general setting file
Using the row count settings in paginations
Removed debugging statements
Added backup functionality
Escaping create database statements
Added AGPL License to the project
Renamed TODO.txt file
Added jQuery TufteGraph javascript graph library
Updated Dashboard
Removed debugging data
Show voucher date before voucher number
Showing even one bank account
Auto configure base_url
Added simple table styled voucher list
Added nav-link buttons and simple-table style to account list
Styled the Dashboard
Added images from GNOME Gion icon theme
Trail balance uses the simple-table style
Ledger Statement now uses simple table style
Added Ledger name to Ledger Statement
Converted table heading to small caps
Dynamically adding javascript and css from controllers
Added draft voucher list
Added list of tagged vouchers
Added Tags sidebar
Removed eidt and delete links for top level groups
Balancesheet now styled with simple table
Profit and Loss Statement now uses simple table
New Voucher now uses the voucher table style
Edit Voucher now uses the voucher table style
View Voucher now uses the simple table style
Tag list now uses the simple table style
Manage accounts now uses the simple table style
Added Admin area message
Added Manage accounts edit and delete actions
Added CSV Helper
Added Trial Balance Download CSV
Added README.txt file
Added Ledger Statment Download CSV
Added Voucher prefix database columns
Added Balance Sheet Download CSV
Added Profit and Loss Statment Download CSV
Added beta tag
Added date selection option when creating and updating account
Updated date helper to support the date formats
Date Validation now uses date formats
Updated date formats
Updated CF account to use the current date format
Updated CF to calculate the start and end time
Creating company will store the end time as end of day
Voucher date now is display in full months name
CF Closing Balance of only Assets and Liabilities
Converted Assessment year to Financial year throught
Increase font size for info and added Help menu item
Added account summary to dashboard
Only show dashboard chart if needed
Added Database Logger Class and autoload it
Added Logger messages to Groups
Added "success" level to Logger
Added recent activity from Logger to Dashboard
Added Recent Activity footer
Added Logger messages to Ledgers
Settings updated to use the Logger library
Tags updated to use the Logger library
Updated log table to logs which is more inline with the app
Show dashboard log footer only if there is some activity
Voucher updated to use the Logger library
Added id to Logger messages
Added validation for voucher date within financial year
Cleaned up CSS
Cleaned up CSS Font sizes
Cleaned up CSS inline styles
Styled Recent Activity list
Added new form element form_input_date_restrict
Voucher print now uses a separate view and css
Added Voucher print styling
Renamed to printpreview
Added Currency to Voucher printing
Check if Financial start date is less than end date
Added voucher prefix settings
Renamed gensetting to setting
Added Voucher Prefix
Added Voucher prefix to Logger and error messages
Added Voucher email template
Added Feed icon
Added user column to logs
Updated Logger
Updated Voucher Settings
Use helpers to display amount
Added Print report statement for Trial balance
Added basic Print Statment for Balance Sheet and P and L
Variable table width for Balance Sheet and P & L
Added Print report statement for Ledger St
Replaced echo_value with print_value
Added index.html for security
Added Download Voucher links and icon
Moved the settings files in root folder
Removed label column from settings table
Check permissions of /config directory
Added accounts backup
Added a . to end of every message
Reset the $config['index_page'] to "index.php"
Added Voucher Download
Updated to CodeIgniter PHP Framework version 1.7.3
Added Status report
Added Voucher actions after add and edit voucher
Converted active record to simple database query
Added Change active account thickbox
Check new voucher date to be within current financial year
Added jQuery Color Picker plugin
Edit tag uses the new jQuery color picker
Added EZPZ Tooltip jQuery Library
Added tooltips to voucher date and draft options
Check for valid parent group
Check for valid parent group when add or edit Ledger A/C
Added tooltips to ledger type of cash or bank
Fixed query parameters as array
Check for valid Ledger A/C before add/edit voucher
Updated all messages to the same format
Updated css and messages
Removed email settings from config
Showing the Print Email and Download Window
Show only valid ledger selection
Check for valid Ledger A/C Type
Refactored database schema files
Added Status message when everything is configured correctly
Altered database structure
Added basic help page
Cleanup of status message and welcome.php view file
Cleanup of html table alignments
13 years, 2 months
Changes to 'refs/tags/v1.0-beta2'
by pshah
Changes since v1.0-beta1:
Prashant P Shah (61):
Added default voucher type to custom helper functions
Removed unwanted account config file
Added user access verification helper
Added check_access to Groups
Added check_access to Ledgers
Added check_access to Logs
Added check_access to Reports
Added check_access to Tags
Added check_access to Settings
Added check_access to Vouchers
Added User login and logout actions
Added list of valid permissions strings
Unset all session variables explicitly on logout
Added change active account action
Renamed db_active_label session variable to active_account
Use the new account change form
Show manage accounts link
Removed change accounts from admin section
Changed admin top link from Accounts to 'Back to Accounts'
Added Ledger Balance type tooltip hint
Added User management
Added users directory status checks
Added settings to enable or disable logging
Include logged in username to logs
Added Help for enabling or disabling logging
Removed account details from admin welcome controller
Using the real user login procedure
Updated messages
Added 'accounts' string to user config files
Check user status during user login
Filtering out bogus accounts received in $_POST
Added user profile and account check
Added CHANGELOG.txt file
Temporary Removed support for Draft voucher
Added voucher auto numbering when adding voucher
Fixed a UI issue
Removed all references to draft vouchers
Added account locked to account settings
Implement the account locked feature
Added Help question for account locked
Added numbers to Invalid voucher type messages
Removed RSS Feeds
Converted group model to active records
Converted ledger model to active records
Converted tag model to active records
Converted setting model to active records
Converted voucher model to active records
Converted all views to active records
Converted group controller to active records
Converted setting controller to active records
Converted log controller to active records
Converted tag controller to active records
Converted pending tag controller to active records
Converted ledger controller to active records
Converted report controller to active records
Converted welcome controller to active records
Converted voucher controller to active records
Converted pending voucher controller to active records
Updated Status messages
Added Ledger id check for Ledger St
Updated CHANGELOG.txt file
---
CHANGELOG.txt | 14
TODO.txt | 5
config/accounts/sample.ini | 2
config/accounts/test.ini | 7
config/settings/general.ini | 1
config/users/admin.ini | 8
config/users/guest.ini | 8
config/users/index.html | 10
system/application/assets/css/admin-style.css | 2
system/application/assets/css/style.css | 4
system/application/assets/css/tables.css | 6
system/application/config/autoload.php | 2
system/application/controllers/admin/active.php | 128 -------
system/application/controllers/admin/create.php | 13
system/application/controllers/admin/manage.php | 31 -
system/application/controllers/admin/schema.sql | 1
system/application/controllers/admin/setting.php | 23 +
system/application/controllers/admin/status.php | 11
system/application/controllers/admin/user.php | 397 ++++++++++++++++++++++
system/application/controllers/admin/welcome.php | 140 -------
system/application/controllers/group.php | 96 ++++-
system/application/controllers/ledger.php | 100 ++++-
system/application/controllers/log.php | 50 +-
system/application/controllers/report.php | 117 +++---
system/application/controllers/setting.php | 138 ++++---
system/application/controllers/tag.php | 85 ++++
system/application/controllers/user.php | 314 +++++++++++++++++
system/application/controllers/voucher.php | 254 +++++++++-----
system/application/controllers/welcome.php | 7
system/application/helpers/access_helper.php | 121 ++++++
system/application/helpers/custom_helper.php | 2
system/application/libraries/Logger.php | 17
system/application/libraries/Startup.php | 27 +
system/application/libraries/Statuscheck.php | 38 +-
system/application/models/group_model.php | 9
system/application/models/ledger_model.php | 48 +-
system/application/models/setting_model.php | 3
system/application/models/tag_model.php | 27 -
system/application/models/voucher_model.php | 24 -
system/application/views/admin/active.php | 22 -
system/application/views/admin/manage/index.php | 11
system/application/views/admin/setting.php | 4
system/application/views/admin/user/add.php | 45 ++
system/application/views/admin/user/edit.php | 45 ++
system/application/views/admin/user/index.php | 76 ++++
system/application/views/admin/welcome.php | 12
system/application/views/admin_template.php | 21 -
system/application/views/help/index.php | 18
system/application/views/ledger/add.php | 7
system/application/views/ledger/edit.php | 7
system/application/views/log/index.php | 8
system/application/views/report/ledgerst.php | 56 +--
system/application/views/report/profitandloss.php | 12
system/application/views/setting/account.php | 7
system/application/views/setting/change.php | 34 -
system/application/views/tag/index.php | 3
system/application/views/template.php | 29 -
system/application/views/user/account.php | 23 +
system/application/views/user/login.php | 25 +
system/application/views/user/profile.php | 23 +
system/application/views/user_template.php | 125 ++++++
system/application/views/voucher/add.php | 12
system/application/views/voucher/edit.php | 5
system/application/views/voucher/view.php | 5
system/application/views/welcome.php | 61 +--
todo.txt | 5
66 files changed, 2198 insertions(+), 793 deletions(-)
---
13 years, 2 months
Changes to 'refs/tags/v1.0'
by pshah
Changes since the dawn of time:
Prashant P Shah (419):
Initial commit. Importing CodeIgnitor 1.7.2 code
Added custom assets path helper
Set the $config['base_url'] parameter
Autoload helpers and libraries
Added Webzash logo
Added basic theme template
Changed main menu item from Home to Dashboard
Cleaned the template
Added database settings
Added "Accounts" controller
Added icons
Load html helper
Table based Chart of accounts
Added custom uniqueness validation
Added form helper to autoload
Added group controller and new group creation action
Updated the header tempate and css to display messages
Fixed some alignment issue with the chart of accounts
Added jQuery JavaScript Library v1.4.3
Updated the header template
Added group deletion action
Corrected the id check
Added group edit action
Cleaned up the Dashboard and Account views
Added Group model
Using Group model
Added Ledger controller and view
Added debit credit and currency validation
Added Dr/Cr Form helper dropdown
Updated to better status messages for Group controller
Added conversion from D/C to Dr/Cr helper
Updated the account controller to display op balance
Added Ledger add and edit actions
Moved convert_dc helper to a seperate custom helper
Matched table style to overall theme
Renamed css from accounts.css to talbles.css
Added Voucher model, controller and views
Added New Voucher
Removed the extra / from URL's
Changed class to generaltable
Added jQuery date picker
Setup the datepicker plugin
Removed all jQuery UI based datepicker code
Added new jQuery based datepicker
Corrected the datepicker css
Autoload date helper
Added is_date validation
Custom date helpers
Updated the new voucher forms
Voucher repopulating after POST request
Updated the Voucher listing page
Added messages library to handle messages
Replaced default with new Messages library in header
Updated vouchers to use the new Messages library
Updated code to use the new Messages library
Cleaned up some CSS
Added Template library
Moved to new Template library
Deleted old template header and footer
Added Settings model, controller and views
Custom mysql to php date conversion function
Updated to save timezone settigns to database
Added account info in the template
Added get_ledger_balance function to Ledger model
Added reports
Added Ledger Statement structure
Updated ledger statement
Added TODO file
Changed company to account
Updated travel_group to account_st_short
Updated a link style
Updated code to use custom functions
Added converting voucher number - voucher type helper
Added custom validation for unique voucher number
Updated the code to use uniquevoucherno validation
Removed unused debugging code
Added voucher deletion
Added dynamic table row addition and deletion to voucher
Added seperate css for new table rows
Remove index.php from URL
Using site_url function
Added basic voucher printing
Added title to links and email voucher link
Updated vouchers to save as draft
Javascript to updated the Debit and Credit Total
Updated the voucher javascript code
Javascript : Added Dr - Cr and Ledger change handlers
Updated voucher code
Added different color for draft vouchers
Corrected the comment message
Added ajax based current ledger balance in vouchers
Added basic voucher email
Javascript works correctly on add new rows
Added basic voucher update functionality
Updated date helper
Updated add voucher to handle repopulation of data
Updated variable names in edit voucher
Corrected submit button name from Create to Update
Updated Voucher edit
Voucher list shows first ledger name
Added Print settings
Added flickr style pagination to Voucher list
Filtering url data
Added Pagination to Ledger Statement
Ledger Statement is shown as descending by voucher number
Using Accountlist model for Account list
Removed old Account list generation code
Sample Balance sheet
Added sample profit and loss statement
Added DB transactions support to Account Groups
Refactored the Group controller and views
Refactored Account Ledgers
Validation - only positive amount allowed
Display correct Dr/Cr in Charts of accounts
More informative status messages
Updated Trial Balance report
Added O/P and C/L Balance to Ledger statement
Added transcation support to Voucher add
Added transaction support to Voucher deletion
Added transaction support to Voucher edit
Added Closing Balance to trial balance statement
Added Ledger Statement that is not correct
Updated correct Ledger statement with draft and summary
Added convert currency helper function
Fixed UI problems
Added Voucher view
Updated Ledger statement to link to voucher view
Added jQuery Superfish based menu
Added subsuper plugin for variable width sub menu
Added cash / bank type to Ledgers
Added Email settings link
Updated Voucher email
Added Administer link on top
Check for valid database and load account settings
Added basic admin structure
Added basic Admin create account structure
Check for valid database details when creating new account
Added create account database script
Added creation of new database
Added currently active account details to admin welcome view
Added XSS Filter string
Added basic account management
Updated the anchor code to show title
Dummy change account list
Setting $db['default']['db_debug'] to FALSE
Checking for valid database settings
Style the secondary navigation links
Style the admin section secondary navigation links
Check for voucher type in voucher show action
Check for voucher type in all voucher actions
Fixed the final closing balance value in ledger st
Added XSS Filtering to input data
Added return statements to all contorllers
No need to make ajax call for ledger balance when ledger id is 0
Cleanup menu links and nav links
Updated Balance Sheet with P&L A/C
Added Difference in OP in Chart of accounts
Converting currency in proper format
Added more space in Chart of accounts tree
Undo the last commit
Added Diff in OP Balance to Balance Sheet
Convert 0.00 to 0
Updated Profit and Loss Statement with correct net value
Added Difference in OP Balance as error message
Removed Closing Balance from Group Accounts
Added style for fieldset
Updated groups to affect gross profit / loss calculations
Updated Profit and Loss statement to separate Gross and Net
Moved Ledger Summary to top
Converted Ledger Summary from table to plain text
Added Tagging Management
Added basic voucher tagging
Added rounded border to tags
Added Tags to Voucher view
Upadate the Tag list page
Updated database to create tags table
Updated the code to use new session based database settings
Updated the active account to simple session variable
Added Label to account list
Added creating account database settings configuration file
Updated Manage accounts to use new session bases settings
Creating database settings file as part of create account
Show currently active account
Removed unsed view file
Updated database to include tag_id in vouchers
Added favicon ya !
Added basic account carry forward structure
Updated the save settings file to handle newline
Updated account carry forward
Fixed typo
Added basic Email settings
Updated Email settings
Ledger accounts cannot have primary groups as parent
Updated TODO.txt to point to Online Project Plan
Added basic printer settings
Enabled Global XSS Filter
Cleanup : Removed extra php closing tag from end of view files
Cleanup : Moved form_close outside of div
Cleanup : Added closing comment to all controllers
Added General application settings link
Added row count settings
Loading general setting file
Using the row count settings in paginations
Removed debugging statements
Added backup functionality
Escaping create database statements
Added AGPL License to the project
Renamed TODO.txt file
Added jQuery TufteGraph javascript graph library
Updated Dashboard
Removed debugging data
Show voucher date before voucher number
Showing even one bank account
Auto configure base_url
Added simple table styled voucher list
Added nav-link buttons and simple-table style to account list
Styled the Dashboard
Added images from GNOME Gion icon theme
Trail balance uses the simple-table style
Ledger Statement now uses simple table style
Added Ledger name to Ledger Statement
Converted table heading to small caps
Dynamically adding javascript and css from controllers
Added draft voucher list
Added list of tagged vouchers
Added Tags sidebar
Removed eidt and delete links for top level groups
Balancesheet now styled with simple table
Profit and Loss Statement now uses simple table
New Voucher now uses the voucher table style
Edit Voucher now uses the voucher table style
View Voucher now uses the simple table style
Tag list now uses the simple table style
Manage accounts now uses the simple table style
Added Admin area message
Added Manage accounts edit and delete actions
Added CSV Helper
Added Trial Balance Download CSV
Added README.txt file
Added Ledger Statment Download CSV
Added Voucher prefix database columns
Added Balance Sheet Download CSV
Added Profit and Loss Statment Download CSV
Added beta tag
Added date selection option when creating and updating account
Updated date helper to support the date formats
Date Validation now uses date formats
Updated date formats
Updated CF account to use the current date format
Updated CF to calculate the start and end time
Creating company will store the end time as end of day
Voucher date now is display in full months name
CF Closing Balance of only Assets and Liabilities
Converted Assessment year to Financial year throught
Increase font size for info and added Help menu item
Added account summary to dashboard
Only show dashboard chart if needed
Added Database Logger Class and autoload it
Added Logger messages to Groups
Added "success" level to Logger
Added recent activity from Logger to Dashboard
Added Recent Activity footer
Added Logger messages to Ledgers
Settings updated to use the Logger library
Tags updated to use the Logger library
Updated log table to logs which is more inline with the app
Show dashboard log footer only if there is some activity
Voucher updated to use the Logger library
Added id to Logger messages
Added validation for voucher date within financial year
Cleaned up CSS
Cleaned up CSS Font sizes
Cleaned up CSS inline styles
Styled Recent Activity list
Added new form element form_input_date_restrict
Voucher print now uses a separate view and css
Added Voucher print styling
Renamed to printpreview
Added Currency to Voucher printing
Check if Financial start date is less than end date
Added voucher prefix settings
Renamed gensetting to setting
Added Voucher Prefix
Added Voucher prefix to Logger and error messages
Added Voucher email template
Added Feed icon
Added user column to logs
Updated Logger
Updated Voucher Settings
Use helpers to display amount
Added Print report statement for Trial balance
Added basic Print Statment for Balance Sheet and P and L
Variable table width for Balance Sheet and P & L
Added Print report statement for Ledger St
Replaced echo_value with print_value
Added index.html for security
Added Download Voucher links and icon
Moved the settings files in root folder
Removed label column from settings table
Check permissions of /config directory
Added accounts backup
Added a . to end of every message
Reset the $config['index_page'] to "index.php"
Added Voucher Download
Updated to CodeIgniter PHP Framework version 1.7.3
Added Status report
Added Voucher actions after add and edit voucher
Converted active record to simple database query
Added Change active account thickbox
Check new voucher date to be within current financial year
Added jQuery Color Picker plugin
Edit tag uses the new jQuery color picker
Added EZPZ Tooltip jQuery Library
Added tooltips to voucher date and draft options
Check for valid parent group
Check for valid parent group when add or edit Ledger A/C
Added tooltips to ledger type of cash or bank
Fixed query parameters as array
Check for valid Ledger A/C before add/edit voucher
Updated all messages to the same format
Updated css and messages
Removed email settings from config
Showing the Print Email and Download Window
Show only valid ledger selection
Check for valid Ledger A/C Type
Refactored database schema files
Added Status message when everything is configured correctly
Altered database structure
Added basic help page
Cleanup of status message and welcome.php view file
Cleanup of html table alignments
Added default voucher type to custom helper functions
Removed unwanted account config file
Added user access verification helper
Added check_access to Groups
Added check_access to Ledgers
Added check_access to Logs
Added check_access to Reports
Added check_access to Tags
Added check_access to Settings
Added check_access to Vouchers
Added User login and logout actions
Added list of valid permissions strings
Unset all session variables explicitly on logout
Added change active account action
Renamed db_active_label session variable to active_account
Use the new account change form
Show manage accounts link
Removed change accounts from admin section
Changed admin top link from Accounts to 'Back to Accounts'
Added Ledger Balance type tooltip hint
Added User management
Added users directory status checks
Added settings to enable or disable logging
Include logged in username to logs
Added Help for enabling or disabling logging
Removed account details from admin welcome controller
Using the real user login procedure
Updated messages
Added 'accounts' string to user config files
Check user status during user login
Filtering out bogus accounts received in $_POST
Added user profile and account check
Added CHANGELOG.txt file
Temporary Removed support for Draft voucher
Added voucher auto numbering when adding voucher
Fixed a UI issue
Removed all references to draft vouchers
Added account locked to account settings
Implement the account locked feature
Added Help question for account locked
Added numbers to Invalid voucher type messages
Removed RSS Feeds
Converted group model to active records
Converted ledger model to active records
Converted tag model to active records
Converted setting model to active records
Converted voucher model to active records
Converted all views to active records
Converted group controller to active records
Converted setting controller to active records
Converted log controller to active records
Converted tag controller to active records
Converted pending tag controller to active records
Converted ledger controller to active records
Converted report controller to active records
Converted welcome controller to active records
Converted voucher controller to active records
Converted pending voucher controller to active records
Updated Status messages
Added Ledger id check for Ledger St
Updated CHANGELOG.txt file
Added reconciliation database table
Added reconciliation option to Ledger controller
Deleting reconciliation data if not required
Using reconciliation column instead of separate table
Added ledger model methods and form helpers for reconciliation
Added basic reconciliation structure
Added custom date helpers and date validation for reconciliation
Added Ledger account reconciliation
Updated reconciliation summary
Added Print Preview for reconciliation
Updated voucher name as Ledger model method
Updated opposite voucher name as Ledger model method
Added application version
Renamed some initial groups
Added download csv for reconciliation statement
Comment out the buggy error message and add it to TODO
Added ajax loading image for adding ledger row in vouchers
Notify user of previous reconciliations on voucher update
Fixed styling issues
Fixed styling issues
Updated CHANGELOG.txt
Moved account file check to separate library
Moved user file check to separate library
Updated user selection of accounts
Updated CHANGELOG.txt
Removed beta status and updated version number to v1.0
Updated footer website link to webzash.org
13 years, 2 months
35 commits - CHANGELOG.txt db-update.txt system/application TODO.txt
by pshah
CHANGELOG.txt | 16
TODO.txt | 6
db-update.txt | 26
system/application/assets/js/shortcuts.js | 10
system/application/assets/js/shortcutslibrary.js | 163 ++
system/application/config/config.php | 2
system/application/controllers/admin/create.php | 46
system/application/controllers/admin/initialize.sql | 8
system/application/controllers/admin/schema.sql | 25
system/application/controllers/group.php | 8
system/application/controllers/ledger.php | 21
system/application/controllers/report.php | 26
system/application/controllers/setting.php | 964 ----------------
system/application/controllers/setting/account.php | 175 ++
system/application/controllers/setting/backup.php | 56
system/application/controllers/setting/cf.php | 390 ++++++
system/application/controllers/setting/email.php | 134 ++
system/application/controllers/setting/printer.php | 225 +++
system/application/controllers/setting/vouchertypes.php | 442 +++++++
system/application/controllers/setting/welcome.php | 29
system/application/controllers/tag.php | 2
system/application/controllers/voucher.php | 620 +++++-----
system/application/helpers/custom_helper.php | 107 -
system/application/libraries/Accountlist.php | 9
system/application/libraries/General.php | 28
system/application/libraries/Logger.php | 3
system/application/libraries/MY_Form_validation.php | 37
system/application/libraries/Startup.php | 27
system/application/models/ledger_model.php | 22
system/application/models/voucher_model.php | 10
system/application/views/admin_template.php | 6
system/application/views/help/index.php | 12
system/application/views/ledger/add.php | 2
system/application/views/ledger/edit.php | 2
system/application/views/report/balancesheet.php | 4
system/application/views/report/ledgerst.php | 14
system/application/views/report/reconciliation.php | 12
system/application/views/setting/index.php | 4
system/application/views/setting/vouchertypes/add.php | 67 +
system/application/views/setting/vouchertypes/edit.php | 67 +
system/application/views/setting/vouchertypes/index.php | 25
system/application/views/template.php | 37
system/application/views/user_template.php | 7
system/application/views/voucher/add.php | 26
system/application/views/voucher/downloadpreview.php | 8
system/application/views/voucher/edit.php | 32
system/application/views/voucher/email.php | 4
system/application/views/voucher/emailpreview.php | 10
system/application/views/voucher/index.php | 70 -
system/application/views/voucher/printpreview.php | 8
system/application/views/voucher/view.php | 14
51 files changed, 2558 insertions(+), 1510 deletions(-)
New commits:
commit 99111337bf22cd386070f7813a9f69436d5040f6
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Feb 2 20:27:24 2011 +0530
Updated CHANGELOG.txt
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 58fee84..67442b1 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,11 @@
+Webzash Version 1.2 2011-02-02
+------------------------------
+
+ * Added dynamic voucher types
+ * Added dynamic voucher types management interface
+ * Added support for empty voucher number
+ * Updated columns for voucher number and tag id to allow NULL values
+
Webzash Version 1.1 2011-01-28
------------------------------
diff --git a/system/application/config/config.php b/system/application/config/config.php
index 66cf52e..d8b6fcd 100644
--- a/system/application/config/config.php
+++ b/system/application/config/config.php
@@ -376,7 +376,7 @@ $config['backup_path'] = 'backups/';
| Sets the current application version
|
*/
-$config['application_version'] = '1.1';
+$config['application_version'] = '1.2';
/* End of file config.php */
/* Location: ./system/application/config/config.php */
commit 43cf74255bd0e20a7523d8f8cbb74ed8fce3ef6d
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Feb 2 20:19:12 2011 +0530
Fixed UI issue
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/setting/vouchertypes.php b/system/application/controllers/setting/vouchertypes.php
index b20c07e..a5d368e 100644
--- a/system/application/controllers/setting/vouchertypes.php
+++ b/system/application/controllers/setting/vouchertypes.php
@@ -98,7 +98,7 @@ class VoucherTypes extends Controller {
'2' => 'Atleast one Bank or Cash A/C must be present on Debit side',
'3' => 'Atleast one Bank or Cash A/C must be present on Credit side',
'4' => 'Only Bank or Cash A/C can be present on both Debit and Credit side',
- '5' => 'None of Debit and Credit side can be Bank or Cash A/C',
+ '5' => 'Only NON Bank or Cash A/C can be present on both Debit and Credit side',
);
$data['voucher_type_base_type_active'] = '1';
@@ -286,7 +286,7 @@ class VoucherTypes extends Controller {
'2' => 'Atleast one Bank or Cash A/C must be present on Debit side',
'3' => 'Atleast one Bank or Cash A/C must be present on Credit side',
'4' => 'Only Bank or Cash A/C can be present on both Debit and Credit side',
- '5' => 'None of Debit and Credit side can be Bank or Cash A/C',
+ '5' => 'Only NON Bank or Cash A/C can be present on both Debit and Credit side',
);
$data['voucher_type_base_type_active'] = $voucher_type_data->base_type;
commit acc37f78879f0bb54eb93971232a7f3b72437afc
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Feb 2 20:11:10 2011 +0530
Allow empty Voucher numbers
- Voucher numner column allows NULL values for empty
voucher number
- Tag id column allows NULL values and also defaults
to NULL instead of 0
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/db-update.txt b/db-update.txt
index af027db..6ab82ca 100644
--- a/db-update.txt
+++ b/db-update.txt
@@ -21,6 +21,8 @@ ALTER TABLE settings DROP journal_voucher_prefix;
ALTER TABLE settings DROP voucher_number_padding;
ALTER TABLE vouchers CHANGE type voucher_type INT(5) NOT NULL;
+ALTER TABLE vouchers CHANGE number number INT(11) NULL;
+ALTER TABLE vouchers CHANGE tag_id tag_id INT(11) NULL;
//--------------------------------- VERSION 2 ----------------------------------
diff --git a/system/application/controllers/admin/schema.sql b/system/application/controllers/admin/schema.sql
index 69a571c..2f8f010 100644
--- a/system/application/controllers/admin/schema.sql
+++ b/system/application/controllers/admin/schema.sql
@@ -33,9 +33,9 @@ CREATE TABLE IF NOT EXISTS voucher_types (
CREATE TABLE IF NOT EXISTS vouchers (
id int(11) NOT NULL AUTO_INCREMENT,
- tag_id int(11) NOT NULL DEFAULT '0',
+ tag_id int(11) DEFAULT NULL,
voucher_type int(5) NOT NULL,
- number int(11) NOT NULL,
+ number int(11) DEFAULT NULL,
date datetime NOT NULL,
dr_total decimal(15,2) NOT NULL DEFAULT '0.00',
cr_total decimal(15,2) NOT NULL DEFAULT '0.00',
diff --git a/system/application/controllers/setting/vouchertypes.php b/system/application/controllers/setting/vouchertypes.php
index 311cf3c..b20c07e 100644
--- a/system/application/controllers/setting/vouchertypes.php
+++ b/system/application/controllers/setting/vouchertypes.php
@@ -92,7 +92,7 @@ class VoucherTypes extends Controller {
);
$data['voucher_type_base_types'] = array('1' => 'Normal Vocuher', '2' => 'Stock Voucher');
- $data['voucher_type_numberings'] = array('1' => 'Auto', '2' => 'Manual');
+ $data['voucher_type_numberings'] = array('1' => 'Auto', '2' => 'Manual (required)', '3' => 'Manual (optional)');
$data['bank_cash_ledger_restrictions'] = array(
'1' => 'Unrestricted',
'2' => 'Atleast one Bank or Cash A/C must be present on Debit side',
@@ -150,7 +150,7 @@ class VoucherTypes extends Controller {
if (($data_voucher_type_base_type < 1) or ($data_voucher_type_base_type > 2))
$data_voucher_type_base_type = 1;
- if (($data_voucher_type_numbering < 1) or ($data_voucher_type_numbering > 2))
+ if (($data_voucher_type_numbering < 1) or ($data_voucher_type_numbering > 3))
$data_voucher_type_numbering = 1;
if (($data_bank_cash_ledger_restriction < 1) or ($data_bank_cash_ledger_restriction > 5))
@@ -280,7 +280,7 @@ class VoucherTypes extends Controller {
);
$data['voucher_type_base_types'] = array('1' => 'Normal Vocuher', '2' => 'Stock Voucher');
- $data['voucher_type_numberings'] = array('1' => 'Auto', '2' => 'Manual');
+ $data['voucher_type_numberings'] = array('1' => 'Auto', '2' => 'Manual (required)', '3' => 'Manual (optional)');
$data['bank_cash_ledger_restrictions'] = array(
'1' => 'Unrestricted',
'2' => 'Atleast one Bank or Cash A/C must be present on Debit side',
@@ -340,7 +340,7 @@ class VoucherTypes extends Controller {
if (($data_voucher_type_base_type < 1) or ($data_voucher_type_base_type > 2))
$data_voucher_type_base_type = 1;
- if (($data_voucher_type_numbering < 1) or ($data_voucher_type_numbering > 2))
+ if (($data_voucher_type_numbering < 1) or ($data_voucher_type_numbering > 3))
$data_voucher_type_numbering = 1;
if (($data_bank_cash_ledger_restriction < 1) or ($data_bank_cash_ledger_restriction > 5))
diff --git a/system/application/controllers/tag.php b/system/application/controllers/tag.php
index 99680d5..a615de5 100644
--- a/system/application/controllers/tag.php
+++ b/system/application/controllers/tag.php
@@ -293,7 +293,7 @@ class Tag extends Controller {
/* Deleting Tag */
$this->db->trans_start();
$update_data = array(
- 'tag_id' => 0,
+ 'tag_id' => NULL,
);
if ( ! $this->db->where('tag_id', $id)->update('vouchers', $update_data))
{
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 43051af..cd71753 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -27,6 +27,12 @@ class Voucher extends Controller {
if ($voucher_type == 'tag')
{
$tag_id = (int)$this->uri->segment(4);
+ if ($tag_id < 1)
+ {
+ $this->messages->add('Invalid Tag.', 'error');
+ redirect('voucher/show/all');
+ return;
+ }
$data['tag_id'] = $tag_id;
$tag_name = $this->Tag_model->tag_name($tag_id);
$this->template->set('page_title', 'Vouchers Tagged "' . $tag_name . '"');
@@ -270,8 +276,10 @@ class Voucher extends Controller {
$data['voucher_tag'] = 0;
/* Form validations */
- if ($current_voucher_type['numbering'] == 2)
+ if ($current_voucher_type['numbering'] == '2')
$this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|required|is_natural_no_zero|uniquevoucherno[' . $voucher_type_id . ']');
+ else if ($current_voucher_type['numbering'] == '3')
+ $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|is_natural_no_zero|uniquevoucherno[' . $voucher_type_id . ']');
else
$this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|is_natural_no_zero|uniquevoucherno[' . $voucher_type_id . ']');
$this->form_validation->set_rules('voucher_date', 'Voucher Date', 'trim|required|is_date|is_date_within_range');
@@ -432,9 +440,13 @@ class Voucher extends Controller {
}
/* Adding main voucher */
- if ($current_voucher_type['numbering'] == 2)
+ if ($current_voucher_type['numbering'] == '2')
{
$data_number = $this->input->post('voucher_number', TRUE);
+ } else if ($current_voucher_type['numbering'] == '3') {
+ $data_number = $this->input->post('voucher_number', TRUE);
+ if ( ! $data_number)
+ $data_number = NULL;
} else {
if ($this->input->post('voucher_number', TRUE))
$data_number = $this->input->post('voucher_number', TRUE);
@@ -445,6 +457,8 @@ class Voucher extends Controller {
$data_date = $this->input->post('voucher_date', TRUE);
$data_narration = $this->input->post('voucher_narration', TRUE);
$data_tag = $this->input->post('voucher_tag', TRUE);
+ if ($data_tag < 1)
+ $data_tag = NULL;
$data_type = $voucher_type_id;
$data_date = date_php_to_mysql($data_date); // Converting date to MySQL
$voucher_id = NULL;
@@ -648,7 +662,10 @@ class Voucher extends Controller {
}
/* Form validations */
- $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|required|is_natural_no_zero|uniquevouchernowithid[' . $voucher_type_id . '.' . $voucher_id . ']');
+ if ($current_voucher_type['numbering'] == '3')
+ $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|is_natural_no_zero|uniquevouchernowithid[' . $voucher_type_id . '.' . $voucher_id . ']');
+ else
+ $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|required|is_natural_no_zero|uniquevouchernowithid[' . $voucher_type_id . '.' . $voucher_id . ']');
$this->form_validation->set_rules('voucher_date', 'Voucher Date', 'trim|required|is_date|is_date_within_range');
$this->form_validation->set_rules('voucher_narration', 'trim');
$this->form_validation->set_rules('voucher_tag', 'Tag', 'trim|is_natural');
@@ -791,10 +808,19 @@ class Voucher extends Controller {
}
/* Updating main voucher */
- $data_number = $this->input->post('voucher_number', TRUE);
+ if ($current_voucher_type['numbering'] == '3') {
+ $data_number = $this->input->post('voucher_number', TRUE);
+ if ( ! $data_number)
+ $data_number = NULL;
+ } else {
+ $data_number = $this->input->post('voucher_number', TRUE);
+ }
+
$data_date = $this->input->post('voucher_date', TRUE);
$data_narration = $this->input->post('voucher_narration', TRUE);
$data_tag = $this->input->post('voucher_tag', TRUE);
+ if ($data_tag < 1)
+ $data_tag = NULL;
$data_type = $voucher_type_id;
$data_date = date_php_to_mysql($data_date); // Converting date to MySQL
$data_has_reconciliation = $this->input->post('has_reconciliation', TRUE);
diff --git a/system/application/helpers/custom_helper.php b/system/application/helpers/custom_helper.php
index 7c7e4f7..21f23a4 100644
--- a/system/application/helpers/custom_helper.php
+++ b/system/application/helpers/custom_helper.php
@@ -175,13 +175,17 @@ if ( ! function_exists('full_voucher_number'))
{
$CI =& get_instance();
$voucher_type_all = $CI->config->item('account_voucher_types');
-
+ $return_html = "";
if ( ! $voucher_type_all[$voucher_type_id])
{
- return $voucher_number;
+ $return_html = $voucher_number;
} else {
- return $voucher_type_all[$voucher_type_id]['prefix'] . str_pad($voucher_number, $voucher_type_all[$voucher_type_id]['zero_padding'], '0', STR_PAD_LEFT) . $voucher_type_all[$voucher_type_id]['suffix'];
+ $return_html = $voucher_type_all[$voucher_type_id]['prefix'] . str_pad($voucher_number, $voucher_type_all[$voucher_type_id]['zero_padding'], '0', STR_PAD_LEFT) . $voucher_type_all[$voucher_type_id]['suffix'];
}
+ if ($return_html)
+ return $return_html;
+ else
+ return " ";
}
}
diff --git a/system/application/views/setting/vouchertypes/add.php b/system/application/views/setting/vouchertypes/add.php
index da88ba2..a312630 100644
--- a/system/application/views/setting/vouchertypes/add.php
+++ b/system/application/views/setting/vouchertypes/add.php
@@ -28,18 +28,12 @@
echo "</p>";
echo "<p>";
- echo form_label('Numbering', 'voucher_type_numbering');
+ echo form_label('Voucher Numbering', 'voucher_type_numbering');
echo "<br />";
echo form_dropdown('voucher_type_numbering', $voucher_type_numberings, $voucher_type_numbering_active);
echo "</p>";
echo "<p>";
- echo form_label('Restrictions', 'bank_cash_ledger_restriction');
- echo "<br />";
- echo form_dropdown('bank_cash_ledger_restriction', $bank_cash_ledger_restrictions, $bank_cash_ledger_restriction_active);
- echo "</p>";
-
- echo "<p>";
echo form_label('Prefix', 'voucher_type_prefix');
echo "<br />";
echo form_input($voucher_type_prefix);
@@ -58,6 +52,12 @@
echo "</p>";
echo "<p>";
+ echo form_label('Restrictions', 'bank_cash_ledger_restriction');
+ echo "<br />";
+ echo form_dropdown('bank_cash_ledger_restriction', $bank_cash_ledger_restrictions, $bank_cash_ledger_restriction_active);
+ echo "</p>";
+
+ echo "<p>";
echo form_submit('submit', 'Create');
echo " ";
echo anchor('setting/vouchertypes', 'Back', 'Back to Voucher Types');
diff --git a/system/application/views/setting/vouchertypes/edit.php b/system/application/views/setting/vouchertypes/edit.php
index b686d10..b3a8513 100644
--- a/system/application/views/setting/vouchertypes/edit.php
+++ b/system/application/views/setting/vouchertypes/edit.php
@@ -28,18 +28,12 @@
echo "</p>";
echo "<p>";
- echo form_label('Numbering', 'voucher_type_numbering');
+ echo form_label('Voucher Numbering', 'voucher_type_numbering');
echo "<br />";
echo form_dropdown('voucher_type_numbering', $voucher_type_numberings, $voucher_type_numbering_active);
echo "</p>";
echo "<p>";
- echo form_label('Restrictions', 'bank_cash_ledger_restriction');
- echo "<br />";
- echo form_dropdown('bank_cash_ledger_restriction', $bank_cash_ledger_restrictions, $bank_cash_ledger_restriction_active);
- echo "</p>";
-
- echo "<p>";
echo form_label('Prefix', 'voucher_type_prefix');
echo "<br />";
echo form_input($voucher_type_prefix);
@@ -58,6 +52,12 @@
echo "</p>";
echo "<p>";
+ echo form_label('Restrictions', 'bank_cash_ledger_restriction');
+ echo "<br />";
+ echo form_dropdown('bank_cash_ledger_restriction', $bank_cash_ledger_restrictions, $bank_cash_ledger_restriction_active);
+ echo "</p>";
+
+ echo "<p>";
echo form_submit('submit', 'Update');
echo " ";
echo anchor('setting/vouchertypes', 'Back', 'Back to Voucher Types');
commit 44d89bfd4dc5fcda0bee40d1b4cf9435bd98f159
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Feb 2 15:14:26 2011 +0530
Updated to use Voucher Type auto numbering if enabled
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 7405233..43051af 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -270,7 +270,10 @@ class Voucher extends Controller {
$data['voucher_tag'] = 0;
/* Form validations */
- $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|is_natural_no_zero|uniquevoucherno[' . $voucher_type_id . ']');
+ if ($current_voucher_type['numbering'] == 2)
+ $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|required|is_natural_no_zero|uniquevoucherno[' . $voucher_type_id . ']');
+ else
+ $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|is_natural_no_zero|uniquevoucherno[' . $voucher_type_id . ']');
$this->form_validation->set_rules('voucher_date', 'Voucher Date', 'trim|required|is_date|is_date_within_range');
$this->form_validation->set_rules('voucher_narration', 'trim');
$this->form_validation->set_rules('voucher_tag', 'Tag', 'trim|is_natural');
@@ -429,10 +432,15 @@ class Voucher extends Controller {
}
/* Adding main voucher */
- if ($this->input->post('voucher_number', TRUE))
+ if ($current_voucher_type['numbering'] == 2)
+ {
$data_number = $this->input->post('voucher_number', TRUE);
- else
- $data_number = $this->Voucher_model->next_voucher_number($voucher_type_id);
+ } else {
+ if ($this->input->post('voucher_number', TRUE))
+ $data_number = $this->input->post('voucher_number', TRUE);
+ else
+ $data_number = $this->Voucher_model->next_voucher_number($voucher_type_id);
+ }
$data_date = $this->input->post('voucher_date', TRUE);
$data_narration = $this->input->post('voucher_narration', TRUE);
commit a8f5189da14c6c263e917b4b52a11d190165cb5b
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Feb 2 14:56:40 2011 +0530
Updated Voucher Type zero padding
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/helpers/custom_helper.php b/system/application/helpers/custom_helper.php
index 8ec3256..7c7e4f7 100644
--- a/system/application/helpers/custom_helper.php
+++ b/system/application/helpers/custom_helper.php
@@ -180,7 +180,7 @@ if ( ! function_exists('full_voucher_number'))
{
return $voucher_number;
} else {
- return $voucher_type_all[$voucher_type_id]['prefix'] . $voucher_number . $voucher_type_all[$voucher_type_id]['suffix'];
+ return $voucher_type_all[$voucher_type_id]['prefix'] . str_pad($voucher_number, $voucher_type_all[$voucher_type_id]['zero_padding'], '0', STR_PAD_LEFT) . $voucher_type_all[$voucher_type_id]['suffix'];
}
}
}
commit f33879517ef036f8c8f1ac8c5acccfcb84b9fec9
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Feb 2 14:50:18 2011 +0530
Added Voucher Type delete action
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/setting/vouchertypes.php b/system/application/controllers/setting/vouchertypes.php
index 3b7828c..311cf3c 100644
--- a/system/application/controllers/setting/vouchertypes.php
+++ b/system/application/controllers/setting/vouchertypes.php
@@ -34,6 +34,14 @@ class VoucherTypes extends Controller {
{
$this->template->set('page_title', 'Add Voucher Type');
+ /* Check for account lock */
+ if ($this->config->item('account_locked') == 1)
+ {
+ $this->messages->add('Account is locked.', 'error');
+ redirect('setting/vouchertypes');
+ return;
+ }
+
/* Form fields */
$data['voucher_type_label'] = array(
'name' => 'voucher_type_label',
@@ -193,6 +201,14 @@ class VoucherTypes extends Controller {
{
$this->template->set('page_title', 'Edit Voucher Type');
+ /* Check for account lock */
+ if ($this->config->item('account_locked') == 1)
+ {
+ $this->messages->add('Account is locked.', 'error');
+ redirect('setting/vouchertypes');
+ return;
+ }
+
/* Checking for valid data */
$id = $this->input->xss_clean($id);
$id = (int)$id;
@@ -346,19 +362,80 @@ class VoucherTypes extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error updating Voucher Type - ' . $data_voucher_type_name . '.', 'error');
- $this->logger->write_message("error", "Error updating Voucher Type named " . $data_voucher_type_name);
+ $this->logger->write_message("error", "Error updating Voucher Type named " . $data_voucher_type_name . " [id:" . $id . "]");
$this->template->load('template', 'setting/vouchertypes/edit', $data);
return;
} else {
$this->db->trans_complete();
$this->messages->add('Updated Voucher Type - ' . $data_voucher_type_name . '.', 'success');
- $this->logger->write_message("success", "Updated Voucher Type named " . $data_voucher_type_name);
+ $this->logger->write_message("success", "Updated Voucher Type named " . $data_voucher_type_name . " [id:" . $id . "]");
redirect('setting/vouchertypes');
return;
}
}
return;
}
+
+ function delete($id)
+ {
+ /* Check for account lock */
+ if ($this->config->item('account_locked') == 1)
+ {
+ $this->messages->add('Account is locked.', 'error');
+ redirect('setting/vouchertypes');
+ return;
+ }
+
+ /* Checking for valid data */
+ $id = $this->input->xss_clean($id);
+ $id = (int)$id;
+ if ($id <= 0)
+ {
+ $this->messages->add('Invalid Voucher Type.', 'error');
+ redirect('setting/vouchertypes');
+ return;
+ }
+
+ /* Loading current Voucher Type */
+ $this->db->from('voucher_types')->where('id', $id);
+ $voucher_type_data_q = $this->db->get();
+ if ($voucher_type_data_q->num_rows() < 1)
+ {
+ $this->messages->add('Invalid Voucher Type.', 'error');
+ redirect('setting/vouchertypes');
+ return;
+ } else {
+ $voucher_type_data = $voucher_type_data_q->row();
+ }
+
+ /* Check if and Voucher present for the Voucher Type */
+ $this->db->from('vouchers')->where('voucher_type', $id);
+ $voucher_data_q = $this->db->get();
+ if ($voucher_data_q->num_rows() > 0)
+ {
+ $this->messages->add('Cannot delete Voucher Type. There are still ' . $voucher_data_q->num_rows() . ' Vouchers present.', 'error');
+ redirect('setting/vouchertypes');
+ return;
+ }
+
+ /* Deleting Voucher Types */
+ $this->db->trans_start();
+ if ( ! $this->db->delete('voucher_types', array('id' => $id)))
+ {
+ $this->db->trans_rollback();
+ $this->messages->add('Error deleting Voucher Type - ' . $voucher_type_data->name . '.', 'error');
+ $this->logger->write_message("error", "Error deleting Voucher Type named " . $voucher_type_data->name . " [id:" . $id . "]");
+ redirect('setting/vouchertypes');
+ return;
+ } else {
+ $this->db->trans_complete();
+ $this->messages->add('Deleted Voucher Type - ' . $voucher_type_data->name . '.', 'success');
+ $this->logger->write_message("success", "Deleted Voucher Type named " . $voucher_type_data->name . " [id:" . $id . "]");
+ redirect('setting/vouchertypes');
+ return;
+ }
+ return;
+ }
}
/* End of file vouchertypes.php */
commit 574aa15a180375262be46555a455dd3c9bb49251
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Feb 2 14:29:15 2011 +0530
Added Voucher Types Edit action
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/setting/vouchertypes.php b/system/application/controllers/setting/vouchertypes.php
index 2788a0f..3b7828c 100644
--- a/system/application/controllers/setting/vouchertypes.php
+++ b/system/application/controllers/setting/vouchertypes.php
@@ -113,8 +113,8 @@ class VoucherTypes extends Controller {
}
/* Form validations */
- $this->form_validation->set_rules('voucher_type_label', 'Label', 'trim|required|min_length[2]|max_length[15]|alpha');
- $this->form_validation->set_rules('voucher_type_name', 'Name', 'trim|required|min_length[2]|max_length[100]');
+ $this->form_validation->set_rules('voucher_type_label', 'Label', 'trim|required|min_length[2]|max_length[15]|alpha|unique[voucher_types.label]');
+ $this->form_validation->set_rules('voucher_type_name', 'Name', 'trim|required|min_length[2]|max_length[100]|unique[voucher_types.name]');
$this->form_validation->set_rules('voucher_type_description', 'Description', 'trim');
$this->form_validation->set_rules('voucher_type_prefix', 'Prefix', 'trim|max_length[10]');
$this->form_validation->set_rules('voucher_type_suffix', 'Suffix', 'trim|max_length[10]');
@@ -188,6 +188,177 @@ class VoucherTypes extends Controller {
}
return;
}
+
+ function edit($id)
+ {
+ $this->template->set('page_title', 'Edit Voucher Type');
+
+ /* Checking for valid data */
+ $id = $this->input->xss_clean($id);
+ $id = (int)$id;
+ if ($id < 0)
+ {
+ $this->messages->add('Invalid Voucher Type.', 'error');
+ redirect('setting/vouchertypes');
+ return;
+ }
+
+ /* Loading current Voucher Type */
+ $this->db->from('voucher_types')->where('id', $id);
+ $voucher_type_data_q = $this->db->get();
+ if ($voucher_type_data_q->num_rows() < 1)
+ {
+ $this->messages->add('Invalid Voucher Type.', 'error');
+ redirect('setting/vouchertypes');
+ return;
+ }
+ $voucher_type_data = $voucher_type_data_q->row();
+
+ /* Form fields */
+ $data['voucher_type_label'] = array(
+ 'name' => 'voucher_type_label',
+ 'id' => 'voucher_type_label',
+ 'maxlength' => '15',
+ 'size' => '15',
+ 'value' => $voucher_type_data->label,
+ );
+
+ $data['voucher_type_name'] = array(
+ 'name' => 'voucher_type_name',
+ 'id' => 'voucher_type_name',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => $voucher_type_data->name,
+ );
+
+ $data['voucher_type_description'] = array(
+ 'name' => 'voucher_type_description',
+ 'id' => 'voucher_type_description',
+ 'cols' => '47',
+ 'rows' => '5',
+ 'value' => $voucher_type_data->description,
+ );
+
+ $data['voucher_type_prefix'] = array(
+ 'name' => 'voucher_type_prefix',
+ 'id' => 'voucher_type_prefix',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => $voucher_type_data->prefix,
+ );
+
+ $data['voucher_type_suffix'] = array(
+ 'name' => 'voucher_type_suffix',
+ 'id' => 'voucher_type_suffix',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => $voucher_type_data->suffix,
+ );
+
+ $data['voucher_type_zero_padding'] = array(
+ 'name' => 'voucher_type_zero_padding',
+ 'id' => 'voucher_type_zero_padding',
+ 'maxlength' => '2',
+ 'size' => '2',
+ 'value' => $voucher_type_data->zero_padding,
+ );
+
+ $data['voucher_type_base_types'] = array('1' => 'Normal Vocuher', '2' => 'Stock Voucher');
+ $data['voucher_type_numberings'] = array('1' => 'Auto', '2' => 'Manual');
+ $data['bank_cash_ledger_restrictions'] = array(
+ '1' => 'Unrestricted',
+ '2' => 'Atleast one Bank or Cash A/C must be present on Debit side',
+ '3' => 'Atleast one Bank or Cash A/C must be present on Credit side',
+ '4' => 'Only Bank or Cash A/C can be present on both Debit and Credit side',
+ '5' => 'None of Debit and Credit side can be Bank or Cash A/C',
+ );
+
+ $data['voucher_type_base_type_active'] = $voucher_type_data->base_type;
+ $data['voucher_type_numbering_active'] = $voucher_type_data->numbering;
+ $data['bank_cash_ledger_restriction_active'] = $voucher_type_data->bank_cash_ledger_restriction;
+ $data['voucher_type_id'] = $id;
+
+ /* Repopulating form */
+ if ($_POST)
+ {
+ $data['voucher_type_label']['value'] = $this->input->post('voucher_type_label', TRUE);
+ $data['voucher_type_name']['value'] = $this->input->post('voucher_type_name', TRUE);
+ $data['voucher_type_description']['value'] = $this->input->post('voucher_type_description', TRUE);
+ $data['voucher_type_prefix']['value'] = $this->input->post('voucher_type_prefix', TRUE);
+ $data['voucher_type_suffix']['value'] = $this->input->post('voucher_type_suffix', TRUE);
+ $data['voucher_type_zero_padding']['value'] = $this->input->post('voucher_type_zero_padding', TRUE);
+
+ $data['voucher_type_base_type_active'] = $this->input->post('voucher_type_base_type', TRUE);
+ $data['voucher_type_numbering_active'] = $this->input->post('voucher_type_numbering', TRUE);
+ $data['bank_cash_ledger_restriction_active'] = $this->input->post('bank_cash_ledger_restriction', TRUE);
+ }
+
+ /* Form validations */
+ $this->form_validation->set_rules('voucher_type_label', 'Label', 'trim|required|min_length[2]|max_length[15]|alpha|uniquewithid[voucher_types.label.' . $id . ']');
+ $this->form_validation->set_rules('voucher_type_name', 'Name', 'trim|required|min_length[2]|max_length[100]|uniquewithid[voucher_types.name.' . $id . ']');
+ $this->form_validation->set_rules('voucher_type_description', 'Description', 'trim');
+ $this->form_validation->set_rules('voucher_type_prefix', 'Prefix', 'trim|max_length[10]');
+ $this->form_validation->set_rules('voucher_type_suffix', 'Suffix', 'trim|max_length[10]');
+ $this->form_validation->set_rules('voucher_type_zero_padding', 'Zero Padding', 'trim|max_length[2]|is_natural');
+
+ /* Validating form */
+ if ($this->form_validation->run() == FALSE)
+ {
+ $this->messages->add(validation_errors(), 'error');
+ $this->template->load('template', 'setting/vouchertypes/edit', $data);
+ return;
+ }
+ else
+ {
+ $data_voucher_type_id = $id;
+ $data_voucher_type_label = strtolower($this->input->post('voucher_type_label', TRUE));
+ $data_voucher_type_name = ucfirst($this->input->post('voucher_type_name', TRUE));
+ $data_voucher_type_description = $this->input->post('voucher_type_description', TRUE);
+ $data_voucher_type_prefix = $this->input->post('voucher_type_prefix', TRUE);
+ $data_voucher_type_suffix = $this->input->post('voucher_type_suffix', TRUE);
+ $data_voucher_type_zero_padding = $this->input->post('voucher_type_zero_padding', TRUE);
+ $data_voucher_type_base_type = $this->input->post('voucher_type_base_type', TRUE);
+ $data_voucher_type_numbering = $this->input->post('voucher_type_numbering', TRUE);
+ $data_bank_cash_ledger_restriction = $this->input->post('bank_cash_ledger_restriction', TRUE);
+
+ if (($data_voucher_type_base_type < 1) or ($data_voucher_type_base_type > 2))
+ $data_voucher_type_base_type = 1;
+
+ if (($data_voucher_type_numbering < 1) or ($data_voucher_type_numbering > 2))
+ $data_voucher_type_numbering = 1;
+
+ if (($data_bank_cash_ledger_restriction < 1) or ($data_bank_cash_ledger_restriction > 5))
+ $data_bank_cash_ledger_restriction = 1;
+
+ $this->db->trans_start();
+ $update_data = array(
+ 'label' => $data_voucher_type_label,
+ 'name' => $data_voucher_type_name,
+ 'description' => $data_voucher_type_description,
+ 'base_type' => $data_voucher_type_base_type,
+ 'numbering' => $data_voucher_type_numbering,
+ 'prefix' => $data_voucher_type_prefix,
+ 'suffix' => $data_voucher_type_suffix,
+ 'zero_padding' => $data_voucher_type_zero_padding,
+ 'bank_cash_ledger_restriction' => $data_bank_cash_ledger_restriction,
+ );
+ if ( ! $this->db->where('id', $data_voucher_type_id)->update('voucher_types', $update_data))
+ {
+ $this->db->trans_rollback();
+ $this->messages->add('Error updating Voucher Type - ' . $data_voucher_type_name . '.', 'error');
+ $this->logger->write_message("error", "Error updating Voucher Type named " . $data_voucher_type_name);
+ $this->template->load('template', 'setting/vouchertypes/edit', $data);
+ return;
+ } else {
+ $this->db->trans_complete();
+ $this->messages->add('Updated Voucher Type - ' . $data_voucher_type_name . '.', 'success');
+ $this->logger->write_message("success", "Updated Voucher Type named " . $data_voucher_type_name);
+ redirect('setting/vouchertypes');
+ return;
+ }
+ }
+ return;
+ }
}
/* End of file vouchertypes.php */
diff --git a/system/application/views/setting/vouchertypes/edit.php b/system/application/views/setting/vouchertypes/edit.php
index 9493133..b686d10 100644
--- a/system/application/views/setting/vouchertypes/edit.php
+++ b/system/application/views/setting/vouchertypes/edit.php
@@ -1,5 +1,5 @@
<?php
- echo form_open('setting/vouchertypes/edit' . $voucher_type_id);
+ echo form_open('setting/vouchertypes/edit/' . $voucher_type_id);
echo "<p>";
echo form_label('Label', 'voucher_type_label');
diff --git a/system/application/views/setting/vouchertypes/index.php b/system/application/views/setting/vouchertypes/index.php
index 1f997e6..9cc41f4 100644
--- a/system/application/views/setting/vouchertypes/index.php
+++ b/system/application/views/setting/vouchertypes/index.php
@@ -16,8 +16,8 @@
echo "<td>" . $row->label . "</td>";
echo "<td>" . $row->name . "</td>";
echo "<td>" . $row->description . "</td>";
- echo "<td>" . anchor('voucher/edit/' . $row->id , "Edit", array('title' => 'Edit ' . $row->name . ' Voucher Type', 'class' => 'red-link')) . " ";
- echo " " . anchor('voucher/delete/' . $row->id , img(array('src' => asset_url() . "images/icons/delete.png", 'border' => '0', 'alt' => 'Delete ' . $row->name . ' Voucher Type', 'class' => "confirmClick", 'title' => "Delete Voucher Type")), array('title' => 'Delete ' . $row->name . ' Voucher Type')) . " ";
+ echo "<td>" . anchor('setting/vouchertypes/edit/' . $row->id , "Edit", array('title' => 'Edit ' . $row->name . ' Voucher Type', 'class' => 'red-link')) . " ";
+ echo " " . anchor('setting/vouchertypes/delete/' . $row->id , img(array('src' => asset_url() . "images/icons/delete.png", 'border' => '0', 'alt' => 'Delete ' . $row->name . ' Voucher Type', 'class' => "confirmClick", 'title' => "Delete Voucher Type")), array('title' => 'Delete ' . $row->name . ' Voucher Type')) . " ";
echo "</tr>";
}
?>
commit c71e3ccecbfa2b37d63b7f03f8393141f87369f1
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Tue Feb 1 22:53:17 2011 +0530
Added New Voucher Type action
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/setting/vouchertypes.php b/system/application/controllers/setting/vouchertypes.php
index 263918a..2788a0f 100644
--- a/system/application/controllers/setting/vouchertypes.php
+++ b/system/application/controllers/setting/vouchertypes.php
@@ -29,6 +29,165 @@ class VoucherTypes extends Controller {
$this->template->load('template', 'setting/vouchertypes/index', $data);
return;
}
+
+ function add()
+ {
+ $this->template->set('page_title', 'Add Voucher Type');
+
+ /* Form fields */
+ $data['voucher_type_label'] = array(
+ 'name' => 'voucher_type_label',
+ 'id' => 'voucher_type_label',
+ 'maxlength' => '15',
+ 'size' => '15',
+ 'value' => '',
+ );
+
+ $data['voucher_type_name'] = array(
+ 'name' => 'voucher_type_name',
+ 'id' => 'voucher_type_name',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+
+ $data['voucher_type_description'] = array(
+ 'name' => 'voucher_type_description',
+ 'id' => 'voucher_type_description',
+ 'cols' => '47',
+ 'rows' => '5',
+ 'value' => '',
+ );
+
+ $data['voucher_type_prefix'] = array(
+ 'name' => 'voucher_type_prefix',
+ 'id' => 'voucher_type_prefix',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+
+ $data['voucher_type_suffix'] = array(
+ 'name' => 'voucher_type_suffix',
+ 'id' => 'voucher_type_suffix',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+
+ $data['voucher_type_zero_padding'] = array(
+ 'name' => 'voucher_type_zero_padding',
+ 'id' => 'voucher_type_zero_padding',
+ 'maxlength' => '2',
+ 'size' => '2',
+ 'value' => '',
+ );
+
+ $data['voucher_type_base_types'] = array('1' => 'Normal Vocuher', '2' => 'Stock Voucher');
+ $data['voucher_type_numberings'] = array('1' => 'Auto', '2' => 'Manual');
+ $data['bank_cash_ledger_restrictions'] = array(
+ '1' => 'Unrestricted',
+ '2' => 'Atleast one Bank or Cash A/C must be present on Debit side',
+ '3' => 'Atleast one Bank or Cash A/C must be present on Credit side',
+ '4' => 'Only Bank or Cash A/C can be present on both Debit and Credit side',
+ '5' => 'None of Debit and Credit side can be Bank or Cash A/C',
+ );
+
+ $data['voucher_type_base_type_active'] = '1';
+ $data['voucher_type_numbering_active'] = '1';
+ $data['bank_cash_ledger_restriction_active'] = '1';
+
+ /* Repopulating form */
+ if ($_POST)
+ {
+ $data['voucher_type_label']['value'] = $this->input->post('voucher_type_label', TRUE);
+ $data['voucher_type_name']['value'] = $this->input->post('voucher_type_name', TRUE);
+ $data['voucher_type_description']['value'] = $this->input->post('voucher_type_description', TRUE);
+ $data['voucher_type_prefix']['value'] = $this->input->post('voucher_type_prefix', TRUE);
+ $data['voucher_type_suffix']['value'] = $this->input->post('voucher_type_suffix', TRUE);
+ $data['voucher_type_zero_padding']['value'] = $this->input->post('voucher_type_zero_padding', TRUE);
+
+ $data['voucher_type_base_type_active'] = $this->input->post('voucher_type_base_type', TRUE);
+ $data['voucher_type_numbering_active'] = $this->input->post('voucher_type_numbering', TRUE);
+ $data['bank_cash_ledger_restriction_active'] = $this->input->post('bank_cash_ledger_restriction', TRUE);
+ }
+
+ /* Form validations */
+ $this->form_validation->set_rules('voucher_type_label', 'Label', 'trim|required|min_length[2]|max_length[15]|alpha');
+ $this->form_validation->set_rules('voucher_type_name', 'Name', 'trim|required|min_length[2]|max_length[100]');
+ $this->form_validation->set_rules('voucher_type_description', 'Description', 'trim');
+ $this->form_validation->set_rules('voucher_type_prefix', 'Prefix', 'trim|max_length[10]');
+ $this->form_validation->set_rules('voucher_type_suffix', 'Suffix', 'trim|max_length[10]');
+ $this->form_validation->set_rules('voucher_type_zero_padding', 'Zero Padding', 'trim|max_length[2]|is_natural');
+
+ /* Validating form */
+ if ($this->form_validation->run() == FALSE)
+ {
+ $this->messages->add(validation_errors(), 'error');
+ $this->template->load('template', 'setting/vouchertypes/add', $data);
+ return;
+ }
+ else
+ {
+ $data_voucher_type_label = strtolower($this->input->post('voucher_type_label', TRUE));
+ $data_voucher_type_name = ucfirst($this->input->post('voucher_type_name', TRUE));
+ $data_voucher_type_description = $this->input->post('voucher_type_description', TRUE);
+ $data_voucher_type_prefix = $this->input->post('voucher_type_prefix', TRUE);
+ $data_voucher_type_suffix = $this->input->post('voucher_type_suffix', TRUE);
+ $data_voucher_type_zero_padding = $this->input->post('voucher_type_zero_padding', TRUE);
+ $data_voucher_type_base_type = $this->input->post('voucher_type_base_type', TRUE);
+ $data_voucher_type_numbering = $this->input->post('voucher_type_numbering', TRUE);
+ $data_bank_cash_ledger_restriction = $this->input->post('bank_cash_ledger_restriction', TRUE);
+
+ if (($data_voucher_type_base_type < 1) or ($data_voucher_type_base_type > 2))
+ $data_voucher_type_base_type = 1;
+
+ if (($data_voucher_type_numbering < 1) or ($data_voucher_type_numbering > 2))
+ $data_voucher_type_numbering = 1;
+
+ if (($data_bank_cash_ledger_restriction < 1) or ($data_bank_cash_ledger_restriction > 5))
+ $data_bank_cash_ledger_restriction = 1;
+
+ /* Calculating Voucher Type Id */
+ $last_id = 1;
+ $this->db->select_max('id', 'lastid')->from('voucher_types');
+ $last_id_q = $this->db->get();
+ if ($row = $last_id_q->row())
+ {
+ $last_id = (int)$row->lastid;
+ $last_id++;
+ }
+
+ $this->db->trans_start();
+ $insert_data = array(
+ 'id' => $last_id,
+ 'label' => $data_voucher_type_label,
+ 'name' => $data_voucher_type_name,
+ 'description' => $data_voucher_type_description,
+ 'base_type' => $data_voucher_type_base_type,
+ 'numbering' => $data_voucher_type_numbering,
+ 'prefix' => $data_voucher_type_prefix,
+ 'suffix' => $data_voucher_type_suffix,
+ 'zero_padding' => $data_voucher_type_zero_padding,
+ 'bank_cash_ledger_restriction' => $data_bank_cash_ledger_restriction,
+ );
+ if ( ! $this->db->insert('voucher_types', $insert_data))
+ {
+ $this->db->trans_rollback();
+ $this->messages->add('Error addding Voucher Type - ' . $data_voucher_type_name . '.', 'error');
+ $this->logger->write_message("error", "Error adding Voucher Type named " . $data_voucher_type_name);
+ $this->template->load('template', 'setting/vouchertypes/add', $data);
+ return;
+ } else {
+ $this->db->trans_complete();
+ $this->messages->add('Added Voucher Type - ' . $data_voucher_type_name . '.', 'success');
+ $this->logger->write_message("success", "Added Voucher Type named " . $data_voucher_type_name);
+ redirect('setting/vouchertypes');
+ return;
+ }
+ }
+ return;
+ }
}
/* End of file vouchertypes.php */
diff --git a/system/application/views/setting/vouchertypes/add.php b/system/application/views/setting/vouchertypes/add.php
new file mode 100644
index 0000000..da88ba2
--- /dev/null
+++ b/system/application/views/setting/vouchertypes/add.php
@@ -0,0 +1,67 @@
+<?php
+ echo form_open('setting/vouchertypes/add');
+
+ echo "<p>";
+ echo form_label('Label', 'voucher_type_label');
+ echo "<br />";
+ echo form_input($voucher_type_label);
+ echo "<br />";
+ echo "<span class=\"form-help-text\">Note: Only alphabets are allowed without any spaces or any special characters</span>";
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Name', 'voucher_type_name');
+ echo "<br />";
+ echo form_input($voucher_type_name);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Description', 'voucher_type_description');
+ echo "<br />";
+ echo form_textarea($voucher_type_description);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Base Type', 'voucher_type_base_type');
+ echo "<br />";
+ echo form_dropdown('voucher_type_base_type', $voucher_type_base_types, $voucher_type_base_type_active);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Numbering', 'voucher_type_numbering');
+ echo "<br />";
+ echo form_dropdown('voucher_type_numbering', $voucher_type_numberings, $voucher_type_numbering_active);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Restrictions', 'bank_cash_ledger_restriction');
+ echo "<br />";
+ echo form_dropdown('bank_cash_ledger_restriction', $bank_cash_ledger_restrictions, $bank_cash_ledger_restriction_active);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Prefix', 'voucher_type_prefix');
+ echo "<br />";
+ echo form_input($voucher_type_prefix);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Suffix', 'voucher_type_suffix');
+ echo "<br />";
+ echo form_input($voucher_type_suffix);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Zero Padding', 'voucher_type_zero_padding');
+ echo "<br />";
+ echo form_input($voucher_type_zero_padding);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_submit('submit', 'Create');
+ echo " ";
+ echo anchor('setting/vouchertypes', 'Back', 'Back to Voucher Types');
+ echo "</p>";
+
+ echo form_close();
+
diff --git a/system/application/views/setting/vouchertypes/edit.php b/system/application/views/setting/vouchertypes/edit.php
new file mode 100644
index 0000000..9493133
--- /dev/null
+++ b/system/application/views/setting/vouchertypes/edit.php
@@ -0,0 +1,67 @@
+<?php
+ echo form_open('setting/vouchertypes/edit' . $voucher_type_id);
+
+ echo "<p>";
+ echo form_label('Label', 'voucher_type_label');
+ echo "<br />";
+ echo form_input($voucher_type_label);
+ echo "<br />";
+ echo "<span class=\"form-help-text\">Note: Only alphabets are allowed without any spaces or any special characters</span>";
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Name', 'voucher_type_name');
+ echo "<br />";
+ echo form_input($voucher_type_name);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Description', 'voucher_type_description');
+ echo "<br />";
+ echo form_textarea($voucher_type_description);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Base Type', 'voucher_type_base_type');
+ echo "<br />";
+ echo form_dropdown('voucher_type_base_type', $voucher_type_base_types, $voucher_type_base_type_active);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Numbering', 'voucher_type_numbering');
+ echo "<br />";
+ echo form_dropdown('voucher_type_numbering', $voucher_type_numberings, $voucher_type_numbering_active);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Restrictions', 'bank_cash_ledger_restriction');
+ echo "<br />";
+ echo form_dropdown('bank_cash_ledger_restriction', $bank_cash_ledger_restrictions, $bank_cash_ledger_restriction_active);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Prefix', 'voucher_type_prefix');
+ echo "<br />";
+ echo form_input($voucher_type_prefix);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Suffix', 'voucher_type_suffix');
+ echo "<br />";
+ echo form_input($voucher_type_suffix);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_label('Zero Padding', 'voucher_type_zero_padding');
+ echo "<br />";
+ echo form_input($voucher_type_zero_padding);
+ echo "</p>";
+
+ echo "<p>";
+ echo form_submit('submit', 'Update');
+ echo " ";
+ echo anchor('setting/vouchertypes', 'Back', 'Back to Voucher Types');
+ echo "</p>";
+
+ echo form_close();
+
diff --git a/system/application/views/setting/vouchertypes/index.php b/system/application/views/setting/vouchertypes/index.php
index 241effa..1f997e6 100644
--- a/system/application/views/setting/vouchertypes/index.php
+++ b/system/application/views/setting/vouchertypes/index.php
@@ -15,7 +15,6 @@
echo "<td>" . $row->label . "</td>";
echo "<td>" . $row->name . "</td>";
-
echo "<td>" . $row->description . "</td>";
echo "<td>" . anchor('voucher/edit/' . $row->id , "Edit", array('title' => 'Edit ' . $row->name . ' Voucher Type', 'class' => 'red-link')) . " ";
echo " " . anchor('voucher/delete/' . $row->id , img(array('src' => asset_url() . "images/icons/delete.png", 'border' => '0', 'alt' => 'Delete ' . $row->name . ' Voucher Type', 'class' => "confirmClick", 'title' => "Delete Voucher Type")), array('title' => 'Delete ' . $row->name . ' Voucher Type')) . " ";
commit fcf8113445231106f2392edf03e025182e77b422
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Tue Feb 1 19:24:18 2011 +0530
Split setting to separate controllers and added Voucher Types
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/setting.php b/system/application/controllers/setting.php
deleted file mode 100644
index 495684d..0000000
--- a/system/application/controllers/setting.php
+++ /dev/null
@@ -1,990 +0,0 @@
-<?php
-
-class Setting extends Controller {
-
- function Setting()
- {
- parent::Controller();
- $this->load->model('Setting_model');
-
- /* Check access */
- if ( ! check_access('change account settings'))
- {
- $this->messages->add('Permission denied.', 'error');
- redirect('');
- return;
- }
-
- return;
- }
-
- function index()
- {
- $this->template->set('page_title', 'Settings');
- $this->template->load('template', 'setting/index');
- return;
- }
-
- function account()
- {
- $this->template->set('page_title', 'Account Settings');
- $account_data = $this->Setting_model->get_current();
-
- $default_start = '01/04/';
- $default_end = '31/03/';
- if (date('n') > 3)
- {
- $default_start .= date('Y');
- $default_end .= date('Y') + 1;
- } else {
- $default_start .= date('Y') - 1;
- $default_end .= date('Y');
- }
-
- /* Form fields */
- $data['account_name'] = array(
- 'name' => 'account_name',
- 'id' => 'account_name',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
- $data['account_address'] = array(
- 'name' => 'account_address',
- 'id' => 'account_address',
- 'rows' => '4',
- 'cols' => '47',
- 'value' => '',
- );
- $data['account_email'] = array(
- 'name' => 'account_email',
- 'id' => 'account_email',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
-
- $data['fy_start'] = '';
- $data['fy_end'] = '';
-
- $data['account_currency'] = array(
- 'name' => 'account_currency',
- 'id' => 'account_currency',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['account_date_options'] = array(
- 'dd/mm/yyyy' => 'Day / Month / Year',
- 'mm/dd/yyyy' => 'Month / Day / Year',
- 'yyyy/mm/dd' => 'Year / Month / Day',
- );
- $data['account_date'] = 'dd/mm/yyyy';
- $data['account_timezone'] = 'UTC';
- $data['account_locked'] = FALSE;
-
- /* Current account settings */
- if ($account_data)
- {
- $data['account_name']['value'] = print_value($account_data->name);
- $data['account_address']['value'] = print_value($account_data->address);
- $data['account_email']['value'] = print_value($account_data->email);
- $data['account_currency']['value'] = print_value($account_data->currency_symbol);
- $data['account_date'] = print_value($account_data->date_format);
- $data['account_timezone'] = print_value($account_data->timezone);
- $data['fy_start'] = date_mysql_to_php(print_value($account_data->fy_start));
- $data['fy_end'] = date_mysql_to_php(print_value($account_data->fy_end));
- $data['account_locked'] = print_value($account_data->account_locked);
- }
-
- /* Form validations */
- $this->form_validation->set_rules('account_name', 'Account Name', 'trim|required|min_length[2]|max_length[100]');
- $this->form_validation->set_rules('account_address', 'Account Address', 'trim|max_length[255]');
- $this->form_validation->set_rules('account_email', 'Account Email', 'trim|valid_email');
- $this->form_validation->set_rules('account_currency', 'Currency', 'trim|max_length[10]');
- $this->form_validation->set_rules('account_date', 'Date', 'trim|max_length[10]');
- $this->form_validation->set_rules('account_timezone', 'Timezone', 'trim|max_length[6]');
- $this->form_validation->set_rules('account_locked', 'Account Locked', 'trim');
-
- /* Repopulating form */
- if ($_POST)
- {
- $data['account_name']['value'] = $this->input->post('account_name', TRUE);
- $data['account_address']['value'] = $this->input->post('account_address', TRUE);
- $data['account_email']['value'] = $this->input->post('account_email', TRUE);
- $data['account_currency']['value'] = $this->input->post('account_currency', TRUE);
- $data['account_date'] = $this->input->post('account_date', TRUE);
- $data['account_timezone'] = $this->input->post('account_timezone', TRUE);
- $data['account_locked'] = $this->input->post('account_locked', TRUE);
- }
-
- /* Validating form */
- if ($this->form_validation->run() == FALSE)
- {
- $this->messages->add(validation_errors(), 'error');
- $this->template->load('template', 'setting/account', $data);
- return;
- }
- else
- {
- $data_account_name = $this->input->post('account_name', TRUE);
- $data_account_address = $this->input->post('account_address', TRUE);
- $data_account_email = $this->input->post('account_email', TRUE);
- $data_account_currency = $this->input->post('account_currency', TRUE);
- $data_account_date_form = $this->input->post('account_date', TRUE);
- /* Checking for valid format */
- if ($data_account_date_form == "dd/mm/yyyy")
- $data_account_date = "dd/mm/yyyy";
- else if ($data_account_date_form == "mm/dd/yyyy")
- $data_account_date = "mm/dd/yyyy";
- else if ($data_account_date_form == "yyyy/mm/dd")
- $data_account_date = "yyyy/mm/dd";
- else
- $data_account_date = "dd/mm/yyyy";
-
- $data_account_timezone = $this->input->post('timezones', TRUE);
-
- $data_account_locked = $this->input->post('account_locked', TRUE);
- if ($data_account_locked != 1)
- $data_account_locked = 0;
-
- /* Update settings */
- $this->db->trans_start();
- $update_data = array(
- 'name' => $data_account_name,
- 'address' => $data_account_address,
- 'email' => $data_account_email,
- 'currency_symbol' => $data_account_currency,
- 'date_format' => $data_account_date,
- 'timezone' => $data_account_timezone,
- 'account_locked' => $data_account_locked,
- );
- if ( ! $this->db->where('id', 1)->update('settings', $update_data))
- {
- $this->db->trans_rollback();
- $this->messages->add('Error updating account settings.', 'error');
- $this->logger->write_message("error", "Error updating account settings");
- $this->template->load('template', 'setting/account', $data);
- return;
- } else {
- $this->db->trans_complete();
- $this->messages->add('Account settings updated.', 'success');
- $this->logger->write_message("success", "Updated account settings");
- redirect('setting');
- return;
- }
- }
- return;
- }
-
- function cf()
- {
- $this->load->helper('file');
- $this->load->library('accountlist');
- $this->load->model('Ledger_model');
- $this->load->model('Setting_model');
- $this->template->set('page_title', 'Carry forward account');
-
- /* Check access */
- if ( ! check_access('cf account'))
- {
- $this->messages->add('Permission denied.', 'error');
- redirect('setting');
- return;
- }
-
- /* Current settings */
- $account_data = $this->Setting_model->get_current();
-
- /* Form fields */
- $last_year_end = $this->config->item('account_fy_end');
- list($last_year_end_date, $last_year_end_time) = explode(' ', $last_year_end);
- list($last_year_end_year, $last_year_end_month, $last_year_end_day) = explode('-', $last_year_end_date);
- $last_year_end_ts = strtotime($last_year_end);
- $default_start_ts = $last_year_end_ts + (60 * 60 * 24); /* Adding 24 hours */
- $default_start = date("Y-m-d 00:00:00", $default_start_ts);
- $default_end = ($last_year_end_year + 1) . "-" . $last_year_end_month . "-" . $last_year_end_day . " 00:00:00";
-
- /* Form fields */
- $data['account_label'] = array(
- 'name' => 'account_label',
- 'id' => 'account_label',
- 'maxlength' => '30',
- 'size' => '30',
- 'value' => '',
- );
- $data['account_name'] = array(
- 'name' => 'account_name',
- 'id' => 'account_name',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
- $data['fy_start'] = array(
- 'name' => 'fy_start',
- 'id' => 'fy_start',
- 'maxlength' => '11',
- 'size' => '11',
- 'value' => date_mysql_to_php($default_start),
- );
- $data['fy_end'] = array(
- 'name' => 'fy_end',
- 'id' => 'fy_end',
- 'maxlength' => '11',
- 'size' => '11',
- 'value' => date_mysql_to_php($default_end),
- );
-
- $data['database_name'] = array(
- 'name' => 'database_name',
- 'id' => 'database_name',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
-
- $data['database_username'] = array(
- 'name' => 'database_username',
- 'id' => 'database_username',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
-
- $data['database_password'] = array(
- 'name' => 'database_password',
- 'id' => 'database_password',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
-
- $data['database_host'] = array(
- 'name' => 'database_host',
- 'id' => 'database_host',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => 'localhost',
- );
-
- $data['database_port'] = array(
- 'name' => 'database_port',
- 'id' => 'database_port',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '3306',
- );
- $data['create_database'] = FALSE;
- $data['account_name']['value'] = $this->config->item('account_name');
-
- /* Form validations */
- $this->form_validation->set_rules('account_label', 'C/F Label', 'trim|required|min_length[2]|max_length[30]|alpha_numeric');
- $this->form_validation->set_rules('account_name', 'C/F Account Name', 'trim|required|min_length[2]|max_length[100]');
- $this->form_validation->set_rules('fy_start', 'C/F Financial Year Start', 'trim|required|is_date');
- $this->form_validation->set_rules('fy_end', 'C/F Financial Year End', 'trim|required|is_date');
-
- $this->form_validation->set_rules('database_name', 'Database Name', 'trim|required');
- $this->form_validation->set_rules('database_username', 'Database Username', 'trim|required');
-
- /* Repopulating form */
- if ($_POST)
- {
- $data['account_label']['value'] = $this->input->post('account_label', TRUE);
- $data['account_name']['value'] = $this->input->post('account_name', TRUE);
- $data['fy_start']['value'] = $this->input->post('fy_start', TRUE);
- $data['fy_end']['value'] = $this->input->post('fy_end', TRUE);
-
- $data['create_database'] = $this->input->post('create_database', TRUE);
- $data['database_name']['value'] = $this->input->post('database_name', TRUE);
- $data['database_username']['value'] = $this->input->post('database_username', TRUE);
- $data['database_password']['value'] = $this->input->post('database_password', TRUE);
- $data['database_host']['value'] = $this->input->post('database_host', TRUE);
- $data['database_port']['value'] = $this->input->post('database_port', TRUE);
- }
-
- /* Validating form */
- if ($this->form_validation->run() == FALSE)
- {
- $this->messages->add(validation_errors(), 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- }
- else
- {
- $data_account_label = $this->input->post('account_label', TRUE);
- $data_account_label = strtolower($data_account_label);
- $data_account_name = $this->input->post('account_name', TRUE);
- $data_account_address = $this->config->item('account_address');
- $data_account_email = $this->config->item('account_email');
- $data_fy_start = date_php_to_mysql($this->input->post('fy_start', TRUE));
- $data_fy_end = date_php_to_mysql_end_time($this->input->post('fy_end', TRUE));
- $data_account_currency = $this->config->item('account_currency_symbol');
- $data_account_date = $this->config->item('account_date_format');
- $data_account_timezone = $this->config->item('account_timezone');
-
- $data_account_email_protocol = $account_data->email_protocol;
- $data_account_email_host = $account_data->email_host;
- $data_account_email_port = $account_data->email_port;
- $data_account_email_username = $account_data->email_username;
- $data_account_email_password = $account_data->email_password;
-
- $data_database_type = 'mysql';
- $data_database_host = $this->input->post('database_host', TRUE);
- $data_database_port = $this->input->post('database_port', TRUE);
- $data_database_name = $this->input->post('database_name', TRUE);
- $data_database_username = $this->input->post('database_username', TRUE);
- $data_database_password = $this->input->post('database_password', TRUE);
-
- $ini_file = $this->config->item('config_path') . "accounts/" . $data_account_label . ".ini";
-
- /* Check if database ini file exists */
- if (get_file_info($ini_file))
- {
- $this->messages->add('Account with same label already exists.', 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- }
-
- /* Check if start date is less than end date */
- if ($data_fy_end <= $data_fy_start)
- {
- $this->messages->add('Financial start date cannot be greater than end date.', 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- }
-
- if ($data_database_host == "")
- $data_database_host = "localhost";
- if ($data_database_port == "")
- $data_database_port = "3306";
-
- /* Creating account database */
- if ($this->input->post('create_database', TRUE) == "1")
- {
- $new_link = @mysql_connect($data_database_host . ':' . $data_database_port, $data_database_username, $data_database_password);
- if ($new_link)
- {
- /* Check if database already exists */
- $db_selected = mysql_select_db($data_database_name, $new_link);
- if ($db_selected) {
- mysql_close($new_link);
- $this->messages->add('Database already exists.', 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- }
-
- /* Creating account database */
- $db_create_q = 'CREATE DATABASE ' . mysql_real_escape_string($data_database_name);
- if (mysql_query($db_create_q, $new_link))
- {
- $this->messages->add('Created account database.', 'success');
- } else {
- $this->messages->add('Error creating account database. ' . mysql_error(), 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- }
- mysql_close($new_link);
- } else {
- $this->messages->add('Error connecting to database. ' . mysql_error(), 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- }
- }
-
- /* Setting database */
- $dsn = "mysql://${data_database_username}:${data_database_password}@${data_database_host}:${data_database_port}/${data_database_name}";
- $newacc = $this->load->database($dsn, TRUE);
-
- if ( ! $newacc->conn_id)
- {
- $this->messages->add('Error connecting to database.', 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- } else if ($newacc->_error_message() != "") {
- $this->messages->add('Error connecting to database. ' . $newacc->_error_message(), 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- } else if ($newacc->query("SHOW TABLES")->num_rows() > 0) {
- $this->messages->add('Selected database in not empty.', 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- } else {
- /* Executing the database setup script */
- $setup_account = read_file('system/application/controllers/admin/schema.sql');
- $setup_account_array = explode(";", $setup_account);
- foreach($setup_account_array as $row)
- {
- if (strlen($row) < 5)
- continue;
- $newacc->query($row);
- if ($newacc->_error_message() != "")
- {
- $this->messages->add('Error initializing account database.', 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- }
- }
- $this->messages->add('Initialized account database.', 'success');
-
- /* Adding account settings */
- $newacc->trans_start();
- if ( ! $newacc->query("INSERT INTO settings (id, name, address, email, fy_start, fy_end, currency_symbol, date_format, timezone, account_locked, email_protocol, email_host, email_port, email_username, email_password, database_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(1, $data_account_name, $data_account_address, $data_account_email, $data_fy_start, $data_fy_end, $data_account_currency, $data_account_date, $data_account_timezone, 0, $data_account_email_protocol, $data_account_email_host, $data_account_email_port, $data_account_email_username, $data_account_email_password, 3)))
- {
- $newacc->trans_rollback();
- $this->messages->add('Error adding account settings.', 'error');
- $this->template->load('template', 'setting/cf', $data);
- return;
- } else {
- $newacc->trans_complete();
- $this->messages->add('Added account settings.', 'success');
- }
-
- /**************** Importing the C/F Values : START ***************/
-
- $cf_status = TRUE;
- /* Importing Groups */
- $this->db->from('groups')->order_by('id', 'asc');
- $group_q = $this->db->get();
- foreach ($group_q->result() as $row)
- {
- if ( ! $newacc->query("INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (?, ?, ?, ?)", array($row->id, $row->parent_id, $row->name, $row->affects_gross)))
- {
- $this->messages->add('Failed to add Group A/C - ' . $row->name . '.', 'error');
- $cf_status = FALSE;
- }
- }
-
- /* Only importing Assets and Liability closing balance */
- $assets = new Accountlist();
- $assets->init(1);
- $liability = new Accountlist();
- $liability->init(2);
- $cf_ledgers = array_merge($assets->get_ledger_ids(), $liability->get_ledger_ids());
-
- /* Importing Ledgers */
- $this->db->from('ledgers')->order_by('id', 'asc');
- $ledger_q = $this->db->get();
- foreach ($ledger_q->result() as $row)
- {
- /* CF only Assets and Liability with Closing Balance */
- if (in_array($row->id, $cf_ledgers))
- {
- /* Calculating closing balance for previous year */
- $cl_balance = $this->Ledger_model->get_ledger_balance($row->id);
- if ($cl_balance < 0)
- {
- $op_balance = -$cl_balance;
- $op_balance_dc = "C";
- } else {
- $op_balance = $cl_balance;
- $op_balance_dc = "D";
- }
- if ( ! $newacc->query("INSERT INTO ledgers (id, group_id, name, op_balance, op_balance_dc, type) VALUES (?, ?, ?, ?, ?, ?)", array($row->id, $row->group_id, $row->name, $op_balance, $op_balance_dc, $row->type)))
- {
- $this->messages->add('Failed to add Ledger A/C - ' . $row->name . '.', 'error');
- $cf_status = FALSE;
- }
- } else {
- if ( ! $newacc->query("INSERT INTO ledgers (id, group_id, name, op_balance, op_balance_dc, type) VALUES (?, ?, ?, ?, ?, ?)", array($row->id, $row->group_id, $row->name, 0, "D", $row->type)))
- {
- $this->messages->add('Failed to add Ledger A/C - ' . $row->name . '.', 'error');
- $cf_status = FALSE;
- }
- }
- }
-
- /* Importing Voucher Types */
- $this->db->from('voucher_types')->order_by('id', 'asc');
- $voucher_type_q = $this->db->get();
- foreach ($voucher_type_q->result() as $row)
- {
- if ( ! $newacc->query("INSERT INTO voucher_types (id, label, name, description, base_type, numbering, prefix, suffix, zero_padding, bank_cash_ledger_restriction) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array($row->id, $row->label, $row->name, $row->description, $row->base_type, $row->numbering, $row->prefix, $row->suffix, $row->zero_padding, $row->bank_cash_ledger_restriction)))
- {
- $this->messages->add('Failed to add Voucher type - ' . $row->name . '.', 'error');
- $cf_status = FALSE;
- }
- }
-
- /* Importing Tags */
- $this->db->from('tags')->order_by('id', 'asc');
- $tag_q = $this->db->get();
- foreach ($tag_q->result() as $row)
- {
- if ( ! $newacc->query("INSERT INTO tags (id, title, color, background) VALUES (?, ?, ?, ?)", array($row->id, $row->title, $row->color, $row->background)))
- {
- $this->messages->add('Failed to add Tag - ' . $row->title . '.', 'error');
- $cf_status = FALSE;
- }
- }
-
- if ($cf_status)
- $this->messages->add('Account carried forward.', 'success');
- else
- $this->messages->add('Error carrying forward to new account.', 'error');
-
-
- /* Adding account settings to file. Code copied from manage controller */
- $con_details = "[database]" . "\r\n" . "db_type = \"" . $data_database_type . "\"" . "\r\n" . "db_hostname = \"" . $data_database_host . "\"" . "\r\n" . "db_port = \"" . $data_database_port . "\"" . "\r\n" . "db_name = \"" . $data_database_name . "\"" . "\r\n" . "db_username = \"" . $data_database_username . "\"" . "\r\n" . "db_password = \"" . $data_database_password . "\"" . "\r\n";
-
- $con_details_html = '[database]' . '<br />db_type = "' . $data_database_type . '"<br />db_hostname = "' . $data_database_host . '"<br />db_port = "' . $data_database_port . '"<br />db_name = "' . $data_database_name . '"<br />db_username = "' . $data_database_username . '"<br />db_password = "' . $data_database_password . '"<br />';
-
- /* Writing the connection string to end of file - writing in 'a' append mode */
- if ( ! write_file($ini_file, $con_details))
- {
- $this->messages->add('Failed to add account settings file. Check if "' . $ini_file . '" file is writable.', 'error');
- $this->messages->add('You can manually create a text file "' . $ini_file . '" with the following content :<br /><br />' . $con_details_html, 'error');
- } else {
- $this->messages->add('Added account settings file to list of active accounts.', 'success');
- }
-
- redirect('setting');
- return;
- }
- }
- return;
- }
-
- function email()
- {
- $this->template->set('page_title', 'Email Settings');
- $account_data = $this->Setting_model->get_current();
-
- /* Form fields */
- $data['email_protocol_options'] = array(
- 'mail' => 'mail',
- 'sendmail' => 'sendmail',
- 'smtp' => 'smtp'
- );
- $data['email_host'] = array(
- 'name' => 'email_host',
- 'id' => 'email_host',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
- $data['email_port'] = array(
- 'name' => 'email_port',
- 'id' => 'email_port',
- 'maxlength' => '5',
- 'size' => '5',
- 'value' => '',
- );
- $data['email_username'] = array(
- 'name' => 'email_username',
- 'id' => 'email_username',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
- $data['email_password'] = array(
- 'name' => 'email_password',
- 'id' => 'email_password',
- 'maxlength' => '100',
- 'size' => '40',
- 'value' => '',
- );
-
- if ($account_data)
- {
- $data['email_protocol'] = ($account_data->email_protocol) ? print_value($account_data->email_protocol) : 'smtp';
- $data['email_host']['value'] = ($account_data->email_host) ? print_value($account_data->email_host) : '';
- $data['email_port']['value'] = ($account_data->email_port) ? print_value($account_data->email_port) : '';
- $data['email_username']['value'] = ($account_data->email_username) ? print_value($account_data->email_username) : '';
- }
-
- /* Form validations */
- $this->form_validation->set_rules('email_protocol', 'Email Protocol', 'trim|required|min_length[2]|max_length[10]');
- $this->form_validation->set_rules('email_host', 'Mail Server Hostname', 'trim|max_length[255]');
- $this->form_validation->set_rules('email_port', 'Mail Server Port', 'trim|is_natural');
- $this->form_validation->set_rules('email_username', 'Email Username', 'trim|max_length[255]');
- $this->form_validation->set_rules('email_password', 'Email Password', 'trim|max_length[255]');
-
- /* Repopulating form */
- if ($_POST)
- {
- $data['email_protocol'] = $this->input->post('email_protocol', TRUE);
- $data['email_host']['value'] = $this->input->post('email_host', TRUE);
- $data['email_port']['value'] = $this->input->post('email_port', TRUE);
- $data['email_username']['value'] = $this->input->post('email_username', TRUE);
- $data['email_password']['value'] = $this->input->post('email_password', TRUE);
- }
-
- /* Validating form */
- if ($this->form_validation->run() == FALSE)
- {
- $this->messages->add(validation_errors(), 'error');
- $this->template->load('template', 'setting/email', $data);
- return;
- }
- else
- {
- $data_email_protocol = $this->input->post('email_protocol', TRUE);
- $data_email_host = $this->input->post('email_host', TRUE);
- $data_email_port = $this->input->post('email_port', TRUE);
- $data_email_username = $this->input->post('email_username', TRUE);
- $data_email_password = $this->input->post('email_password', TRUE);
-
- /* if password is blank then use the current password */
- if ($data_email_password == "")
- $data_email_password = $account_data->email_password;
-
- /* Update settings */
- $this->db->trans_start();
- $update_data = array(
- 'email_protocol' => $data_email_protocol,
- 'email_host' => $data_email_host,
- 'email_port' => $data_email_port,
- 'email_username' => $data_email_username,
- 'email_password' => $data_email_password,
- );
- if ( ! $this->db->where('id', 1)->update('settings', $update_data))
- {
- $this->db->trans_rollback();
- $this->messages->add('Error updating email settings.', 'error');
- $this->logger->write_message("error", "Error updating email settings");
- $this->template->load('template', 'setting/email', $data);
- return;
- } else {
- $this->db->trans_complete();
- $this->messages->add('Email settings updated.', 'success');
- $this->logger->write_message("success", "Updated email settings");
- redirect('setting');
- return;
- }
- }
- return;
- }
-
- function printer()
- {
- $this->template->set('page_title', 'Printer Settings');
- $account_data = $this->Setting_model->get_current();
-
- /* Form fields */
- $data['paper_height'] = array(
- 'name' => 'paper_height',
- 'id' => 'paper_height',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['paper_width'] = array(
- 'name' => 'paper_width',
- 'id' => 'paper_width',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['margin_top'] = array(
- 'name' => 'margin_top',
- 'id' => 'margin_top',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['margin_bottom'] = array(
- 'name' => 'margin_bottom',
- 'id' => 'margin_bottom',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['margin_left'] = array(
- 'name' => 'margin_left',
- 'id' => 'margin_left',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['margin_right'] = array(
- 'name' => 'margin_right',
- 'id' => 'margin_right',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['orientation_potrait'] = array(
- 'name' => 'orientation',
- 'id' => 'orientation_potrait',
- 'value' => 'P',
- 'checked' => TRUE,
- );
- $data['orientation_landscape'] = array(
- 'name' => 'orientation',
- 'id' => 'orientation_landscape',
- 'value' => 'L',
- 'checked' => FALSE,
- );
- $data['output_format_html'] = array(
- 'name' => 'output_format',
- 'id' => 'output_format_html',
- 'value' => 'H',
- 'checked' => TRUE,
- );
- $data['output_format_text'] = array(
- 'name' => 'output_format',
- 'id' => 'output_format_text',
- 'value' => 'T',
- 'checked' => FALSE,
- );
-
- if ($account_data)
- {
- $data['paper_height']['value'] = ($account_data->print_paper_height) ? print_value($account_data->print_paper_height) : '';
- $data['paper_width']['value'] = ($account_data->print_paper_width) ? print_value($account_data->print_paper_width) : '';
- $data['margin_top']['value'] = ($account_data->print_margin_top) ? print_value($account_data->print_margin_top) : '';
- $data['margin_bottom']['value'] = ($account_data->print_margin_bottom) ? print_value($account_data->print_margin_bottom) : '';
- $data['margin_left']['value'] = ($account_data->print_margin_left) ? print_value($account_data->print_margin_left) : '';
- $data['margin_right']['value'] = ($account_data->print_margin_right) ? print_value($account_data->print_margin_right) : '';
- if ($account_data->print_orientation)
- {
- if ($account_data->print_orientation == "P")
- {
- $data['orientation_potrait']['checked'] = TRUE;
- $data['orientation_landscape']['checked'] = FALSE;
- } else {
- $data['orientation_potrait']['checked'] = FALSE;
- $data['orientation_landscape']['checked'] = TRUE;
- }
- }
- if ($account_data->print_page_format)
- {
- if ($account_data->print_page_format == "H")
- {
- $data['output_format_html']['checked'] = TRUE;
- $data['output_format_text']['checked'] = FALSE;
- } else {
- $data['output_format_html']['checked'] = FALSE;
- $data['output_format_text']['checked'] = TRUE;
- }
- }
- }
-
- /* Form validations */
- $this->form_validation->set_rules('paper_height', 'Paper Height', 'trim|required|numeric');
- $this->form_validation->set_rules('paper_width', 'Paper Width', 'trim|required|numeric');
- $this->form_validation->set_rules('margin_top', 'Top Margin', 'trim|required|numeric');
- $this->form_validation->set_rules('margin_bottom', 'Bottom Margin', 'trim|required|numeric');
- $this->form_validation->set_rules('margin_left', 'Left Margin', 'trim|required|numeric');
- $this->form_validation->set_rules('margin_right', 'Right Margin', 'trim|required|numeric');
-
- /* Repopulating form */
- if ($_POST)
- {
- $data['paper_height']['value'] = $this->input->post('paper_height', TRUE);
- $data['paper_width']['value'] = $this->input->post('paper_width', TRUE);
- $data['margin_top']['value'] = $this->input->post('margin_top', TRUE);
- $data['margin_bottom']['value'] = $this->input->post('margin_bottom', TRUE);
- $data['margin_left']['value'] = $this->input->post('margin_left', TRUE);
- $data['margin_right']['value'] = $this->input->post('margin_right', TRUE);
-
- $data['orientation'] = $this->input->post('orientation', TRUE);
- if ($data['orientation'] == "P")
- {
- $data['orientation_potrait']['checked'] = TRUE;
- $data['orientation_landscape']['checked'] = FALSE;
- } else {
- $data['orientation_potrait']['checked'] = FALSE;
- $data['orientation_landscape']['checked'] = TRUE;
- }
- $data['output_format'] = $this->input->post('output_format', TRUE);
- if ($data['output_format'] == "H")
- {
- $data['output_format_html']['checked'] = TRUE;
- $data['output_format_text']['checked'] = FALSE;
- } else {
- $data['output_format_html']['checked'] = FALSE;
- $data['output_format_text']['checked'] = TRUE;
- }
- }
-
- /* Validating form */
- if ($this->form_validation->run() == FALSE)
- {
- $this->messages->add(validation_errors(), 'error');
- $this->template->load('template', 'setting/printer', $data);
- return;
- }
- else
- {
- $data_paper_height = $this->input->post('paper_height', TRUE);
- $data_paper_width = $this->input->post('paper_width', TRUE);
- $data_margin_top = $this->input->post('margin_top', TRUE);
- $data_margin_bottom = $this->input->post('margin_bottom', TRUE);
- $data_margin_left = $this->input->post('margin_left', TRUE);
- $data_margin_right = $this->input->post('margin_right', TRUE);
-
- if ($this->input->post('orientation', TRUE) == "P")
- {
- $data_orientation = "P";
- } else {
- $data_orientation = "L";
- }
- if ($this->input->post('output_format', TRUE) == "H")
- {
- $data_output_format = "H";
- } else {
- $data_output_format = "T";
- }
-
- /* Update settings */
- $this->db->trans_start();
- $update_data = array(
- 'print_paper_height' => $data_paper_height,
- 'print_paper_width' => $data_paper_width,
- 'print_margin_top' => $data_margin_top,
- 'print_margin_bottom' => $data_margin_bottom,
- 'print_margin_left' => $data_margin_left,
- 'print_margin_right' => $data_margin_right,
- 'print_orientation' => $data_orientation,
- 'print_page_format' => $data_output_format,
- );
- if ( ! $this->db->where('id', 1)->update('settings', $update_data))
- {
- $this->db->trans_rollback();
- $this->messages->add('Error updating printer settings.', 'error');
- $this->logger->write_message("error", "Error updating printer settings");
- $this->template->load('template', 'setting/printer');
- return;
- } else {
- $this->db->trans_complete();
- $this->messages->add('Printer settings updated.', 'success');
- $this->logger->write_message("success", "Updated printer settings");
- redirect('setting');
- return;
- }
- }
- return;
- }
-
- function backup()
- {
- $this->load->dbutil();
- $this->load->helper('download');
-
- /* Check access */
- if ( ! check_access('backup account'))
- {
- $this->messages->add('Permission denied.', 'error');
- redirect('setting');
- return;
- }
-
- $backup_filename = "backup" . date("dmYHis") . ".gz";
-
- /* Backup your entire database and assign it to a variable */
- $backup_data =& $this->dbutil->backup();
-
- /* Write the backup file to server */
- if ( ! write_file($this->config->item('backup_path') . $backup_filename, $backup_data))
- {
- $this->messages->add('Error saving backup file to server.' . ' Check if "' . $this->config->item('backup_path') . '" folder is writable.', 'error');
- redirect('setting');
- return;
- }
-
- /* Send the file to your desktop */
- force_download($backup_filename, $backup_data);
- $this->logger->write_message("success", "Downloaded account backup");
- redirect('setting');
- return;
- }
-
- function voucher()
- {
- $this->template->set('page_title', 'Voucher Settings');
- $account_data = $this->Setting_model->get_current();
-
- $data['receipt_prefix'] = array(
- 'name' => 'receipt_prefix',
- 'id' => 'receipt_prefix',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['payment_prefix'] = array(
- 'name' => 'payment_prefix',
- 'id' => 'payment_prefix',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['contra_prefix'] = array(
- 'name' => 'contra_prefix',
- 'id' => 'contra_prefix',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
- $data['journal_prefix'] = array(
- 'name' => 'journal_prefix',
- 'id' => 'journal_prefix',
- 'maxlength' => '10',
- 'size' => '10',
- 'value' => '',
- );
-
- if ($account_data)
- {
- $data['receipt_prefix']['value'] = $account_data->receipt_voucher_prefix;
- $data['payment_prefix']['value'] = $account_data->payment_voucher_prefix;
- $data['contra_prefix']['value'] = $account_data->contra_voucher_prefix;
- $data['journal_prefix']['value'] = $account_data->journal_voucher_prefix;
- }
-
- /* Form validations */
- $this->form_validation->set_rules('receipt_prefix', 'Prefix Receipt Vouchers', 'trim');
- $this->form_validation->set_rules('payment_prefix', 'Prefix Payment Vouchers', 'trim');
- $this->form_validation->set_rules('contra_prefix', 'Prefix Contra Vouchers', 'trim');
- $this->form_validation->set_rules('journal_prefix', 'Prefix Journal Vouchers', 'trim');
-
- /* Repopulating form */
- if ($_POST)
- {
- $data['receipt_prefix']['value'] = $this->input->post('receipt_prefix', TRUE);
- $data['payment_prefix']['value'] = $this->input->post('payment_prefix', TRUE);
- $data['contra_prefix']['value'] = $this->input->post('contra_prefix', TRUE);
- $data['journal_prefix']['value'] = $this->input->post('journal_prefix', TRUE);
- }
-
- /* Validating form */
- if ($this->form_validation->run() == FALSE)
- {
- $this->messages->add(validation_errors(), 'error');
- $this->template->load('template', 'setting/voucher', $data);
- return;
- } else {
- $data_receipt_prefix = $this->input->post('receipt_prefix', TRUE);
- $data_payment_prefix = $this->input->post('payment_prefix', TRUE);
- $data_contra_prefix = $this->input->post('contra_prefix', TRUE);
- $data_journal_prefix = $this->input->post('journal_prefix', TRUE);
-
- /* Update settings */
- $this->db->trans_start();
- $update_data = array(
- 'receipt_voucher_prefix' => $data_receipt_prefix,
- 'payment_voucher_prefix' => $data_payment_prefix,
- 'contra_voucher_prefix' => $data_contra_prefix,
- 'journal_voucher_prefix' => $data_journal_prefix,
- );
- if ( ! $this->db->where('id', 1)->update('settings', $update_data))
- {
- $this->db->trans_rollback();
- $this->messages->add('Error updating Voucher settings.', 'error');
- $this->logger->write_message("error", "Error updating voucher settings");
- $this->template->load('template', 'setting/voucher');
- return;
- } else {
- $this->db->trans_complete();
- $this->messages->add('Voucher settings updated.', 'success');
- $this->logger->write_message("success", "Updated voucher settings");
- redirect('setting');
- return;
- }
- }
- return;
- }
-}
-
-/* End of file setting.php */
-/* Location: ./system/application/controllers/setting.php */
diff --git a/system/application/controllers/setting/account.php b/system/application/controllers/setting/account.php
new file mode 100644
index 0000000..c80880b
--- /dev/null
+++ b/system/application/controllers/setting/account.php
@@ -0,0 +1,175 @@
+<?php
+
+class Account extends Controller {
+
+ function Account()
+ {
+ parent::Controller();
+ $this->load->model('Setting_model');
+
+ /* Check access */
+ if ( ! check_access('change account settings'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('');
+ return;
+ }
+
+ return;
+ }
+
+ function index()
+ {
+ $this->template->set('page_title', 'Account Settings');
+ $account_data = $this->Setting_model->get_current();
+
+ $default_start = '01/04/';
+ $default_end = '31/03/';
+ if (date('n') > 3)
+ {
+ $default_start .= date('Y');
+ $default_end .= date('Y') + 1;
+ } else {
+ $default_start .= date('Y') - 1;
+ $default_end .= date('Y');
+ }
+
+ /* Form fields */
+ $data['account_name'] = array(
+ 'name' => 'account_name',
+ 'id' => 'account_name',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+ $data['account_address'] = array(
+ 'name' => 'account_address',
+ 'id' => 'account_address',
+ 'rows' => '4',
+ 'cols' => '47',
+ 'value' => '',
+ );
+ $data['account_email'] = array(
+ 'name' => 'account_email',
+ 'id' => 'account_email',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+
+ $data['fy_start'] = '';
+ $data['fy_end'] = '';
+
+ $data['account_currency'] = array(
+ 'name' => 'account_currency',
+ 'id' => 'account_currency',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+ $data['account_date_options'] = array(
+ 'dd/mm/yyyy' => 'Day / Month / Year',
+ 'mm/dd/yyyy' => 'Month / Day / Year',
+ 'yyyy/mm/dd' => 'Year / Month / Day',
+ );
+ $data['account_date'] = 'dd/mm/yyyy';
+ $data['account_timezone'] = 'UTC';
+ $data['account_locked'] = FALSE;
+
+ /* Current account settings */
+ if ($account_data)
+ {
+ $data['account_name']['value'] = print_value($account_data->name);
+ $data['account_address']['value'] = print_value($account_data->address);
+ $data['account_email']['value'] = print_value($account_data->email);
+ $data['account_currency']['value'] = print_value($account_data->currency_symbol);
+ $data['account_date'] = print_value($account_data->date_format);
+ $data['account_timezone'] = print_value($account_data->timezone);
+ $data['fy_start'] = date_mysql_to_php(print_value($account_data->fy_start));
+ $data['fy_end'] = date_mysql_to_php(print_value($account_data->fy_end));
+ $data['account_locked'] = print_value($account_data->account_locked);
+ }
+
+ /* Form validations */
+ $this->form_validation->set_rules('account_name', 'Account Name', 'trim|required|min_length[2]|max_length[100]');
+ $this->form_validation->set_rules('account_address', 'Account Address', 'trim|max_length[255]');
+ $this->form_validation->set_rules('account_email', 'Account Email', 'trim|valid_email');
+ $this->form_validation->set_rules('account_currency', 'Currency', 'trim|max_length[10]');
+ $this->form_validation->set_rules('account_date', 'Date', 'trim|max_length[10]');
+ $this->form_validation->set_rules('account_timezone', 'Timezone', 'trim|max_length[6]');
+ $this->form_validation->set_rules('account_locked', 'Account Locked', 'trim');
+
+ /* Repopulating form */
+ if ($_POST)
+ {
+ $data['account_name']['value'] = $this->input->post('account_name', TRUE);
+ $data['account_address']['value'] = $this->input->post('account_address', TRUE);
+ $data['account_email']['value'] = $this->input->post('account_email', TRUE);
+ $data['account_currency']['value'] = $this->input->post('account_currency', TRUE);
+ $data['account_date'] = $this->input->post('account_date', TRUE);
+ $data['account_timezone'] = $this->input->post('account_timezone', TRUE);
+ $data['account_locked'] = $this->input->post('account_locked', TRUE);
+ }
+
+ /* Validating form */
+ if ($this->form_validation->run() == FALSE)
+ {
+ $this->messages->add(validation_errors(), 'error');
+ $this->template->load('template', 'setting/account', $data);
+ return;
+ }
+ else
+ {
+ $data_account_name = $this->input->post('account_name', TRUE);
+ $data_account_address = $this->input->post('account_address', TRUE);
+ $data_account_email = $this->input->post('account_email', TRUE);
+ $data_account_currency = $this->input->post('account_currency', TRUE);
+ $data_account_date_form = $this->input->post('account_date', TRUE);
+ /* Checking for valid format */
+ if ($data_account_date_form == "dd/mm/yyyy")
+ $data_account_date = "dd/mm/yyyy";
+ else if ($data_account_date_form == "mm/dd/yyyy")
+ $data_account_date = "mm/dd/yyyy";
+ else if ($data_account_date_form == "yyyy/mm/dd")
+ $data_account_date = "yyyy/mm/dd";
+ else
+ $data_account_date = "dd/mm/yyyy";
+
+ $data_account_timezone = $this->input->post('timezones', TRUE);
+
+ $data_account_locked = $this->input->post('account_locked', TRUE);
+ if ($data_account_locked != 1)
+ $data_account_locked = 0;
+
+ /* Update settings */
+ $this->db->trans_start();
+ $update_data = array(
+ 'name' => $data_account_name,
+ 'address' => $data_account_address,
+ 'email' => $data_account_email,
+ 'currency_symbol' => $data_account_currency,
+ 'date_format' => $data_account_date,
+ 'timezone' => $data_account_timezone,
+ 'account_locked' => $data_account_locked,
+ );
+ if ( ! $this->db->where('id', 1)->update('settings', $update_data))
+ {
+ $this->db->trans_rollback();
+ $this->messages->add('Error updating account settings.', 'error');
+ $this->logger->write_message("error", "Error updating account settings");
+ $this->template->load('template', 'setting/account', $data);
+ return;
+ } else {
+ $this->db->trans_complete();
+ $this->messages->add('Account settings updated.', 'success');
+ $this->logger->write_message("success", "Updated account settings");
+ redirect('setting');
+ return;
+ }
+ }
+ return;
+ }
+}
+
+/* End of file account.php */
+/* Location: ./system/application/controllers/setting/account.php */
diff --git a/system/application/controllers/setting/backup.php b/system/application/controllers/setting/backup.php
new file mode 100644
index 0000000..95291d2
--- /dev/null
+++ b/system/application/controllers/setting/backup.php
@@ -0,0 +1,56 @@
+<?php
+
+class Backup extends Controller {
+
+ function Backup()
+ {
+ parent::Controller();
+ $this->load->model('Setting_model');
+
+ /* Check access */
+ if ( ! check_access('change account settings'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('');
+ return;
+ }
+
+ return;
+ }
+
+ function index()
+ {
+ $this->load->dbutil();
+ $this->load->helper('download');
+
+ /* Check access */
+ if ( ! check_access('backup account'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('setting');
+ return;
+ }
+
+ $backup_filename = "backup" . date("dmYHis") . ".gz";
+
+ /* Backup your entire database and assign it to a variable */
+ $backup_data =& $this->dbutil->backup();
+
+ /* Write the backup file to server */
+ if ( ! write_file($this->config->item('backup_path') . $backup_filename, $backup_data))
+ {
+ $this->messages->add('Error saving backup file to server.' . ' Check if "' . $this->config->item('backup_path') . '" folder is writable.', 'error');
+ redirect('setting');
+ return;
+ }
+
+ /* Send the file to your desktop */
+ force_download($backup_filename, $backup_data);
+ $this->logger->write_message("success", "Downloaded account backup");
+ redirect('setting');
+ return;
+ }
+}
+
+/* End of file backup.php */
+/* Location: ./system/application/controllers/setting/backup.php */
diff --git a/system/application/controllers/setting/cf.php b/system/application/controllers/setting/cf.php
new file mode 100644
index 0000000..ce9c1f2
--- /dev/null
+++ b/system/application/controllers/setting/cf.php
@@ -0,0 +1,390 @@
+<?php
+
+class Cf extends Controller {
+
+ function Cf()
+ {
+ parent::Controller();
+ $this->load->model('Setting_model');
+
+ /* Check access */
+ if ( ! check_access('change account settings'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('');
+ return;
+ }
+
+ return;
+ }
+
+ function index()
+ {
+ $this->load->helper('file');
+ $this->load->library('accountlist');
+ $this->load->model('Ledger_model');
+ $this->load->model('Setting_model');
+ $this->template->set('page_title', 'Carry forward account');
+
+ /* Check access */
+ if ( ! check_access('cf account'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('setting');
+ return;
+ }
+
+ /* Current settings */
+ $account_data = $this->Setting_model->get_current();
+
+ /* Form fields */
+ $last_year_end = $this->config->item('account_fy_end');
+ list($last_year_end_date, $last_year_end_time) = explode(' ', $last_year_end);
+ list($last_year_end_year, $last_year_end_month, $last_year_end_day) = explode('-', $last_year_end_date);
+ $last_year_end_ts = strtotime($last_year_end);
+ $default_start_ts = $last_year_end_ts + (60 * 60 * 24); /* Adding 24 hours */
+ $default_start = date("Y-m-d 00:00:00", $default_start_ts);
+ $default_end = ($last_year_end_year + 1) . "-" . $last_year_end_month . "-" . $last_year_end_day . " 00:00:00";
+
+ /* Form fields */
+ $data['account_label'] = array(
+ 'name' => 'account_label',
+ 'id' => 'account_label',
+ 'maxlength' => '30',
+ 'size' => '30',
+ 'value' => '',
+ );
+ $data['account_name'] = array(
+ 'name' => 'account_name',
+ 'id' => 'account_name',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+ $data['fy_start'] = array(
+ 'name' => 'fy_start',
+ 'id' => 'fy_start',
+ 'maxlength' => '11',
+ 'size' => '11',
+ 'value' => date_mysql_to_php($default_start),
+ );
+ $data['fy_end'] = array(
+ 'name' => 'fy_end',
+ 'id' => 'fy_end',
+ 'maxlength' => '11',
+ 'size' => '11',
+ 'value' => date_mysql_to_php($default_end),
+ );
+
+ $data['database_name'] = array(
+ 'name' => 'database_name',
+ 'id' => 'database_name',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+
+ $data['database_username'] = array(
+ 'name' => 'database_username',
+ 'id' => 'database_username',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+
+ $data['database_password'] = array(
+ 'name' => 'database_password',
+ 'id' => 'database_password',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+
+ $data['database_host'] = array(
+ 'name' => 'database_host',
+ 'id' => 'database_host',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => 'localhost',
+ );
+
+ $data['database_port'] = array(
+ 'name' => 'database_port',
+ 'id' => 'database_port',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '3306',
+ );
+ $data['create_database'] = FALSE;
+ $data['account_name']['value'] = $this->config->item('account_name');
+
+ /* Form validations */
+ $this->form_validation->set_rules('account_label', 'C/F Label', 'trim|required|min_length[2]|max_length[30]|alpha_numeric');
+ $this->form_validation->set_rules('account_name', 'C/F Account Name', 'trim|required|min_length[2]|max_length[100]');
+ $this->form_validation->set_rules('fy_start', 'C/F Financial Year Start', 'trim|required|is_date');
+ $this->form_validation->set_rules('fy_end', 'C/F Financial Year End', 'trim|required|is_date');
+
+ $this->form_validation->set_rules('database_name', 'Database Name', 'trim|required');
+ $this->form_validation->set_rules('database_username', 'Database Username', 'trim|required');
+
+ /* Repopulating form */
+ if ($_POST)
+ {
+ $data['account_label']['value'] = $this->input->post('account_label', TRUE);
+ $data['account_name']['value'] = $this->input->post('account_name', TRUE);
+ $data['fy_start']['value'] = $this->input->post('fy_start', TRUE);
+ $data['fy_end']['value'] = $this->input->post('fy_end', TRUE);
+
+ $data['create_database'] = $this->input->post('create_database', TRUE);
+ $data['database_name']['value'] = $this->input->post('database_name', TRUE);
+ $data['database_username']['value'] = $this->input->post('database_username', TRUE);
+ $data['database_password']['value'] = $this->input->post('database_password', TRUE);
+ $data['database_host']['value'] = $this->input->post('database_host', TRUE);
+ $data['database_port']['value'] = $this->input->post('database_port', TRUE);
+ }
+
+ /* Validating form */
+ if ($this->form_validation->run() == FALSE)
+ {
+ $this->messages->add(validation_errors(), 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ }
+ else
+ {
+ $data_account_label = $this->input->post('account_label', TRUE);
+ $data_account_label = strtolower($data_account_label);
+ $data_account_name = $this->input->post('account_name', TRUE);
+ $data_account_address = $this->config->item('account_address');
+ $data_account_email = $this->config->item('account_email');
+ $data_fy_start = date_php_to_mysql($this->input->post('fy_start', TRUE));
+ $data_fy_end = date_php_to_mysql_end_time($this->input->post('fy_end', TRUE));
+ $data_account_currency = $this->config->item('account_currency_symbol');
+ $data_account_date = $this->config->item('account_date_format');
+ $data_account_timezone = $this->config->item('account_timezone');
+
+ $data_account_email_protocol = $account_data->email_protocol;
+ $data_account_email_host = $account_data->email_host;
+ $data_account_email_port = $account_data->email_port;
+ $data_account_email_username = $account_data->email_username;
+ $data_account_email_password = $account_data->email_password;
+
+ $data_database_type = 'mysql';
+ $data_database_host = $this->input->post('database_host', TRUE);
+ $data_database_port = $this->input->post('database_port', TRUE);
+ $data_database_name = $this->input->post('database_name', TRUE);
+ $data_database_username = $this->input->post('database_username', TRUE);
+ $data_database_password = $this->input->post('database_password', TRUE);
+
+ $ini_file = $this->config->item('config_path') . "accounts/" . $data_account_label . ".ini";
+
+ /* Check if database ini file exists */
+ if (get_file_info($ini_file))
+ {
+ $this->messages->add('Account with same label already exists.', 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ }
+
+ /* Check if start date is less than end date */
+ if ($data_fy_end <= $data_fy_start)
+ {
+ $this->messages->add('Financial start date cannot be greater than end date.', 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ }
+
+ if ($data_database_host == "")
+ $data_database_host = "localhost";
+ if ($data_database_port == "")
+ $data_database_port = "3306";
+
+ /* Creating account database */
+ if ($this->input->post('create_database', TRUE) == "1")
+ {
+ $new_link = @mysql_connect($data_database_host . ':' . $data_database_port, $data_database_username, $data_database_password);
+ if ($new_link)
+ {
+ /* Check if database already exists */
+ $db_selected = mysql_select_db($data_database_name, $new_link);
+ if ($db_selected) {
+ mysql_close($new_link);
+ $this->messages->add('Database already exists.', 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ }
+
+ /* Creating account database */
+ $db_create_q = 'CREATE DATABASE ' . mysql_real_escape_string($data_database_name);
+ if (mysql_query($db_create_q, $new_link))
+ {
+ $this->messages->add('Created account database.', 'success');
+ } else {
+ $this->messages->add('Error creating account database. ' . mysql_error(), 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ }
+ mysql_close($new_link);
+ } else {
+ $this->messages->add('Error connecting to database. ' . mysql_error(), 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ }
+ }
+
+ /* Setting database */
+ $dsn = "mysql://${data_database_username}:${data_database_password}@${data_database_host}:${data_database_port}/${data_database_name}";
+ $newacc = $this->load->database($dsn, TRUE);
+
+ if ( ! $newacc->conn_id)
+ {
+ $this->messages->add('Error connecting to database.', 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ } else if ($newacc->_error_message() != "") {
+ $this->messages->add('Error connecting to database. ' . $newacc->_error_message(), 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ } else if ($newacc->query("SHOW TABLES")->num_rows() > 0) {
+ $this->messages->add('Selected database in not empty.', 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ } else {
+ /* Executing the database setup script */
+ $setup_account = read_file('system/application/controllers/admin/schema.sql');
+ $setup_account_array = explode(";", $setup_account);
+ foreach($setup_account_array as $row)
+ {
+ if (strlen($row) < 5)
+ continue;
+ $newacc->query($row);
+ if ($newacc->_error_message() != "")
+ {
+ $this->messages->add('Error initializing account database.', 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ }
+ }
+ $this->messages->add('Initialized account database.', 'success');
+
+ /* Adding account settings */
+ $newacc->trans_start();
+ if ( ! $newacc->query("INSERT INTO settings (id, name, address, email, fy_start, fy_end, currency_symbol, date_format, timezone, account_locked, email_protocol, email_host, email_port, email_username, email_password, database_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(1, $data_account_name, $data_account_address, $data_account_email, $data_fy_start, $data_fy_end, $data_account_currency, $data_account_date, $data_account_timezone, 0, $data_account_email_protocol, $data_account_email_host, $data_account_email_port, $data_account_email_username, $data_account_email_password, 3)))
+ {
+ $newacc->trans_rollback();
+ $this->messages->add('Error adding account settings.', 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ } else {
+ $newacc->trans_complete();
+ $this->messages->add('Added account settings.', 'success');
+ }
+
+ /**************** Importing the C/F Values : START ***************/
+
+ $cf_status = TRUE;
+ /* Importing Groups */
+ $this->db->from('groups')->order_by('id', 'asc');
+ $group_q = $this->db->get();
+ foreach ($group_q->result() as $row)
+ {
+ if ( ! $newacc->query("INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (?, ?, ?, ?)", array($row->id, $row->parent_id, $row->name, $row->affects_gross)))
+ {
+ $this->messages->add('Failed to add Group A/C - ' . $row->name . '.', 'error');
+ $cf_status = FALSE;
+ }
+ }
+
+ /* Only importing Assets and Liability closing balance */
+ $assets = new Accountlist();
+ $assets->init(1);
+ $liability = new Accountlist();
+ $liability->init(2);
+ $cf_ledgers = array_merge($assets->get_ledger_ids(), $liability->get_ledger_ids());
+
+ /* Importing Ledgers */
+ $this->db->from('ledgers')->order_by('id', 'asc');
+ $ledger_q = $this->db->get();
+ foreach ($ledger_q->result() as $row)
+ {
+ /* CF only Assets and Liability with Closing Balance */
+ if (in_array($row->id, $cf_ledgers))
+ {
+ /* Calculating closing balance for previous year */
+ $cl_balance = $this->Ledger_model->get_ledger_balance($row->id);
+ if ($cl_balance < 0)
+ {
+ $op_balance = -$cl_balance;
+ $op_balance_dc = "C";
+ } else {
+ $op_balance = $cl_balance;
+ $op_balance_dc = "D";
+ }
+ if ( ! $newacc->query("INSERT INTO ledgers (id, group_id, name, op_balance, op_balance_dc, type) VALUES (?, ?, ?, ?, ?, ?)", array($row->id, $row->group_id, $row->name, $op_balance, $op_balance_dc, $row->type)))
+ {
+ $this->messages->add('Failed to add Ledger A/C - ' . $row->name . '.', 'error');
+ $cf_status = FALSE;
+ }
+ } else {
+ if ( ! $newacc->query("INSERT INTO ledgers (id, group_id, name, op_balance, op_balance_dc, type) VALUES (?, ?, ?, ?, ?, ?)", array($row->id, $row->group_id, $row->name, 0, "D", $row->type)))
+ {
+ $this->messages->add('Failed to add Ledger A/C - ' . $row->name . '.', 'error');
+ $cf_status = FALSE;
+ }
+ }
+ }
+
+ /* Importing Voucher Types */
+ $this->db->from('voucher_types')->order_by('id', 'asc');
+ $voucher_type_q = $this->db->get();
+ foreach ($voucher_type_q->result() as $row)
+ {
+ if ( ! $newacc->query("INSERT INTO voucher_types (id, label, name, description, base_type, numbering, prefix, suffix, zero_padding, bank_cash_ledger_restriction) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array($row->id, $row->label, $row->name, $row->description, $row->base_type, $row->numbering, $row->prefix, $row->suffix, $row->zero_padding, $row->bank_cash_ledger_restriction)))
+ {
+ $this->messages->add('Failed to add Voucher type - ' . $row->name . '.', 'error');
+ $cf_status = FALSE;
+ }
+ }
+
+ /* Importing Tags */
+ $this->db->from('tags')->order_by('id', 'asc');
+ $tag_q = $this->db->get();
+ foreach ($tag_q->result() as $row)
+ {
+ if ( ! $newacc->query("INSERT INTO tags (id, title, color, background) VALUES (?, ?, ?, ?)", array($row->id, $row->title, $row->color, $row->background)))
+ {
+ $this->messages->add('Failed to add Tag - ' . $row->title . '.', 'error');
+ $cf_status = FALSE;
+ }
+ }
+
+ if ($cf_status)
+ $this->messages->add('Account carried forward.', 'success');
+ else
+ $this->messages->add('Error carrying forward to new account.', 'error');
+
+
+ /* Adding account settings to file. Code copied from manage controller */
+ $con_details = "[database]" . "\r\n" . "db_type = \"" . $data_database_type . "\"" . "\r\n" . "db_hostname = \"" . $data_database_host . "\"" . "\r\n" . "db_port = \"" . $data_database_port . "\"" . "\r\n" . "db_name = \"" . $data_database_name . "\"" . "\r\n" . "db_username = \"" . $data_database_username . "\"" . "\r\n" . "db_password = \"" . $data_database_password . "\"" . "\r\n";
+
+ $con_details_html = '[database]' . '<br />db_type = "' . $data_database_type . '"<br />db_hostname = "' . $data_database_host . '"<br />db_port = "' . $data_database_port . '"<br />db_name = "' . $data_database_name . '"<br />db_username = "' . $data_database_username . '"<br />db_password = "' . $data_database_password . '"<br />';
+
+ /* Writing the connection string to end of file - writing in 'a' append mode */
+ if ( ! write_file($ini_file, $con_details))
+ {
+ $this->messages->add('Failed to add account settings file. Check if "' . $ini_file . '" file is writable.', 'error');
+ $this->messages->add('You can manually create a text file "' . $ini_file . '" with the following content :<br /><br />' . $con_details_html, 'error');
+ } else {
+ $this->messages->add('Added account settings file to list of active accounts.', 'success');
+ }
+
+ redirect('setting');
+ return;
+ }
+ }
+ return;
+ }
+}
+
+/* End of file cf.php */
+/* Location: ./system/application/controllers/setting/cf.php */
diff --git a/system/application/controllers/setting/email.php b/system/application/controllers/setting/email.php
new file mode 100644
index 0000000..3f879ff
--- /dev/null
+++ b/system/application/controllers/setting/email.php
@@ -0,0 +1,134 @@
+<?php
+
+class Email extends Controller {
+
+ function Email()
+ {
+ parent::Controller();
+ $this->load->model('Setting_model');
+
+ /* Check access */
+ if ( ! check_access('change account settings'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('');
+ return;
+ }
+
+ return;
+ }
+
+ function index()
+ {
+ $this->template->set('page_title', 'Email Settings');
+ $account_data = $this->Setting_model->get_current();
+
+ /* Form fields */
+ $data['email_protocol_options'] = array(
+ 'mail' => 'mail',
+ 'sendmail' => 'sendmail',
+ 'smtp' => 'smtp'
+ );
+ $data['email_host'] = array(
+ 'name' => 'email_host',
+ 'id' => 'email_host',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+ $data['email_port'] = array(
+ 'name' => 'email_port',
+ 'id' => 'email_port',
+ 'maxlength' => '5',
+ 'size' => '5',
+ 'value' => '',
+ );
+ $data['email_username'] = array(
+ 'name' => 'email_username',
+ 'id' => 'email_username',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+ $data['email_password'] = array(
+ 'name' => 'email_password',
+ 'id' => 'email_password',
+ 'maxlength' => '100',
+ 'size' => '40',
+ 'value' => '',
+ );
+
+ if ($account_data)
+ {
+ $data['email_protocol'] = ($account_data->email_protocol) ? print_value($account_data->email_protocol) : 'smtp';
+ $data['email_host']['value'] = ($account_data->email_host) ? print_value($account_data->email_host) : '';
+ $data['email_port']['value'] = ($account_data->email_port) ? print_value($account_data->email_port) : '';
+ $data['email_username']['value'] = ($account_data->email_username) ? print_value($account_data->email_username) : '';
+ }
+
+ /* Form validations */
+ $this->form_validation->set_rules('email_protocol', 'Email Protocol', 'trim|required|min_length[2]|max_length[10]');
+ $this->form_validation->set_rules('email_host', 'Mail Server Hostname', 'trim|max_length[255]');
+ $this->form_validation->set_rules('email_port', 'Mail Server Port', 'trim|is_natural');
+ $this->form_validation->set_rules('email_username', 'Email Username', 'trim|max_length[255]');
+ $this->form_validation->set_rules('email_password', 'Email Password', 'trim|max_length[255]');
+
+ /* Repopulating form */
+ if ($_POST)
+ {
+ $data['email_protocol'] = $this->input->post('email_protocol', TRUE);
+ $data['email_host']['value'] = $this->input->post('email_host', TRUE);
+ $data['email_port']['value'] = $this->input->post('email_port', TRUE);
+ $data['email_username']['value'] = $this->input->post('email_username', TRUE);
+ $data['email_password']['value'] = $this->input->post('email_password', TRUE);
+ }
+
+ /* Validating form */
+ if ($this->form_validation->run() == FALSE)
+ {
+ $this->messages->add(validation_errors(), 'error');
+ $this->template->load('template', 'setting/email', $data);
+ return;
+ }
+ else
+ {
+ $data_email_protocol = $this->input->post('email_protocol', TRUE);
+ $data_email_host = $this->input->post('email_host', TRUE);
+ $data_email_port = $this->input->post('email_port', TRUE);
+ $data_email_username = $this->input->post('email_username', TRUE);
+ $data_email_password = $this->input->post('email_password', TRUE);
+
+ /* if password is blank then use the current password */
+ if ($data_email_password == "")
+ $data_email_password = $account_data->email_password;
+
+ /* Update settings */
+ $this->db->trans_start();
+ $update_data = array(
+ 'email_protocol' => $data_email_protocol,
+ 'email_host' => $data_email_host,
+ 'email_port' => $data_email_port,
+ 'email_username' => $data_email_username,
+ 'email_password' => $data_email_password,
+ );
+ if ( ! $this->db->where('id', 1)->update('settings', $update_data))
+ {
+ $this->db->trans_rollback();
+ $this->messages->add('Error updating email settings.', 'error');
+ $this->logger->write_message("error", "Error updating email settings");
+ $this->template->load('template', 'setting/email', $data);
+ return;
+ } else {
+ $this->db->trans_complete();
+ $this->messages->add('Email settings updated.', 'success');
+ $this->logger->write_message("success", "Updated email settings");
+ redirect('setting');
+ return;
+ }
+ }
+ return;
+ }
+}
+
+/* End of file email.php */
+/* Location: ./system/application/controllers/setting/email.php */
diff --git a/system/application/controllers/setting/printer.php b/system/application/controllers/setting/printer.php
new file mode 100644
index 0000000..117e270
--- /dev/null
+++ b/system/application/controllers/setting/printer.php
@@ -0,0 +1,225 @@
+<?php
+
+class Printer extends Controller {
+
+ function Printer()
+ {
+ parent::Controller();
+ $this->load->model('Setting_model');
+
+ /* Check access */
+ if ( ! check_access('change account settings'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('');
+ return;
+ }
+
+ return;
+ }
+
+ function index()
+ {
+ $this->template->set('page_title', 'Printer Settings');
+ $account_data = $this->Setting_model->get_current();
+
+ /* Form fields */
+ $data['paper_height'] = array(
+ 'name' => 'paper_height',
+ 'id' => 'paper_height',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+ $data['paper_width'] = array(
+ 'name' => 'paper_width',
+ 'id' => 'paper_width',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+ $data['margin_top'] = array(
+ 'name' => 'margin_top',
+ 'id' => 'margin_top',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+ $data['margin_bottom'] = array(
+ 'name' => 'margin_bottom',
+ 'id' => 'margin_bottom',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+ $data['margin_left'] = array(
+ 'name' => 'margin_left',
+ 'id' => 'margin_left',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+ $data['margin_right'] = array(
+ 'name' => 'margin_right',
+ 'id' => 'margin_right',
+ 'maxlength' => '10',
+ 'size' => '10',
+ 'value' => '',
+ );
+ $data['orientation_potrait'] = array(
+ 'name' => 'orientation',
+ 'id' => 'orientation_potrait',
+ 'value' => 'P',
+ 'checked' => TRUE,
+ );
+ $data['orientation_landscape'] = array(
+ 'name' => 'orientation',
+ 'id' => 'orientation_landscape',
+ 'value' => 'L',
+ 'checked' => FALSE,
+ );
+ $data['output_format_html'] = array(
+ 'name' => 'output_format',
+ 'id' => 'output_format_html',
+ 'value' => 'H',
+ 'checked' => TRUE,
+ );
+ $data['output_format_text'] = array(
+ 'name' => 'output_format',
+ 'id' => 'output_format_text',
+ 'value' => 'T',
+ 'checked' => FALSE,
+ );
+
+ if ($account_data)
+ {
+ $data['paper_height']['value'] = ($account_data->print_paper_height) ? print_value($account_data->print_paper_height) : '';
+ $data['paper_width']['value'] = ($account_data->print_paper_width) ? print_value($account_data->print_paper_width) : '';
+ $data['margin_top']['value'] = ($account_data->print_margin_top) ? print_value($account_data->print_margin_top) : '';
+ $data['margin_bottom']['value'] = ($account_data->print_margin_bottom) ? print_value($account_data->print_margin_bottom) : '';
+ $data['margin_left']['value'] = ($account_data->print_margin_left) ? print_value($account_data->print_margin_left) : '';
+ $data['margin_right']['value'] = ($account_data->print_margin_right) ? print_value($account_data->print_margin_right) : '';
+ if ($account_data->print_orientation)
+ {
+ if ($account_data->print_orientation == "P")
+ {
+ $data['orientation_potrait']['checked'] = TRUE;
+ $data['orientation_landscape']['checked'] = FALSE;
+ } else {
+ $data['orientation_potrait']['checked'] = FALSE;
+ $data['orientation_landscape']['checked'] = TRUE;
+ }
+ }
+ if ($account_data->print_page_format)
+ {
+ if ($account_data->print_page_format == "H")
+ {
+ $data['output_format_html']['checked'] = TRUE;
+ $data['output_format_text']['checked'] = FALSE;
+ } else {
+ $data['output_format_html']['checked'] = FALSE;
+ $data['output_format_text']['checked'] = TRUE;
+ }
+ }
+ }
+
+ /* Form validations */
+ $this->form_validation->set_rules('paper_height', 'Paper Height', 'trim|required|numeric');
+ $this->form_validation->set_rules('paper_width', 'Paper Width', 'trim|required|numeric');
+ $this->form_validation->set_rules('margin_top', 'Top Margin', 'trim|required|numeric');
+ $this->form_validation->set_rules('margin_bottom', 'Bottom Margin', 'trim|required|numeric');
+ $this->form_validation->set_rules('margin_left', 'Left Margin', 'trim|required|numeric');
+ $this->form_validation->set_rules('margin_right', 'Right Margin', 'trim|required|numeric');
+
+ /* Repopulating form */
+ if ($_POST)
+ {
+ $data['paper_height']['value'] = $this->input->post('paper_height', TRUE);
+ $data['paper_width']['value'] = $this->input->post('paper_width', TRUE);
+ $data['margin_top']['value'] = $this->input->post('margin_top', TRUE);
+ $data['margin_bottom']['value'] = $this->input->post('margin_bottom', TRUE);
+ $data['margin_left']['value'] = $this->input->post('margin_left', TRUE);
+ $data['margin_right']['value'] = $this->input->post('margin_right', TRUE);
+
+ $data['orientation'] = $this->input->post('orientation', TRUE);
+ if ($data['orientation'] == "P")
+ {
+ $data['orientation_potrait']['checked'] = TRUE;
+ $data['orientation_landscape']['checked'] = FALSE;
+ } else {
+ $data['orientation_potrait']['checked'] = FALSE;
+ $data['orientation_landscape']['checked'] = TRUE;
+ }
+ $data['output_format'] = $this->input->post('output_format', TRUE);
+ if ($data['output_format'] == "H")
+ {
+ $data['output_format_html']['checked'] = TRUE;
+ $data['output_format_text']['checked'] = FALSE;
+ } else {
+ $data['output_format_html']['checked'] = FALSE;
+ $data['output_format_text']['checked'] = TRUE;
+ }
+ }
+
+ /* Validating form */
+ if ($this->form_validation->run() == FALSE)
+ {
+ $this->messages->add(validation_errors(), 'error');
+ $this->template->load('template', 'setting/printer', $data);
+ return;
+ }
+ else
+ {
+ $data_paper_height = $this->input->post('paper_height', TRUE);
+ $data_paper_width = $this->input->post('paper_width', TRUE);
+ $data_margin_top = $this->input->post('margin_top', TRUE);
+ $data_margin_bottom = $this->input->post('margin_bottom', TRUE);
+ $data_margin_left = $this->input->post('margin_left', TRUE);
+ $data_margin_right = $this->input->post('margin_right', TRUE);
+
+ if ($this->input->post('orientation', TRUE) == "P")
+ {
+ $data_orientation = "P";
+ } else {
+ $data_orientation = "L";
+ }
+ if ($this->input->post('output_format', TRUE) == "H")
+ {
+ $data_output_format = "H";
+ } else {
+ $data_output_format = "T";
+ }
+
+ /* Update settings */
+ $this->db->trans_start();
+ $update_data = array(
+ 'print_paper_height' => $data_paper_height,
+ 'print_paper_width' => $data_paper_width,
+ 'print_margin_top' => $data_margin_top,
+ 'print_margin_bottom' => $data_margin_bottom,
+ 'print_margin_left' => $data_margin_left,
+ 'print_margin_right' => $data_margin_right,
+ 'print_orientation' => $data_orientation,
+ 'print_page_format' => $data_output_format,
+ );
+ if ( ! $this->db->where('id', 1)->update('settings', $update_data))
+ {
+ $this->db->trans_rollback();
+ $this->messages->add('Error updating printer settings.', 'error');
+ $this->logger->write_message("error", "Error updating printer settings");
+ $this->template->load('template', 'setting/printer');
+ return;
+ } else {
+ $this->db->trans_complete();
+ $this->messages->add('Printer settings updated.', 'success');
+ $this->logger->write_message("success", "Updated printer settings");
+ redirect('setting');
+ return;
+ }
+ }
+ return;
+ }
+}
+
+/* End of file printer.php */
+/* Location: ./system/application/controllers/setting/printer.php */
diff --git a/system/application/controllers/setting/vouchertypes.php b/system/application/controllers/setting/vouchertypes.php
new file mode 100644
index 0000000..263918a
--- /dev/null
+++ b/system/application/controllers/setting/vouchertypes.php
@@ -0,0 +1,35 @@
+<?php
+
+class VoucherTypes extends Controller {
+
+ function VoucherTypes()
+ {
+ parent::Controller();
+ $this->load->model('Setting_model');
+
+ /* Check access */
+ if ( ! check_access('change account settings'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('');
+ return;
+ }
+
+ return;
+ }
+
+ function index()
+ {
+ $this->template->set('page_title', 'Voucher Types');
+ $this->template->set('nav_links', array('setting/vouchertypes/add' => 'New Voucher Type'));
+
+ $this->db->from('voucher_types')->order_by('id', 'asc');
+ $data['voucher_type_data'] = $this->db->get();
+
+ $this->template->load('template', 'setting/vouchertypes/index', $data);
+ return;
+ }
+}
+
+/* End of file vouchertypes.php */
+/* Location: ./system/application/controllers/setting/vouchertypes.php */
diff --git a/system/application/controllers/setting/welcome.php b/system/application/controllers/setting/welcome.php
new file mode 100644
index 0000000..18fff8a
--- /dev/null
+++ b/system/application/controllers/setting/welcome.php
@@ -0,0 +1,29 @@
+<?php
+
+class Welcome extends Controller {
+
+ function Welcome()
+ {
+ parent::Controller();
+
+ /* Check access */
+ if ( ! check_access('change account settings'))
+ {
+ $this->messages->add('Permission denied.', 'error');
+ redirect('');
+ return;
+ }
+
+ return;
+ }
+
+ function index()
+ {
+ $this->template->set('page_title', 'Settings');
+ $this->template->load('template', 'setting/index');
+ return;
+ }
+}
+
+/* End of file welcome.php */
+/* Location: ./system/application/controllers/setting/welcome.php */
diff --git a/system/application/views/setting/index.php b/system/application/views/setting/index.php
index e925798..00084bd 100644
--- a/system/application/views/setting/index.php
+++ b/system/application/views/setting/index.php
@@ -52,10 +52,10 @@
</div>
<div class="settings-container">
<div class="settings-title">
- <?php echo anchor('setting/voucher', 'Voucher Settings', array('title' => 'Voucher Settings')); ?>
+ <?php echo anchor('setting/vouchertypes', 'Voucher Types', array('title' => 'Voucher Types')); ?>
</div>
<div class="settings-desc">
- Voucher settings
+ Manage Voucher Types
</div>
</div>
</div>
diff --git a/system/application/views/setting/vouchertypes/index.php b/system/application/views/setting/vouchertypes/index.php
new file mode 100644
index 0000000..241effa
--- /dev/null
+++ b/system/application/views/setting/vouchertypes/index.php
@@ -0,0 +1,26 @@
+<table border=0 cellpadding=5 class="simple-table">
+ <thead>
+ <tr>
+ <th>Label</th>
+ <th>Name</th>
+ <th>Description</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ foreach ($voucher_type_data->result() as $row)
+ {
+ echo "<tr>";
+
+ echo "<td>" . $row->label . "</td>";
+ echo "<td>" . $row->name . "</td>";
+
+ echo "<td>" . $row->description . "</td>";
+ echo "<td>" . anchor('voucher/edit/' . $row->id , "Edit", array('title' => 'Edit ' . $row->name . ' Voucher Type', 'class' => 'red-link')) . " ";
+ echo " " . anchor('voucher/delete/' . $row->id , img(array('src' => asset_url() . "images/icons/delete.png", 'border' => '0', 'alt' => 'Delete ' . $row->name . ' Voucher Type', 'class' => "confirmClick", 'title' => "Delete Voucher Type")), array('title' => 'Delete ' . $row->name . ' Voucher Type')) . " ";
+ echo "</tr>";
+ }
+ ?>
+ </tbody>
+</table>
commit 1ef3417945be2905b74ee43acde51e4262c86fcb
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Tue Feb 1 14:21:29 2011 +0530
Allow editing and deleting of System created Group A/C
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/group.php b/system/application/controllers/group.php
index e1c5976..8db1503 100644
--- a/system/application/controllers/group.php
+++ b/system/application/controllers/group.php
@@ -144,7 +144,7 @@ class Group extends Controller {
redirect('account');
return;
}
- if ($id <= 16) {
+ if ($id <= 4) {
$this->messages->add('Cannot edit System Group A/C.', 'error');
redirect('account');
return;
@@ -278,7 +278,7 @@ class Group extends Controller {
redirect('account');
return;
}
- if ($id <= 16) {
+ if ($id <= 4) {
$this->messages->add('Cannot delete System Group A/C.', 'error');
redirect('account');
return;
diff --git a/system/application/libraries/Accountlist.php b/system/application/libraries/Accountlist.php
index 9819422..bd53cec 100644
--- a/system/application/libraries/Accountlist.php
+++ b/system/application/libraries/Accountlist.php
@@ -128,7 +128,7 @@ class Accountlist
echo "<td>-</td>";
echo "<td>-</td>";
- if ($this->id <= 16)
+ if ($this->id <= 4)
{
echo "<td class=\"td-actions\"></tr>";
} else {
commit 6519da6944340727a1966e4d68b9dc2cbb982859
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Mon Jan 31 22:03:50 2011 +0530
Updated template to use dynamic voucher types
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/ledger.php b/system/application/controllers/ledger.php
index 4503b5b..7403867 100644
--- a/system/application/controllers/ledger.php
+++ b/system/application/controllers/ledger.php
@@ -261,16 +261,24 @@ class Ledger extends Controller {
return;
}
- /* Check if contra voucher present for non Bank or Cash A/C */
+ /* Check if bank_cash_ledger_restriction both voucher present */
if ($data_ledger_type_cashbank_value != "1")
{
- $this->db->from('voucher_items')->join('vouchers', 'voucher_items.voucher_id = vouchers.id')->where('vouchers.type', 3)->where('voucher_items.ledger_id', $id);
- $contra_count = $this->db->get()->num_rows();
- if ($contra_count > 0)
+ $voucher_type_all = $this->config->item('account_voucher_types');
+ foreach ($voucher_type_all as $voucher_type_id => $row)
{
- $this->messages->add('Cannot remove the Bank or Cash Account status of this Ledger A/C since it is still linked with ' . $contra_count . ' Contra Vouchers entries.', 'error');
- $this->template->load('template', 'ledger/edit', $data);
- return;
+ /* Check for Voucher types where bank_cash_ledger_restriction is for all ledgers */
+ if ($row['bank_cash_ledger_restriction'] == 4)
+ {
+ $this->db->from('voucher_items')->join('vouchers', 'voucher_items.voucher_id = vouchers.id')->where('vouchers.voucher_type', $voucher_type_id)->where('voucher_items.ledger_id', $id);
+ $all_ledger_bank_cash_count = $this->db->get()->num_rows();
+ if ($all_ledger_bank_cash_count > 0)
+ {
+ $this->messages->add('Cannot remove the Bank or Cash Account status of this Ledger A/C since it is still linked with ' . $all_ledger_bank_cash_count . ' ' . $row['name'] . ' Vouchers entries.', 'error');
+ $this->template->load('template', 'ledger/edit', $data);
+ return;
+ }
+ }
}
}
diff --git a/system/application/libraries/General.php b/system/application/libraries/General.php
index 1bdd1b7..9f0d101 100644
--- a/system/application/libraries/General.php
+++ b/system/application/libraries/General.php
@@ -175,7 +175,7 @@ class General {
{
$CI =& get_instance();
- $CI->db->from('voucher_types');
+ $CI->db->from('voucher_types')->order_by('id', 'asc');
$voucher_types = $CI->db->get();
if ($voucher_types->num_rows() < 1)
{
diff --git a/system/application/views/template.php b/system/application/views/template.php
index 3f3ba62..cc7e883 100644
--- a/system/application/views/template.php
+++ b/system/application/views/template.php
@@ -113,14 +113,29 @@ $(document).ready(function() {
<?php echo anchor('account', 'Accounts', array('title' => 'Chart of accounts')); ?>
</li>
<li>
- <?php echo anchor('voucher', 'Vouchers', array('title' => 'Vouchers')); ?>
- <ul>
- <li><?php echo anchor('voucher/show/all', 'All', array('title' => 'All Vouchers')); ?></li>
- <li><?php echo anchor('voucher/show/receipt', 'Receipt', array('title' => 'Receipt Vouchers')); ?></li>
- <li><?php echo anchor('voucher/show/payment', 'Payment', array('title' => 'Payment Vouchers')); ?></li>
- <li><?php echo anchor('voucher/show/contra', 'Contra', array('title' => 'Contra Vouchers')); ?></li>
- <li><?php echo anchor('voucher/show/journal', 'Journal', array('title' => 'Journal Vouchers')); ?></li>
- </ul>
+ <?php
+ /* Showing Voucher Type sub-menu */
+ $voucher_type_all = $this->config->item('account_voucher_types');
+ $voucher_type_count = count($voucher_type_all);
+ if ($voucher_type_count < 1)
+ {
+ echo "";
+ } else if ($voucher_type_count == 1) {
+ foreach ($voucher_type_all as $id => $row)
+ {
+ echo anchor('voucher/show/' . $row['label'], $row['name'], array('title' => $row['name'] . ' Vouchers'));
+ }
+ } else {
+ echo anchor('voucher', 'Vouchers', array('title' => 'Vouchers'));
+ echo "<ul>";
+ echo "<li>" . anchor('voucher/show/all', 'All', array('title' => 'All Vouchers')) . "</li>";
+ foreach ($voucher_type_all as $id => $row)
+ {
+ echo "<li>" . anchor('voucher/show/' . $row['label'], $row['name'], array('title' => $row['name'] . ' Vouchers')) . "</li>";
+ }
+ echo "</ul>";
+ }
+ ?>
</li>
<li>
<?php echo anchor('report', 'Reports', array('title' => 'Reports')); ?>
commit 4fa247c752ea5c1ab6ba39f9f23350ea49f434a1
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Mon Jan 31 21:19:53 2011 +0530
Renaming voucher table column from type to voucher_type
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/db-update.txt b/db-update.txt
index 6a0bfc8..af027db 100644
--- a/db-update.txt
+++ b/db-update.txt
@@ -20,6 +20,8 @@ ALTER TABLE settings DROP contra_voucher_prefix;
ALTER TABLE settings DROP journal_voucher_prefix;
ALTER TABLE settings DROP voucher_number_padding;
+ALTER TABLE vouchers CHANGE type voucher_type INT(5) NOT NULL;
+
//--------------------------------- VERSION 2 ----------------------------------
ALTER TABLE voucher_items ADD reconciliation_date DATETIME NULL;
diff --git a/system/application/controllers/admin/schema.sql b/system/application/controllers/admin/schema.sql
index fe93902..69a571c 100644
--- a/system/application/controllers/admin/schema.sql
+++ b/system/application/controllers/admin/schema.sql
@@ -34,12 +34,12 @@ CREATE TABLE IF NOT EXISTS voucher_types (
CREATE TABLE IF NOT EXISTS vouchers (
id int(11) NOT NULL AUTO_INCREMENT,
tag_id int(11) NOT NULL DEFAULT '0',
+ voucher_type int(5) NOT NULL,
number int(11) NOT NULL,
date datetime NOT NULL,
dr_total decimal(15,2) NOT NULL DEFAULT '0.00',
cr_total decimal(15,2) NOT NULL DEFAULT '0.00',
narration text NOT NULL,
- type int(2) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
diff --git a/system/application/controllers/report.php b/system/application/controllers/report.php
index 3d9d2e7..41ed059 100644
--- a/system/application/controllers/report.php
+++ b/system/application/controllers/report.php
@@ -349,7 +349,7 @@ class Report extends Controller {
$cur_balance -= $opbalance;
$counter++;
- $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc');
+ $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.voucher_type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc');
$this->db->from('vouchers')->join('voucher_items', 'vouchers.id = voucher_items.voucher_id')->where('voucher_items.ledger_id', $ledger_id)->order_by('vouchers.date', 'asc')->order_by('vouchers.number', 'asc');
$ledgerst_q = $this->db->get();
foreach ($ledgerst_q->result() as $row)
@@ -361,7 +361,7 @@ class Report extends Controller {
$ledgerst[$counter][1] = full_voucher_number($row->vtype, $row->vnumber);
/* Opposite voucher name */
- $ledgerst[$counter][2] = $this->Ledger_model->get_opp_ledger_name($row->vid, $row->vtype, $row->ldc, 'text');
+ $ledgerst[$counter][2] = $this->Ledger_model->get_opp_ledger_name($row->vid, $current_voucher_type['label'], $row->ldc, 'text');
$ledgerst[$counter][3] = $current_voucher_type['name'];
@@ -469,7 +469,7 @@ class Report extends Controller {
/* Opening Balance */
list ($opbalance, $optype) = $this->Ledger_model->get_op_balance($ledger_id);
- $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc, voucher_items.reconciliation_date as lreconciliation');
+ $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.voucher_type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc, voucher_items.reconciliation_date as lreconciliation');
if ($reconciliation_type == 'all')
$this->db->from('vouchers')->join('voucher_items', 'vouchers.id = voucher_items.voucher_id')->where('voucher_items.ledger_id', $ledger_id)->order_by('vouchers.date', 'asc')->order_by('vouchers.number', 'asc');
else
@@ -484,7 +484,7 @@ class Report extends Controller {
$ledgerst[$counter][1] = full_voucher_number($row->vtype, $row->vnumber);
/* Opposite voucher name */
- $ledgerst[$counter][2] = $this->Ledger_model->get_opp_ledger_name($row->vid, $row->vtype, $row->ldc, 'text');
+ $ledgerst[$counter][2] = $this->Ledger_model->get_opp_ledger_name($row->vid, $current_voucher_type['label'], $row->ldc, 'text');
$ledgerst[$counter][3] = $current_voucher_type['name'];
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index d0f1f0b..7405233 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -100,9 +100,9 @@ class Voucher extends Controller {
$voucher_q = $this->db->get();
$config['total_rows'] = $this->db->from('vouchers')->where('tag_id', $tag_id)->get()->num_rows();
} else if ($voucher_type_id > 0) {
- $this->db->from('vouchers')->where('type', $voucher_type_id)->order_by('date', 'desc')->order_by('number', 'desc')->limit($pagination_counter, $page_count);
+ $this->db->from('vouchers')->where('voucher_type', $voucher_type_id)->order_by('date', 'desc')->order_by('number', 'desc')->limit($pagination_counter, $page_count);
$voucher_q = $this->db->get();
- $config['total_rows'] = $this->db->from('vouchers')->where('type', $voucher_type_id)->get()->num_rows();
+ $config['total_rows'] = $this->db->from('vouchers')->where('voucher_type', $voucher_type_id)->get()->num_rows();
} else {
$this->db->from('vouchers')->order_by('date', 'desc')->order_by('number', 'desc')->limit($pagination_counter, $page_count);
$voucher_q = $this->db->get();
@@ -432,7 +432,7 @@ class Voucher extends Controller {
if ($this->input->post('voucher_number', TRUE))
$data_number = $this->input->post('voucher_number', TRUE);
else
- $data_number = $this->Voucher_model->next_voucher_number($voucher_type);
+ $data_number = $this->Voucher_model->next_voucher_number($voucher_type_id);
$data_date = $this->input->post('voucher_date', TRUE);
$data_narration = $this->input->post('voucher_narration', TRUE);
@@ -446,7 +446,7 @@ class Voucher extends Controller {
'number' => $data_number,
'date' => $data_date,
'narration' => $data_narration,
- 'type' => $data_type,
+ 'voucher_type' => $data_type,
'tag_id' => $data_tag,
);
if ( ! $this->db->insert('vouchers', $insert_data))
@@ -640,7 +640,7 @@ class Voucher extends Controller {
}
/* Form validations */
- $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|required|is_natural_no_zero|uniquevouchernowithid[' . v_to_n($voucher_type) . '.' . $voucher_id . ']');
+ $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|required|is_natural_no_zero|uniquevouchernowithid[' . $voucher_type_id . '.' . $voucher_id . ']');
$this->form_validation->set_rules('voucher_date', 'Voucher Date', 'trim|required|is_date|is_date_within_range');
$this->form_validation->set_rules('voucher_narration', 'trim');
$this->form_validation->set_rules('voucher_tag', 'Tag', 'trim|is_natural');
@@ -894,7 +894,7 @@ class Voucher extends Controller {
return;
}
- function delete($voucher_type, $voucher_id)
+ function delete($voucher_type, $voucher_id = 0)
{
/* Check access */
if ( ! check_access('delete voucher'))
@@ -955,7 +955,7 @@ class Voucher extends Controller {
return;
}
- function download($voucher_type, $voucher_id)
+ function download($voucher_type, $voucher_id = 0)
{
$this->load->helper('download');
$this->load->model('Setting_model');
@@ -1022,7 +1022,7 @@ class Voucher extends Controller {
return;
}
- function printpreview($voucher_type, $voucher_id)
+ function printpreview($voucher_type, $voucher_id = 0)
{
$this->load->model('Setting_model');
$this->load->model('Ledger_model');
@@ -1085,7 +1085,7 @@ class Voucher extends Controller {
return;
}
- function email($voucher_type, $voucher_id)
+ function email($voucher_type, $voucher_id = 0)
{
$this->load->model('Setting_model');
$this->load->model('Ledger_model');
diff --git a/system/application/helpers/custom_helper.php b/system/application/helpers/custom_helper.php
index b72c50c..8ec3256 100644
--- a/system/application/helpers/custom_helper.php
+++ b/system/application/helpers/custom_helper.php
@@ -97,54 +97,6 @@ if ( ! function_exists('print_value'))
}
/**
- * Return Voucher Type String from Number
- *
- * Return the account information
- *
- * @access public
- * @param a varaible
- * @return string value
- */
-if ( ! function_exists('n_to_v'))
-{
- function n_to_v($type_number)
- {
- switch ($type_number)
- {
- case 1: return "receipt"; break;
- case 2: return "payment"; break;
- case 3: return "contra"; break;
- case 4: return "journal"; break;
- default: return ""; break;
- }
- }
-}
-
-/**
- * Return Number from Voucher Type String
- *
- * Return the account information
- *
- * @access public
- * @param a varaible
- * @return string value
- */
-if ( ! function_exists('v_to_n'))
-{
- function v_to_n($type_string)
- {
- switch ($type_string)
- {
- case "receipt": return 1; break;
- case "payment": return 2; break;
- case "contra": return 3; break;
- case "journal": return 4; break;
- default: return 0; break;
- }
- }
-}
-
-/**
* Return Voucher Type information
*
* @access public
diff --git a/system/application/libraries/MY_Form_validation.php b/system/application/libraries/MY_Form_validation.php
index 83d954f..06624e3 100644
--- a/system/application/libraries/MY_Form_validation.php
+++ b/system/application/libraries/MY_Form_validation.php
@@ -36,7 +36,7 @@ class MY_Form_validation extends CI_Form_validation {
$CI->form_validation->set_message('uniquevoucherno', 'The %s that you requested is already in use.');
- $CI->db->from('vouchers')->where('number', $str)->where('type', $type);
+ $CI->db->from('vouchers')->where('number', $str)->where('voucher_type', $type);
$dup_query = $CI->db->get();
if ($dup_query->num_rows() > 0)
return FALSE;
@@ -51,7 +51,7 @@ class MY_Form_validation extends CI_Form_validation {
list ($type, $id) = explode('.', $field, 2);
$CI->form_validation->set_message('uniquevouchernowithid', 'The %s that you requested is already in use.');
- $CI->db->from('vouchers')->where('number', $str)->where('type', $type)->where('id !=', $id);
+ $CI->db->from('vouchers')->where('number', $str)->where('voucher_type', $type)->where('id !=', $id);
$dup_query = $CI->db->get();
if ($dup_query->num_rows() > 0)
return FALSE;
diff --git a/system/application/models/ledger_model.php b/system/application/models/ledger_model.php
index 1fb96cf..fe7fd04 100644
--- a/system/application/models/ledger_model.php
+++ b/system/application/models/ledger_model.php
@@ -96,7 +96,7 @@ class Ledger_model extends Model {
return;
}
- function get_opp_ledger_name($voucher_id, $voucher_type, $ledger_type, $output_type)
+ function get_opp_ledger_name($voucher_id, $voucher_type_label, $ledger_type, $output_type)
{
$output = '';
if ($ledger_type == 'D')
@@ -111,12 +111,12 @@ class Ledger_model extends Model {
if ($opp_voucher_name_q->num_rows() > 1)
{
if ($output_type == 'html')
- $output = anchor('voucher/view/' . n_to_v($voucher_type) . '/' . $voucher_id, "(" . $opp_ledger_name . ")", array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
+ $output = anchor('voucher/view/' . $voucher_type_label . '/' . $voucher_id, "(" . $opp_ledger_name . ")", array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
else
$output = "(" . $opp_ledger_name . ")";
} else {
if ($output_type == 'html')
- $output = anchor('voucher/view/' . n_to_v($voucher_type) . '/' . $voucher_id, $opp_ledger_name, array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
+ $output = anchor('voucher/view/' . $voucher_type_label . '/' . $voucher_id, $opp_ledger_name, array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
else
$output = $opp_ledger_name;
}
diff --git a/system/application/models/voucher_model.php b/system/application/models/voucher_model.php
index 6381145..f51ea63 100644
--- a/system/application/models/voucher_model.php
+++ b/system/application/models/voucher_model.php
@@ -7,10 +7,9 @@ class Voucher_model extends Model {
parent::Model();
}
- function next_voucher_number($type_string)
+ function next_voucher_number($voucher_type_id)
{
- $type_number = v_to_n($type_string);
- $this->db->select_max('number', 'lastno')->from('vouchers')->where('type', $type_number);
+ $this->db->select_max('number', 'lastno')->from('vouchers')->where('voucher_type', $voucher_type_id);
$last_no_q = $this->db->get();
if ($row = $last_no_q->row())
{
@@ -24,7 +23,7 @@ class Voucher_model extends Model {
function get_voucher($voucher_id, $voucher_type_id)
{
- $this->db->from('vouchers')->where('id', $voucher_id)->where('type', $voucher_type_id)->limit(1);
+ $this->db->from('vouchers')->where('id', $voucher_id)->where('voucher_type', $voucher_type_id)->limit(1);
$voucher_q = $this->db->get();
return $voucher_q->row();
}
diff --git a/system/application/views/report/ledgerst.php b/system/application/views/report/ledgerst.php
index 63bd210..7f9752c 100644
--- a/system/application/views/report/ledgerst.php
+++ b/system/application/views/report/ledgerst.php
@@ -61,12 +61,12 @@
echo "</table>";
echo "<br />";
if ( ! $print_preview) {
- $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc');
+ $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.voucher_type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc');
$this->db->from('vouchers')->join('voucher_items', 'vouchers.id = voucher_items.voucher_id')->where('voucher_items.ledger_id', $ledger_id)->order_by('vouchers.date', 'asc')->order_by('vouchers.number', 'asc')->limit($pagination_counter, $page_count);
$ledgerst_q = $this->db->get();
} else {
$page_count = 0;
- $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc');
+ $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.voucher_type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc');
$this->db->from('vouchers')->join('voucher_items', 'vouchers.id = voucher_items.voucher_id')->where('voucher_items.ledger_id', $ledger_id)->order_by('vouchers.date', 'asc')->order_by('vouchers.number', 'asc');
$ledgerst_q = $this->db->get();
}
@@ -99,7 +99,7 @@
}
/* Calculating previous balance */
- $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc');
+ $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.voucher_type as vtype, voucher_items.amount as lamount, voucher_items.dc as ldc');
$this->db->from('vouchers')->join('voucher_items', 'vouchers.id = voucher_items.voucher_id')->where('voucher_items.ledger_id', $ledger_id)->order_by('vouchers.date', 'asc')->order_by('vouchers.number', 'asc')->limit($page_count, 0);
$prevbal_q = $this->db->get();
foreach ($prevbal_q->result() as $row )
@@ -128,7 +128,7 @@
/* Getting opposite Ledger name */
echo "<td>";
- echo $this->Ledger_model->get_opp_ledger_name($row->vid, $row->vtype, $row->ldc, 'html');
+ echo $this->Ledger_model->get_opp_ledger_name($row->vid, $current_voucher_type['label'], $row->ldc, 'html');
echo "</td>";
echo "<td>";
diff --git a/system/application/views/report/reconciliation.php b/system/application/views/report/reconciliation.php
index 63b8b44..2deccb1 100644
--- a/system/application/views/report/reconciliation.php
+++ b/system/application/views/report/reconciliation.php
@@ -93,7 +93,7 @@
echo "<br />";
if ( ! $print_preview)
{
- $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.type as vtype, voucher_items.id as lid, voucher_items.amount as lamount, voucher_items.dc as ldc, voucher_items.reconciliation_date as lreconciliation');
+ $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.voucher_type as vtype, voucher_items.id as lid, voucher_items.amount as lamount, voucher_items.dc as ldc, voucher_items.reconciliation_date as lreconciliation');
if ($reconciliation_type == 'all')
$this->db->from('vouchers')->join('voucher_items', 'vouchers.id = voucher_items.voucher_id')->where('voucher_items.ledger_id', $ledger_id)->order_by('vouchers.date', 'asc')->order_by('vouchers.number', 'asc')->limit($pagination_counter, $page_count);
else
@@ -101,7 +101,7 @@
$ledgerst_q = $this->db->get();
} else {
$page_count = 0;
- $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.type as vtype, voucher_items.id as lid, voucher_items.amount as lamount, voucher_items.dc as ldc, voucher_items.reconciliation_date as lreconciliation');
+ $this->db->select('vouchers.id as vid, vouchers.number as vnumber, vouchers.date as vdate, vouchers.voucher_type as vtype, voucher_items.id as lid, voucher_items.amount as lamount, voucher_items.dc as ldc, voucher_items.reconciliation_date as lreconciliation');
if ($reconciliation_type == 'all')
$this->db->from('vouchers')->join('voucher_items', 'vouchers.id = voucher_items.voucher_id')->where('voucher_items.ledger_id', $ledger_id)->order_by('vouchers.date', 'asc')->order_by('vouchers.number', 'asc');
else
@@ -135,7 +135,7 @@
/* Getting opposite Ledger name */
echo "<td>";
- echo $this->Ledger_model->get_opp_ledger_name($row->vid, $row->vtype, $row->ldc, 'html');
+ echo $this->Ledger_model->get_opp_ledger_name($row->vid, $current_voucher_type['label'], $row->ldc, 'html');
echo "</td>";
echo "<td>";
diff --git a/system/application/views/voucher/index.php b/system/application/views/voucher/index.php
index 5526dc7..fee5836 100644
--- a/system/application/views/voucher/index.php
+++ b/system/application/views/voucher/index.php
@@ -18,16 +18,16 @@
<?php
foreach ($voucher_data->result() as $row)
{
- $current_voucher_type = voucher_type_info($row->type);
+ $current_voucher_type = voucher_type_info($row->voucher_type);
echo "<tr>";
echo "<td>" . date_mysql_to_php_display($row->date) . "</td>";
- echo "<td>" . anchor('voucher/view/' . $current_voucher_type['label'] . "/" . $row->id, full_voucher_number($row->type, $row->number), array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a')) . "</td>";
+ echo "<td>" . anchor('voucher/view/' . $current_voucher_type['label'] . "/" . $row->id, full_voucher_number($row->voucher_type, $row->number), array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a')) . "</td>";
echo "<td>";
echo $this->Tag_model->show_voucher_tag($row->tag_id);
- echo $this->Ledger_model->get_voucher_name($row->id, $row->type);
+ echo $this->Ledger_model->get_voucher_name($row->id, $row->voucher_type);
echo "</td>";
echo "<td>" . $current_voucher_type['name'] . "</td>";
commit 7c3e2b7eac277f36fba4252dafa96194004ba130
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Mon Jan 31 18:01:19 2011 +0530
Updated database schema to use dynamic voucher types
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/db-update.txt b/db-update.txt
index a939c6d..6a0bfc8 100644
--- a/db-update.txt
+++ b/db-update.txt
@@ -14,6 +14,12 @@ CREATE TABLE IF NOT EXISTS voucher_types (
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+ALTER TABLE settings DROP receipt_voucher_prefix;
+ALTER TABLE settings DROP payment_voucher_prefix;
+ALTER TABLE settings DROP contra_voucher_prefix;
+ALTER TABLE settings DROP journal_voucher_prefix;
+ALTER TABLE settings DROP voucher_number_padding;
+
//--------------------------------- VERSION 2 ----------------------------------
ALTER TABLE voucher_items ADD reconciliation_date DATETIME NULL;
diff --git a/system/application/controllers/admin/create.php b/system/application/controllers/admin/create.php
index 0547e10..28c8837 100644
--- a/system/application/controllers/admin/create.php
+++ b/system/application/controllers/admin/create.php
@@ -202,6 +202,7 @@ class Create extends Controller {
$data_account_date = "dd/mm/yyyy";
$data_account_timezone = $this->input->post('timezones', TRUE);
+ $data_database_type = 'mysql';
$data_database_host = $this->input->post('database_host', TRUE);
$data_database_port = $this->input->post('database_port', TRUE);
$data_database_name = $this->input->post('database_name', TRUE);
@@ -321,7 +322,7 @@ class Create extends Controller {
/* Adding account settings */
$newacc->trans_start();
- if ( ! $newacc->query("INSERT INTO settings (id, name, address, email, fy_start, fy_end, currency_symbol, date_format, timezone, account_locked, database_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(1, $data_account_name, $data_account_address, $data_account_email, $data_fy_start, $data_fy_end, $data_account_currency, $data_account_date, $data_account_timezone, 0, 2)))
+ if ( ! $newacc->query("INSERT INTO settings (id, name, address, email, fy_start, fy_end, currency_symbol, date_format, timezone, account_locked, database_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(1, $data_account_name, $data_account_address, $data_account_email, $data_fy_start, $data_fy_end, $data_account_currency, $data_account_date, $data_account_timezone, 0, 3)))
{
$newacc->trans_rollback();
$this->messages->add('Error adding account settings.', 'error');
@@ -333,9 +334,9 @@ class Create extends Controller {
}
/* Adding account settings to file. Code copied from manage controller */
- $con_details = "[database]" . "\r\n" . "db_hostname = \"" . $data_database_host . "\"" . "\r\n" . "db_port = \"" . $data_database_port . "\"" . "\r\n" . "db_name = \"" . $data_database_name . "\"" . "\r\n" . "db_username = \"" . $data_database_username . "\"" . "\r\n" . "db_password = \"" . $data_database_password . "\"" . "\r\n";
+ $con_details = "[database]" . "\r\n" . "db_type = \"" . $data_database_type . "\"" . "\r\n" . "db_hostname = \"" . $data_database_host . "\"" . "\r\n" . "db_port = \"" . $data_database_port . "\"" . "\r\n" . "db_name = \"" . $data_database_name . "\"" . "\r\n" . "db_username = \"" . $data_database_username . "\"" . "\r\n" . "db_password = \"" . $data_database_password . "\"" . "\r\n";
- $con_details_html = '[database]<br />db_hostname = "' . $data_database_host . '"<br />db_port = "' . $data_database_port . '"<br />db_name = "' . $data_database_name . '"<br />db_username = "' . $data_database_username . '"<br />db_password = "' . $data_database_password . '"<br />';
+ $con_details_html = '[database]' . '<br />db_type = "' . $data_database_type . '"<br />db_hostname = "' . $data_database_host . '"<br />db_port = "' . $data_database_port . '"<br />db_name = "' . $data_database_name . '"<br />db_username = "' . $data_database_username . '"<br />db_password = "' . $data_database_password . '"<br />';
/* Writing the connection string to end of file - writing in 'a' append mode */
if ( ! write_file($ini_file, $con_details))
diff --git a/system/application/controllers/admin/initialize.sql b/system/application/controllers/admin/initialize.sql
index 5327848..9f1ac5d 100644
--- a/system/application/controllers/admin/initialize.sql
+++ b/system/application/controllers/admin/initialize.sql
@@ -14,3 +14,7 @@ INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (13, 3, 'Indirect
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (14, 4, 'Indirect Expenses', 0);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (15, 3, 'Sales', 1);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (16, 4, 'Purchases', 1);
+INSERT INTO voucher_types (id, label, name, description, base_type, numbering, prefix, suffix, zero_padding, bank_cash_ledger_restriction) VALUES (1, 'receipt', 'Receipt', 'Received in Bank A/C or Cash A/C', 1, 1, '', '', 0, 2);
+INSERT INTO voucher_types (id, label, name, description, base_type, numbering, prefix, suffix, zero_padding, bank_cash_ledger_restriction) VALUES (2, 'payment', 'Payment', 'Payment made from Bank A/C or Cash A/C', 1, 1, '', '', 0, 3);
+INSERT INTO voucher_types (id, label, name, description, base_type, numbering, prefix, suffix, zero_padding, bank_cash_ledger_restriction) VALUES (3, 'contra', 'Contra', 'Transfer between Bank A/C and Cash A/C', 1, 1, '', '', 0, 4);
+INSERT INTO voucher_types (id, label, name, description, base_type, numbering, prefix, suffix, zero_padding, bank_cash_ledger_restriction) VALUES (4, 'journal', 'Journal', 'Transfer between Non Bank A/C and Cash A/C', 1, 1, '', '', 0, 5);
diff --git a/system/application/controllers/admin/schema.sql b/system/application/controllers/admin/schema.sql
index 1f2789a..fe93902 100644
--- a/system/application/controllers/admin/schema.sql
+++ b/system/application/controllers/admin/schema.sql
@@ -17,6 +17,20 @@ CREATE TABLE IF NOT EXISTS ledgers (
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=1;
+CREATE TABLE IF NOT EXISTS voucher_types (
+ id int(5) NOT NULL,
+ label varchar(15) NOT NULL,
+ name varchar(100) NOT NULL,
+ description varchar(255) NOT NULL,
+ base_type int(2) NOT NULL,
+ numbering int(2) NOT NULL,
+ prefix varchar(10) NOT NULL,
+ suffix varchar(10) NOT NULL,
+ zero_padding int(2) NOT NULL,
+ bank_cash_ledger_restriction int(2) NOT NULL,
+ PRIMARY KEY (id)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
CREATE TABLE IF NOT EXISTS vouchers (
id int(11) NOT NULL AUTO_INCREMENT,
tag_id int(11) NOT NULL DEFAULT '0',
@@ -85,10 +99,5 @@ CREATE TABLE IF NOT EXISTS settings (
print_margin_right float NOT NULL,
print_orientation varchar(1) NOT NULL,
print_page_format varchar(1) NOT NULL,
- receipt_voucher_prefix varchar(10) NOT NULL,
- payment_voucher_prefix varchar(10) NOT NULL,
- contra_voucher_prefix varchar(10) NOT NULL,
- journal_voucher_prefix varchar(10) NOT NULL,
- voucher_number_padding int(5) NOT NULL,
database_version int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;
diff --git a/system/application/controllers/report.php b/system/application/controllers/report.php
index afeec86..3d9d2e7 100644
--- a/system/application/controllers/report.php
+++ b/system/application/controllers/report.php
@@ -358,7 +358,7 @@ class Report extends Controller {
$current_voucher_type = voucher_type_info($row->vtype);
$ledgerst[$counter][0] = date_mysql_to_php($row->vdate);
- $ledgerst[$counter][1] = voucher_number_prefix($row->vtype) . $row->vnumber;
+ $ledgerst[$counter][1] = full_voucher_number($row->vtype, $row->vnumber);
/* Opposite voucher name */
$ledgerst[$counter][2] = $this->Ledger_model->get_opp_ledger_name($row->vid, $row->vtype, $row->ldc, 'text');
@@ -481,7 +481,7 @@ class Report extends Controller {
$current_voucher_type = voucher_type_info($row->vtype);
$ledgerst[$counter][0] = date_mysql_to_php($row->vdate);
- $ledgerst[$counter][1] = voucher_number_prefix($row->vtype) . $row->vnumber;
+ $ledgerst[$counter][1] = full_voucher_number($row->vtype, $row->vnumber);
/* Opposite voucher name */
$ledgerst[$counter][2] = $this->Ledger_model->get_opp_ledger_name($row->vid, $row->vtype, $row->ldc, 'text');
diff --git a/system/application/controllers/setting.php b/system/application/controllers/setting.php
index a89c560..495684d 100644
--- a/system/application/controllers/setting.php
+++ b/system/application/controllers/setting.php
@@ -328,6 +328,7 @@ class Setting extends Controller {
$data_account_email_username = $account_data->email_username;
$data_account_email_password = $account_data->email_password;
+ $data_database_type = 'mysql';
$data_database_host = $this->input->post('database_host', TRUE);
$data_database_port = $this->input->post('database_port', TRUE);
$data_database_name = $this->input->post('database_name', TRUE);
@@ -427,7 +428,7 @@ class Setting extends Controller {
/* Adding account settings */
$newacc->trans_start();
- if ( ! $newacc->query("INSERT INTO settings (id, name, address, email, fy_start, fy_end, currency_symbol, date_format, timezone, account_locked, email_protocol, email_host, email_port, email_username, email_password, database_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(1, $data_account_name, $data_account_address, $data_account_email, $data_fy_start, $data_fy_end, $data_account_currency, $data_account_date, $data_account_timezone, 0, $data_account_email_protocol, $data_account_email_host, $data_account_email_port, $data_account_email_username, $data_account_email_password, 2)))
+ if ( ! $newacc->query("INSERT INTO settings (id, name, address, email, fy_start, fy_end, currency_symbol, date_format, timezone, account_locked, email_protocol, email_host, email_port, email_username, email_password, database_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(1, $data_account_name, $data_account_address, $data_account_email, $data_fy_start, $data_fy_end, $data_account_currency, $data_account_date, $data_account_timezone, 0, $data_account_email_protocol, $data_account_email_host, $data_account_email_port, $data_account_email_username, $data_account_email_password, 3)))
{
$newacc->trans_rollback();
$this->messages->add('Error adding account settings.', 'error');
@@ -492,6 +493,18 @@ class Setting extends Controller {
}
}
+ /* Importing Voucher Types */
+ $this->db->from('voucher_types')->order_by('id', 'asc');
+ $voucher_type_q = $this->db->get();
+ foreach ($voucher_type_q->result() as $row)
+ {
+ if ( ! $newacc->query("INSERT INTO voucher_types (id, label, name, description, base_type, numbering, prefix, suffix, zero_padding, bank_cash_ledger_restriction) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array($row->id, $row->label, $row->name, $row->description, $row->base_type, $row->numbering, $row->prefix, $row->suffix, $row->zero_padding, $row->bank_cash_ledger_restriction)))
+ {
+ $this->messages->add('Failed to add Voucher type - ' . $row->name . '.', 'error');
+ $cf_status = FALSE;
+ }
+ }
+
/* Importing Tags */
$this->db->from('tags')->order_by('id', 'asc');
$tag_q = $this->db->get();
@@ -511,9 +524,9 @@ class Setting extends Controller {
/* Adding account settings to file. Code copied from manage controller */
- $con_details = "[database]" . "\r\n" . "db_hostname = \"" . $data_database_host . "\"" . "\r\n" . "db_port = \"" . $data_database_port . "\"" . "\r\n" . "db_name = \"" . $data_database_name . "\"" . "\r\n" . "db_username = \"" . $data_database_username . "\"" . "\r\n" . "db_password = \"" . $data_database_password . "\"" . "\r\n";
+ $con_details = "[database]" . "\r\n" . "db_type = \"" . $data_database_type . "\"" . "\r\n" . "db_hostname = \"" . $data_database_host . "\"" . "\r\n" . "db_port = \"" . $data_database_port . "\"" . "\r\n" . "db_name = \"" . $data_database_name . "\"" . "\r\n" . "db_username = \"" . $data_database_username . "\"" . "\r\n" . "db_password = \"" . $data_database_password . "\"" . "\r\n";
- $con_details_html = '[database]<br />db_hostname = "' . $data_database_host . '"<br />db_port = "' . $data_database_port . '"<br />db_name = "' . $data_database_name . '"<br />db_username = "' . $data_database_username . '"<br />db_password = "' . $data_database_password . '"<br />';
+ $con_details_html = '[database]' . '<br />db_type = "' . $data_database_type . '"<br />db_hostname = "' . $data_database_host . '"<br />db_port = "' . $data_database_port . '"<br />db_name = "' . $data_database_name . '"<br />db_username = "' . $data_database_username . '"<br />db_password = "' . $data_database_password . '"<br />';
/* Writing the connection string to end of file - writing in 'a' append mode */
if ( ! write_file($ini_file, $con_details))
@@ -957,7 +970,7 @@ class Setting extends Controller {
if ( ! $this->db->where('id', 1)->update('settings', $update_data))
{
$this->db->trans_rollback();
- $this->messages->add('Error updating voucher settings.', 'error');
+ $this->messages->add('Error updating Voucher settings.', 'error');
$this->logger->write_message("error", "Error updating voucher settings");
$this->template->load('template', 'setting/voucher');
return;
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 061bdb6..d0f1f0b 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -120,7 +120,7 @@ class Voucher extends Controller {
$voucher_added_type_label_temp = $this->session->userdata('voucher_added_type_label');
$voucher_added_type_name_temp = $this->session->userdata('voucher_added_type_name');
$voucher_added_number_temp = $this->session->userdata('voucher_added_number');
- $voucher_added_message = 'Added ' . $voucher_added_type_name_temp . ' Voucher number ' . voucher_number_prefix($voucher_added_type_id_temp) . $voucher_added_number_temp . ".";
+ $voucher_added_message = 'Added ' . $voucher_added_type_name_temp . ' Voucher number ' . full_voucher_number($voucher_added_type_id_temp, $voucher_added_number_temp) . ".";
$voucher_added_message .= " You can [ ";
$voucher_added_message .= anchor('voucher/view/' . $voucher_added_type_label_temp . "/" . $voucher_added_id_temp, 'View', array('class' => 'anchor-link-a')) . " | ";
$voucher_added_message .= anchor('voucher/edit/' . $voucher_added_type_label_temp . "/" . $voucher_added_id_temp, 'Edit', array('class' => 'anchor-link-a')) . " | ";
@@ -145,7 +145,7 @@ class Voucher extends Controller {
$voucher_updated_type_label_temp = $this->session->userdata('voucher_updated_type_label');
$voucher_updated_type_name_temp = $this->session->userdata('voucher_updated_type_name');
$voucher_updated_number_temp = $this->session->userdata('voucher_updated_number');
- $voucher_updated_message = 'Updated ' . $voucher_updated_type_name_temp . ' Voucher number ' . voucher_number_prefix($voucher_updated_type_id_temp) . $voucher_updated_number_temp . ".";
+ $voucher_updated_message = 'Updated ' . $voucher_updated_type_name_temp . ' Voucher number ' . full_voucher_number($voucher_updated_type_id_temp, $voucher_updated_number_temp) . ".";
$voucher_updated_message .= " You can [ ";
$voucher_updated_message .= anchor('voucher/view/' . $voucher_updated_type_label_temp . "/" . $voucher_updated_id_temp, 'View', array('class' => 'anchor-link-a')) . " | ";
$voucher_updated_message .= anchor('voucher/edit/' . $voucher_updated_type_label_temp . "/" . $voucher_updated_id_temp, 'Edit', array('class' => 'anchor-link-a')) . " | ";
@@ -453,7 +453,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error addding Voucher.', 'error');
- $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " since failed inserting voucher");
+ $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " since failed inserting voucher");
$this->template->load('template', 'voucher/add', $data);
return;
} else {
@@ -493,7 +493,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error adding Ledger A/C - ' . $data_ledger_id . ' to Voucher.', 'error');
- $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " since failed inserting voucher ledger item " . "[id:" . $data_ledger_id . "]");
+ $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " since failed inserting voucher ledger item " . "[id:" . $data_ledger_id . "]");
$this->template->load('template', 'voucher/add', $data);
return;
}
@@ -508,7 +508,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error updating Voucher total.', 'error');
- $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " since failed updating debit and credit total");
+ $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " since failed updating debit and credit total");
$this->template->load('template', 'voucher/add', $data);
return;
}
@@ -524,7 +524,7 @@ class Voucher extends Controller {
$this->session->set_userdata('voucher_added_number', $data_number);
/* Showing success message in show() method since message is too long for storing it in session */
- $this->logger->write_message("success", "Added " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("success", "Added " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " [id:" . $voucher_id . "]");
redirect('voucher/show/' . $current_voucher_type['label']);
$this->template->load('template', 'voucher/add', $data);
return;
@@ -802,7 +802,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error updating Voucher A/C.', 'error');
- $this->logger->write_message("error", "Error updating voucher details for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error updating voucher details for " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " [id:" . $voucher_id . "]");
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -812,7 +812,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error deleting previous Ledger A/C\'s from Voucher.', 'error');
- $this->logger->write_message("error", "Error deleting previous voucher items for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error deleting previous voucher items for " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " [id:" . $voucher_id . "]");
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -851,7 +851,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error adding Ledger A/C - ' . $data_ledger_id . ' to Voucher.', 'error');
- $this->logger->write_message("error", "Error adding Ledger A/C item [id:" . $data_ledger_id . "] for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error adding Ledger A/C item [id:" . $data_ledger_id . "] for " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " [id:" . $voucher_id . "]");
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -866,7 +866,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error updating Voucher total.', 'error');
- $this->logger->write_message("error", "Error updating voucher total for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error updating voucher total for " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " [id:" . $voucher_id . "]");
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -886,7 +886,7 @@ class Voucher extends Controller {
$this->session->set_userdata('voucher_updated_has_reconciliation', FALSE);
/* Showing success message in show() method since message is too long for storing it in session */
- $this->logger->write_message("success", "Updated " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("success", "Updated " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $data_number) . " [id:" . $voucher_id . "]");
redirect('voucher/show/' . $current_voucher_type['label']);
return;
@@ -936,7 +936,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error deleting Voucher - Ledger A/C\'s.', 'error');
- $this->logger->write_message("error", "Error deleting ledger entries for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error deleting ledger entries for " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $cur_voucher->number) . " [id:" . $voucher_id . "]");
redirect('voucher/view/' . $current_voucher_type['label'] . '/' . $voucher_id);
return;
}
@@ -944,13 +944,13 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error deleting Voucher entry.', 'error');
- $this->logger->write_message("error", "Error deleting Voucher entry for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error deleting Voucher entry for " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $cur_voucher->number) . " [id:" . $voucher_id . "]");
redirect('voucher/view/' . $current_voucher_type['label'] . '/' . $voucher_id);
return;
}
$this->db->trans_complete();
$this->messages->add('Deleted ' . $current_voucher_type['name'] . ' Voucher.', 'success');
- $this->logger->write_message("success", "Deleted " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("success", "Deleted " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $cur_voucher->number) . " [id:" . $voucher_id . "]");
redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
@@ -1198,15 +1198,15 @@ class Voucher extends Controller {
/* Sending email */
$this->email->from('', 'Webzash');
$this->email->to($this->input->post('email_to', TRUE));
- $this->email->subject($current_voucher_type['name'] . ' Voucher No. ' . voucher_number_prefix($voucher_type_id) . $cur_voucher->number);
+ $this->email->subject($current_voucher_type['name'] . ' Voucher No. ' . full_voucher_number($voucher_type_id, $cur_voucher->number));
$this->email->message($message);
if ($this->email->send())
{
$data['message'] = "Email sent.";
- $this->logger->write_message("success", "Emailed " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("success", "Emailed " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $cur_voucher->number) . " [id:" . $voucher_id . "]");
} else {
$data['error'] = "Error sending email. Check you email settings.";
- $this->logger->write_message("error", "Error emailing " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error emailing " . $current_voucher_type['name'] . " Voucher number " . full_voucher_number($voucher_type_id, $cur_voucher->number) . " [id:" . $voucher_id . "]");
}
$this->load->view('voucher/email', $data);
return;
diff --git a/system/application/helpers/custom_helper.php b/system/application/helpers/custom_helper.php
index 014acf4..b72c50c 100644
--- a/system/application/helpers/custom_helper.php
+++ b/system/application/helpers/custom_helper.php
@@ -217,18 +217,18 @@ if ( ! function_exists('voucher_type_name_to_id'))
* @param int voucher type id
* @return string
*/
-if ( ! function_exists('voucher_number_prefix'))
+if ( ! function_exists('full_voucher_number'))
{
- function voucher_number_prefix($voucher_type_id)
+ function full_voucher_number($voucher_type_id, $voucher_number)
{
$CI =& get_instance();
$voucher_type_all = $CI->config->item('account_voucher_types');
if ( ! $voucher_type_all[$voucher_type_id])
{
- return '';
+ return $voucher_number;
} else {
- return $voucher_type_all[$voucher_type_id]['prefix'];
+ return $voucher_type_all[$voucher_type_id]['prefix'] . $voucher_number . $voucher_type_all[$voucher_type_id]['suffix'];
}
}
}
diff --git a/system/application/libraries/Startup.php b/system/application/libraries/Startup.php
index 2160cf0..d658223 100644
--- a/system/application/libraries/Startup.php
+++ b/system/application/libraries/Startup.php
@@ -106,10 +106,6 @@ class Startup
$CI->config->set_item('account_date_format', $account_d->date_format);
$CI->config->set_item('account_timezone', $account_d->timezone);
$CI->config->set_item('account_locked', $account_d->account_locked);
- $CI->config->set_item('account_receipt_prefix', $account_d->receipt_voucher_prefix);
- $CI->config->set_item('account_payment_prefix', $account_d->payment_voucher_prefix);
- $CI->config->set_item('account_contra_prefix', $account_d->contra_voucher_prefix);
- $CI->config->set_item('account_journal_prefix', $account_d->journal_voucher_prefix);
$CI->config->set_item('account_database_version', $account_d->database_version);
/* Load general application settings */
diff --git a/system/application/views/report/ledgerst.php b/system/application/views/report/ledgerst.php
index fd3115b..63bd210 100644
--- a/system/application/views/report/ledgerst.php
+++ b/system/application/views/report/ledgerst.php
@@ -123,7 +123,7 @@
echo date_mysql_to_php_display($row->vdate);
echo "</td>";
echo "<td>";
- echo anchor('voucher/view/' . $current_voucher_type['label'] . '/' . $row->vid, voucher_number_prefix($row->vtype) . $row->vnumber, array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
+ echo anchor('voucher/view/' . $current_voucher_type['label'] . '/' . $row->vid, full_voucher_number($row->vtype, $row->vnumber), array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
echo "</td>";
/* Getting opposite Ledger name */
diff --git a/system/application/views/report/reconciliation.php b/system/application/views/report/reconciliation.php
index 0cbb0a4..63b8b44 100644
--- a/system/application/views/report/reconciliation.php
+++ b/system/application/views/report/reconciliation.php
@@ -130,7 +130,7 @@
echo date_mysql_to_php_display($row->vdate);
echo "</td>";
echo "<td>";
- echo anchor('voucher/view/' . $current_voucher_type['label'] . '/' . $row->vid, voucher_number_prefix($row->vtype) . $row->vnumber, array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a'));
+ echo anchor('voucher/view/' . $current_voucher_type['label'] . '/' . $row->vid, full_voucher_number($row->vtype, $row->vnumber), array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a'));
echo "</td>";
/* Getting opposite Ledger name */
diff --git a/system/application/views/voucher/add.php b/system/application/views/voucher/add.php
index 93aa5bc..06d2b97 100644
--- a/system/application/views/voucher/add.php
+++ b/system/application/views/voucher/add.php
@@ -200,7 +200,7 @@ $(document).ready(function() {
echo "<span id=\"tooltip-target-1\">";
echo form_label('Voucher Number', 'voucher_number');
echo " ";
- echo voucher_number_prefix($voucher_type_id) . form_input($voucher_number);
+ echo $current_voucher_type['prefix'] . form_input($voucher_number) . $current_voucher_type['suffix'];
echo "</span>";
echo "<span id=\"tooltip-content-1\">Leave Voucher Number empty for auto numbering</span>";
echo " ";
diff --git a/system/application/views/voucher/downloadpreview.php b/system/application/views/voucher/downloadpreview.php
index d59f587..61b3f52 100644
--- a/system/application/views/voucher/downloadpreview.php
+++ b/system/application/views/voucher/downloadpreview.php
@@ -65,7 +65,7 @@
<br />
<div id="print-voucher-type"><span class="value"><?php echo $current_voucher_type['name']; ?> Voucher</span></div>
<br />
- <div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Number : <span class="value"><?php echo voucher_number_prefix($voucher_type_id) . $voucher_number; ?></span></div>
+ <div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Number : <span class="value"><?php echo full_voucher_number($voucher_type_id, $voucher_number); ?></span></div>
<div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Date : <span class="value"><?php echo $voucher_date; ?></span></div>
<br />
<table id="print-voucher-table">
diff --git a/system/application/views/voucher/edit.php b/system/application/views/voucher/edit.php
index 3df7039..3eb7b60 100644
--- a/system/application/views/voucher/edit.php
+++ b/system/application/views/voucher/edit.php
@@ -199,7 +199,7 @@ $(document).ready(function() {
echo "<p>";
echo form_label('Voucher Number', 'voucher_number');
echo " ";
- echo voucher_number_prefix($voucher_type_id) . form_input($voucher_number);
+ echo $current_voucher_type['prefix'] . form_input($voucher_number) . $current_voucher_type['suffix'];
echo " ";
echo "<span id=\"tooltip-target-1\">";
echo form_label('Voucher Date', 'voucher_date');
diff --git a/system/application/views/voucher/emailpreview.php b/system/application/views/voucher/emailpreview.php
index 87336bc..0b0febd 100644
--- a/system/application/views/voucher/emailpreview.php
+++ b/system/application/views/voucher/emailpreview.php
@@ -7,7 +7,7 @@
<p><?php echo $this->config->item('account_name'); ?></p>
<p><?php echo $this->config->item('account_address'); ?></p>
<p><strong><?php echo $current_voucher_type['name']; ?> Voucher</strong></p>
- <p><?php echo $current_voucher_type['name']; ?> Voucher Number : <strong><?php echo voucher_number_prefix($voucher_type_id) . $voucher_number; ?></strong></p>
+ <p><?php echo $current_voucher_type['name']; ?> Voucher Number : <strong><?php echo full_voucher_number($voucher_type_id, $voucher_number); ?></strong></p>
<p><?php echo $current_voucher_type['name']; ?> Voucher Date : <strong><?php echo $voucher_date; ?></strong></p>
<table border=1 cellpadding=6>
<thead>
diff --git a/system/application/views/voucher/index.php b/system/application/views/voucher/index.php
index cb10ca6..5526dc7 100644
--- a/system/application/views/voucher/index.php
+++ b/system/application/views/voucher/index.php
@@ -23,7 +23,7 @@
echo "<tr>";
echo "<td>" . date_mysql_to_php_display($row->date) . "</td>";
- echo "<td>" . anchor('voucher/view/' . $current_voucher_type['label'] . "/" . $row->id, voucher_number_prefix($row->type) . $row->number, array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a')) . "</td>";
+ echo "<td>" . anchor('voucher/view/' . $current_voucher_type['label'] . "/" . $row->id, full_voucher_number($row->type, $row->number), array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a')) . "</td>";
echo "<td>";
echo $this->Tag_model->show_voucher_tag($row->tag_id);
diff --git a/system/application/views/voucher/printpreview.php b/system/application/views/voucher/printpreview.php
index 40aef25..2d8f4a6 100644
--- a/system/application/views/voucher/printpreview.php
+++ b/system/application/views/voucher/printpreview.php
@@ -11,7 +11,7 @@
<br />
<div id="print-voucher-type"><span class="value"><?php echo $current_voucher_type['name']; ?> Voucher</span></div>
<br />
- <div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Number : <span class="value"><?php echo voucher_number_prefix($voucher_type_id) . $voucher_number; ?></span></div>
+ <div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Number : <span class="value"><?php echo full_voucher_number($voucher_type_id, $voucher_number); ?></span></div>
<div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Date : <span class="value"><?php echo $voucher_date; ?></span></div>
<br />
<table id="print-voucher-table">
diff --git a/system/application/views/voucher/view.php b/system/application/views/voucher/view.php
index 7ab8c47..39ff524 100644
--- a/system/application/views/voucher/view.php
+++ b/system/application/views/voucher/view.php
@@ -1,4 +1,4 @@
-<p>Voucher Number : <span class="bold"><?php echo voucher_number_prefix($voucher_type_id) . $cur_voucher->number; ?></span>
+<p>Voucher Number : <span class="bold"><?php echo full_voucher_number($voucher_type_id, $cur_voucher->number); ?></span>
Voucher Date : <span class="bold"><?php echo date_mysql_to_php_display($cur_voucher->date); ?></span>
</p>
commit 2fc374478ce71bd1af6bac6c12a9bc8a82e1cfba
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Mon Jan 31 15:35:18 2011 +0530
Updated Reports to use dynamic voucher type
- Ledger Statement
- Reconciliation Statement
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/report.php b/system/application/controllers/report.php
index 1b89ccc..afeec86 100644
--- a/system/application/controllers/report.php
+++ b/system/application/controllers/report.php
@@ -354,13 +354,16 @@ class Report extends Controller {
$ledgerst_q = $this->db->get();
foreach ($ledgerst_q->result() as $row)
{
+ /* Voucher Type */
+ $current_voucher_type = voucher_type_info($row->vtype);
+
$ledgerst[$counter][0] = date_mysql_to_php($row->vdate);
- $ledgerst[$counter][1] = voucher_number_prefix(n_to_v($row->vtype)) . $row->vnumber;
+ $ledgerst[$counter][1] = voucher_number_prefix($row->vtype) . $row->vnumber;
/* Opposite voucher name */
$ledgerst[$counter][2] = $this->Ledger_model->get_opp_ledger_name($row->vid, $row->vtype, $row->ldc, 'text');
- $ledgerst[$counter][3] = ucfirst(n_to_v($row->vtype));
+ $ledgerst[$counter][3] = $current_voucher_type['name'];
if ($row->ldc == "D")
{
@@ -474,13 +477,16 @@ class Report extends Controller {
$ledgerst_q = $this->db->get();
foreach ($ledgerst_q->result() as $row)
{
+ /* Voucher Type */
+ $current_voucher_type = voucher_type_info($row->vtype);
+
$ledgerst[$counter][0] = date_mysql_to_php($row->vdate);
- $ledgerst[$counter][1] = voucher_number_prefix(n_to_v($row->vtype)) . $row->vnumber;
+ $ledgerst[$counter][1] = voucher_number_prefix($row->vtype) . $row->vnumber;
/* Opposite voucher name */
$ledgerst[$counter][2] = $this->Ledger_model->get_opp_ledger_name($row->vid, $row->vtype, $row->ldc, 'text');
- $ledgerst[$counter][3] = ucfirst(n_to_v($row->vtype));
+ $ledgerst[$counter][3] = $current_voucher_type['name'];
if ($row->ldc == "D")
{
diff --git a/system/application/views/report/ledgerst.php b/system/application/views/report/ledgerst.php
index 5c017a4..fd3115b 100644
--- a/system/application/views/report/ledgerst.php
+++ b/system/application/views/report/ledgerst.php
@@ -116,12 +116,14 @@
foreach ($ledgerst_q->result() as $row)
{
+ $current_voucher_type = voucher_type_info($row->vtype);
+
echo "<tr class=\"tr-" . $odd_even . "\">";
echo "<td>";
echo date_mysql_to_php_display($row->vdate);
echo "</td>";
echo "<td>";
- echo anchor('voucher/view/' . n_to_v($row->vtype) . '/' . $row->vid, voucher_number_prefix(n_to_v($row->vtype)) . $row->vnumber, array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
+ echo anchor('voucher/view/' . $current_voucher_type['label'] . '/' . $row->vid, voucher_number_prefix($row->vtype) . $row->vnumber, array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
echo "</td>";
/* Getting opposite Ledger name */
@@ -130,7 +132,7 @@
echo "</td>";
echo "<td>";
- echo ucfirst(n_to_v($row->vtype));
+ echo $current_voucher_type['name'];
echo "</td>";
if ($row->ldc == "D")
{
diff --git a/system/application/views/report/reconciliation.php b/system/application/views/report/reconciliation.php
index 7fed6eb..0cbb0a4 100644
--- a/system/application/views/report/reconciliation.php
+++ b/system/application/views/report/reconciliation.php
@@ -120,6 +120,8 @@
foreach ($ledgerst_q->result() as $row)
{
+ $current_voucher_type = voucher_type_info($row->vtype);
+
echo "<tr class=\"tr-" . $odd_even;
if ($row->lreconciliation)
echo " tr-reconciled";
@@ -128,7 +130,7 @@
echo date_mysql_to_php_display($row->vdate);
echo "</td>";
echo "<td>";
- echo anchor('voucher/view/' . n_to_v($row->vtype) . '/' . $row->vid, voucher_number_prefix(n_to_v($row->vtype)) . $row->vnumber, array('title' => 'View ' . ' Voucher', 'class' => 'anchor-link-a'));
+ echo anchor('voucher/view/' . $current_voucher_type['label'] . '/' . $row->vid, voucher_number_prefix($row->vtype) . $row->vnumber, array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a'));
echo "</td>";
/* Getting opposite Ledger name */
@@ -137,7 +139,7 @@
echo "</td>";
echo "<td>";
- echo ucfirst(n_to_v($row->vtype));
+ echo $current_voucher_type['name'];
echo "</td>";
if ($row->ldc == "D")
{
commit 4b5ebfa0021295a6c49035e773ecba45cecc1b57
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Mon Jan 31 14:50:00 2011 +0530
Updated Email and Print Voucher to use dynamic voucher type
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 6cfa189..061bdb6 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -984,12 +984,12 @@ class Voucher extends Controller {
if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type_id))
{
$this->messages->add('Invalid Voucher.', 'error');
- redirect('voucher/show/' . $voucher_type);
+ redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
- $data['current_voucher_type'] = $current_voucher_type;
$data['voucher_type_id'] = $voucher_type_id;
+ $data['current_voucher_type'] = $current_voucher_type;
$data['voucher_number'] = $cur_voucher->number;
$data['voucher_date'] = date_mysql_to_php_display($cur_voucher->date);
$data['voucher_dr_total'] = $cur_voucher->dr_total;
@@ -1035,17 +1035,27 @@ class Voucher extends Controller {
return;
}
- $account = $this->Setting_model->get_current();
+ /* Voucher Type */
+ $voucher_type_id = voucher_type_name_to_id($voucher_type);
+ if ( ! $voucher_type_id)
+ {
+ $this->messages->add('Invalid Voucher type.', 'error');
+ redirect('voucher/show/all');
+ return;
+ } else {
+ $current_voucher_type = voucher_type_info($voucher_type_id);
+ }
/* Load current voucher details */
- if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type))
+ if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type_id))
{
- $this->messages->add('Invalid Voucher number.', 'error');
- redirect('voucher/show/' . $voucher_type);
+ $this->messages->add('Invalid Voucher.', 'error');
+ redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
- $data['voucher_type'] = $voucher_type;
+ $data['voucher_type_id'] = $voucher_type_id;
+ $data['current_voucher_type'] = $current_voucher_type;
$data['voucher_number'] = $cur_voucher->number;
$data['voucher_date'] = date_mysql_to_php_display($cur_voucher->date);
$data['voucher_dr_total'] = $cur_voucher->dr_total;
@@ -1089,17 +1099,29 @@ class Voucher extends Controller {
return;
}
+ /* Voucher Type */
+ $voucher_type_id = voucher_type_name_to_id($voucher_type);
+ if ( ! $voucher_type_id)
+ {
+ $this->messages->add('Invalid Voucher type.', 'error');
+ redirect('voucher/show/all');
+ return;
+ } else {
+ $current_voucher_type = voucher_type_info($voucher_type_id);
+ }
+
$account_data = $this->Setting_model->get_current();
/* Load current voucher details */
- if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type))
+ if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type_id))
{
- $this->messages->add('Invalid Voucher number.', 'error');
- redirect('voucher/show/' . $voucher_type);
+ $this->messages->add('Invalid Voucher.', 'error');
+ redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
- $data['voucher_type'] = $voucher_type;
+ $data['voucher_type_id'] = $voucher_type_id;
+ $data['current_voucher_type'] = $current_voucher_type;
$data['voucher_id'] = $voucher_id;
$data['voucher_number'] = $cur_voucher->number;
$data['email_to'] = array(
@@ -1126,7 +1148,8 @@ class Voucher extends Controller {
}
else
{
- $voucher_data['voucher_type'] = $voucher_type;
+ $voucher_data['voucher_type_id'] = $voucher_type_id;
+ $voucher_data['current_voucher_type'] = $current_voucher_type;
$voucher_data['voucher_number'] = $cur_voucher->number;
$voucher_data['voucher_date'] = date_mysql_to_php_display($cur_voucher->date);
$voucher_data['voucher_dr_total'] = $cur_voucher->dr_total;
@@ -1168,22 +1191,22 @@ class Voucher extends Controller {
$config['smtp_user'] = $account_data->email_username;
$config['smtp_pass'] = $account_data->email_password;
} else {
- $data['error'] = 'Invalid account details.';
+ $data['error'] = 'Invalid account settings.';
}
$this->email->initialize($config);
/* Sending email */
$this->email->from('', 'Webzash');
$this->email->to($this->input->post('email_to', TRUE));
- $this->email->subject(ucfirst($voucher_type) . ' Voucher No. ' . voucher_number_prefix($voucher_type) . $cur_voucher->number);
+ $this->email->subject($current_voucher_type['name'] . ' Voucher No. ' . voucher_number_prefix($voucher_type_id) . $cur_voucher->number);
$this->email->message($message);
if ($this->email->send())
{
$data['message'] = "Email sent.";
- $this->logger->write_message("success", "Emailed " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("success", "Emailed " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
} else {
$data['error'] = "Error sending email. Check you email settings.";
- $this->logger->write_message("error", "Error emailing " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error emailing " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
}
$this->load->view('voucher/email', $data);
return;
diff --git a/system/application/views/voucher/email.php b/system/application/views/voucher/email.php
index d9e8148..7ef13fc 100644
--- a/system/application/views/voucher/email.php
+++ b/system/application/views/voucher/email.php
@@ -36,9 +36,9 @@
echo "</div>";
}
- echo form_open('voucher/email/' . $voucher_type . "/" . $voucher_id);
+ echo form_open('voucher/email/' . $current_voucher_type['label'] . "/" . $voucher_id);
- echo "Emailing " . ucfirst($voucher_type) . " Voucher No. " . $voucher_number . "<br />";
+ echo "Emailing " . $current_voucher_type['name'] . " Voucher No. " . $voucher_number . "<br />";
echo "<p>";
echo form_label('Email to', 'email_to');
diff --git a/system/application/views/voucher/emailpreview.php b/system/application/views/voucher/emailpreview.php
index f925edd..87336bc 100644
--- a/system/application/views/voucher/emailpreview.php
+++ b/system/application/views/voucher/emailpreview.php
@@ -1,14 +1,14 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
-<title>Print - <?php echo ucfirst($voucher_type); ?> Voucher Number <?php echo $voucher_number; ?></title>
+<title>Email - <?php echo $current_voucher_type['name']; ?> Voucher Number <?php echo $voucher_number; ?></title>
</head>
<body>
- <p><?php echo $this->config->item('account_name'); ?></p>
+ <p><?php echo $this->config->item('account_name'); ?></p>
<p><?php echo $this->config->item('account_address'); ?></p>
- <p><strong><?php echo ucfirst($voucher_type); ?> Voucher</strong></p>
- <p><?php echo ucfirst($voucher_type); ?> Voucher Number : <strong><?php echo voucher_number_prefix($voucher_type) . $voucher_number; ?></strong></p>
- <p><?php echo ucfirst($voucher_type); ?> Voucher Date : <strong><?php echo $voucher_date; ?></strong></p>
+ <p><strong><?php echo $current_voucher_type['name']; ?> Voucher</strong></p>
+ <p><?php echo $current_voucher_type['name']; ?> Voucher Number : <strong><?php echo voucher_number_prefix($voucher_type_id) . $voucher_number; ?></strong></p>
+ <p><?php echo $current_voucher_type['name']; ?> Voucher Date : <strong><?php echo $voucher_date; ?></strong></p>
<table border=1 cellpadding=6>
<thead>
<tr><th align="left">Ledger A/C</th><th>Dr Amount</th><th>Cr Amount</th></tr>
diff --git a/system/application/views/voucher/printpreview.php b/system/application/views/voucher/printpreview.php
index 8b27448..40aef25 100644
--- a/system/application/views/voucher/printpreview.php
+++ b/system/application/views/voucher/printpreview.php
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
-<title>Print - <?php echo ucfirst($voucher_type); ?> Voucher Number <?php echo $voucher_number; ?></title>
+<title>Print - <?php echo $current_voucher_type['name']; ?> Voucher Number <?php echo $voucher_number; ?></title>
<?php echo link_tag(asset_url() . 'images/favicon.ico', 'shortcut icon', 'image/ico'); ?>
<link type="text/css" rel="stylesheet" href="<?php echo asset_url(); ?>css/printvoucher.css">
</head>
@@ -9,10 +9,10 @@
<div id="print-account-name"><span class="value"><?php echo $this->config->item('account_name'); ?></span></div>
<div id="print-account-address"><span class="value"><?php echo $this->config->item('account_address'); ?></span></div>
<br />
- <div id="print-voucher-type"><span class="value"><?php echo ucfirst($voucher_type); ?> Voucher</span></div>
+ <div id="print-voucher-type"><span class="value"><?php echo $current_voucher_type['name']; ?> Voucher</span></div>
<br />
- <div id="print-voucher-number"><?php echo ucfirst($voucher_type); ?> Voucher Number : <span class="value"><?php echo voucher_number_prefix($voucher_type) . $voucher_number; ?></span></div>
- <div id="print-voucher-number"><?php echo ucfirst($voucher_type); ?> Voucher Date : <span class="value"><?php echo $voucher_date; ?></span></div>
+ <div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Number : <span class="value"><?php echo voucher_number_prefix($voucher_type_id) . $voucher_number; ?></span></div>
+ <div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Date : <span class="value"><?php echo $voucher_date; ?></span></div>
<br />
<table id="print-voucher-table">
<thead>
commit f67ef865df6211602f86c5d87fe2a43a8007f8af
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Mon Jan 31 12:33:45 2011 +0530
Updated Download Voucher to use dynamic voucher types
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 72021f5..6cfa189 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -955,7 +955,7 @@ class Voucher extends Controller {
return;
}
- function download($voucher_type, $voucher_id = 0)
+ function download($voucher_type, $voucher_id)
{
$this->load->helper('download');
$this->load->model('Setting_model');
@@ -969,17 +969,27 @@ class Voucher extends Controller {
return;
}
- $account = $this->Setting_model->get_current();
+ /* Voucher Type */
+ $voucher_type_id = voucher_type_name_to_id($voucher_type);
+ if ( ! $voucher_type_id)
+ {
+ $this->messages->add('Invalid Voucher type.', 'error');
+ redirect('voucher/show/all');
+ return;
+ } else {
+ $current_voucher_type = voucher_type_info($voucher_type_id);
+ }
/* Load current voucher details */
- if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type))
+ if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type_id))
{
- $this->messages->add('Invalid Voucher number.', 'error');
+ $this->messages->add('Invalid Voucher.', 'error');
redirect('voucher/show/' . $voucher_type);
return;
}
- $data['voucher_type'] = $voucher_type;
+ $data['current_voucher_type'] = $current_voucher_type;
+ $data['voucher_type_id'] = $voucher_type_id;
$data['voucher_number'] = $cur_voucher->number;
$data['voucher_date'] = date_mysql_to_php_display($cur_voucher->date);
$data['voucher_dr_total'] = $cur_voucher->dr_total;
@@ -1006,7 +1016,7 @@ class Voucher extends Controller {
}
/* Download Voucher */
- $file_name = $voucher_type . '_voucher_' . $cur_voucher->number . ".html";
+ $file_name = $current_voucher_type['name'] . '_voucher_' . $cur_voucher->number . ".html";
$download_data = $this->load->view('voucher/downloadpreview', $data, TRUE);
force_download($file_name, $download_data);
return;
diff --git a/system/application/views/voucher/downloadpreview.php b/system/application/views/voucher/downloadpreview.php
index 8ab7043..d59f587 100644
--- a/system/application/views/voucher/downloadpreview.php
+++ b/system/application/views/voucher/downloadpreview.php
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
-<title><?php echo ucfirst($voucher_type); ?> Voucher Number <?php echo $voucher_number; ?></title>
+<title><?php $current_voucher_type['name']; ?> Voucher Number <?php echo $voucher_number; ?></title>
<style type="text/css">
body {
@@ -63,10 +63,10 @@
<div id="print-account-name"><span class="value"><?php echo $this->config->item('account_name'); ?></span></div>
<div id="print-account-address"><span class="value"><?php echo $this->config->item('account_address'); ?></span></div>
<br />
- <div id="print-voucher-type"><span class="value"><?php echo ucfirst($voucher_type); ?> Voucher</span></div>
+ <div id="print-voucher-type"><span class="value"><?php echo $current_voucher_type['name']; ?> Voucher</span></div>
<br />
- <div id="print-voucher-number"><?php echo ucfirst($voucher_type); ?> Voucher Number : <span class="value"><?php echo voucher_number_prefix($voucher_type) . $voucher_number; ?></span></div>
- <div id="print-voucher-number"><?php echo ucfirst($voucher_type); ?> Voucher Date : <span class="value"><?php echo $voucher_date; ?></span></div>
+ <div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Number : <span class="value"><?php echo voucher_number_prefix($voucher_type_id) . $voucher_number; ?></span></div>
+ <div id="print-voucher-number"><?php echo $current_voucher_type['name']; ?> Voucher Date : <span class="value"><?php echo $voucher_date; ?></span></div>
<br />
<table id="print-voucher-table">
<thead>
commit b9e9c85c6f67aab2bee3c40b1703f4554d336847
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Mon Jan 31 12:12:41 2011 +0530
Updated Edit Voucher to use dynamic voucher types
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index e65188d..72021f5 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -28,6 +28,8 @@ class Voucher extends Controller {
{
$tag_id = (int)$this->uri->segment(4);
$data['tag_id'] = $tag_id;
+ $tag_name = $this->Tag_model->tag_name($tag_id);
+ $this->template->set('page_title', 'Vouchers Tagged "' . $tag_name . '"');
} else if ($voucher_type == 'all') {
$voucher_type_id = 0;
$this->template->set('page_title', 'All Vouchers');
@@ -139,15 +141,17 @@ class Voucher extends Controller {
if ($this->session->userdata('voucher_updated_show_action'))
{
$voucher_updated_id_temp = $this->session->userdata('voucher_updated_id');
- $voucher_updated_type_temp = $this->session->userdata('voucher_updated_type');
+ $voucher_updated_type_id_temp = $this->session->userdata('voucher_updated_type_id');
+ $voucher_updated_type_label_temp = $this->session->userdata('voucher_updated_type_label');
+ $voucher_updated_type_name_temp = $this->session->userdata('voucher_updated_type_name');
$voucher_updated_number_temp = $this->session->userdata('voucher_updated_number');
- $voucher_updated_message = 'Updated ' . ucfirst($voucher_updated_type_temp) . ' Voucher number ' . voucher_number_prefix($voucher_updated_type_temp) . $voucher_updated_number_temp . ".";
+ $voucher_updated_message = 'Updated ' . $voucher_updated_type_name_temp . ' Voucher number ' . voucher_number_prefix($voucher_updated_type_id_temp) . $voucher_updated_number_temp . ".";
$voucher_updated_message .= " You can [ ";
- $voucher_updated_message .= anchor('voucher/view/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp, 'View', array('class' => 'anchor-link-a')) . " | ";
- $voucher_updated_message .= anchor('voucher/edit/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp, 'Edit', array('class' => 'anchor-link-a')) . " | ";
- $voucher_updated_message .= anchor_popup('voucher/printpreview/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp , 'Print', array('class' => 'anchor-link-a', 'width' => '600', 'height' => '600')) . " | ";
- $voucher_updated_message .= anchor_popup('voucher/email/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp, 'Email', array('class' => 'anchor-link-a', 'width' => '500', 'height' => '300')) . " | ";
- $voucher_updated_message .= anchor('voucher/download/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp, 'Download', array('class' => 'anchor-link-a'));
+ $voucher_updated_message .= anchor('voucher/view/' . $voucher_updated_type_label_temp . "/" . $voucher_updated_id_temp, 'View', array('class' => 'anchor-link-a')) . " | ";
+ $voucher_updated_message .= anchor('voucher/edit/' . $voucher_updated_type_label_temp . "/" . $voucher_updated_id_temp, 'Edit', array('class' => 'anchor-link-a')) . " | ";
+ $voucher_updated_message .= anchor_popup('voucher/printpreview/' . $voucher_updated_type_label_temp . "/" . $voucher_updated_id_temp , 'Print', array('class' => 'anchor-link-a', 'width' => '600', 'height' => '600')) . " | ";
+ $voucher_updated_message .= anchor_popup('voucher/email/' . $voucher_updated_type_label_temp . "/" . $voucher_updated_id_temp, 'Email', array('class' => 'anchor-link-a', 'width' => '500', 'height' => '300')) . " | ";
+ $voucher_updated_message .= anchor('voucher/download/' . $voucher_updated_type_label_temp . "/" . $voucher_updated_id_temp, 'Download', array('class' => 'anchor-link-a'));
$voucher_updated_message .= " ] it.";
$this->messages->add($voucher_updated_message, 'success');
@@ -156,7 +160,9 @@ class Voucher extends Controller {
$this->session->unset_userdata('voucher_updated_show_action');
$this->session->unset_userdata('voucher_updated_id');
- $this->session->unset_userdata('voucher_updated_type');
+ $this->session->unset_userdata('voucher_updated_type_id');
+ $this->session->unset_userdata('voucher_updated_type_label');
+ $this->session->unset_userdata('voucher_updated_type_name');
$this->session->unset_userdata('voucher_updated_number');
$this->session->unset_userdata('voucher_updated_has_reconciliation');
}
@@ -487,7 +493,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error adding Ledger A/C - ' . $data_ledger_id . ' to Voucher.', 'error');
- $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " since failed inserting voucher ledger items " . "[id:" . $data_ledger_id . "]");
+ $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " since failed inserting voucher ledger item " . "[id:" . $data_ledger_id . "]");
$this->template->load('template', 'voucher/add', $data);
return;
}
@@ -544,32 +550,24 @@ class Voucher extends Controller {
return;
}
- switch ($voucher_type)
+ /* Voucher Type */
+ $voucher_type_id = voucher_type_name_to_id($voucher_type);
+ if ( ! $voucher_type_id)
{
- case 'receipt' :
- $this->template->set('page_title', 'Edit Receipt Voucher');
- break;
- case 'payment' :
- $this->template->set('page_title', 'Edit Payment Voucher');
- break;
- case 'contra' :
- $this->template->set('page_title', 'Edit Contra Voucher');
- break;
- case 'journal' :
- $this->template->set('page_title', 'Edit Journal Voucher');
- break;
- default :
- $this->messages->add('Invalid Voucher type(5).', 'error');
+ $this->messages->add('Invalid Voucher type.', 'error');
redirect('voucher/show/all');
return;
- break;
+ } else {
+ $current_voucher_type = voucher_type_info($voucher_type_id);
}
+ $this->template->set('page_title', 'Edit ' . $current_voucher_type['name'] . ' Voucher');
+
/* Load current voucher details */
- if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type))
+ if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type_id))
{
- $this->messages->add('Invalid Voucher number.', 'error');
- redirect('voucher/show/' . $voucher_type);
+ $this->messages->add('Invalid Voucher.', 'error');
+ redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
@@ -595,8 +593,9 @@ class Voucher extends Controller {
'rows' => '4',
'value' => $cur_voucher->narration,
);
- $data['voucher_type'] = $voucher_type;
$data['voucher_id'] = $voucher_id;
+ $data['voucher_type_id'] = $voucher_type_id;
+ $data['current_voucher_type'] = $current_voucher_type;
$data['voucher_tag'] = $cur_voucher->tag_id;
$data['voucher_tags'] = $this->Tag_model->get_all_tags();
$data['has_reconciliation'] = FALSE;
@@ -701,7 +700,7 @@ class Voucher extends Controller {
} else {
/* Check for valid ledger type */
$valid_ledger = $valid_ledger_q->row();
- if ($voucher_type == 'receipt')
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == '2')
{
if ($data_all_ledger_dc[$id] == 'D' && $valid_ledger->type == 'B')
{
@@ -709,7 +708,7 @@ class Voucher extends Controller {
}
if ($valid_ledger->type != 'B')
$non_bank_cash_present = TRUE;
- } else if ($voucher_type == 'payment')
+ } else if ($current_voucher_type['bank_cash_ledger_restriction'] == '3')
{
if ($data_all_ledger_dc[$id] == 'C' && $valid_ledger->type == 'B')
{
@@ -717,19 +716,19 @@ class Voucher extends Controller {
}
if ($valid_ledger->type != 'B')
$non_bank_cash_present = TRUE;
- } else if ($voucher_type == 'contra')
+ } else if ($current_voucher_type['bank_cash_ledger_restriction'] == '4')
{
if ($valid_ledger->type != 'B')
{
- $this->messages->add('Invalid Ledger A/C. Contra Vouchers can have only Bank and Cash Ledgers A/C\'s.', 'error');
+ $this->messages->add('Invalid Ledger A/C. ' . $current_voucher_type['name'] . ' Vouchers can have only Bank and Cash Ledgers A/C\'s.', 'error');
$this->template->load('template', 'voucher/edit', $data);
return;
}
- } else if ($voucher_type == 'journal')
+ } else if ($current_voucher_type['bank_cash_ledger_restriction'] == '5')
{
if ($valid_ledger->type == 'B')
{
- $this->messages->add('Invalid Ledger A/C. Journal Vouchers cannot have Bank and Cash Ledgers A/C\'s.', 'error');
+ $this->messages->add('Invalid Ledger A/C. ' . $current_voucher_type['name'] . ' Vouchers cannot have Bank and Cash Ledgers A/C\'s.', 'error');
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -753,7 +752,7 @@ class Voucher extends Controller {
return;
}
/* Check if atleast one Bank or Cash Ledger A/C is present */
- if ($voucher_type == 'receipt')
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == '2')
{
if ( ! $bank_cash_present)
{
@@ -763,11 +762,11 @@ class Voucher extends Controller {
}
if ( ! $non_bank_cash_present)
{
- $this->messages->add('Use Contra Vouchers if it affects only Bank or Cash A/C\'s.', 'error');
+ $this->messages->add('Need to Debit or Credit atleast one NON - Bank or Cash A/C.', 'error');
$this->template->load('template', 'voucher/edit', $data);
return;
}
- } else if ($voucher_type == 'payment')
+ } else if ($current_voucher_type['bank_cash_ledger_restriction'] == '3')
{
if ( ! $bank_cash_present)
{
@@ -777,7 +776,7 @@ class Voucher extends Controller {
}
if ( ! $non_bank_cash_present)
{
- $this->messages->add('Use Contra Vouchers if it affects only Bank or Cash A/C\'s.', 'error');
+ $this->messages->add('Need to Debit or Credit atleast one NON - Bank or Cash A/C.', 'error');
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -788,14 +787,7 @@ class Voucher extends Controller {
$data_date = $this->input->post('voucher_date', TRUE);
$data_narration = $this->input->post('voucher_narration', TRUE);
$data_tag = $this->input->post('voucher_tag', TRUE);
- $data_type = 0;
- switch ($voucher_type)
- {
- case "receipt": $data_type = 1; break;
- case "payment": $data_type = 2; break;
- case "contra": $data_type = 3; break;
- case "journal": $data_type = 4; break;
- }
+ $data_type = $voucher_type_id;
$data_date = date_php_to_mysql($data_date); // Converting date to MySQL
$data_has_reconciliation = $this->input->post('has_reconciliation', TRUE);
@@ -810,7 +802,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error updating Voucher A/C.', 'error');
- $this->logger->write_message("error", "Error updating voucher details for " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error updating voucher details for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -820,7 +812,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error deleting previous Ledger A/C\'s from Voucher.', 'error');
- $this->logger->write_message("error", "Error updating old voucher items for " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error deleting previous voucher items for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -859,7 +851,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error adding Ledger A/C - ' . $data_ledger_id . ' to Voucher.', 'error');
- $this->logger->write_message("error", "Error updating new voucher item [id:" . $data_ledger_id . "] for " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error adding Ledger A/C item [id:" . $data_ledger_id . "] for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -874,7 +866,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error updating Voucher total.', 'error');
- $this->logger->write_message("error", "Error updating voucher total for " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("error", "Error updating voucher total for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
$this->template->load('template', 'voucher/edit', $data);
return;
}
@@ -884,7 +876,9 @@ class Voucher extends Controller {
$this->session->set_userdata('voucher_updated_show_action', TRUE);
$this->session->set_userdata('voucher_updated_id', $voucher_id);
- $this->session->set_userdata('voucher_updated_type', $voucher_type);
+ $this->session->set_userdata('voucher_updated_type_id', $voucher_type_id);
+ $this->session->set_userdata('voucher_updated_type_label', $current_voucher_type['label']);
+ $this->session->set_userdata('voucher_updated_type_name', $current_voucher_type['name']);
$this->session->set_userdata('voucher_updated_number', $data_number);
if ($data_has_reconciliation)
$this->session->set_userdata('voucher_updated_has_reconciliation', TRUE);
@@ -892,9 +886,9 @@ class Voucher extends Controller {
$this->session->set_userdata('voucher_updated_has_reconciliation', FALSE);
/* Showing success message in show() method since message is too long for storing it in session */
- $this->logger->write_message("success", "Updated " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " [id:" . $voucher_id . "]");
+ $this->logger->write_message("success", "Updated " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
- redirect('voucher/show/' . $voucher_type);
+ redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
return;
@@ -943,7 +937,7 @@ class Voucher extends Controller {
$this->db->trans_rollback();
$this->messages->add('Error deleting Voucher - Ledger A/C\'s.', 'error');
$this->logger->write_message("error", "Error deleting ledger entries for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
- redirect('voucher/' . $current_voucher_type['label'] . '/view/' . $voucher_id);
+ redirect('voucher/view/' . $current_voucher_type['label'] . '/' . $voucher_id);
return;
}
if ( ! $this->db->delete('vouchers', array('id' => $voucher_id)))
@@ -951,7 +945,7 @@ class Voucher extends Controller {
$this->db->trans_rollback();
$this->messages->add('Error deleting Voucher entry.', 'error');
$this->logger->write_message("error", "Error deleting Voucher entry for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
- redirect('voucher/' . $current_voucher_type['label'] . '/view/' . $voucher_id);
+ redirect('voucher/view/' . $current_voucher_type['label'] . '/' . $voucher_id);
return;
}
$this->db->trans_complete();
diff --git a/system/application/views/voucher/edit.php b/system/application/views/voucher/edit.php
index b9cb6a5..3df7039 100644
--- a/system/application/views/voucher/edit.php
+++ b/system/application/views/voucher/edit.php
@@ -1,7 +1,8 @@
<?php
- if ($voucher_type == "contra")
+ /* Add row ledger type */
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == '4')
$add_type = "bankcash";
- else if ($voucher_type == "journal")
+ else if ($current_voucher_type['bank_cash_ledger_restriction'] == '5')
$add_type = "nobankcash";
else
$add_type = "all";
@@ -194,11 +195,11 @@ $(document).ready(function() {
</script>
<?php
- echo form_open('voucher/edit/' . $voucher_type . "/" . $voucher_id);
+ echo form_open('voucher/edit/' . $current_voucher_type['label'] . "/" . $voucher_id);
echo "<p>";
echo form_label('Voucher Number', 'voucher_number');
echo " ";
- echo voucher_number_prefix($voucher_type) . form_input($voucher_number);
+ echo voucher_number_prefix($voucher_type_id) . form_input($voucher_number);
echo " ";
echo "<span id=\"tooltip-target-1\">";
echo form_label('Voucher Date', 'voucher_date');
@@ -233,9 +234,9 @@ $(document).ready(function() {
echo "<td>" . form_dropdown_dc('ledger_dc[' . $i . ']', isset($ledger_dc[$i]) ? $ledger_dc[$i] : "D") . "</td>";
- if ($voucher_type == "contra")
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == '4')
echo "<td>" . form_input_ledger('ledger_id[' . $i . ']', isset($ledger_id[$i]) ? $ledger_id[$i] : 0, '', $type = 'bankcash') . "</td>";
- else if ($voucher_type == "journal")
+ else if ($current_voucher_type['bank_cash_ledger_restriction'] == '5')
echo "<td>" . form_input_ledger('ledger_id[' . $i . ']', isset($ledger_id[$i]) ? $ledger_id[$i] : 0, '', $type = 'nobankcash') . "</td>";
else
echo "<td>" . form_input_ledger('ledger_id[' . $i . ']', isset($ledger_id[$i]) ? $ledger_id[$i] : 0) . "</td>";
@@ -250,11 +251,11 @@ $(document).ready(function() {
echo "</tr>";
}
- echo "<tr><td colspan=7></td></tr>";
+ echo "<tr><td colspan=7></td></tr>";
echo "<tr id=\"total\"><td colspan=2><strong>Total</strong></td><td id=\"dr-total\">0</td><td id=\"cr-total\">0</td><td>" . img(array('src' => asset_url() . "images/icons/gear.png", 'border' => '0', 'alt' => 'Recalculate Total', 'class' => 'recalculate', 'title' => 'Recalculate Total')) . "</td><td></td><td></td></tr>";
-
echo "<tr id=\"difference\"><td colspan=2><strong>Difference</strong></td><td id=\"dr-diff\"></td><td id=\"cr-diff\"></td><td></td><td></td><td></td></tr>";
+
echo "</table>";
echo "<p>";
@@ -274,9 +275,9 @@ $(document).ready(function() {
echo "<p>";
echo form_submit('submit', 'Update');
echo " ";
- echo anchor('voucher/edit/' . $voucher_type . "/" . $voucher_id, 'Reload', array('title' => 'Reload ' . ucfirst($voucher_type) . ' Voucher Original Data'));
+ echo anchor('voucher/edit/' . $current_voucher_type['label'] . "/" . $voucher_id, 'Reload', array('title' => 'Reload ' . $current_voucher_type['name'] . ' Voucher Original Data'));
echo " | ";
- echo anchor('voucher/show/' . $voucher_type, 'Back', array('title' => 'Back to ' . ucfirst($voucher_type) . ' Vouchers'));
+ echo anchor('voucher/show/' . $current_voucher_type['label'], 'Back', array('title' => 'Back to ' . $current_voucher_type['name'] . ' Vouchers'));
echo "</p>";
echo form_close();
commit 1057a4dec779ad3977bb29e91c291f2936c998d5
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Sun Jan 30 19:36:46 2011 +0530
Updated Add and Delete Voucher to dynamic voucher types
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 352274d..e65188d 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -114,20 +114,24 @@ class Voucher extends Controller {
if ($this->session->userdata('voucher_added_show_action'))
{
$voucher_added_id_temp = $this->session->userdata('voucher_added_id');
- $voucher_added_type_temp = $this->session->userdata('voucher_added_type');
+ $voucher_added_type_id_temp = $this->session->userdata('voucher_added_type_id');
+ $voucher_added_type_label_temp = $this->session->userdata('voucher_added_type_label');
+ $voucher_added_type_name_temp = $this->session->userdata('voucher_added_type_name');
$voucher_added_number_temp = $this->session->userdata('voucher_added_number');
- $voucher_added_message = 'Added ' . ucfirst($voucher_added_type_temp) . ' Voucher number ' . voucher_number_prefix($voucher_added_type_temp) . $voucher_added_number_temp . ".";
+ $voucher_added_message = 'Added ' . $voucher_added_type_name_temp . ' Voucher number ' . voucher_number_prefix($voucher_added_type_id_temp) . $voucher_added_number_temp . ".";
$voucher_added_message .= " You can [ ";
- $voucher_added_message .= anchor('voucher/view/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp, 'View', array('class' => 'anchor-link-a')) . " | ";
- $voucher_added_message .= anchor('voucher/edit/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp, 'Edit', array('class' => 'anchor-link-a')) . " | ";
- $voucher_added_message .= anchor_popup('voucher/printpreview/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp , 'Print', array('class' => 'anchor-link-a', 'width' => '600', 'height' => '600')) . " | ";
- $voucher_added_message .= anchor_popup('voucher/email/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp, 'Email', array('class' => 'anchor-link-a', 'width' => '500', 'height' => '300')) . " | ";
- $voucher_added_message .= anchor('voucher/download/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp, 'Download', array('class' => 'anchor-link-a'));
+ $voucher_added_message .= anchor('voucher/view/' . $voucher_added_type_label_temp . "/" . $voucher_added_id_temp, 'View', array('class' => 'anchor-link-a')) . " | ";
+ $voucher_added_message .= anchor('voucher/edit/' . $voucher_added_type_label_temp . "/" . $voucher_added_id_temp, 'Edit', array('class' => 'anchor-link-a')) . " | ";
+ $voucher_added_message .= anchor_popup('voucher/printpreview/' . $voucher_added_type_label_temp . "/" . $voucher_added_id_temp , 'Print', array('class' => 'anchor-link-a', 'width' => '600', 'height' => '600')) . " | ";
+ $voucher_added_message .= anchor_popup('voucher/email/' . $voucher_added_type_label_temp . "/" . $voucher_added_id_temp, 'Email', array('class' => 'anchor-link-a', 'width' => '500', 'height' => '300')) . " | ";
+ $voucher_added_message .= anchor('voucher/download/' . $voucher_added_type_label_temp . "/" . $voucher_added_id_temp, 'Download', array('class' => 'anchor-link-a'));
$voucher_added_message .= " ] it.";
$this->messages->add($voucher_added_message, 'success');
$this->session->unset_userdata('voucher_added_show_action');
$this->session->unset_userdata('voucher_added_id');
- $this->session->unset_userdata('voucher_added_type');
+ $this->session->unset_userdata('voucher_added_type_id');
+ $this->session->unset_userdata('voucher_added_type_label');
+ $this->session->unset_userdata('voucher_added_type_name');
$this->session->unset_userdata('voucher_added_number');
}
@@ -166,32 +170,24 @@ class Voucher extends Controller {
function view($voucher_type, $voucher_id = 0)
{
- switch ($voucher_type)
+ /* Voucher Type */
+ $voucher_type_id = voucher_type_name_to_id($voucher_type);
+ if ( ! $voucher_type_id)
{
- case 'receipt' :
- $this->template->set('page_title', 'View Receipt Voucher');
- break;
- case 'payment' :
- $this->template->set('page_title', 'View Payment Voucher');
- break;
- case 'contra' :
- $this->template->set('page_title', 'View Contra Voucher');
- break;
- case 'journal' :
- $this->template->set('page_title', 'View Journal Voucher');
- break;
- default :
- $this->messages->add('Invalid Voucher type(3).', 'error');
+ $this->messages->add('Invalid Voucher type.', 'error');
redirect('voucher/show/all');
return;
- break;
+ } else {
+ $current_voucher_type = voucher_type_info($voucher_type_id);
}
+ $this->template->set('page_title', 'View ' . $current_voucher_type['name'] . ' Voucher');
+
/* Load current voucher details */
- if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type))
+ if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type_id))
{
- $this->messages->add('Invalid Voucher number.', 'error');
- redirect('voucher/show/' . $voucher_type);
+ $this->messages->add('Invalid Voucher.', 'error');
+ redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
/* Load current voucher details */
@@ -203,7 +199,8 @@ class Voucher extends Controller {
}
$data['cur_voucher'] = $cur_voucher;
$data['cur_voucher_ledgers'] = $cur_voucher_ledgers;
- $data['voucher_type'] = $voucher_type;
+ $data['voucher_type_id'] = $voucher_type_id;
+ $data['current_voucher_type'] = $current_voucher_type;
$this->template->load('template', 'voucher/view', $data);
return;
}
@@ -226,27 +223,19 @@ class Voucher extends Controller {
return;
}
- switch ($voucher_type)
+ /* Voucher Type */
+ $voucher_type_id = voucher_type_name_to_id($voucher_type);
+ if ( ! $voucher_type_id)
{
- case 'receipt' :
- $this->template->set('page_title', 'New Receipt Voucher');
- break;
- case 'payment' :
- $this->template->set('page_title', 'New Payment Voucher');
- break;
- case 'contra' :
- $this->template->set('page_title', 'New Contra Voucher');
- break;
- case 'journal' :
- $this->template->set('page_title', 'New Journal Voucher');
- break;
- default :
- $this->messages->add('Invalid Voucher type(4).', 'error');
+ $this->messages->add('Invalid Voucher type.', 'error');
redirect('voucher/show/all');
return;
- break;
+ } else {
+ $current_voucher_type = voucher_type_info($voucher_type_id);
}
+ $this->template->set('page_title', 'New ' . $current_voucher_type['name'] . ' Voucher');
+
/* Form fields */
$data['voucher_number'] = array(
'name' => 'voucher_number',
@@ -269,12 +258,13 @@ class Voucher extends Controller {
'rows' => '4',
'value' => '',
);
- $data['voucher_type'] = $voucher_type;
+ $data['voucher_type_id'] = $voucher_type_id;
+ $data['current_voucher_type'] = $current_voucher_type;
$data['voucher_tags'] = $this->Tag_model->get_all_tags();
$data['voucher_tag'] = 0;
/* Form validations */
- $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|is_natural_no_zero|uniquevoucherno[' . v_to_n($voucher_type) . ']');
+ $this->form_validation->set_rules('voucher_number', 'Voucher Number', 'trim|is_natural_no_zero|uniquevoucherno[' . $voucher_type_id . ']');
$this->form_validation->set_rules('voucher_date', 'Voucher Date', 'trim|required|is_date|is_date_within_range');
$this->form_validation->set_rules('voucher_narration', 'trim');
$this->form_validation->set_rules('voucher_tag', 'Tag', 'trim|is_natural');
@@ -349,7 +339,7 @@ class Voucher extends Controller {
} else {
/* Check for valid ledger type */
$valid_ledger = $valid_ledger_q->row();
- if ($voucher_type == 'receipt')
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == '2')
{
if ($data_all_ledger_dc[$id] == 'D' && $valid_ledger->type == 'B')
{
@@ -357,7 +347,7 @@ class Voucher extends Controller {
}
if ($valid_ledger->type != 'B')
$non_bank_cash_present = TRUE;
- } else if ($voucher_type == 'payment')
+ } else if ($current_voucher_type['bank_cash_ledger_restriction'] == '3')
{
if ($data_all_ledger_dc[$id] == 'C' && $valid_ledger->type == 'B')
{
@@ -365,19 +355,19 @@ class Voucher extends Controller {
}
if ($valid_ledger->type != 'B')
$non_bank_cash_present = TRUE;
- } else if ($voucher_type == 'contra')
+ } else if ($current_voucher_type['bank_cash_ledger_restriction'] == '4')
{
if ($valid_ledger->type != 'B')
{
- $this->messages->add('Invalid Ledger A/C. Contra Vouchers can have only Bank and Cash Ledgers A/C\'s.', 'error');
+ $this->messages->add('Invalid Ledger A/C. ' . $current_voucher_type['name'] . ' Vouchers can have only Bank and Cash Ledgers A/C\'s.', 'error');
$this->template->load('template', 'voucher/add', $data);
return;
}
- } else if ($voucher_type == 'journal')
+ } else if ($current_voucher_type['bank_cash_ledger_restriction'] == '5')
{
if ($valid_ledger->type == 'B')
{
- $this->messages->add('Invalid Ledger A/C. Journal Vouchers cannot have Bank and Cash Ledgers A/C\'s.', 'error');
+ $this->messages->add('Invalid Ledger A/C. ' . $current_voucher_type['name'] . ' Vouchers cannot have Bank and Cash Ledgers A/C\'s.', 'error');
$this->template->load('template', 'voucher/add', $data);
return;
}
@@ -402,7 +392,7 @@ class Voucher extends Controller {
return;
}
/* Check if atleast one Bank or Cash Ledger A/C is present */
- if ($voucher_type == 'receipt')
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == '2')
{
if ( ! $bank_cash_present)
{
@@ -412,11 +402,11 @@ class Voucher extends Controller {
}
if ( ! $non_bank_cash_present)
{
- $this->messages->add('Use Contra Vouchers if it affects only Bank or Cash A/C\'s.', 'error');
+ $this->messages->add('Need to Debit or Credit atleast one NON - Bank or Cash A/C.', 'error');
$this->template->load('template', 'voucher/add', $data);
return;
}
- } else if ($voucher_type == 'payment')
+ } else if ($current_voucher_type['bank_cash_ledger_restriction'] == '3')
{
if ( ! $bank_cash_present)
{
@@ -426,7 +416,7 @@ class Voucher extends Controller {
}
if ( ! $non_bank_cash_present)
{
- $this->messages->add('Use Contra Vouchers if it affects only Bank or Cash A/C\'s.', 'error');
+ $this->messages->add('Need to Debit or Credit atleast one NON - Bank or Cash A/C.', 'error');
$this->template->load('template', 'voucher/add', $data);
return;
}
@@ -441,14 +431,7 @@ class Voucher extends Controller {
$data_date = $this->input->post('voucher_date', TRUE);
$data_narration = $this->input->post('voucher_narration', TRUE);
$data_tag = $this->input->post('voucher_tag', TRUE);
- $data_type = 0;
- switch ($voucher_type)
- {
- case "receipt": $data_type = 1; break;
- case "payment": $data_type = 2; break;
- case "contra": $data_type = 3; break;
- case "journal": $data_type = 4; break;
- }
+ $data_type = $voucher_type_id;
$data_date = date_php_to_mysql($data_date); // Converting date to MySQL
$voucher_id = NULL;
@@ -464,7 +447,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error addding Voucher.', 'error');
- $this->logger->write_message("error", "Error adding " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " since failed inserting voucher");
+ $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " since failed inserting voucher");
$this->template->load('template', 'voucher/add', $data);
return;
} else {
@@ -504,7 +487,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error adding Ledger A/C - ' . $data_ledger_id . ' to Voucher.', 'error');
- $this->logger->write_message("error", "Error adding " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " since failed inserting voucher ledger items " . "[id:" . $data_ledger_id . "]");
+ $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " since failed inserting voucher ledger items " . "[id:" . $data_ledger_id . "]");
$this->template->load('template', 'voucher/add', $data);
return;
}
@@ -519,7 +502,7 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error updating Voucher total.', 'error');
- $this->logger->write_message("error", "Error adding " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " since failed updating debit and credit total");
+ $this->logger->write_message("error", "Error adding " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " since failed updating debit and credit total");
$this->template->load('template', 'voucher/add', $data);
return;
}
@@ -529,12 +512,14 @@ class Voucher extends Controller {
$this->session->set_userdata('voucher_added_show_action', TRUE);
$this->session->set_userdata('voucher_added_id', $voucher_id);
- $this->session->set_userdata('voucher_added_type', $voucher_type);
+ $this->session->set_userdata('voucher_added_type_id', $voucher_type_id);
+ $this->session->set_userdata('voucher_added_type_label', $current_voucher_type['label']);
+ $this->session->set_userdata('voucher_added_type_name', $current_voucher_type['name']);
$this->session->set_userdata('voucher_added_number', $data_number);
/* Showing success message in show() method since message is too long for storing it in session */
- $this->logger->write_message("success", "Added " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " [id:" . $voucher_id . "]");
- redirect('voucher/show/' . $voucher_type);
+ $this->logger->write_message("success", "Added " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $data_number . " [id:" . $voucher_id . "]");
+ redirect('voucher/show/' . $current_voucher_type['label']);
$this->template->load('template', 'voucher/add', $data);
return;
}
@@ -933,11 +918,22 @@ class Voucher extends Controller {
return;
}
+ /* Voucher Type */
+ $voucher_type_id = voucher_type_name_to_id($voucher_type);
+ if ( ! $voucher_type_id)
+ {
+ $this->messages->add('Invalid Voucher type.', 'error');
+ redirect('voucher/show/all');
+ return;
+ } else {
+ $current_voucher_type = voucher_type_info($voucher_type_id);
+ }
+
/* Load current voucher details */
- if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type))
+ if ( ! $cur_voucher = $this->Voucher_model->get_voucher($voucher_id, $voucher_type_id))
{
- $this->messages->add('Invalid Voucher number.', 'error');
- redirect('voucher/show/' . $voucher_type);
+ $this->messages->add('Invalid Voucher.', 'error');
+ redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
@@ -946,22 +942,22 @@ class Voucher extends Controller {
{
$this->db->trans_rollback();
$this->messages->add('Error deleting Voucher - Ledger A/C\'s.', 'error');
- $this->logger->write_message("error", "Error deleting ledger entries for " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $cur_voucher->number . " [id:" . $voucher_id . "]");
- redirect('voucher/' . $voucher_type . '/' . $voucher_id);
+ $this->logger->write_message("error", "Error deleting ledger entries for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ redirect('voucher/' . $current_voucher_type['label'] . '/view/' . $voucher_id);
return;
}
if ( ! $this->db->delete('vouchers', array('id' => $voucher_id)))
{
$this->db->trans_rollback();
$this->messages->add('Error deleting Voucher entry.', 'error');
- $this->logger->write_message("error", "Error deleting voucher entry for " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $cur_voucher->number . " [id:" . $voucher_id . "]");
- redirect('voucher/' . $voucher_type . '/' . $voucher_id);
+ $this->logger->write_message("error", "Error deleting Voucher entry for " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ redirect('voucher/' . $current_voucher_type['label'] . '/view/' . $voucher_id);
return;
}
$this->db->trans_complete();
- $this->messages->add('Deleted ' . ucfirst($voucher_type) . ' Voucher.', 'success');
- $this->logger->write_message("success", "Deleted " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $cur_voucher->number . " [id:" . $voucher_id . "]");
- redirect('voucher/show/' . $voucher_type);
+ $this->messages->add('Deleted ' . $current_voucher_type['name'] . ' Voucher.', 'success');
+ $this->logger->write_message("success", "Deleted " . $current_voucher_type['name'] . " Voucher number " . voucher_number_prefix($voucher_type_id) . $cur_voucher->number . " [id:" . $voucher_id . "]");
+ redirect('voucher/show/' . $current_voucher_type['label']);
return;
}
diff --git a/system/application/models/voucher_model.php b/system/application/models/voucher_model.php
index 56d7ee8..6381145 100644
--- a/system/application/models/voucher_model.php
+++ b/system/application/models/voucher_model.php
@@ -22,10 +22,9 @@ class Voucher_model extends Model {
}
}
- function get_voucher($voucher_id, $type_string)
+ function get_voucher($voucher_id, $voucher_type_id)
{
- $type_number = v_to_n($type_string);
- $this->db->from('vouchers')->where('id', $voucher_id)->where('type', $type_number)->limit(1);
+ $this->db->from('vouchers')->where('id', $voucher_id)->where('type', $voucher_type_id)->limit(1);
$voucher_q = $this->db->get();
return $voucher_q->row();
}
diff --git a/system/application/views/voucher/add.php b/system/application/views/voucher/add.php
index 8fb8493..93aa5bc 100644
--- a/system/application/views/voucher/add.php
+++ b/system/application/views/voucher/add.php
@@ -1,7 +1,8 @@
<?php
- if ($voucher_type == "contra")
+ /* Add row ledger type */
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == '4')
$add_type = "bankcash";
- else if ($voucher_type == "journal")
+ else if ($current_voucher_type['bank_cash_ledger_restriction'] == '5')
$add_type = "nobankcash";
else
$add_type = "all";
@@ -194,12 +195,12 @@ $(document).ready(function() {
</script>
<?php
- echo form_open('voucher/add/' . $voucher_type);
+ echo form_open('voucher/add/' . $current_voucher_type['label']);
echo "<p>";
echo "<span id=\"tooltip-target-1\">";
echo form_label('Voucher Number', 'voucher_number');
echo " ";
- echo voucher_number_prefix($voucher_type) . form_input($voucher_number);
+ echo voucher_number_prefix($voucher_type_id) . form_input($voucher_number);
echo "</span>";
echo "<span id=\"tooltip-content-1\">Leave Voucher Number empty for auto numbering</span>";
echo " ";
@@ -236,9 +237,9 @@ $(document).ready(function() {
echo "<td>" . form_dropdown_dc('ledger_dc[' . $i . ']', isset($ledger_dc[$i]) ? $ledger_dc[$i] : "D") . "</td>";
- if ($voucher_type == "contra")
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == '4')
echo "<td>" . form_input_ledger('ledger_id[' . $i . ']', isset($ledger_id[$i]) ? $ledger_id[$i] : 0, '', $type = 'bankcash') . "</td>";
- else if ($voucher_type == "journal")
+ else if ($current_voucher_type['bank_cash_ledger_restriction'] == '5')
echo "<td>" . form_input_ledger('ledger_id[' . $i . ']', isset($ledger_id[$i]) ? $ledger_id[$i] : 0, '', $type = 'nobankcash') . "</td>";
else
echo "<td>" . form_input_ledger('ledger_id[' . $i . ']', isset($ledger_id[$i]) ? $ledger_id[$i] : 0) . "</td>";
@@ -275,7 +276,7 @@ $(document).ready(function() {
echo "<p>";
echo form_submit('submit', 'Create');
echo " ";
- echo anchor('voucher/show/' . $voucher_type, 'Back', array('title' => 'Back to ' . ucfirst($voucher_type) . ' Vouchers'));
+ echo anchor('voucher/show/' . $current_voucher_type['label'], 'Back', array('title' => 'Back to ' . $current_voucher_type['name'] . ' Vouchers'));
echo "</p>";
echo form_close();
diff --git a/system/application/views/voucher/view.php b/system/application/views/voucher/view.php
index 7d865c1..7ab8c47 100644
--- a/system/application/views/voucher/view.php
+++ b/system/application/views/voucher/view.php
@@ -1,4 +1,4 @@
-<p>Voucher Number : <span class="bold"><?php echo voucher_number_prefix($voucher_type) . $cur_voucher->number; ?></span>
+<p>Voucher Number : <span class="bold"><?php echo voucher_number_prefix($voucher_type_id) . $cur_voucher->number; ?></span>
Voucher Date : <span class="bold"><?php echo date_mysql_to_php_display($cur_voucher->date); ?></span>
</p>
@@ -50,15 +50,15 @@ else
?>
</p>
<?php
- echo anchor('voucher/show/' . $voucher_type, 'Back', array('title' => 'Back to ' . ucfirst($voucher_type) . ' Vouchers'));
+ echo anchor('voucher/show/' . $current_voucher_type['label'], 'Back', array('title' => 'Back to ' . $current_voucher_type['name'] . ' Vouchers'));
echo " | ";
- echo anchor('voucher/edit/' . $voucher_type . "/" . $cur_voucher->id, 'Edit', array('title' => 'Edit ' . ucfirst($voucher_type) . ' Voucher'));
+ echo anchor('voucher/edit/' . $current_voucher_type['label'] . "/" . $cur_voucher->id, 'Edit', array('title' => 'Edit ' . $current_voucher_type['name'] . ' Voucher'));
echo " | ";
- echo anchor('voucher/delete/' . $voucher_type . "/" . $cur_voucher->id, 'Delete', array('class' => "confirmClick", 'title' => "Delete voucher", 'title' => 'Delete this ' . ucfirst($voucher_type) . ' Voucher'));
+ echo anchor('voucher/delete/' . $current_voucher_type['label'] . "/" . $cur_voucher->id, 'Delete', array('class' => "confirmClick", 'title' => "Delete voucher", 'title' => 'Delete this ' . $current_voucher_type['name'] . ' Voucher'));
echo " | ";
- echo anchor_popup('voucher/printpreview/' . $voucher_type . "/" . $cur_voucher->id, 'Print', array('title' => 'Print this ' . ucfirst($voucher_type) . ' Voucher', 'width' => '600', 'height' => '600'));
+ echo anchor_popup('voucher/printpreview/' . $current_voucher_type['label'] . "/" . $cur_voucher->id, 'Print', array('title' => 'Print this ' . $current_voucher_type['name'] . ' Voucher', 'width' => '600', 'height' => '600'));
echo " | ";
- echo anchor_popup('voucher/email/' . $voucher_type . "/" . $cur_voucher->id, 'Email', array('title' => 'Email this ' . ucfirst($voucher_type) . ' Voucher', 'width' => '400', 'height' => '200'));
+ echo anchor_popup('voucher/email/' . $current_voucher_type['label'] . "/" . $cur_voucher->id, 'Email', array('title' => 'Email this ' . $current_voucher_type['name'] . ' Voucher', 'width' => '400', 'height' => '200'));
echo " | ";
- echo anchor('voucher/download/' . $voucher_type . "/" . $cur_voucher->id, 'Download', array('title' => "Download voucher", 'title' => 'Download this ' . ucfirst($voucher_type) . ' Voucher'));
+ echo anchor('voucher/download/' . $current_voucher_type['label'] . "/" . $cur_voucher->id, 'Download', array('title' => "Download voucher", 'title' => 'Download this ' . $current_voucher_type['name'] . ' Voucher'));
commit c5c363afc733db6aa5bcca2e1ef1e0c6ee796dac
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Sat Jan 29 16:50:29 2011 +0530
Added basic structure of dynamic voucher types
- Created database table for voucher_types
- Add helper methods to get the voucher types
- Adding all the voucher types on startup to the config
- Updated Voucher show action to use dynamic voucher types
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/db-update.txt b/db-update.txt
index 2e193fc..a939c6d 100644
--- a/db-update.txt
+++ b/db-update.txt
@@ -1,3 +1,19 @@
+//--------------------------------- VERSION 3 ----------------------------------
+
+CREATE TABLE IF NOT EXISTS voucher_types (
+ id int(5) NOT NULL,
+ label varchar(15) NOT NULL,
+ name varchar(100) NOT NULL,
+ description varchar(255) NOT NULL,
+ base_type int(2) NOT NULL,
+ numbering int(2) NOT NULL,
+ prefix varchar(10) NOT NULL,
+ suffix varchar(10) NOT NULL,
+ zero_padding int(2) NOT NULL,
+ bank_cash_ledger_restriction int(2) NOT NULL,
+ PRIMARY KEY (id)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1;
+
//--------------------------------- VERSION 2 ----------------------------------
ALTER TABLE voucher_items ADD reconciliation_date DATETIME NULL;
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 93523ef..352274d 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -20,53 +20,31 @@ class Voucher extends Controller {
function show($voucher_type)
{
$this->load->model('Tag_model');
+
$data['tag_id'] = 0;
- if ($voucher_type == "tag")
+ $voucher_type_id = 0;
+
+ if ($voucher_type == 'tag')
{
$tag_id = (int)$this->uri->segment(4);
$data['tag_id'] = $tag_id;
- }
-
- switch ($voucher_type)
- {
- case 'all' :
+ } else if ($voucher_type == 'all') {
+ $voucher_type_id = 0;
$this->template->set('page_title', 'All Vouchers');
- $data['voucher_type'] = "";
- break;
- case 'receipt' :
- $this->template->set('page_title', 'Receipt Vouchers');
- $this->template->set('nav_links', array('voucher/add/receipt' => 'New Receipt Voucher'));
- $data['voucher_type'] = "receipt";
- break;
- case 'payment' :
- $this->template->set('page_title', 'Payment Vouchers');
- $this->template->set('nav_links', array('voucher/add/payment' => 'New Payment Voucher'));
- $data['voucher_type'] = "payment";
- break;
- case 'contra' :
- $this->template->set('page_title', 'Contra Vouchers');
- $this->template->set('nav_links', array('voucher/add/contra' => 'New Contra Voucher'));
- $data['voucher_type'] = "contra";
- break;
- case 'journal' :
- $this->template->set('page_title', 'Journal Vouchers');
- $this->template->set('nav_links', array('voucher/add/journal' => 'New Journal Voucher'));
- $data['voucher_type'] = "journal";
- break;
- case 'tag' :
- $tag_name = $this->Tag_model->tag_name($tag_id);
- $this->template->set('page_title', 'Vouchers Tagged "' . $tag_name . '"');
- $data['voucher_type'] = "";
- break;
- default :
- /* TODO $this->messages->add('Invalid Voucher type(1).', 'error'); */
- redirect('voucher/show/all');
- return;
- break;
+ } else {
+ $voucher_type_id = voucher_type_name_to_id($voucher_type);
+ if ( ! $voucher_type_id)
+ {
+ $this->messages->add('Invalid Voucher type specified. Showing all Vouchers.', 'error');
+ redirect('voucher/show/all');
+ return;
+ } else {
+ $current_voucher_type = voucher_type_info($voucher_type_id);
+ $this->template->set('page_title', $current_voucher_type['name'] . ' Vouchers');
+ $this->template->set('nav_links', array('voucher/add/' . $current_voucher_type['label'] => 'New ' . $current_voucher_type['name'] . ' Voucher'));
+ }
}
- $voucher_type_int = v_to_n($voucher_type);
-
$voucher_q = NULL;
/* Pagination setup */
@@ -82,12 +60,15 @@ class Voucher extends Controller {
$page_count = "0";
/* Pagination configuration */
- if ($voucher_type == "tag")
+ if ($voucher_type == 'tag')
{
- $config['base_url'] = site_url('voucher/show/' . $voucher_type. "/" . $tag_id);
+ $config['base_url'] = site_url('voucher/show/tag' . $tag_id);
$config['uri_segment'] = 5;
+ } else if ($voucher_type == 'all') {
+ $config['base_url'] = site_url('voucher/show/all');
+ $config['uri_segment'] = 4;
} else {
- $config['base_url'] = site_url('voucher/show/' . $voucher_type);
+ $config['base_url'] = site_url('voucher/show/' . $current_voucher_type['label']);
$config['uri_segment'] = 4;
}
$pagination_counter = $this->config->item('row_count');
@@ -112,19 +93,14 @@ class Voucher extends Controller {
$config['last_tag_open'] = '<li class="last">';
$config['last_tag_close'] = '</li>';
- if (($voucher_type_int < 0) || ($voucher_type_int > 4))
- {
- $this->messages->add('Invalid Voucher type(2).', 'error');
- redirect('voucher/show/all');
- return;
- } else if ($voucher_type == "tag") {
+ if ($voucher_type == "tag") {
$this->db->from('vouchers')->where('tag_id', $tag_id)->order_by('date', 'desc')->order_by('number', 'desc')->limit($pagination_counter, $page_count);
$voucher_q = $this->db->get();
$config['total_rows'] = $this->db->from('vouchers')->where('tag_id', $tag_id)->get()->num_rows();
- } else if ($voucher_type_int > 0) {
- $this->db->from('vouchers')->where('type', $voucher_type_int)->order_by('date', 'desc')->order_by('number', 'desc')->limit($pagination_counter, $page_count);
+ } else if ($voucher_type_id > 0) {
+ $this->db->from('vouchers')->where('type', $voucher_type_id)->order_by('date', 'desc')->order_by('number', 'desc')->limit($pagination_counter, $page_count);
$voucher_q = $this->db->get();
- $config['total_rows'] = $this->db->from('vouchers')->where('type', $voucher_type_int)->get()->num_rows();
+ $config['total_rows'] = $this->db->from('vouchers')->where('type', $voucher_type_id)->get()->num_rows();
} else {
$this->db->from('vouchers')->order_by('date', 'desc')->order_by('number', 'desc')->limit($pagination_counter, $page_count);
$voucher_q = $this->db->get();
@@ -181,53 +157,7 @@ class Voucher extends Controller {
$this->session->unset_userdata('voucher_updated_has_reconciliation');
}
- $html = "<table border=0 cellpadding=5 class=\"simple-table\">";
- $html .= "<thead><tr><th>Date</th><th>No</th><th>Ledger A/C</th><th>Type</th><th>DR Amount</th><th>CR Amount</th><th></th></tr></thead>";
- $html .= "<tbody>";
-
- $odd_even = "odd";
- foreach ($voucher_q->result() as $row)
- {
- $html_voucher_type = n_to_v($row->type);
-
- /* Showing the credit ledger name for payment and debit for other voucher types */
- $ledger_type = ($row->type == 2) ? "C" : "D";
- $this->db->select('ledgers.name as name');
- $this->db->from('voucher_items')->join('ledgers', 'voucher_items.ledger_id = ledgers.id')->where('voucher_items.voucher_id', $row->id)->where('voucher_items.dc', $ledger_type);
- $ledger_q = $this->db->get();
- $ledger_multiple = ($ledger_q->num_rows() > 1) ? TRUE : FALSE;
- $ledger = $ledger_q->row();
-
- $html .= "<tr class=\"tr-" . $odd_even . "\">";
-
- $html .= "<td>" . date_mysql_to_php_display($row->date) . "</td>";
- $html .= "<td>" . anchor('voucher/view/' . strtolower($html_voucher_type) . "/" . $row->id, voucher_number_prefix($html_voucher_type) . $row->number, array('title' => 'View ' . ucfirst($html_voucher_type) . ' Voucher', 'class' => 'anchor-link-a')) . "</td>";
-
- $html .= "<td>";
- $html .= $this->Tag_model->show_voucher_tag($row->tag_id);
- $html .= $this->Ledger_model->get_voucher_name($row->id, $row->type);
- $html .= "</td>";
-
- $html .= "<td>" . ucfirst($html_voucher_type) . "</td>";
- $html .= "<td>" . $row->dr_total . "</td>";
- $html .= "<td>" . $row->cr_total . "</td>";
-
- $html .= "<td>" . anchor('voucher/edit/' . strtolower($html_voucher_type) . "/" . $row->id , "Edit", array('title' => 'Edit ' . ucfirst($html_voucher_type) . ' Voucher', 'class' => 'red-link')) . " ";
-
- $html .= " " . anchor('voucher/delete/' . strtolower($html_voucher_type) . "/" . $row->id , img(array('src' => asset_url() . "images/icons/delete.png", 'border' => '0', 'alt' => 'Delete ' . ucfirst($html_voucher_type) . ' Voucher', 'class' => "confirmClick", 'title' => "Delete voucher")), array('title' => 'Delete ' . ucfirst($html_voucher_type) . ' Voucher')) . " ";
-
- $html .= " " . anchor_popup('voucher/printpreview/' . strtolower($html_voucher_type) . "/" . $row->id , img(array('src' => asset_url() . "images/icons/print.png", 'border' => '0', 'alt' => 'Print ' . ucfirst($html_voucher_type) . ' Voucher')), array('title' => 'Print ' . ucfirst($html_voucher_type) . ' Voucher', 'width' => '600', 'height' => '600')) . " ";
-
- $html .= " " . anchor_popup('voucher/email/' . strtolower($html_voucher_type) . "/" . $row->id , img(array('src' => asset_url() . "images/icons/email.png", 'border' => '0', 'alt' => 'Email ' . ucfirst($html_voucher_type) . ' Voucher')), array('title' => 'Email ' . ucfirst($html_voucher_type) . ' Voucher', 'width' => '500', 'height' => '300')) . " ";
-
- $html .= " " . anchor('voucher/download/' . strtolower($html_voucher_type) . "/" . $row->id , img(array('src' => asset_url() . "images/icons/save.png", 'border' => '0', 'alt' => 'Download ' . ucfirst($html_voucher_type) . ' Voucher', 'title' => "Download voucher")), array('title' => 'Download ' . ucfirst($html_voucher_type) . ' Voucher')) . "</td>";
-
- $html .= "</tr>";
- $odd_even = ($odd_even == "odd") ? "even" : "odd";
- }
- $html .= "</tbody>";
- $html .= "</table>";
- $data['voucher_table'] = $html;
+ $data['voucher_data'] = $voucher_q;
$this->template->load('template', 'voucher/index', $data);
return;
diff --git a/system/application/helpers/custom_helper.php b/system/application/helpers/custom_helper.php
index 7bb13ce..014acf4 100644
--- a/system/application/helpers/custom_helper.php
+++ b/system/application/helpers/custom_helper.php
@@ -145,36 +145,91 @@ if ( ! function_exists('v_to_n'))
}
/**
+ * Return Voucher Type information
+ *
+ * @access public
+ * @param int voucher type id
+ * @return array
+ */
+if ( ! function_exists('voucher_type_info'))
+{
+ function voucher_type_info($voucher_type_id)
+ {
+ $CI =& get_instance();
+ $voucher_type_all = $CI->config->item('account_voucher_types');
+
+ if ($voucher_type_all[$voucher_type_id])
+ {
+ return array(
+ 'id' => $voucher_type_all[$voucher_type_id],
+ 'label' => $voucher_type_all[$voucher_type_id]['label'],
+ 'name' => $voucher_type_all[$voucher_type_id]['name'],
+ 'numbering' => $voucher_type_all[$voucher_type_id]['numbering'],
+ 'prefix' => $voucher_type_all[$voucher_type_id]['prefix'],
+ 'suffix' => $voucher_type_all[$voucher_type_id]['suffix'],
+ 'zero_padding' => $voucher_type_all[$voucher_type_id]['zero_padding'],
+ 'bank_cash_ledger_restriction' => $voucher_type_all[$voucher_type_id]['bank_cash_ledger_restriction'],
+ );
+ } else {
+ return array(
+ 'id' => $voucher_type_all[$voucher_type_id],
+ 'label' => '',
+ 'name' => '(Unkonwn)',
+ 'numbering' => 1,
+ 'prefix' => '',
+ 'suffix' => '',
+ 'zero_padding' => 0,
+ 'bank_cash_ledger_restriction' => 5,
+ );
+ }
+ }
+}
+
+/**
+ * Return Voucher Type Id from Voucher Type Name
+ *
+ * @access public
+ * @param string voucher type name
+ * @return int voucher type id
+ */
+if ( ! function_exists('voucher_type_name_to_id'))
+{
+ function voucher_type_name_to_id($voucher_type_name)
+ {
+ $CI =& get_instance();
+ $voucher_type_all = $CI->config->item('account_voucher_types');
+ foreach ($voucher_type_all as $id => $row)
+ {
+ if ($row['label'] == $voucher_type_name)
+ {
+ return $id;
+ break;
+ }
+ }
+ return FALSE;
+ }
+}
+
+/**
* Converts Voucher number to proper voucher prefix formats
*
* @access public
- * @param voucher type
+ * @param int voucher type id
* @return string
*/
if ( ! function_exists('voucher_number_prefix'))
{
- function voucher_number_prefix($voucher_type)
+ function voucher_number_prefix($voucher_type_id)
{
$CI =& get_instance();
+ $voucher_type_all = $CI->config->item('account_voucher_types');
- $voucher_prefix = "";
-
- switch ($voucher_type)
+ if ( ! $voucher_type_all[$voucher_type_id])
{
- case "receipt":
- $voucher_prefix = $CI->config->item('account_receipt_prefix');
- break;
- case "payment":
- $voucher_prefix = $CI->config->item('account_payment_prefix');
- break;
- case "contra":
- $voucher_prefix = $CI->config->item('account_contra_prefix');
- break;
- case "journal":
- $voucher_prefix = $CI->config->item('account_journal_prefix');
- break;
+ return '';
+ } else {
+ return $voucher_type_all[$voucher_type_id]['prefix'];
}
- return $voucher_prefix;
}
}
diff --git a/system/application/libraries/General.php b/system/application/libraries/General.php
index b581273..1bdd1b7 100644
--- a/system/application/libraries/General.php
+++ b/system/application/libraries/General.php
@@ -170,6 +170,34 @@ class General {
}
return $user_data;
}
+
+ function setup_voucher_types()
+ {
+ $CI =& get_instance();
+
+ $CI->db->from('voucher_types');
+ $voucher_types = $CI->db->get();
+ if ($voucher_types->num_rows() < 1)
+ {
+ $CI->messages->add('You need to create a voucher type before you can create any vouchers.', 'error');
+ }
+ $voucher_type_config = array();
+ foreach ($voucher_types->result() as $id => $row)
+ {
+ $voucher_type_config[$row->id] = array(
+ 'label' => $row->label,
+ 'name' => $row->name,
+ 'description' => $row->description,
+ 'base_type' => $row->base_type,
+ 'numbering' => $row->numbering,
+ 'prefix' => $row->prefix,
+ 'suffix' => $row->suffix,
+ 'zero_padding' => $row->zero_padding,
+ 'bank_cash_ledger_restriction' => $row->bank_cash_ledger_restriction,
+ );
+ }
+ $CI->config->set_item('account_voucher_types', $voucher_type_config);
+ }
}
/* End of file General.php */
diff --git a/system/application/libraries/Startup.php b/system/application/libraries/Startup.php
index 9b2e40c..2160cf0 100644
--- a/system/application/libraries/Startup.php
+++ b/system/application/libraries/Startup.php
@@ -115,6 +115,9 @@ class Startup
/* Load general application settings */
$CI->general->check_setting();
+ /* Load voucher types */
+ $CI->general->setup_voucher_types();
+
return;
}
}
diff --git a/system/application/models/ledger_model.php b/system/application/models/ledger_model.php
index ec1bea2..1fb96cf 100644
--- a/system/application/models/ledger_model.php
+++ b/system/application/models/ledger_model.php
@@ -69,13 +69,15 @@ class Ledger_model extends Model {
return "(Error)";
}
- function get_voucher_name($voucher_id, $voucher_type)
+ function get_voucher_name($voucher_id, $voucher_type_id)
{
- /* If receipt voucher (1) then select the credit ledger */
- if ($voucher_type == 1)
- $ledger_type = 'C';
- else
+ /* Selecting whether to show debit side Ledger or credit side Ledger */
+ $current_voucher_type = voucher_type_info($voucher_type_id);
+ $ledger_type = 'C';
+
+ if ($current_voucher_type['bank_cash_ledger_restriction'] == 3)
$ledger_type = 'D';
+
$this->db->select('ledgers.name as name');
$this->db->from('voucher_items')->join('ledgers', 'voucher_items.ledger_id = ledgers.id')->where('voucher_items.voucher_id', $voucher_id)->where('voucher_items.dc', $ledger_type);
$ledger_q = $this->db->get();
@@ -86,9 +88,9 @@ class Ledger_model extends Model {
$ledger_multiple = ($ledger_q->num_rows() > 1) ? TRUE : FALSE;
$html = '';
if ($ledger_multiple)
- $html .= anchor('voucher/view/' . n_to_v($voucher_type) . "/" . $voucher_id, "(" . $ledger->name . ")", array('title' => 'View ' . ucfirst(n_to_v($voucher_type)) . ' Voucher', 'class' => 'anchor-link-a'));
+ $html .= anchor('voucher/view/' . $current_voucher_type['label'] . "/" . $voucher_id, "(" . $ledger->name . ")", array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a'));
else
- $html .= anchor('voucher/view/' . n_to_v($voucher_type) . "/" . $voucher_id, $ledger->name, array('title' => 'View ' . ucfirst(n_to_v($voucher_type)) . ' Voucher', 'class' => 'anchor-link-a'));
+ $html .= anchor('voucher/view/' . $current_voucher_type['label'] . "/" . $voucher_id, $ledger->name, array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a'));
return $html;
}
return;
diff --git a/system/application/views/voucher/index.php b/system/application/views/voucher/index.php
index 68f7a56..cb10ca6 100644
--- a/system/application/views/voucher/index.php
+++ b/system/application/views/voucher/index.php
@@ -2,7 +2,49 @@
<?php $this->load->view('sidebar/tag', $tag_id); ?>
</div>
-<?php echo $voucher_table ?>
+<table border=0 cellpadding=5 class="simple-table">
+ <thead>
+ <tr>
+ <th>Date</th>
+ <th>No</th>
+ <th>Ledger A/C</th>
+ <th>Type</th>
+ <th>DR Amount</th>
+ <th>CR Amount</th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ foreach ($voucher_data->result() as $row)
+ {
+ $current_voucher_type = voucher_type_info($row->type);
+
+ echo "<tr>";
+
+ echo "<td>" . date_mysql_to_php_display($row->date) . "</td>";
+ echo "<td>" . anchor('voucher/view/' . $current_voucher_type['label'] . "/" . $row->id, voucher_number_prefix($row->type) . $row->number, array('title' => 'View ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'anchor-link-a')) . "</td>";
+
+ echo "<td>";
+ echo $this->Tag_model->show_voucher_tag($row->tag_id);
+ echo $this->Ledger_model->get_voucher_name($row->id, $row->type);
+ echo "</td>";
+
+ echo "<td>" . $current_voucher_type['name'] . "</td>";
+ echo "<td>" . $row->dr_total . "</td>";
+ echo "<td>" . $row->cr_total . "</td>";
+
+ echo "<td>" . anchor('voucher/edit/' . $current_voucher_type['label'] . "/" . $row->id , "Edit", array('title' => 'Edit ' . $current_voucher_type['name'] . ' Voucher', 'class' => 'red-link')) . " ";
+ echo " " . anchor('voucher/delete/' . $current_voucher_type['label'] . "/" . $row->id , img(array('src' => asset_url() . "images/icons/delete.png", 'border' => '0', 'alt' => 'Delete ' . $current_voucher_type['name'] . ' Voucher', 'class' => "confirmClick", 'title' => "Delete voucher")), array('title' => 'Delete ' . $current_voucher_type['name'] . ' Voucher')) . " ";
+ echo " " . anchor_popup('voucher/printpreview/' . $current_voucher_type['label'] . "/" . $row->id , img(array('src' => asset_url() . "images/icons/print.png", 'border' => '0', 'alt' => 'Print ' . $current_voucher_type['name'] . ' Voucher')), array('title' => 'Print ' . $current_voucher_type['name']. ' Voucher', 'width' => '600', 'height' => '600')) . " ";
+ echo " " . anchor_popup('voucher/email/' . $current_voucher_type['label'] . "/" . $row->id , img(array('src' => asset_url() . "images/icons/email.png", 'border' => '0', 'alt' => 'Email ' . $current_voucher_type['name'] . ' Voucher')), array('title' => 'Email ' . $current_voucher_type['name'] . ' Voucher', 'width' => '500', 'height' => '300')) . " ";
+ echo " " . anchor('voucher/download/' . $current_voucher_type['label'] . "/" . $row->id , img(array('src' => asset_url() . "images/icons/save.png", 'border' => '0', 'alt' => 'Download ' . $current_voucher_type['name'] . ' Voucher', 'title' => "Download voucher")), array('title' => 'Download ' . $current_voucher_type['name'] . ' Voucher')) . "</td>";
+
+ echo "</tr>";
+ }
+ ?>
+ </tbody>
+</table>
<div id="pagination-container"><?php echo $this->pagination->create_links(); ?></div>
commit 764752ff25322c9d379ac748391768c800d5bc54
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Fri Jan 28 15:24:42 2011 +0530
Updated application version to 1.1
- Updated CHANGELOG.txt
- Udpated config['application_version']
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index 577d262..58fee84 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -1,3 +1,11 @@
+Webzash Version 1.1 2011-01-28
+------------------------------
+
+ * Added application shortcuts
+ * Fixed many bugs
+ * Removed options to Print, Edit and Delete from voucher add and edit
+ * Updated some pending database code to use active record
+
Webzash Version 1.0 2011-01-22
------------------------------
diff --git a/TODO.txt b/TODO.txt
index 0cb0a0c..32b162d 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,5 +1,3 @@
-Priority - Task - Person responsible
+Webzash TODO is now available online at :
-It is now available online at
-
-http://codaset.com/pshahmumbai/webzash/wiki/Project-Plan
+https://github.com/prashants/webzash/wiki
diff --git a/system/application/config/config.php b/system/application/config/config.php
index cb490bb..66cf52e 100644
--- a/system/application/config/config.php
+++ b/system/application/config/config.php
@@ -376,7 +376,7 @@ $config['backup_path'] = 'backups/';
| Sets the current application version
|
*/
-$config['application_version'] = '1.0';
+$config['application_version'] = '1.1';
/* End of file config.php */
/* Location: ./system/application/config/config.php */
diff --git a/system/application/controllers/setting.php b/system/application/controllers/setting.php
index 50f0939..a89c560 100644
--- a/system/application/controllers/setting.php
+++ b/system/application/controllers/setting.php
@@ -427,7 +427,7 @@ class Setting extends Controller {
/* Adding account settings */
$newacc->trans_start();
- if ( ! $newacc->query("INSERT INTO settings (id, name, address, email, fy_start, fy_end, currency_symbol, date_format, timezone, account_locked, email_protocol, email_host, email_port, email_username, email_password, database_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(1, $data_account_name, $data_account_address, $data_account_email, $data_fy_start, $data_fy_end, $data_account_currency, $data_account_date, $data_account_timezone, 0, $data_account_email_protocol, $data_account_email_host, $data_account_email_port, $data_account_email_username, $data_account_email_password, 2)))
+ if ( ! $newacc->query("INSERT INTO settings (id, name, address, email, fy_start, fy_end, currency_symbol, date_format, timezone, account_locked, email_protocol, email_host, email_port, email_username, email_password, database_version) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(1, $data_account_name, $data_account_address, $data_account_email, $data_fy_start, $data_fy_end, $data_account_currency, $data_account_date, $data_account_timezone, 0, $data_account_email_protocol, $data_account_email_host, $data_account_email_port, $data_account_email_username, $data_account_email_password, 2)))
{
$newacc->trans_rollback();
$this->messages->add('Error adding account settings.', 'error');
commit 764ff5c5e3e9eed2fde9b231e91cea5c9bf2c2f5
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Fri Jan 28 15:13:55 2011 +0530
Removed Print, Email, Download from Voucher add and edit
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index b1b34d0..93523ef 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -340,9 +340,6 @@ class Voucher extends Controller {
'value' => '',
);
$data['voucher_type'] = $voucher_type;
- $data['voucher_print'] = FALSE;
- $data['voucher_email'] = FALSE;
- $data['voucher_download'] = FALSE;
$data['voucher_tags'] = $this->Tag_model->get_all_tags();
$data['voucher_tag'] = 0;
@@ -368,9 +365,6 @@ class Voucher extends Controller {
$data['voucher_number']['value'] = $this->input->post('voucher_number', TRUE);
$data['voucher_date']['value'] = $this->input->post('voucher_date', TRUE);
$data['voucher_narration']['value'] = $this->input->post('voucher_narration', TRUE);
- $data['voucher_print'] = $this->input->post('voucher_print', TRUE);
- $data['voucher_email'] = $this->input->post('voucher_email', TRUE);
- $data['voucher_download'] = $this->input->post('voucher_download', TRUE);
$data['voucher_tag'] = $this->input->post('voucher_tag', TRUE);
$data['ledger_dc'] = $this->input->post('ledger_dc', TRUE);
@@ -688,9 +682,6 @@ class Voucher extends Controller {
);
$data['voucher_type'] = $voucher_type;
$data['voucher_id'] = $voucher_id;
- $data['voucher_print'] = FALSE;
- $data['voucher_email'] = FALSE;
- $data['voucher_download'] = FALSE;
$data['voucher_tag'] = $cur_voucher->tag_id;
$data['voucher_tags'] = $this->Tag_model->get_all_tags();
$data['has_reconciliation'] = FALSE;
@@ -756,9 +747,6 @@ class Voucher extends Controller {
$data['voucher_number']['value'] = $this->input->post('voucher_number', TRUE);
$data['voucher_date']['value'] = $this->input->post('voucher_date', TRUE);
$data['voucher_narration']['value'] = $this->input->post('voucher_narration', TRUE);
- $data['voucher_print'] = $this->input->post('voucher_print', TRUE);
- $data['voucher_email'] = $this->input->post('voucher_email', TRUE);
- $data['voucher_download'] = $this->input->post('voucher_download', TRUE);
$data['voucher_tag'] = $this->input->post('voucher_tag', TRUE);
$data['has_reconciliation'] = $this->input->post('has_reconciliation', TRUE);
diff --git a/system/application/views/voucher/add.php b/system/application/views/voucher/add.php
index 030c740..8fb8493 100644
--- a/system/application/views/voucher/add.php
+++ b/system/application/views/voucher/add.php
@@ -267,17 +267,6 @@ $(document).ready(function() {
echo "</p>";
echo "<p>";
- echo form_fieldset('Options', array('class' => "fieldset-auto-width"));
- echo form_checkbox('voucher_print', 1, $voucher_print) . "Print";
- echo " ";
- echo form_checkbox('voucher_email', 1, $voucher_email) . "Email";
- echo " ";
- echo form_checkbox('voucher_download', 1, $voucher_download) . "Download";
- echo form_fieldset_close();
- echo "</p>";
- echo "<br /><br />";
-
- echo "<p>";
echo form_label('Tag', 'voucher_tag');
echo " ";
echo form_dropdown('voucher_tag', $voucher_tags, $voucher_tag);
diff --git a/system/application/views/voucher/edit.php b/system/application/views/voucher/edit.php
index 0cda23a..b9cb6a5 100644
--- a/system/application/views/voucher/edit.php
+++ b/system/application/views/voucher/edit.php
@@ -264,17 +264,6 @@ $(document).ready(function() {
echo "</p>";
echo "<p>";
- echo form_fieldset('Options', array('class' => "fieldset-auto-width"));
- echo form_checkbox('voucher_print', 1, $voucher_print) . "Print";
- echo " ";
- echo form_checkbox('voucher_email', 1, $voucher_email) . "Email";
- echo " ";
- echo form_checkbox('voucher_download', 1, $voucher_download) . "Download";
- echo form_fieldset_close();
- echo "</p>";
- echo "<br /><br />";
-
- echo "<p>";
echo form_label('Tag', 'voucher_tag');
echo " ";
echo form_dropdown('voucher_tag', $voucher_tags, $voucher_tag);
commit 0c955abab3781ba787247ffdea211566efdc5202
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Fri Jan 28 15:06:21 2011 +0530
Display all actions on voucher edit
- Display Voucher View, Edit, Print, Email, Download, Reconciliation
- The messages cannot be set in edit() method since the messages
are too long and session is getting corrupted after redirect
- Moved the updated voucher info to sessions and showing the message in
in the show action
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 529ec93..b1b34d0 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -155,6 +155,32 @@ class Voucher extends Controller {
$this->session->unset_userdata('voucher_added_number');
}
+ /* Show voucher edit actions */
+ if ($this->session->userdata('voucher_updated_show_action'))
+ {
+ $voucher_updated_id_temp = $this->session->userdata('voucher_updated_id');
+ $voucher_updated_type_temp = $this->session->userdata('voucher_updated_type');
+ $voucher_updated_number_temp = $this->session->userdata('voucher_updated_number');
+ $voucher_updated_message = 'Updated ' . ucfirst($voucher_updated_type_temp) . ' Voucher number ' . voucher_number_prefix($voucher_updated_type_temp) . $voucher_updated_number_temp . ".";
+ $voucher_updated_message .= " You can [ ";
+ $voucher_updated_message .= anchor('voucher/view/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp, 'View', array('class' => 'anchor-link-a')) . " | ";
+ $voucher_updated_message .= anchor('voucher/edit/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp, 'Edit', array('class' => 'anchor-link-a')) . " | ";
+ $voucher_updated_message .= anchor_popup('voucher/printpreview/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp , 'Print', array('class' => 'anchor-link-a', 'width' => '600', 'height' => '600')) . " | ";
+ $voucher_updated_message .= anchor_popup('voucher/email/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp, 'Email', array('class' => 'anchor-link-a', 'width' => '500', 'height' => '300')) . " | ";
+ $voucher_updated_message .= anchor('voucher/download/' . strtolower($voucher_updated_type_temp) . "/" . $voucher_updated_id_temp, 'Download', array('class' => 'anchor-link-a'));
+ $voucher_updated_message .= " ] it.";
+ $this->messages->add($voucher_updated_message, 'success');
+
+ if ($this->session->userdata('voucher_updated_has_reconciliation'))
+ $this->messages->add('Previous reconciliations for this voucher are no longer valid. You need to redo the reconciliations for this voucher.', 'success');
+
+ $this->session->unset_userdata('voucher_updated_show_action');
+ $this->session->unset_userdata('voucher_updated_id');
+ $this->session->unset_userdata('voucher_updated_type');
+ $this->session->unset_userdata('voucher_updated_number');
+ $this->session->unset_userdata('voucher_updated_has_reconciliation');
+ }
+
$html = "<table border=0 cellpadding=5 class=\"simple-table\">";
$html .= "<thead><tr><th>Date</th><th>No</th><th>Ledger A/C</th><th>Type</th><th>DR Amount</th><th>CR Amount</th><th></th></tr></thead>";
$html .= "<tbody>";
@@ -577,26 +603,6 @@ class Voucher extends Controller {
/* Success */
$this->db->trans_complete();
- /* Check for Voucher Print, Download, Email */
- if ($this->input->post('voucher_print', TRUE))
- {
- $this->session->set_userdata('print_voucher', TRUE);
- $this->session->set_userdata('print_voucher_type', strtolower($voucher_type));
- $this->session->set_userdata('print_voucher_id', $voucher_id);
- }
- if ($this->input->post('voucher_email', TRUE))
- {
- $this->session->set_userdata('email_voucher', TRUE);
- $this->session->set_userdata('email_voucher_type', strtolower($voucher_type));
- $this->session->set_userdata('email_voucher_id', $voucher_id);
- }
- if ($this->input->post('voucher_download', TRUE))
- {
- $this->session->set_userdata('download_voucher', TRUE);
- $this->session->set_userdata('download_voucher_type', strtolower($voucher_type));
- $this->session->set_userdata('download_voucher_id', $voucher_id);
- }
-
$this->session->set_userdata('voucher_added_show_action', TRUE);
$this->session->set_userdata('voucher_added_id', $voucher_id);
$this->session->set_userdata('voucher_added_type', $voucher_type);
@@ -973,38 +979,18 @@ class Voucher extends Controller {
/* Success */
$this->db->trans_complete();
- /* Check for Voucher Print, Download, Email */
- if ($this->input->post('voucher_print', TRUE))
- {
- $this->session->set_userdata('print_voucher', TRUE);
- $this->session->set_userdata('print_voucher_type', strtolower($voucher_type));
- $this->session->set_userdata('print_voucher_id', $voucher_id);
- }
- if ($this->input->post('voucher_email', TRUE))
- {
- $this->session->set_userdata('email_voucher', TRUE);
- $this->session->set_userdata('email_voucher_type', strtolower($voucher_type));
- $this->session->set_userdata('email_voucher_id', $voucher_id);
- }
- if ($this->input->post('voucher_download', TRUE))
- {
- $this->session->set_userdata('download_voucher', TRUE);
- $this->session->set_userdata('download_voucher_type', strtolower($voucher_type));
- $this->session->set_userdata('download_voucher_id', $voucher_id);
- }
-
- /* Voucher Actions */
- $voucher_success_links = "You can ";
- $voucher_success_links .= anchor('voucher/view/' . strtolower($voucher_type) . "/" . $voucher_id, 'View', array('class' => 'anchor-link-a')) . " or ";
- $voucher_success_links .= anchor('voucher/download/' . strtolower($voucher_type) . "/" . $voucher_id, 'Download', array('class' => 'anchor-link-a'));
- $voucher_success_links .= " it.";
+ $this->session->set_userdata('voucher_updated_show_action', TRUE);
+ $this->session->set_userdata('voucher_updated_id', $voucher_id);
+ $this->session->set_userdata('voucher_updated_type', $voucher_type);
+ $this->session->set_userdata('voucher_updated_number', $data_number);
+ if ($data_has_reconciliation)
+ $this->session->set_userdata('voucher_updated_has_reconciliation', TRUE);
+ else
+ $this->session->set_userdata('voucher_updated_has_reconciliation', FALSE);
- $this->messages->add('Updated ' . ucfirst($voucher_type) . ' Voucher number ' . voucher_number_prefix($voucher_type) . $data_number . ". " . $voucher_success_links, 'success');
+ /* Showing success message in show() method since message is too long for storing it in session */
$this->logger->write_message("success", "Updated " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " [id:" . $voucher_id . "]");
- if ($data_has_reconciliation)
- $this->messages->add('Previous reconciliations for this voucher are no longer valid. You need to redo the reconciliations for this voucher.', 'success');
-
redirect('voucher/show/' . $voucher_type);
return;
}
commit 7f12d6e31efaaa2a007bdc4dfbc926e25767880b
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Fri Jan 28 14:49:14 2011 +0530
Display all actions on voucher add
- Display Voucher View, Edit, Print, Email, Download
- The messages cannot be set in add() method since the messages
is too long and session is getting corrupted after redirect
- Moved the voucher info to sessions and showing the message in
in the show action
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 3f56ad8..529ec93 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -134,6 +134,27 @@ class Voucher extends Controller {
/* Pagination initializing */
$this->pagination->initialize($config);
+ /* Show voucher add actions */
+ if ($this->session->userdata('voucher_added_show_action'))
+ {
+ $voucher_added_id_temp = $this->session->userdata('voucher_added_id');
+ $voucher_added_type_temp = $this->session->userdata('voucher_added_type');
+ $voucher_added_number_temp = $this->session->userdata('voucher_added_number');
+ $voucher_added_message = 'Added ' . ucfirst($voucher_added_type_temp) . ' Voucher number ' . voucher_number_prefix($voucher_added_type_temp) . $voucher_added_number_temp . ".";
+ $voucher_added_message .= " You can [ ";
+ $voucher_added_message .= anchor('voucher/view/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp, 'View', array('class' => 'anchor-link-a')) . " | ";
+ $voucher_added_message .= anchor('voucher/edit/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp, 'Edit', array('class' => 'anchor-link-a')) . " | ";
+ $voucher_added_message .= anchor_popup('voucher/printpreview/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp , 'Print', array('class' => 'anchor-link-a', 'width' => '600', 'height' => '600')) . " | ";
+ $voucher_added_message .= anchor_popup('voucher/email/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp, 'Email', array('class' => 'anchor-link-a', 'width' => '500', 'height' => '300')) . " | ";
+ $voucher_added_message .= anchor('voucher/download/' . strtolower($voucher_added_type_temp) . "/" . $voucher_added_id_temp, 'Download', array('class' => 'anchor-link-a'));
+ $voucher_added_message .= " ] it.";
+ $this->messages->add($voucher_added_message, 'success');
+ $this->session->unset_userdata('voucher_added_show_action');
+ $this->session->unset_userdata('voucher_added_id');
+ $this->session->unset_userdata('voucher_added_type');
+ $this->session->unset_userdata('voucher_added_number');
+ }
+
$html = "<table border=0 cellpadding=5 class=\"simple-table\">";
$html .= "<thead><tr><th>Date</th><th>No</th><th>Ledger A/C</th><th>Type</th><th>DR Amount</th><th>CR Amount</th><th></th></tr></thead>";
$html .= "<tbody>";
@@ -576,13 +597,12 @@ class Voucher extends Controller {
$this->session->set_userdata('download_voucher_id', $voucher_id);
}
- /* Voucher Actions */
- $voucher_success_links = "You can ";
- $voucher_success_links .= anchor('voucher/view/' . strtolower($voucher_type) . "/" . $voucher_id, 'View', array('class' => 'anchor-link-a')) . " or ";
- $voucher_success_links .= anchor('voucher/download/' . strtolower($voucher_type) . "/" . $voucher_id, 'Download', array('class' => 'anchor-link-a'));
- $voucher_success_links .= " it.";
+ $this->session->set_userdata('voucher_added_show_action', TRUE);
+ $this->session->set_userdata('voucher_added_id', $voucher_id);
+ $this->session->set_userdata('voucher_added_type', $voucher_type);
+ $this->session->set_userdata('voucher_added_number', $data_number);
- $this->messages->add('Added ' . ucfirst($voucher_type) . ' Voucher number ' . voucher_number_prefix($voucher_type) . $data_number . ". " . $voucher_success_links, 'success');
+ /* Showing success message in show() method since message is too long for storing it in session */
$this->logger->write_message("success", "Added " . ucfirst($voucher_type) . " Voucher number " . voucher_number_prefix($voucher_type) . $data_number . " [id:" . $voucher_id . "]");
redirect('voucher/show/' . $voucher_type);
$this->template->load('template', 'voucher/add', $data);
@@ -1177,6 +1197,7 @@ class Voucher extends Controller {
$data['voucher_type'] = $voucher_type;
$data['voucher_id'] = $voucher_id;
+ $data['voucher_number'] = $cur_voucher->number;
$data['email_to'] = array(
'name' => 'email_to',
'id' => 'email_to',
diff --git a/system/application/views/voucher/email.php b/system/application/views/voucher/email.php
index e7fdb59..d9e8148 100644
--- a/system/application/views/voucher/email.php
+++ b/system/application/views/voucher/email.php
@@ -38,7 +38,7 @@
echo form_open('voucher/email/' . $voucher_type . "/" . $voucher_id);
- echo "Emailing " . ucfirst($voucher_type) . " Voucher No. " . $voucher_id . "<br />";
+ echo "Emailing " . ucfirst($voucher_type) . " Voucher No. " . $voucher_number . "<br />";
echo "<p>";
echo form_label('Email to', 'email_to');
diff --git a/system/application/views/voucher/index.php b/system/application/views/voucher/index.php
index 4fe4f7d..68f7a56 100644
--- a/system/application/views/voucher/index.php
+++ b/system/application/views/voucher/index.php
@@ -4,29 +4,5 @@
<?php echo $voucher_table ?>
-<?php
- /* Check for Voucher Print, Download, Email */
- if ($this->session->userdata('print_voucher'))
- {
- print "<script type=\"text/javascript\">$(document).ready(function() {window.open('http://localhost/webzash/index.php/voucher/printpreview/" . $this->session->userdata('print_voucher_type') . "/" . $this->session->userdata('print_voucher_id') . "', '_blank', 'width=600,height=600,scrollbars=yes,status=yes,resizable=yes,screenx=0,screeny=0'); });</script>";
- $this->session->unset_userdata('print_voucher');
- $this->session->unset_userdata('print_voucher_type');
- $this->session->unset_userdata('print_voucher_id');
- }
- if ($this->session->userdata('email_voucher'))
- {
- print "<script type=\"text/javascript\">$(document).ready(function() {window.open('http://localhost/webzash/index.php/voucher/email/" . $this->session->userdata('email_voucher_type') . "/" . $this->session->userdata('email_voucher_id') . "', '_blank', 'width=500,height=300,scrollbars=yes,status=yes,resizable=yes,screenx=0,screeny=0'); });</script>";
- $this->session->unset_userdata('email_voucher');
- $this->session->unset_userdata('email_voucher_type');
- $this->session->unset_userdata('email_voucher_id');
- }
- if ($this->session->userdata('download_voucher'))
- {
- print "<script type=\"text/javascript\">$(document).ready(function() {window.open('http://localhost/webzash/index.php/voucher/download/" . $this->session->userdata('download_voucher_type') . "/" . $this->session->userdata('download_voucher_id') . "', '_blank', 'width=600,height=600,scrollbars=yes,status=yes,resizable=yes,screenx=0,screeny=0'); });</script>";
- $this->session->unset_userdata('download_voucher');
- $this->session->unset_userdata('download_voucher_type');
- $this->session->unset_userdata('download_voucher_id');
- }
-?>
<div id="pagination-container"><?php echo $this->pagination->create_links(); ?></div>
commit 2e0cb6595d4247e4216841792b1fa6c29f38a6ef
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Fri Jan 28 12:03:33 2011 +0530
Updated database query to use active records
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/libraries/Accountlist.php b/system/application/libraries/Accountlist.php
index 22ab322..9819422 100644
--- a/system/application/libraries/Accountlist.php
+++ b/system/application/libraries/Accountlist.php
@@ -30,7 +30,8 @@ class Accountlist
$this->total = 0;
} else {
- $group_q = $CI->db->query('SELECT * FROM groups WHERE id = ?', array($id));
+ $CI->db->from('groups')->where('id', $id)->limit(1);
+ $group_q = $CI->db->get();
$group = $group_q->row();
$this->id = $group->id;
$this->name = $group->name;
@@ -43,7 +44,8 @@ class Accountlist
function add_sub_groups()
{
$CI =& get_instance();
- $child_group_q = $CI->db->query('SELECT * FROM groups WHERE parent_id = ?', array($this->id));
+ $CI->db->from('groups')->where('parent_id', $this->id);
+ $child_group_q = $CI->db->get();
$counter = 0;
foreach ($child_group_q->result() as $row)
{
@@ -57,7 +59,8 @@ class Accountlist
{
$CI =& get_instance();
$CI->load->model('Ledger_model');
- $child_ledger_q = $CI->db->query('SELECT * FROM ledgers WHERE group_id = ?', array($this->id));
+ $CI->db->from('ledgers')->where('group_id', $this->id);
+ $child_ledger_q = $CI->db->get();
$counter = 0;
foreach ($child_ledger_q->result() as $row)
{
diff --git a/system/application/libraries/Logger.php b/system/application/libraries/Logger.php
index be4beb7..caad0f4 100644
--- a/system/application/libraries/Logger.php
+++ b/system/application/libraries/Logger.php
@@ -46,7 +46,8 @@ class Logger
function read_recent_messages()
{
$CI =& get_instance();
- $logs_q = $CI->db->query("SELECT * FROM logs ORDER BY id DESC LIMIT 20");
+ $CI->db->from('logs')->order_by('id', 'desc')->limit(20);
+ $logs_q = $CI->db->get();
if ($logs_q->num_rows() > 0)
{
return $logs_q;
diff --git a/system/application/libraries/MY_Form_validation.php b/system/application/libraries/MY_Form_validation.php
index 08053dd..83d954f 100644
--- a/system/application/libraries/MY_Form_validation.php
+++ b/system/application/libraries/MY_Form_validation.php
@@ -22,10 +22,12 @@ class MY_Form_validation extends CI_Form_validation {
list ($table, $column) = explode('.', $field, 2);
$CI->form_validation->set_message('unique', 'The %s that you requested is already in use.');
-
- $query = $CI->db->query("SELECT COUNT(*) AS dupe FROM $table WHERE $column = '$str'");
- $row = $query->row();
- return ($row->dupe > 0) ? FALSE : TRUE;
+ $CI->db->from($table)->where($column, $str);
+ $dup_query = $CI->db->get();
+ if ($dup_query->num_rows() > 0)
+ return FALSE;
+ else
+ return TRUE;
}
function uniquevoucherno($str, $type)
@@ -34,9 +36,12 @@ class MY_Form_validation extends CI_Form_validation {
$CI->form_validation->set_message('uniquevoucherno', 'The %s that you requested is already in use.');
- $query = $CI->db->query("SELECT COUNT(*) AS dupe FROM vouchers WHERE number = ? AND type = ?", array((int)$str, (int)$type));
- $row = $query->row();
- return ($row->dupe > 0) ? FALSE : TRUE;
+ $CI->db->from('vouchers')->where('number', $str)->where('type', $type);
+ $dup_query = $CI->db->get();
+ if ($dup_query->num_rows() > 0)
+ return FALSE;
+ else
+ return TRUE;
}
function uniquevouchernowithid($str, $field)
@@ -46,9 +51,12 @@ class MY_Form_validation extends CI_Form_validation {
list ($type, $id) = explode('.', $field, 2);
$CI->form_validation->set_message('uniquevouchernowithid', 'The %s that you requested is already in use.');
- $query = $CI->db->query("SELECT COUNT(*) AS dupe FROM vouchers WHERE number = ? AND type = ? AND id != ?", array((int)$str, (int)$type, $id));
- $row = $query->row();
- return ($row->dupe > 0) ? FALSE : TRUE;
+ $CI->db->from('vouchers')->where('number', $str)->where('type', $type)->where('id !=', $id);
+ $dup_query = $CI->db->get();
+ if ($dup_query->num_rows() > 0)
+ return FALSE;
+ else
+ return TRUE;
}
function uniquewithid($str, $field)
@@ -58,9 +66,12 @@ class MY_Form_validation extends CI_Form_validation {
$CI->form_validation->set_message('uniquewithid', 'The %s that you requested is already in use.');
- $query = $CI->db->query("SELECT COUNT(*) AS dupe FROM $table WHERE $column = '$str' AND id != ?", array($id));
- $row = $query->row();
- return ($row->dupe > 0) ? FALSE : TRUE;
+ $CI->db->from($table)->where($column, $str)->where('id !=', $id);
+ $dup_query = $CI->db->get();
+ if ($dup_query->num_rows() > 0)
+ return FALSE;
+ else
+ return TRUE;
}
function is_dc($str)
diff --git a/system/application/libraries/Startup.php b/system/application/libraries/Startup.php
index de20270..9b2e40c 100644
--- a/system/application/libraries/Startup.php
+++ b/system/application/libraries/Startup.php
@@ -89,7 +89,8 @@ class Startup
}
/* Loading account data */
- $account_q = $CI->db->query('SELECT * FROM settings WHERE id = 1');
+ $CI->db->from('settings')->where('id', 1)->limit(1);
+ $account_q = $CI->db->get();
if ( ! ($account_d = $account_q->row()))
{
$CI->messages->add('Invalid account settings.', 'error');
commit f244228f281b3e017753d9ee2abbbeccd8cc0731
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Fri Jan 28 11:36:07 2011 +0530
Cannot edit or delete System Group A/C's
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/admin/initialize.sql b/system/application/controllers/admin/initialize.sql
index 7c10cc0..5327848 100644
--- a/system/application/controllers/admin/initialize.sql
+++ b/system/application/controllers/admin/initialize.sql
@@ -7,7 +7,7 @@ INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (6, 1, 'Current A
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (7, 1, 'Investments', 0);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (8, 2, 'Capital A/C', 0);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (9, 2, 'Current Liabilities', 0);
-INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (10, 2, 'Loans (Liability)', 0);
+INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (10, 2, 'Loans (Liabilities)', 0);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (11, 3, 'Direct Incomes', 1);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (12, 4, 'Direct Expenses', 1);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (13, 3, 'Indirect Incomes', 0);
diff --git a/system/application/controllers/group.php b/system/application/controllers/group.php
index 5b33e58..e1c5976 100644
--- a/system/application/controllers/group.php
+++ b/system/application/controllers/group.php
@@ -144,8 +144,8 @@ class Group extends Controller {
redirect('account');
return;
}
- if ($id < 5) {
- $this->messages->add('Cannot edit system created Group A/C.', 'error');
+ if ($id <= 16) {
+ $this->messages->add('Cannot edit System Group A/C.', 'error');
redirect('account');
return;
}
@@ -278,8 +278,8 @@ class Group extends Controller {
redirect('account');
return;
}
- if ($id < 5) {
- $this->messages->add('Cannot delete system created Group A/C.', 'error');
+ if ($id <= 16) {
+ $this->messages->add('Cannot delete System Group A/C.', 'error');
redirect('account');
return;
}
diff --git a/system/application/libraries/Accountlist.php b/system/application/libraries/Accountlist.php
index 8b9e578..22ab322 100644
--- a/system/application/libraries/Accountlist.php
+++ b/system/application/libraries/Accountlist.php
@@ -125,7 +125,7 @@ class Accountlist
echo "<td>-</td>";
echo "<td>-</td>";
- if ($this->id <= 4)
+ if ($this->id <= 16)
{
echo "<td class=\"td-actions\"></tr>";
} else {
commit f38e46c0701211caf99cae30f06908988a73fbf0
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Thu Jan 27 21:30:30 2011 +0530
Include the javascript shortcut library in all templates
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/views/admin_template.php b/system/application/views/admin_template.php
index 2cc9ce9..8a0e82b 100644
--- a/system/application/views/admin_template.php
+++ b/system/application/views/admin_template.php
@@ -10,12 +10,18 @@
<link type="text/css" rel="stylesheet" href="<?php echo asset_url(); ?>css/custom.css">
<link type="text/css" rel="stylesheet" href="<?php echo asset_url(); ?>css/jquery.datepick.css">
+<script type="text/javascript">
+ var jsSiteUrl = '<?php echo base_url(); ?>';
+</script>
+
<script type="text/javascript" src="<?php echo asset_url(); ?>js/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/jquery.datepick.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/custom.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/hoverIntent.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/superfish.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/supersubs.js"></script>
+<script type="text/javascript" src="<?php echo asset_url(); ?>js/shortcutslibrary.js"></script>
+<script type="text/javascript" src="<?php echo asset_url(); ?>js/shortcuts.js"></script>
<script type="text/javascript">
/* Loading JQuery Superfish menu */
diff --git a/system/application/views/template.php b/system/application/views/template.php
index 31a701c..3f3ba62 100644
--- a/system/application/views/template.php
+++ b/system/application/views/template.php
@@ -23,6 +23,10 @@ if (isset($add_css))
}
?>
+<script type="text/javascript">
+ var jsSiteUrl = '<?php echo base_url(); ?>';
+</script>
+
<script type="text/javascript" src="<?php echo asset_url(); ?>js/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/jquery.datepick.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/custom.js"></script>
@@ -31,6 +35,8 @@ if (isset($add_css))
<script type="text/javascript" src="<?php echo asset_url(); ?>js/supersubs.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/thickbox-compressed.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/ezpz_tooltip.min.js"></script>
+<script type="text/javascript" src="<?php echo asset_url(); ?>js/shortcutslibrary.js"></script>
+<script type="text/javascript" src="<?php echo asset_url(); ?>js/shortcuts.js"></script>
<?php
/* Dynamically adding javascript files from controllers */
diff --git a/system/application/views/user_template.php b/system/application/views/user_template.php
index e1e0a95..21c4c22 100644
--- a/system/application/views/user_template.php
+++ b/system/application/views/user_template.php
@@ -12,6 +12,10 @@
<link type="text/css" rel="stylesheet" href="<?php echo asset_url(); ?>css/jquery.datepick.css">
<link type="text/css" rel="stylesheet" href="<?php echo asset_url(); ?>css/thickbox.css">
+<script type="text/javascript">
+ var jsSiteUrl = '<?php echo base_url(); ?>';
+</script>
+
<script type="text/javascript" src="<?php echo asset_url(); ?>js/jquery.min.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/jquery.datepick.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/custom.js"></script>
@@ -20,6 +24,9 @@
<script type="text/javascript" src="<?php echo asset_url(); ?>js/supersubs.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/thickbox-compressed.js"></script>
<script type="text/javascript" src="<?php echo asset_url(); ?>js/ezpz_tooltip.min.js"></script>
+<script type="text/javascript" src="<?php echo asset_url(); ?>js/shortcutslibrary.js"></script>
+<script type="text/javascript" src="<?php echo asset_url(); ?>js/shortcuts.js"></script>
+
</head>
<body>
<div id="container">
commit 316fb6b116184655256a85c9f355a6be641694cf
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Thu Jan 27 21:28:06 2011 +0530
Added user customizable javascript shortcut file
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/assets/js/shortcuts.js b/system/application/assets/js/shortcuts.js
new file mode 100644
index 0000000..fa4a459
--- /dev/null
+++ b/system/application/assets/js/shortcuts.js
@@ -0,0 +1,10 @@
+shortcut("Ctrl+H",
+ function() {
+ window.open(jsSiteUrl, "_self");
+ },
+ {
+ 'type': 'keydown',
+ 'propagate': false,
+ 'target': document
+ }
+);
commit 63e263a1b6bd60338243340bb565edd3d31ac742
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Thu Jan 27 21:26:11 2011 +0530
Added javascript hotkey library
Site : http://www.openjs.com/scripts/events/keyboard_shortcuts/
Under BSD License
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/assets/js/shortcutslibrary.js b/system/application/assets/js/shortcutslibrary.js
new file mode 100644
index 0000000..63f3323
--- /dev/null
+++ b/system/application/assets/js/shortcutslibrary.js
@@ -0,0 +1,163 @@
+/**
+ * http://www.openjs.com/scripts/events/keyboard_shortcuts/
+ * Version : 1.00.A
+ * By Binny V A
+ * License : BSD
+ */
+function shortcut(shortcut,callback,opt) {
+ //Provide a set of default options
+ var default_options = {
+ 'type':'keydown',
+ 'propagate':false,
+ 'target':document
+ }
+ if(!opt) opt = default_options;
+ else {
+ for(var dfo in default_options) {
+ if(typeof opt[dfo] == 'undefined') opt[dfo] = default_options[dfo];
+ }
+ }
+
+ var ele = opt.target
+ if(typeof opt.target == 'string') ele = document.getElementById(opt.target);
+ var ths = this;
+
+ //The function to be called at keypress
+ var func = function(e) {
+ e = e || window.event;
+
+ //Find Which key is pressed
+ if (e.keyCode) code = e.keyCode;
+ else if (e.which) code = e.which;
+ var character = String.fromCharCode(code).toLowerCase();
+
+ var keys = shortcut.toLowerCase().split("+");
+ //Key Pressed - counts the number of valid keypresses - if it is same as the number of keys, the shortcut function is invoked
+ var kp = 0;
+
+ //Work around for stupid Shift key bug created by using lowercase - as a result the shift+num combination was broken
+ var shift_nums = {
+ "`":"~",
+ "1":"!",
+ "2":"@",
+ "3":"#",
+ "4":"$",
+ "5":"%",
+ "6":"^",
+ "7":"&",
+ "8":"*",
+ "9":"(",
+ "0":")",
+ "-":"_",
+ "=":"+",
+ ";":":",
+ "'":"\"",
+ ",":"<",
+ ".":">",
+ "/":"?",
+ "\\":"|"
+ }
+ //Special Keys - and their codes
+ var special_keys = {
+ 'esc':27,
+ 'escape':27,
+ 'tab':9,
+ 'space':32,
+ 'return':13,
+ 'enter':13,
+ 'backspace':8,
+
+ 'scrolllock':145,
+ 'scroll_lock':145,
+ 'scroll':145,
+ 'capslock':20,
+ 'caps_lock':20,
+ 'caps':20,
+ 'numlock':144,
+ 'num_lock':144,
+ 'num':144,
+
+ 'pause':19,
+ 'break':19,
+
+ 'insert':45,
+ 'home':36,
+ 'delete':46,
+ 'end':35,
+
+ 'pageup':33,
+ 'page_up':33,
+ 'pu':33,
+
+ 'pagedown':34,
+ 'page_down':34,
+ 'pd':34,
+
+ 'left':37,
+ 'up':38,
+ 'right':39,
+ 'down':40,
+
+ 'f1':112,
+ 'f2':113,
+ 'f3':114,
+ 'f4':115,
+ 'f5':116,
+ 'f6':117,
+ 'f7':118,
+ 'f8':119,
+ 'f9':120,
+ 'f10':121,
+ 'f11':122,
+ 'f12':123
+ }
+
+
+ for(var i=0; k=keys[i],i<keys.length; i++) {
+ //Modifiers
+ if(k == 'ctrl' || k == 'control') {
+ if(e.ctrlKey) kp++;
+
+ } else if(k == 'shift') {
+ if(e.shiftKey) kp++;
+
+ } else if(k == 'alt') {
+ if(e.altKey) kp++;
+
+ } else if(k.length > 1) { //If it is a special key
+ if(special_keys[k] == code) kp++;
+
+ } else { //The special keys did not match
+ if(character == k) kp++;
+ else {
+ if(shift_nums[character] && e.shiftKey) { //Stupid Shift key bug created by using lowercase
+ character = shift_nums[character];
+ if(character == k) kp++;
+ }
+ }
+ }
+ }
+
+ if(kp == keys.length) {
+ callback(e);
+
+ if(!opt['propagate']) { //Stop the event
+ //e.cancelBubble is supported by IE - this will kill the bubbling process.
+ e.cancelBubble = true;
+ e.returnValue = false;
+
+ //e.stopPropagation works only in Firefox.
+ if (e.stopPropagation) {
+ e.stopPropagation();
+ e.preventDefault();
+ }
+ return false;
+ }
+ }
+ }
+
+ //Attach the function with the event
+ if(ele.addEventListener) ele.addEventListener(opt['type'], func, false);
+ else if(ele.attachEvent) ele.attachEvent('on'+opt['type'], func);
+ else ele['on'+opt['type']] = func;
+}
\ No newline at end of file
commit 24f1cd8bad978fcaf5a23473fa3e78c01bde4373
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Thu Jan 27 20:41:11 2011 +0530
Changed Liabilities to Liabilities and Owners Equity
- As per suggestion from 'H Maeda' to confirm to accounting
standards
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/admin/initialize.sql b/system/application/controllers/admin/initialize.sql
index 2e5f8f3..7c10cc0 100644
--- a/system/application/controllers/admin/initialize.sql
+++ b/system/application/controllers/admin/initialize.sql
@@ -1,5 +1,5 @@
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (1, 0, 'Assets', 0);
-INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (2, 0, 'Liabilities', 0);
+INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (2, 0, 'Liabilities and Owners Equity', 0);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (3, 0, 'Incomes', 0);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (4, 0, 'Expenses', 0);
INSERT INTO groups (id, parent_id, name, affects_gross) VALUES (5, 1, 'Fixed Assets', 0);
diff --git a/system/application/controllers/report.php b/system/application/controllers/report.php
index c02ce68..1b89ccc 100644
--- a/system/application/controllers/report.php
+++ b/system/application/controllers/report.php
@@ -600,7 +600,7 @@ class Report extends Controller {
Accountlist::add_blank_csv();
/* Liability side */
$total = $liability_total;
- Accountlist::add_row_csv(array("Liability Total", convert_cur($liability_total)));
+ Accountlist::add_row_csv(array("Liabilities and Owners Equity Total", convert_cur($liability_total)));
/* If Profit then Liability side, If Loss then Asset side */
if ($pandl != 0)
@@ -622,7 +622,7 @@ class Report extends Controller {
}
}
- Accountlist::add_row_csv(array("Total - Liabilities", convert_cur($total)));
+ Accountlist::add_row_csv(array("Total - Liabilities and Owners Equity", convert_cur($total)));
/* Asset side */
$total = $asset_total;
diff --git a/system/application/views/report/balancesheet.php b/system/application/views/report/balancesheet.php
index 2330189..a2fa868 100644
--- a/system/application/views/report/balancesheet.php
+++ b/system/application/views/report/balancesheet.php
@@ -8,7 +8,7 @@
echo "<td width=\"" . $left_width . "\">";
$liability->init(2);
echo "<table border=0 cellpadding=5 class=\"simple-table balance-sheet-table\" width=\"100%\">";
- echo "<thead><tr><th>Liabilities</th><th align=\"right\">Amount</th></tr></thead>";
+ echo "<thead><tr><th>Liabilities and Owners Equity</th><th align=\"right\">Amount</th></tr></thead>";
$liability->account_st_short(0);
echo "</table>";
echo "</td>";
@@ -46,7 +46,7 @@
echo "<td>";
echo "<table border=0 cellpadding=5 class=\"balance-sheet-total-table\" width=\"100%\">";
echo "<tr valign=\"top\">";
- echo "<td class=\"bold\">Liability Total</td>";
+ echo "<td class=\"bold\">Liability and Owners Equity Total</td>";
echo "<td align=\"right\" class=\"bold\">" . convert_cur($liability_total) . "</td>";
echo "</tr>";
commit 33b31dc4ffbc14eca693711244de0594a926fb23
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Thu Jan 27 12:22:37 2011 +0530
Added better database connection error checking on Startup
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 5a78a29..3f56ad8 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -331,7 +331,7 @@ class Voucher extends Controller {
$data['dr_amount'] = $this->input->post('dr_amount', TRUE);
$data['cr_amount'] = $this->input->post('cr_amount', TRUE);
} else {
- for ($count = 0; $count <= 5; $count++)
+ for ($count = 0; $count <= 3; $count++)
{
if ($count == 0 && $voucher_type == "payment")
$data['ledger_dc'][$count] = "C";
diff --git a/system/application/libraries/Startup.php b/system/application/libraries/Startup.php
index 2700873..de20270 100644
--- a/system/application/libraries/Startup.php
+++ b/system/application/libraries/Startup.php
@@ -57,6 +57,23 @@ class Startup
$db_config['char_set'] = "utf8";
$db_config['dbcollat'] = "utf8_general_ci";
$CI->load->database($db_config, FALSE, TRUE);
+
+ /* Checking for valid database connection */
+ if ( ! $CI->db->conn_id)
+ {
+ $CI->session->unset_userdata('active_account');
+ $CI->messages->add('Error connecting to database server. Check whether database server is running.', 'error');
+ redirect('user/account');
+ return;
+ }
+ /* Check for any database connection error messages */
+ if ($CI->db->_error_message() != "")
+ {
+ $CI->session->unset_userdata('active_account');
+ $CI->messages->add('Error connecting to database server. ' . $CI->db->_error_message(), 'error');
+ redirect('user/account');
+ return;
+ }
} else {
$CI->messages->add('Select a account.', 'error');
redirect('user/account');
commit d41135c9d5a94ef128d2c9be760c3884339d1f85
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Jan 26 11:59:54 2011 +0530
Check if Contra Vouchers on removing Bank or Cash Account status
- Check if any Contra Vouchers are present before removing
the Bank or Cash Acount status of the Ledger A/C
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/ledger.php b/system/application/controllers/ledger.php
index 221a3fb..4503b5b 100644
--- a/system/application/controllers/ledger.php
+++ b/system/application/controllers/ledger.php
@@ -261,6 +261,19 @@ class Ledger extends Controller {
return;
}
+ /* Check if contra voucher present for non Bank or Cash A/C */
+ if ($data_ledger_type_cashbank_value != "1")
+ {
+ $this->db->from('voucher_items')->join('vouchers', 'voucher_items.voucher_id = vouchers.id')->where('vouchers.type', 3)->where('voucher_items.ledger_id', $id);
+ $contra_count = $this->db->get()->num_rows();
+ if ($contra_count > 0)
+ {
+ $this->messages->add('Cannot remove the Bank or Cash Account status of this Ledger A/C since it is still linked with ' . $contra_count . ' Contra Vouchers entries.', 'error');
+ $this->template->load('template', 'ledger/edit', $data);
+ return;
+ }
+ }
+
if ($data_ledger_type_cashbank_value == "1")
{
$data_ledger_type_cashbank = "B";
diff --git a/system/application/views/ledger/add.php b/system/application/views/ledger/add.php
index caab430..b5c2ba6 100644
--- a/system/application/views/ledger/add.php
+++ b/system/application/views/ledger/add.php
@@ -26,7 +26,7 @@
echo "<p>";
echo "<span id=\"tooltip-target-2\">";
- echo form_checkbox('ledger_type_cashbank', 1, $ledger_type_cashbank) . " Cash / Bank Account";
+ echo form_checkbox('ledger_type_cashbank', 1, $ledger_type_cashbank) . " Bank or Cash Account";
echo "</span>";
echo "<span id=\"tooltip-content-2\">Select if Ledger A/C is a Bank A/C or a Cash A/C.</span>";
echo "</p>";
diff --git a/system/application/views/ledger/edit.php b/system/application/views/ledger/edit.php
index c54cca9..a9057c1 100644
--- a/system/application/views/ledger/edit.php
+++ b/system/application/views/ledger/edit.php
@@ -26,7 +26,7 @@
echo "<p>";
echo "<span id=\"tooltip-target-2\">";
- echo form_checkbox('ledger_type_cashbank', 1, $ledger_type_cashbank) . " Cash / Bank Account";
+ echo form_checkbox('ledger_type_cashbank', 1, $ledger_type_cashbank) . " Bank or Cash Account";
echo "</span>";
echo "<span id=\"tooltip-content-2\">Select if Ledger A/C is a Bank A/C or a Cash A/C.</span>";
echo "</p>";
commit 4f2d67a18dee6cad9e1e8838569de032ee50a70f
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Jan 26 11:32:53 2011 +0530
Receipt and Payment vouchers must have one non Bank or Cash A/C
- Use Contra Vouchers if it has only Bank or Cash A/C's
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/voucher.php b/system/application/controllers/voucher.php
index 2602ac2..5a78a29 100644
--- a/system/application/controllers/voucher.php
+++ b/system/application/controllers/voucher.php
@@ -361,6 +361,7 @@ class Voucher extends Controller {
$dr_total = 0;
$cr_total = 0;
$bank_cash_present = FALSE; /* Whether atleast one Ledger A/C is Bank or Cash A/C */
+ $non_bank_cash_present = FALSE; /* Whether atleast one Ledger A/C is NOT a Bank or Cash A/C */
foreach ($data_all_ledger_dc as $id => $ledger_data)
{
if ($data_all_ledger_id[$id] < 1)
@@ -383,12 +384,16 @@ class Voucher extends Controller {
{
$bank_cash_present = TRUE;
}
+ if ($valid_ledger->type != 'B')
+ $non_bank_cash_present = TRUE;
} else if ($voucher_type == 'payment')
{
if ($data_all_ledger_dc[$id] == 'C' && $valid_ledger->type == 'B')
{
$bank_cash_present = TRUE;
}
+ if ($valid_ledger->type != 'B')
+ $non_bank_cash_present = TRUE;
} else if ($voucher_type == 'contra')
{
if ($valid_ledger->type != 'B')
@@ -434,6 +439,12 @@ class Voucher extends Controller {
$this->template->load('template', 'voucher/add', $data);
return;
}
+ if ( ! $non_bank_cash_present)
+ {
+ $this->messages->add('Use Contra Vouchers if it affects only Bank or Cash A/C\'s.', 'error');
+ $this->template->load('template', 'voucher/add', $data);
+ return;
+ }
} else if ($voucher_type == 'payment')
{
if ( ! $bank_cash_present)
@@ -442,6 +453,12 @@ class Voucher extends Controller {
$this->template->load('template', 'voucher/add', $data);
return;
}
+ if ( ! $non_bank_cash_present)
+ {
+ $this->messages->add('Use Contra Vouchers if it affects only Bank or Cash A/C\'s.', 'error');
+ $this->template->load('template', 'voucher/add', $data);
+ return;
+ }
}
/* Adding main voucher */
@@ -738,6 +755,7 @@ class Voucher extends Controller {
$dr_total = 0;
$cr_total = 0;
$bank_cash_present = FALSE; /* Whether atleast one Ledger A/C is Bank or Cash A/C */
+ $non_bank_cash_present = FALSE; /* Whether atleast one Ledger A/C is NOT a Bank or Cash A/C */
foreach ($data_all_ledger_dc as $id => $ledger_data)
{
if ($data_all_ledger_id[$id] < 1)
@@ -760,12 +778,16 @@ class Voucher extends Controller {
{
$bank_cash_present = TRUE;
}
+ if ($valid_ledger->type != 'B')
+ $non_bank_cash_present = TRUE;
} else if ($voucher_type == 'payment')
{
if ($data_all_ledger_dc[$id] == 'C' && $valid_ledger->type == 'B')
{
$bank_cash_present = TRUE;
}
+ if ($valid_ledger->type != 'B')
+ $non_bank_cash_present = TRUE;
} else if ($voucher_type == 'contra')
{
if ($valid_ledger->type != 'B')
@@ -810,6 +832,12 @@ class Voucher extends Controller {
$this->template->load('template', 'voucher/edit', $data);
return;
}
+ if ( ! $non_bank_cash_present)
+ {
+ $this->messages->add('Use Contra Vouchers if it affects only Bank or Cash A/C\'s.', 'error');
+ $this->template->load('template', 'voucher/edit', $data);
+ return;
+ }
} else if ($voucher_type == 'payment')
{
if ( ! $bank_cash_present)
@@ -818,6 +846,12 @@ class Voucher extends Controller {
$this->template->load('template', 'voucher/edit', $data);
return;
}
+ if ( ! $non_bank_cash_present)
+ {
+ $this->messages->add('Use Contra Vouchers if it affects only Bank or Cash A/C\'s.', 'error');
+ $this->template->load('template', 'voucher/edit', $data);
+ return;
+ }
}
/* Updating main voucher */
commit d18febd3253c8d32170af4ed6411f70828b904da
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Jan 26 11:11:43 2011 +0530
Fixed account carry forward errors
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/setting.php b/system/application/controllers/setting.php
index d6794b9..50f0939 100644
--- a/system/application/controllers/setting.php
+++ b/system/application/controllers/setting.php
@@ -357,36 +357,49 @@ class Setting extends Controller {
if ($data_database_port == "")
$data_database_port = "3306";
- /* Setting database */
- $dsn = "mysql://${data_database_username}:${data_database_password}@${data_database_host}:${data_database_port}/${data_database_name}";
- $newacc = $this->load->database($dsn, TRUE);
- $conn_error = $newacc->_error_message();
-
- /* Creating database if it does not exist */
+ /* Creating account database */
if ($this->input->post('create_database', TRUE) == "1")
{
- if ((substr($conn_error, 0, 16) == "Unknown database"))
+ $new_link = @mysql_connect($data_database_host . ':' . $data_database_port, $data_database_username, $data_database_password);
+ if ($new_link)
{
- if ($newacc->query("CREATE DATABASE " . mysql_real_escape_string($data_database_name)))
+ /* Check if database already exists */
+ $db_selected = mysql_select_db($data_database_name, $new_link);
+ if ($db_selected) {
+ mysql_close($new_link);
+ $this->messages->add('Database already exists.', 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
+ }
+
+ /* Creating account database */
+ $db_create_q = 'CREATE DATABASE ' . mysql_real_escape_string($data_database_name);
+ if (mysql_query($db_create_q, $new_link))
{
$this->messages->add('Created account database.', 'success');
- /* Retrying to connect to new database */
- $newacc = $this->load->database($dsn, TRUE);
- $conn_error = $newacc->_error_message();
} else {
- $this->messages->add('Failed to create account database.', 'error');
+ $this->messages->add('Error creating account database. ' . mysql_error(), 'error');
$this->template->load('template', 'setting/cf', $data);
return;
}
+ mysql_close($new_link);
+ } else {
+ $this->messages->add('Error connecting to database. ' . mysql_error(), 'error');
+ $this->template->load('template', 'setting/cf', $data);
+ return;
}
}
+ /* Setting database */
+ $dsn = "mysql://${data_database_username}:${data_database_password}@${data_database_host}:${data_database_port}/${data_database_name}";
+ $newacc = $this->load->database($dsn, TRUE);
+
if ( ! $newacc->conn_id)
{
$this->messages->add('Error connecting to database.', 'error');
$this->template->load('template', 'setting/cf', $data);
return;
- } else if ($conn_error != "") {
+ } else if ($newacc->_error_message() != "") {
$this->messages->add('Error connecting to database. ' . $newacc->_error_message(), 'error');
$this->template->load('template', 'setting/cf', $data);
return;
commit 01898ee93aa4a3be96522ae6ac5b17cebd527290
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Wed Jan 26 11:02:49 2011 +0530
Fixed account creation errors
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/controllers/admin/create.php b/system/application/controllers/admin/create.php
index 9b16864..0547e10 100644
--- a/system/application/controllers/admin/create.php
+++ b/system/application/controllers/admin/create.php
@@ -231,36 +231,49 @@ class Create extends Controller {
if ($data_database_port == "")
$data_database_port = "3306";
- /* Setting database */
- $dsn = "mysql://${data_database_username}:${data_database_password}@${data_database_host}:${data_database_port}/${data_database_name}";
- $newacc = $this->load->database($dsn, TRUE);
- $conn_error = $newacc->_error_message();
-
- /* Creating database if it does not exist */
+ /* Creating account database */
if ($this->input->post('create_database', TRUE) == "1")
{
- if ((substr($conn_error, 0, 16) == "Unknown database"))
+ $new_link = @mysql_connect($data_database_host . ':' . $data_database_port, $data_database_username, $data_database_password);
+ if ($new_link)
{
- if ($newacc->query("CREATE DATABASE " . mysql_real_escape_string($data_database_name)))
+ /* Check if database already exists */
+ $db_selected = mysql_select_db($data_database_name, $new_link);
+ if ($db_selected) {
+ mysql_close($new_link);
+ $this->messages->add('Database already exists.', 'error');
+ $this->template->load('admin_template', 'admin/create', $data);
+ return;
+ }
+
+ /* Creating account database */
+ $db_create_q = 'CREATE DATABASE ' . mysql_real_escape_string($data_database_name);
+ if (mysql_query($db_create_q, $new_link))
{
$this->messages->add('Created account database.', 'success');
- /* Retrying to connect to new database */
- $newacc = $this->load->database($dsn, TRUE);
- $conn_error = $newacc->_error_message();
} else {
- $this->messages->add('Failed to create account database.', 'error');
+ $this->messages->add('Error creating account database. ' . mysql_error(), 'error');
$this->template->load('admin_template', 'admin/create', $data);
return;
}
+ mysql_close($new_link);
+ } else {
+ $this->messages->add('Error connecting to database. ' . mysql_error(), 'error');
+ $this->template->load('admin_template', 'admin/create', $data);
+ return;
}
}
+ /* Setting database */
+ $dsn = "mysql://${data_database_username}:${data_database_password}@${data_database_host}:${data_database_port}/${data_database_name}";
+ $newacc = $this->load->database($dsn, TRUE);
+
if ( ! $newacc->conn_id)
{
$this->messages->add('Error connecting to database.', 'error');
$this->template->load('admin_template', 'admin/create', $data);
return;
- } else if ($conn_error != "") {
+ } else if ($newacc->_error_message() != "") {
$this->messages->add('Error connecting to database. ' . $newacc->_error_message(), 'error');
$this->template->load('admin_template', 'admin/create', $data);
return;
commit db672e72e7d22b077a3d68c9746cbb74370483eb
Author: Prashant P Shah <pshah.mumbai(a)gmail.com>
Date: Mon Jan 24 22:33:45 2011 +0530
Added default gmail settings to FAQ
Signed-off-by: Prashant P Shah <pshah.mumbai(a)gmail.com>
diff --git a/system/application/views/help/index.php b/system/application/views/help/index.php
index 381741e..3852a76 100644
--- a/system/application/views/help/index.php
+++ b/system/application/views/help/index.php
@@ -14,6 +14,7 @@
<li><span class="qa-heading">Email</span>
<ul>
<li><a href="#email-1" class="anchor-link-a">How do I modify the voucher email format ?</a></li>
+ <li><a href="#email-2" class="anchor-link-a">How do send vouchers using gmail ?</a></li>
</ul>
</li>
</ul>
@@ -50,3 +51,14 @@
<div class="qa-answer">Voucher email template is located at "system/application/views/voucher/emailpreview.php". Modify this file to change the voucher email format.</div>
</div>
+<div class="qa-section" id="email-2">
+ <a name="email-2"></a>
+ <div class="qa-question">Q. How do I send vouchers using gmail ?</div>
+ <div class="qa-answer">You need to use the following gmail settings in Settings > Email Settings<br /><br />
+ Email protocol : smtp<br />
+ Hostname : ssl://smtp.googlemail.com<br />
+ Port : 465<br />
+ Email username : your-username(a)gmail.com<br />
+ Email Password : your-password<br />
+ </div>
+</div>
13 years, 2 months