| Server IP : 162.214.74.102 / Your IP : 216.73.217.80 Web Server : Apache System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64 User : lrsys ( 1015) PHP Version : 5.6.40 Disable Function : exec,passthru,shell_exec,system MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/lrsys/public_html/lrsys_apps/imobles/application/controllers/ |
Upload File : |
<?php
// *************************************************************************
// * *
// * iBilling - Accounting, Billing Software *
// * Copyright (c) Sadia Sharmin. All Rights Reserved *
// * *
// *************************************************************************
// * *
// * Email: sadiasharmin3139@gmail.com *
// * Website: http://www.sadiasharmin.com *
// * *
// *************************************************************************
// * *
// * This software is furnished under a license and may be used and copied *
// * only in accordance with the terms of such license and with the *
// * inclusion of the above copyright notice. *
// * If you Purchased from Codecanyon, Please read the full License from *
// * here- http://codecanyon.net/licenses/standard *
// * *
// *************************************************************************
_auth();
$ui->assign('_application_menu', 'accounts');
$ui->assign('_title', $_L['Accounts'].'- '. $config['CompanyName']);
$ui->assign('_st', $_L['Accounts']);
$action = $routes['1'];
$user = User::_info();
$ui->assign('user', $user);
Event::trigger('accounts');
switch ($action) {
case 'balances':
//Find all accounts
$d = ORM::for_table('sys_accounts')->find_many();
$tbal = ORM::for_table('sys_accounts')->sum('balance');
$tbal = ib_money_format($tbal,$config);
$ui->assign('d',$d);
$ui->assign('tbal',$tbal);
$ui->display('account-balances.tpl');
break;
case 'add':
$ui->assign('xfooter', Asset::js(array('numeric')));
$ui->assign('xjq', '
$(\'.amount\').autoNumeric(\'init\',{
vMin: \'-9999999999999.99\'
});
');
$ui->display('account-add.tpl');
break;
case 'add-post':
$account = _post('account');
$description = _post('description');
$balance = _post('balance');
$balance = Finance::amount_fix($balance);
$bank_code = _post('bank_code');
$msg = '';
if(Validator::Length($account,100,2) == false){
$msg .= $_L['account_title_length_error']. '<br>';
}
//check with same name account is exist
$d = ORM::for_table('sys_accounts')->where('account',$account)->find_one();
if($d){
$msg .= $_L['account_already_exist']. '<br>';
}
if (is_numeric($balance) == false) {
$balance = '0.00';
}
// From version 4
$ex_msg = '';
$ib_url = _post('ib_url');
if($ib_url != ''){
if (filter_var($ib_url, FILTER_VALIDATE_URL) === FALSE) {
$ex_msg .= '. Error: Invalid URL. URL Not Updated.';
$ib_url = '';
}
}
if($msg == ''){
if($_app_stage == 'Demo'){
r2(U . 'accounts/add', 'e', 'Sorry! Adding New Account is disabled in the demo mode.');
}
if($balance != '0.00'){
//Add a Transaction
$d = ORM::for_table('sys_transactions')->create();
$d->account = $account;
$d->type = 'Income';
$d->payer = $_L['system'];
$d->amount = $balance;
$d->date = date('Y-m-d');
$d->dr = '0.00';
$d->cr = $balance;
$d->bal = $balance;
$d->description = $_L['initial_balance'];
$d->category = '';
$d->payer = '';
$d->payee = '';
$d->payeeid = '0';
$d->payerid = '0';
$d->status = 'Cleared';
$d->tax = '0.00';
$d->iid = 0;
$d->method = '';
$d->ref = '';
$d->tags = '';
$d->save();
}
// Add Account
$d = ORM::for_table('sys_accounts')->create();
$d->account = $account;
$d->description = $description;
$d->balance = $balance;
// From Version 4
$d->bank_name = '';
$d->bank_code = $bank_code;
$d->account_number = _post('account_number');
$d->account_digit = _post('account_digit')==''?null:_post('agency_digit');
$d->agency_number = _post('agency_number');
$d->agency_digit = _post('agency_digit')==''?null:_post('agency_digit');
$d->currency = '';
$d->branch = '';
$d->address = '';
$d->contact_person = _post('contact_person');
$d->contact_phone = _post('contact_phone');
$d->website = '';
$d->ib_url = $ib_url;
$d->created = date('Y-m-d H:i:s');
$d->notes = '';
$d->sorder = 1;
$d->e = '';
$d->token = '';
$d->status = '';
$d->save();
r2(U . 'accounts/list', 's', $_L['account_created_successfully'].$ex_msg);
}
else{
r2(U . 'accounts/add', 'e', $msg);
}
break;
case 'list':
$d = ORM::for_table('sys_accounts')->find_many();
$ui->assign('d',$d);
$banks = ORM::for_table('crm_banks')->select('code')->find_array();
$bank_codes = array();
foreach($banks as $bank) {
$bank_codes[] = $bank['code'];
}
$ui->assign('banks', $bank_codes);
$ui->assign('jsvar', '
_L[\'The value must be an integer\'] = \'' . $_L['The value must be an integer'] . '\';
_L[\'Value must be greater than and zero and less than or equal to\'] = \'' . $_L['Value must be greater than and zero and less than or equal to'] . '\';
');
$ui->assign('xheader', Asset::css(array('modal')));
$ui->assign('xfooter', '
<script type="text/javascript" src="' . $_theme . '/lib/accounts.js"></script>
'. Asset::js(array('modal', 'maskinput/jquery.maskedinput')));
$ui->display('accounts-manage.tpl');
break;
case 'edit':
$id = $routes['2'];
$d = ORM::for_table('sys_accounts')->find_one($id);
$ui->assign('xfooter', '<script type="text/javascript" src="' . $_theme . '/lib/accounts.js"></script>');
if($d){
$ui->assign('d',$d);
$ui->display('account-edit.tpl');
}
else{
r2(U . 'accounts/list', 'e', $_L['Account_Not_Found']);
}
break;
case 'edit-post':
$account = _post('account');
$description = _post('description');
$id = _post('id');
$bank_code = _post('bank_code');
$msg = '';
if(Validator::Length($account,100,2) == false){
$msg .= $_L['account_title_length_error']. '<br>';
}
$ex_msg = '';
$ib_url = _post('ib_url');
if($ib_url != ''){
if (filter_var($ib_url, FILTER_VALIDATE_URL) === FALSE) {
$ex_msg .= '. Error: Invalid URL. URL Not Updated.';
$ib_url = '';
}
}
if($msg == ''){
$d = ORM::for_table('sys_accounts')->find_one($id);
if($d){
$oaccount = $d['account'];
$d->account = $account;
$d->description = $description;
// From Version 4
// From Version 4
$d->bank_name = '';
$d->bank_code = $bank_code;
$d->account_number = _post('account_number');
$d->account_digit = _post('account_digit')==''?null:_post('account_digit');
$d->agency_number = _post('agency_number');
$d->agency_digit = _post('agency_digit')==''?null:_post('agency_digit');
$d->currency = '';
$d->branch = '';
$d->address = '';
$d->contact_person = _post('contact_person');
$d->contact_phone = _post('contact_phone');
$d->website = '';
$d->ib_url = $ib_url;
$d->created = '';
$d->notes = '';
$d->sorder = 1;
$d->e = '';
$d->token = '';
$d->status = '';
$d->save();
//now update all transactions with the new name
$b = ORM::for_table('sys_transactions')->where('account',$oaccount)->find_result_set()
->set('account', $account)
->save();
r2(U . 'accounts/list', 's', $_L['account_updated_successfully'].$ex_msg);
}
else{
r2(U . 'accounts/list', 'e', $_L['Account_Not_Found']);
}
}
else{
r2(U . 'accounts/add', 'e', $msg);
}
break;
case 'delete':
$id = $routes['2'];
$id = str_replace('did','',$id);
if($_app_stage == 'Demo'){
r2(U . 'accounts/list', 'e', 'Sorry! Deleting Account is disabled in the demo mode.');
}
$d = ORM::for_table('sys_accounts')->find_one($id);
if($d){
// Remove os campos relacionados a conta
ORM::for_table('sys_accounts_banks_fields_values')
->where('id_account', $d->id)
->delete_many();
$d->delete();
r2(U . 'accounts/list', 's', $_L['account_delete_successful']);
}
break;
case 'post':
break;
case 'modal-add-bank-slip-data':
$id_account = filter_var($routes['2'], FILTER_SANITIZE_NUMBER_INT);
if($id_account) {
$account = ORM::for_table('sys_accounts')->find_one($id_account);
$ui->assign('account', $account);
if($account->bank_code == '') {
r2(U.'accounts/list', 'e', $_L['Bank code is invalid']);
}
$bank_fields = ORM::for_table('crm_banks')
->table_alias('bk')
->select('bkf.*')
->join('crm_bank_fields', 'bk.id = bkf.id_bank', 'bkf')
->where('bk.code', $account->bank_code)
->find_array();
$ui->assign('bank_fields', $bank_fields);
$fields_values = ORM::for_table('sys_accounts_banks_fields_values')
->table_alias('afv')
->select('afv.*')
->where('afv.id_account', $account->id)
->find_array();
$ui->assign('fields_values', $fields_values);
$isDefault = false;
foreach($fields_values as $idx => $item) {
if($item['field'] == 'default' && $item['value'] == true) {
$isDefault = true;
}
}
$ui->assign('isDefault', $isDefault);
}
$ui->assign('_st', $_L['Add bank slip data']);
$ui->display('modal_add_bank_slip_data.tpl');
break;
case 'modal-add-bank-slip-data-post':
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$id_account = filter_var(_post('id_account'), FILTER_SANITIZE_NUMBER_INT);
$bank_slip_default = filter_var(_post('default'), FILTER_SANITIZE_NUMBER_INT);
// Remove os dados anteriores da conta
ORM::for_table('sys_accounts_banks_fields_values')
->where('id_account', $id_account)
->delete_many();
if($bank_slip_default) {
// Remove os registros default de outras contas
$exists_field_value = ORM::for_table('sys_accounts_banks_fields_values')
->where('field', 'default')
->where_not_equal('id_account', $id_account)
->delete_many();
$field_value = ORM::for_table('sys_accounts_banks_fields_values')->create();
$field_value->id_account = $id_account;
$field_value->field = 'default';
$field_value->value = true;
$field_value->save();
}
foreach($_POST as $field => $value) {
if(!in_array($field, ['default', 'id_account'])) {
$field_value = ORM::for_table('sys_accounts_banks_fields_values')->create();
$field_value->id_account = $id_account;
$field_value->field = filter_var($field, FILTER_SANITIZE_STRING);
$field_value->value = filter_var($value, FILTER_SANITIZE_STRING);
$field_value->save();
}
}
r2(U.'accounts/list', 's', $_L['Bank slip data added successfully']);
}
break;
default:
echo 'action not defined';
}