common::get_invoice_template()   F
last analyzed

Complexity

Conditions 29
Paths > 20000

Size

Total Lines 296
Code Lines 196

Duplication

Lines 9
Ratio 3.04 %

Importance

Changes 0
Metric Value
cc 29
eloc 196
nc 1824768
nop 3
dl 9
loc 296
rs 2
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
###############################################################################
4
# ASTPP - Open Source VoIP Billing Solution
5
#
6
# Copyright (C) 2016 iNextrix Technologies Pvt. Ltd.
7
# Samir Doshi <[email protected]>
8
# ASTPP Version 3.0 and above
9
# License https://www.gnu.org/licenses/agpl-3.0.html
10
#
11
# This program is free software: you can redistribute it and/or modify
12
# it under the terms of the GNU Affero General Public License as
13
# published by the Free Software Foundation, either version 3 of the
14
# License, or (at your option) any later version.
15
# 
16
# This program is distributed in the hope that it will be useful,
17
# but WITHOUT ANY WARRANTY; without even the implied warranty of
18
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
# GNU Affero General Public License for more details.
20
# 
21
# You should have received a copy of the GNU Affero General Public License
22
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
23
###############################################################################
24
25
if ( ! defined('BASEPATH'))
26
    exit('No direct script access allowed');
27
28
/**
29
 * Dynamically build forms for display
30
 */
31
class common {
32
33
    protected $CI; // codeigniter
34
35 View Code Duplication
    function __construct($library_name = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $library_name is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
36
37
        $this->CI = & get_instance();
38
        $this->CI->load->library("timezone");
0 ignored issues
show
Bug introduced by
The property load does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
39
        $this->CI->load->model('db_model');
40
        $this->CI->load->library('email');
41
        $this->CI->load->library('session');
42
    }
43
44
// __construct
45
    /**
46
     * adds raw html to the field array
47
     */
48
    function generate_password() {
49
        $pass = substr(md5(rand(0, 1000000000)), 0, common_model::$global_config['system_config']['pinlength']);
50
        return $pass;
51
    }
52
53
    function find_uniq_rendno($size = '', $field = '', $tablename = '') {
54
55 View Code Duplication
        if ($tablename != '') {
56
            $accounttype_array = array();
57
            $uname = rand(pow(10, $size - 1), pow(10, $size) - 1);
58
            $where = array($field => $uname);
59
            $acc_result = $this->CI->db_model->getSelect('Count(*) as count', $tablename, $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
60
            $acc_result = $acc_result->result();
61
            while ($acc_result[0]->count != 0) {
62
                $uname = rand(pow(10, $size - 1), pow(10, $size) - 1);
63
                $acc_result = $this->CI->db_model->getSelect('Count(*) as count', $tablename, $where);
64
            }
65
        } else {
66
            $uname = rand(pow(10, $size - 1), pow(10, $size) - 1);
67
        }
68
        return $uname;
69
    }
70
71
    function find_uniq_rendno_customer($size = '', $field = '', $tablename = '') {
72 View Code Duplication
        if ($tablename != '') {
73
            $accounttype_array = array();
74
            $uname = rand(pow(10, $size - 1), pow(10, $size) - 1);
75
            $where = array($field => $uname);
76
            $acc_result = $this->CI->db_model->getSelect('Count(*) as count', $tablename, $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
77
            $acc_result = $acc_result->result();
78
            while ($acc_result[0]->count != 0) {
79
                $uname = rand(pow(10, $size - 1), pow(10, $size) - 1);
80
                $acc_result = $this->CI->db_model->getSelect('Count(*) as count', $tablename, $where);
81
            }
82
        } else {
83
            $uname = rand(pow(10, $size - 1), pow(10, $size) - 1);
84
        }
85
        $start_prifix_value = common_model::$global_config['system_config']['startingdigit'];
86
        if ($tablename == 'accounts' && $start_prifix_value != 0) {
87
            $length = strlen($start_prifix_value);
88
            $uname = substr($uname, $length);
89
            $uname = $start_prifix_value.$uname;
90
        }
91
        return $uname;
92
    }
93
94
    /**
95
     * @param string $length
96
     */
97
    function random_string($length) {
98
        $chars = "1234567890"; //length:36
99
        $final_rand = '';
100
        for ($i = 0; $i < $length; $i++) {
101
            $final_rand .= $chars[rand(0, strlen($chars) - 1)];
102
        }
103
        return $final_rand;
104
    }
105
106
    function find_uniq_rendno_accno($length = '', $field = '', $tablename = '', $default, $creation_count) {
107
        $number = array();
108
        $j = 0;
109
110
        $total_count = pow(10, $length);
111
        for ($i = 1; $i <= $total_count; $i++) {
112
113
            $flag = false;
114
            $uname = $this->random_string($length);
115
            $uname = strtolower($uname);
116
            if (isset($default))
117
                $uname = $default.$uname;
118
            if ( ! in_array($uname, $number)) {
119
                $where = array($field => $uname);
120
                $acc_result = $this->CI->db_model->getSelect('Count(id) as count', $tablename, $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
121
                $acc_result = $acc_result->result_array();
122
                if ($acc_result[0]['count'] == 0 && ! in_array($uname, $number)) {
123
                    $number[] = $uname;
124
                    $j++;
125
                }
126
                if ($j == $creation_count) {
127
                    break;
128
                }
129
            } else {
130
                $total_count++;
131
            }
132
        }
133
        return $number;
134
    }
135
136
    /**
137
     * @param string $select
138
     * @param string $table
139
     */
140
    function get_field_count($select, $table, $where) {
141
//        echo $select."=====".$table."===".$where;
0 ignored issues
show
Unused Code Comprehensibility introduced by
54% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
142
        if (is_array($where)) {
143
            $where = $where;
0 ignored issues
show
Bug introduced by
Why assign $where to itself?

This checks looks for cases where a variable has been assigned to itself.

This assignement can be removed without consequences.

Loading history...
144
        } else {
145
            $where = array($select => $where);
146
        }
147
        $field_name = $this->CI->db_model->countQuery($select, $table, $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
148
        if (isset($field_name) && ! empty($field_name)) {
149
            return $field_name;
150
        } else {
151
            return "0";
152
        }
153
    }
154
155
    /**
156
     * @param string $select
157
     * @param string $table
158
     */
159
    function get_field_name($select, $table, $where) {
160
        if (is_array($where)) {
161
            $where = $where;
0 ignored issues
show
Bug introduced by
Why assign $where to itself?

This checks looks for cases where a variable has been assigned to itself.

This assignement can be removed without consequences.

Loading history...
162
        } else {
163
            $where = array("id" => $where);
164
        }
165
        $field_name = $this->CI->db_model->getSelect($select, $table, $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
166
        $field_name = $field_name->result();
167
        if (isset($field_name) && ! empty($field_name)) {
168
            return $field_name[0]->$select;
169
        } else {
170
            return "";
171
        }
172
    }
173
174
    /**
175
     * @param string $select
176
     * @param string $table
177
     */
178
    function get_field_name_coma_new($select, $table, $where) {
179
        $value = '';
180
        if (is_array($where)) {
181
            $where = $where;
0 ignored issues
show
Bug introduced by
Why assign $where to itself?

This checks looks for cases where a variable has been assigned to itself.

This assignement can be removed without consequences.

Loading history...
182
        } else {
183
            $where = explode(',', $where);
184
        }
185
        $select1 = explode(',', $select);
186
        for ($i = 0; $i < count($where); $i++) {
0 ignored issues
show
Performance Best Practice introduced by
It seems like you are calling the size function count() as part of the test condition. You might want to compute the size beforehand, and not on each iteration.

If the size of the collection does not change during the iteration, it is generally a good practice to compute it beforehand, and not on each iteration:

for ($i=0; $i<count($array); $i++) { // calls count() on each iteration
}

// Better
for ($i=0, $c=count($array); $i<$c; $i++) { // calls count() just once
}
Loading history...
187
            $where_in = array("id" => $where[$i]);
188
189
            $field_name = $this->CI->db_model->getSelect($select, $table, $where_in);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
190
            $field_name = $field_name->result();
191
            if (isset($field_name) && ! empty($field_name)) {
192
                foreach ($select1 as $sel) {
193
                    if ($sel == 'number') {
194
                        $value .= "(".$field_name[0]->$sel.")";
195
                    } else {
196
                        $value .= $field_name[0]->$sel." ";
197
                    }
198
                }
199
            } else {
200
                $value = "";
201
            }
202
        }
203
        return rtrim($value, ',');
204
    }
205
206
    function check_did_avl($select, $table, $where) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
207
        $accountinfo = $this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
208
        $flag_status = "";
209
        $where = array("number" => $where);
210
        $field_name = $this->CI->db_model->getSelect("id,accountid,parent_id", 'dids', $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
211
        $field_name = $field_name->result();
212
        if (isset($field_name) && ! empty($field_name)) {
213
            if (isset($field_name[0]) && $accountinfo['type'] != 1) {
214
                if ($field_name[0]->accountid != 0 && $field_name[0]->parent_id == 0) {
215
                    $flag_status = "<a href='../did_list_release/".$field_name[0]->id."' title='Release' onClick='return get_reliase_msg();'><span class=' label label-sm label-inverse_blue arrowed_blue-in' title='release'>Release(C)<span></a>";
216
                } else if ($field_name[0]->parent_id != 0) {
217
                    $flag_status = "<a href='../did_list_release/".$field_name[0]->id."' title='Release' onClick='return get_reliase_msg();'><span class=' label label-sm label-inverse_blue arrowed_blue-in' title='release'>Release(R)</span></a>";
218
                } else {
219
                    $flag_status = "<span class=' label label-sm label-inverse arrowed-in' title='Not in use'>Not in use</span>";
220
                }
221
            } else {
222
                $reseller_id = $accountinfo['type'] != 1 ? 0 : $accountinfo['id'];
223
                $where = array("note" => $field_name[0]->number, 'parent_id' => $reseller_id);
224
                $field_name_re = $this->CI->db_model->getSelect("reseller_id", 'reseller_pricing', $where);
225
                $field_name_re = $field_name_re->result();
226
227
                if (isset($field_name_re) && ! empty($field_name_re)) {
228
                    $flag_status = "<a href='../did_list_release/".$field_name[0]->id."' title='Release' onClick='return get_reliase_msg();'><span class=' label label-sm label-inverse_blue arrowed_blue-in' title='release'>Release(R)</span></a>";
229
                } else {
230
                    $flag_status = "<span class=' label label-sm label-inverse arrowed-in' title='Not in use'>Not in use</span>";
231
                }
232
            }
233
        } else {
234
            $flag_status = "<span class=' label label-sm label-inverse arrowed-in' title='Not in use'>Not in use</span>";
235
        }
236
        return $flag_status;
237
    }
238
    function check_did_avl_export($number) {
239
      $this->CI->db->where('number', $number);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
240
      $this->CI->db->select('id,accountid,parent_id');
241
      $status = null;
242
      $did_info = (array)$this->CI->db->get('dids')->first_row();
243
      $accountinfo = $this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
244
      if ($did_info['accountid'] == 0 && $did_info['parent_id'] == 0) {
245
	$status = 'Not in use';
246
      }
247
      elseif ($accountinfo['type'] != 1) {
248
	if ($did_info['accountid'] == 0 && $did_info['parent_id'] > 0) {
249
	  $status = 'Purchase by Reseller';
250
	}
251
	if ($did_info['accountid'] > 0 && $did_info['parent_id'] == 0) {
252
	  $status = 'Purchase by Customer';
253
	}
254
      } else {
255
       $where_arr = array('note'=>$did_info['number'], "parent_id"=>$accountinfo['id']);
256
       $this->db->where($where);
0 ignored issues
show
Bug introduced by
The property db does not exist. Did you maybe forget to declare it?

In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:

class MyClass { }

$x = new MyClass();
$x->foo = true;

Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:

class MyClass {
    public $foo;
}

$x = new MyClass();
$x->foo = true;
Loading history...
Bug introduced by
The variable $where does not exist. Did you forget to declare it?

This check marks access to variables or properties that have not been declared yet. While PHP has no explicit notion of declaring a variable, accessing it before a value is assigned to it is most likely a bug.

Loading history...
257
       $this->CI->db->select('reseller_id,parent_id');
258
       $reseller_pricing = (array)$this->db->get('reseller_pricing')->first_row();
259
       if ($reseller_pricing['reseller_id'] == 0 && $did_info['accountid'] == 0 && $did_info['parent_id'] == $accountinfo['id']) {
260
        $status = 'Not in use';
261
       }
262
       if ($reseller_pricing['reseller_id'] == 0 && $did_info['accountid'] == 0) {
263
       $status = 'Not in use';
264
       }
265
      }
266
      return $status;
267
      
268
    }
269
    function check_did_avl_reseller($select, $table, $where) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
270
        $accountinfo = $this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
271
        $flag_status = "<span class=' label label-sm label-inverse arrowed-in' title='Not in use'>Not in use</span>";
272
        $this->CI->db->where('number', $where);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
273
        $this->CI->db->select('id,accountid,parent_id,number');
274
        $did_info = (array)$this->CI->db->get('dids')->first_row();
275
        if ($did_info['accountid'] > 0 && $did_info['parent_id'] == $accountinfo['id']) {
276
	    $flag_status = "<a href='../did_list_release/".$did_info['id']."' title='Release' onClick='return get_reliase_msg();'><span class=' label label-sm label-inverse_blue arrowed_blue-in' title='release'>Release(C)<span></a>";
277
	}
278
        else if ($accountinfo['type'] != 1 && $did_info['parent_id'] != $accountinfo['id']) {
279
	    $flag_status = "<a href='../did_list_release/".$did_info['id']."' title='Release' onClick='return get_reliase_msg();'><span class=' label label-sm label-inverse_blue arrowed_blue-in' title='release'>Release(R)</span></a>";
280
        } else {
281
	    $reseller_id = $accountinfo['type'] != 1 ? 0 : $accountinfo['id'];
282
	    $where = array("note" => $did_info['number'], 'parent_id'=>$reseller_id);
283
            $this->CI->db->where($where);
284
	    $this->CI->db->select('reseller_id,id');
285
	    $reseller_pricing_info = (array)$this->CI->db->get('reseller_pricing')->first_row();
286
	    if (isset($reseller_pricing_info) && ! empty($reseller_pricing_info)) {
287
		  $flag_status = "<a href='../did/did_reseller_edit/delete/".$reseller_pricing_info['id']."' title='Reliase' onClick='return get_reliase_msg();'><span class=' label label-sm label-inverse_blue arrowed_blue-in' title='release'>Release(R)</span></a>";
288
	    } else {
289
	      $flag_status = "<span class=' label label-sm label-inverse arrowed-in' title='Not in use'>Not in use</span>";
290
	    }
291
        }
292
        return $flag_status;
293
    }
294
295
//    get data for Comma seprated
296
    function get_field_name_coma($select, $table, $where) {
297
        $value = '';
298
        if (is_array($where)) {
299
            $where = $where;
0 ignored issues
show
Bug introduced by
Why assign $where to itself?

This checks looks for cases where a variable has been assigned to itself.

This assignement can be removed without consequences.

Loading history...
300
        } else {
301
            $where = explode(',', $where);
302
        }
303
        for ($i = 0; $i < count($where); $i++) {
0 ignored issues
show
Performance Best Practice introduced by
It seems like you are calling the size function count() as part of the test condition. You might want to compute the size beforehand, and not on each iteration.

If the size of the collection does not change during the iteration, it is generally a good practice to compute it beforehand, and not on each iteration:

for ($i=0; $i<count($array); $i++) { // calls count() on each iteration
}

// Better
for ($i=0, $c=count($array); $i<$c; $i++) { // calls count() just once
}
Loading history...
304
            $where_in = array("id" => $where[$i]);
305
306
            $field_name = $this->CI->db_model->getSelect($select, $table, $where_in);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
307
            $field_name = $field_name->result();
308
            if (isset($field_name) && ! empty($field_name)) {
309
                $value .= $field_name[0]->$select.",";
310
            } else {
311
                $value = "";
312
            }
313
        }
314
        return rtrim($value, ',');
315
    }
316
317
    function set_invoice_option($select = "", $table = "", $call_type = "", $edit_value = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $call_type is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
318
319
        $invoice_date = false;
320
        $uri_segment = $this->CI->uri->segments;
0 ignored issues
show
Bug introduced by
The property uri does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
321
        if (isset($uri_segment[3]) && $uri_segment[3] > 0 && empty($edit_value)) {
322
            $field_name = $this->CI->db_model->getSelect("sweep_id,invoice_day", "accounts", array("id" => $uri_segment[3]));
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
323
            $field_name = $field_name->result_array();
324
            $select = $field_name[0]["sweep_id"];
325
            $invoice_date = $field_name[0]["invoice_day"];
326
        } else {
327
            $invoice_date = $edit_value;
328
        }
329
        if ($select == "" || $select == "0") {
330
            $daily_arr = array("0" => "0");
331
            return $daily_arr;
332
        }
333
        if ($select == 1) {
334
            $week_arr = array("1" => "Monday", "2" => "Tuesday", "3" => "Wednesday", "4" => "Thursday", "5" => "Friday",
335
                "6" => "Saturday", "7" => "Sunday");
336
            $rawDate = date("Y-m-d");
337
            $day = date('N', strtotime($rawDate));
338
            if (isset($uri_segment[3])) {
339
                return $week_arr;
340
            } else {
341
                $week_drp = form_dropdown(array("name" => 'invoice_day', 'style'=>"width: 100% !important;", "class" => "invoice_day"), $week_arr, $day);
0 ignored issues
show
Documentation introduced by
array('name' => 'invoice...lass' => 'invoice_day') is of type array<string,string,{"na...ing","class":"string"}>, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
Documentation introduced by
$day is of type string, but the function expects a array.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
342
                return $week_drp;
343
            }
344
        }
345
        if ($select != 0 && $select != 1) {
346
            for ($i = 1; $i < 29; $i++) {
347
                $mon_arr[$i] = $i;
0 ignored issues
show
Coding Style Comprehensibility introduced by
$mon_arr was never initialized. Although not strictly required by PHP, it is generally a good practice to add $mon_arr = array(); before regardless.

Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.

Let’s take a look at an example:

foreach ($collection as $item) {
    $myArray['foo'] = $item->getFoo();

    if ($item->hasBar()) {
        $myArray['bar'] = $item->getBar();
    }

    // do something with $myArray
}

As you can see in this example, the array $myArray is initialized the first time when the foreach loop is entered. You can also see that the value of the bar key is only written conditionally; thus, its value might result from a previous iteration.

This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.

Loading history...
348
            }
349
            if (isset($uri_segment[3]) && $uri_segment[3] > 0 && empty($edit_value)) {
350
                return $mon_arr;
0 ignored issues
show
Bug introduced by
The variable $mon_arr does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
351
            } else {
352
                $day = $invoice_date > 0 ? $invoice_date : date('d');
353
                $month_drp = form_dropdown(array("name" => 'invoice_day', "class" => "width_dropdown invoice_day"), $mon_arr, $day);
0 ignored issues
show
Documentation introduced by
array('name' => 'invoice..._dropdown invoice_day') is of type array<string,string,{"na...ing","class":"string"}>, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
354
                return $month_drp;
355
            }
356
        }
357
    }
358
359
    function set_status($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
360
        $status_array = array('0' => 'Active', '1' => 'Inactive',);
361
        return $status_array;
362
    }
363
364
    function set_routetype($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
365
        $status_array = array('0' => 'LCR', '1' => 'COST',);
366
        return $status_array;
367
    }
368
369
    function set_prorate($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
370
        $status_array = array('0' => 'Yes', '1' => 'No',);
371
        return $status_array;
372
    }
373
    /*
374
      Add For Package Inbound or Outbound or both?
375
    */
376
    function set_package_type($applicable_for = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $applicable_for is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
377
        $package_applicable = array('0' => 'Outbound', '1' => 'Inbound', '2' => 'Both');
378
        return $package_applicable;
379
    }
380
381
    function get_package_type($status = '', $table = "", $applicable_for) {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
382
        $package_applicable = array('0' => 'Outbound', '1' => 'Inbound', '2' => 'Both');
383
        return $package_applicable[$applicable_for];
384
    }
385
    /******************************************** */
386
    function set_allow($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
387
        $status_array = array('1' => 'Yes', '0' => 'No');
388
        return $status_array;
389
    }
390
    function set_allow_invoice($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
391
        $status_array = array('1' => 'Yes', '0' => 'No');
392
        return $status_array;
393
    }
394
    function set_pin_allow($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
395
        $status_array = array('0' => 'Disable', '1' => 'Enable');
396
        return $status_array;
397
    }
398
    function set_pin_allow_customer($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
399
        $status_array = array('0' => 'No', '1' => 'Yes');
400
        return $status_array;
401
    }
402
    function get_allow($select = "", $table = "", $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
403
        return ($status == 1) ? "Yes" : "No";
404
    }
405
406
    function set_call_type($call_type = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $call_type is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
407
        $call_type_array = array("-1" => "--Select--", '1' => 'DID-Local', "3"=>"SIP-DID", '0' => 'PSTN', '2' => 'Other',);
408
        return $call_type_array;
409
    }
410
    function set_call_type_search() {
411
	$call_type_array = array("" => "--Select--", '1' => 'DID-Local', "3"=>"SIP-DID", '0' => 'PSTN', '2' => 'Other',);
412
        return $call_type_array;
413
    }
414
    function get_call_type($select = "", $table = "", $call_type) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
415
        $call_type_array = array('1' => 'DID-Local', "3"=>"SIP-DID", '0' => 'PSTN', '2' => 'Other', '-1'=>"");
416
        return $call_type_array[$call_type];
417
    }
418
419
    function get_custom_call_type($call_type) {
420
        $call_type_array = array('DID-Local' => '1', "SIP-DID"=>"3", 'PSTN' => '0', 'Other' => '2', ""=>"-1");
421
        return $call_type_array[$call_type];
422
    }
423
424
    function set_sip_config_option($option = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $option is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
425
        $config_option = array("true" => "True", "false" => "False");
426
        return $config_option;
427
    }
428
429
    function get_entity_type($select = "", $table = "", $entity_type) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
430
        $entity_array = array('-1' => "Administrator", '0' => 'Customer', '1' => 'Reseller', '2' => 'Admin', '3' => "Provider", "4" => "Subadmin", "5" => "Callshop");
431
        return($entity_array[$entity_type]);
432
    }
433
434
    function set_entity_type_customer($entity_type = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $entity_type is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
435
        $entity_array = array('' => "--Select--", '0' => 'Customer', '3' => "Provider");
436
        return $entity_array;
437
    }
438
439
    function set_entity_type_admin($entity_type = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $entity_type is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
440
        $entity_array = array('' => "--Select--", '2' => 'Admin', "4" => "Sub Admin");
441
        return $entity_array;
442
    }
443
444
	function set_entity_type_email_mass($entity_type = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $entity_type is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
445
        $entity_array = array('' => "--Select--", '0' => 'Customer', '1'=>'Reseller', '3' => "Provider");
446
        return $entity_array;
447
    }
448
449
    function set_sip_config_options($option = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $option is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
450
        $config_option = array("false" => "False", "true" => "True");
451
        return $config_option;
452
    }
453
454
    function set_sip_config_default($option = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $option is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
455
        $config_option = array("" => "--SELECT--", "false" => "False", "true" => "True");
456
        return $config_option;
457
    }
458
459
    function set_sip_bind_params($option = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $option is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
460
        $config_option = array("" => "--SELECT--", "udp" => "UDP", "tcp" => "TCP");
461
        return $config_option;
462
    }
463
464
    function set_sip_vad_option() {
465
        $config_option = array("in" => "In", "out" => "Out", "both" => "Both");
466
        return $config_option;
467
    }
468
469
    function set_sip_drp_option($option = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $option is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
470
        $status_array = array('no' => 'No', 'yes' => 'Yes');
471
        return $status_array;
472
    }
473
474
    function set_status_callingcard($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
475
        $status_array = array('1' => 'Active', '0' => 'Inactive', '2' => 'Deleted');
476
        return $status_array;
477
    }
478
   /*
479
   show status on all grid
480
   */
481
   function get_status($select = "", $table = "", $status) {
482
       if ($select != 'export') {
483
        $status_tab = $this->encode($table);
484
        $status['table'] = "'".$status_tab."'";
485
        if ($status['status'] == 0) {
486
	$status_array = '<div style="width: 100%; text-align: -moz-center; padding: 0;"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id=switch'.$status['id'].' value='.$status['status'].' onclick="javascript:processForm('.$status['id'].','.$status['table'].')" checked>
487
	<label class="onoffswitch-label" for=switch'.$status["id"].'>
488
     	<span class="onoffswitch-inner"></span>
489
	</label></div>';
490
	} else {
491
	$status_array = '<div style="width: 100%; text-align: -moz-center; padding: 0;"><input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id=switch'.$status['id'].' value='.$status['status'].' onclick="javascript:processForm('.$status['id'].','.$status['table'].')">
492
	<label class="onoffswitch-label" for=switch'.$status["id"].'>
493
     	<span class="onoffswitch-inner"></span>
494
	</label></div>';
495
	}
496
	} else {
497
		return ($status == 0) ? "Active" : "Inactive";
498
	}
499
	return $status_array;
500
    }
501
   
502
    function get_routetype($select = "", $table = "", $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
503
        return ($status == 0) ? "LCR" : "COST";
504
    }
505
   
506
   function get_prorate($select = "", $table = "", $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
507
        return ($status == 0) ? "Yes" : "No";
508
    }
509
    
510
    function get_import_status($status) {
511
     return strtolower(trim($status)) == 'active' ? 0 : 1;
512
     
513
    }
514
    function get_did_status($select, $table, $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
515
    
516
      return ($status['status'] == 0) ? "<span class='label label-sm label-inverse arrowed-in' title='release'>Active<span>" : "<span class='label label-sm' title='release'>Inactive<span>";
517
    }
518
   
519
520
    /**
521
     * @param string $select
522
     */
523
    function get_invoice_date($select, $accountid = 0, $reseller_id, $order_by = 'id') {
524
        $where = array("reseller_id" => $reseller_id);
525
        if ($accountid > 0) {
526
            $where['accountid'] = $accountid;
527
        }
528
        $invoice_res = $this->CI->db_model->select($select, "invoices", $where, $order_by, "DESC", "1", "0");
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
529
        if ($invoice_res->num_rows > 0) {
530
            $invoice_info = (array)$invoice_res->first_row();
531
            return $invoice_info[$select];
532
        }
533
        return false;
534
    }
535
536
    function convert_to_date($select = '', $table = '', $from_date) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
537
538
        $from_date = date('Y-m-d', strtotime($from_date));
539
        return $from_date;
540
    }
541
542
543
    function get_account_balance($select = "", $table = "", $amount) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
544
        $this->CI->load->model('common_model');
0 ignored issues
show
Bug introduced by
The property load does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
545
        if ($amount == 0) {
546
            return $amount;
547
        } else {
548
            $balance = $this->CI->common_model->add_calculate_currency(($amount), "", '', true, true);
0 ignored issues
show
Bug introduced by
The property common_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
549
550
            return $balance;
551
        }
552
    }
553
554
    function convert_to_currency($select = "", $table = "", $amount) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
555
        $this->CI->load->model('common_model');
0 ignored issues
show
Bug introduced by
The property load does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
556
        return $this->CI->common_model->calculate_currency($amount, '', '', true, false);
0 ignored issues
show
Bug introduced by
The property common_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
557
    }
558
    function account_number_icon($select = "", $table = "", $number) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
559
    $return_value = '';
560
    $where = array('number'=>$number);
561
    $account_res = (array)$this->CI->db->get_where("accounts", $where)->first_row();
562 View Code Duplication
    if ($account_res['type'] == 0) {
563
    $return_value = '<div class="flx_font flx_magenta" title="Customer">C</div>'." <span title='Edit'>".$account_res['number']." </span>";    
564
    }
565 View Code Duplication
    if ($account_res['type'] == 3) {
566
    $return_value = '<div class="flx_font flx_blue" title="Provider">P</div>'." <span title='Edit'>".$account_res['number']." </span>";
567
    }
568 View Code Duplication
    if ($account_res['type'] == -1 || $account_res['type'] == 2) {
569
      $return_value = '<div class="flx_font flx_pink" title="Admin">A</div>'." <span title='Edit'>".$account_res['number']." </span>";
570
    }
571 View Code Duplication
    if ($account_res['type'] == 4) {
572
      $return_value = '<div class="flx_font flx_purple" title="Subadmin">S</div>'." <span title='Edit'>".$account_res['number']." </span>";
573
    }
574
    return $return_value;
575
    }
576
    function convert_to_currency_account($select = "", $table = "", $amount) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
577
        $this->CI->load->model('common_model');
0 ignored issues
show
Bug introduced by
The property load does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
578
        return $this->CI->common_model->calculate_currency_customer($amount);
0 ignored issues
show
Bug introduced by
The property common_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
579
    }
580
581
    function get_paid_status($select = "", $table = "", $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
582
        return ($status == 1) ? "Paid" : "Unpaid";
583
    }
584
585
    function set_account_type($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
586
        $status_array = array('0' => 'Prepaid', '1' => 'Postpaid');
587
        return $status_array;
588
    }
589
590
    function set_account_type_search($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
591
        $status_array = array('' => "--Select--", '0' => 'Prepaid', '1' => 'Postpaid');
592
        return $status_array;
593
    }
594
595
    function get_account_type($select = "", $table = "", $PTE) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
596
        return ($PTE == 1) ? "Postpaid" : "Prepaid";
597
    }
598
599
    /******
600
      Payment to refill
601
    ******/
602
603 View Code Duplication
    function get_refill_by($select = "", $table = "", $type) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
604
        if ($type == '-1') {
605
            $type = "Admin";
606
        } else {
607
            $type = $this->get_field_name("number", "accounts", array("id" => $type));
608
        }
609
        return $type;
610
    }
611
612
    /******************* */
613
614 View Code Duplication
    function get_payment_by($select = "", $table = "", $type) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
615
        if ($type == '-1') {
616
            $type = "Admin";
617
        } else {
618
            $type = $this->get_field_name("number", "accounts", array("id" => $type));
619
        }
620
        return $type;
621
    }
622
623
    function set_payment_type($payment_type = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $payment_type is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
624
        /*
625
         * Recharge to Refill
626
         */
627
        $status_array = array('0' => 'Refill', '1' => 'Postcharge',);
628
        return $status_array;
629
    }
630
631
    function search_int_type($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
632
        $status_array = array('1' => 'Is Equal To', '2' => 'Is Not Equal To', '3' => 'Greater Than', '4' => 'Less Than', '5' => 'Greater Or Equal Than', '6' => 'Less Or Equal Than');
633
        return $status_array;
634
    }
635
636
    function update_int_type($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
637
        $status_array = array('1' => 'Preserve', '2' => 'Set To', '3' => 'Increase By', '4' => 'Decrease By');
638
        return $status_array;
639
    }
640
641
    function update_drp_type($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
642
        $status_array = array('1' => 'Preserve', '2' => 'Set To');
643
        return $status_array;
644
    }
645
646
    function search_string_type($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
647
        $status_array = array('5'=>"Begins With", '1' => 'Contains', '2' => 'Doesnt Contain', '3' => 'Is Equal To', '4' => 'Is Not Equal To', "6"=>"Ends With");
648
        return $status_array;
649
    }
650
651
    function set_protocal($protpcal = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $protpcal is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
652
        $status_array = array('SIP' => 'SIP', 'IAX2' => 'IAX2', 'Zap' => 'Zap', 'Local' => 'Local', 'OH323' => 'OH323', 'OOH323C' => 'OOH323C');
653
        return $status_array;
654
    }
655
656
    /*
657
     *
658
     * Purpose : Add Profit Margin report
659
     * Version 2.1
660
     */
661
662
    function set_notify_by($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
663
        $status_array = array('' => 'Select Notify By', '0' => 'CSV', '1' => 'Email');
664
        return $status_array;
665
    }
666
667
    function convert_to_percentage($select = "", $table = "", $amount) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
668
        return round($amount, 2)." %";
669
    }
670
671
    function convert_to_minutes($select = "", $table = "", $amount) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
672
        return str_replace('.', ':', round($amount / 60, 2));
673
    }
674
675
    function set_filter_type_search($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
676
        $status_array = array('pricelist_id' => 'Rate Group', 'accountid' => 'Customer', 'reseller_id' => 'Reseller');
677
        return $status_array;
678
    }
679
    
680
    	function set_routetype_status($select = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
681
        $status_array = array("" => "--Select--",
682
            "0" => "LCR",
683
            "1" => "COST"
684
        );
685
        return $status_array;
686
}
687
	
688
689
    //attachment download in email module...
690 View Code Duplication
    function attachment_icons($select = "", $table = "", $attachement = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
691
        if ($attachement != "") {
692
            $array = explode(",", $attachement);
693
            $str = '';	
694
            foreach ($array as $key => $val) {
695
                $link = base_url()."email/email_history_list_attachment/".$val;
696
                $str .= "<a href='".$link."' title='".$val."' class='btn btn-royelblue btn-sm'><i class='fa fa-paperclip fa-fw'></i></a>&nbsp;&nbsp;";
697
            }
698
            return $str;
699
        } else {
700
            return "";
701
        }
702
    }
703
704
    /*     * ************************************************************* */
705
706
    function set_despostion($dis = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $dis is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
707
        $status_array = array("" => "--Select Disposition--",
708
            "UNSPECIFIED" => "UNSPECIFIED",
709
            "UNALLOCATED_NUMBER" => "UNALLOCATED_NUMBER",
710
            "NO_ROUTE_DESTINATION" => "NO_ROUTE_DESTINATION",
711
            "CHANNEL_UNACCEPTABLE" => "CHANNEL_UNACCEPTABLE",
712
            "NORMAL_CLEARING" => "NORMAL_CLEARING",
713
            "SUCCESS" => "SUCCESS",
714
            "USER_BUSY" => "USER_BUSY",
715
            "NO_USER_RESPONSE" => "NO_USER_RESPONSE",
716
            "NO_ANSWER" => "NO_ANSWER",
717
            "CALL_REJECTED" => "CALL_REJECTED",
718
            "NUMBER_CHANGED" => "NUMBER_CHANGED",
719
            "DESTINATION_OUT_OF_ORDER" => "DESTINATION_OUT_OF_ORDER",
720
            "INVALID_NUMBER_FORMAT" => "INVALID_NUMBER_FORMAT",
721
            "FACILITY_REJECTED" => "FACILITY_REJECTED",
722
            "NORMAL_UNSPECIFIED" => "NORMAL_UNSPECIFIED",
723
            "NORMAL_CIRCUIT_CONGESTION" => "NORMAL_CIRCUIT_CONGESTION",
724
            "NETWORK_OUT_OF_ORDER" => "NETWORK_OUT_OF_ORDER",
725
            "NORMAL_TEMPORARY_FAILURE" => "NORMAL_TEMPORARY_FAILURE",
726
            "SWITCH_CONGESTION" => "SWITCH_CONGESTION",
727
            "FACILITY_NOT_SUBSCRIBED" => "FACILITY_NOT_SUBSCRIBED",
728
            "OUTGOING_CALL_BARRED" => "OUTGOING_CALL_BARRED",
729
            "BEARERCAPABILITY_NOTAUTH" => "BEARERCAPABILITY_NOTAUTH",
730
            "BEARERCAPABILITY_NOTAVAIL" => "BEARERCAPABILITY_NOTAVAIL",
731
            "SERVICE_UNAVAILABLE" => "SERVICE_UNAVAILABLE",
732
            "BEARERCAPABILITY_NOTIMPL" => "BEARERCAPABILITY_NOTIMPL",
733
            "CHAN_NOT_IMPLEMENTED" => "CHAN_NOT_IMPLEMENTED",
734
            "FACILITY_NOT_IMPLEMENTED" => "FACILITY_NOT_IMPLEMENTED",
735
            "SERVICE_NOT_IMPLEMENTED" => "SERVICE_NOT_IMPLEMENTED",
736
            "INCOMPATIBLE_DESTINATION" => "INCOMPATIBLE_DESTINATION",
737
            "RECOVERY_ON_TIMER_EXPIRE" => "RECOVERY_ON_TIMER_EXPIRE",
738
            "ORIGINATOR_CANCEL" => "ORIGINATOR_CANCEL",
739
            "ALLOTTED_TIMEOUT" => "ALLOTTED_TIMEOUT",
740
            "MEDIA_TIMEOUT" => "MEDIA_TIMEOUT",
741
            "PROGRESS_TIMEOUT" => "PROGRESS_TIMEOUT",
742
            "AUTHENTICATION_FAIL" => "AUTHENTICATION_FAIL",
743
			"ACCOUNT_INACTIVE_DELETED" => "ACCOUNT_INACTIVE_DELETED",
744
			"ACCOUNT_EXPIRE" => "ACCOUNT_EXPIRE",
745
			"NO_SUFFICIENT_FUND" => "NO_SUFFICIENT_FUND",
746
			"DESTINATION_BLOCKED" => "DESTINATION_BLOCKED",
747
			"ORIGNATION_RATE_NOT_FOUND" => "ORIGNATION_RATE_NOT_FOUND",
748
			"RESELLER_COST_CHEAP" => "RESELLER_COST_CHEAP",
749
			"TERMINATION_RATE_NOT_FOUND" => "TERMINATION_RATE_NOT_FOUND",
750
			"DID_DESTINATION_NOT_FOUND" => "DID_DESTINATION_NOT_FOUND",
751
		);
752
		return $status_array;
753
	}
754
755
	function set_calltype($type = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
756
		$status_array = array("" => "--Select Type--",
757
			"STANDARD" => "STANDARD",
758
			"DID" => "DID",
759
			"CALLINGCARD" => "CALLINGCARD",
760
			"FREE" => "FREE",
761
		);
762
		return $status_array;
763
	}
764
765
	function set_search_status($select = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
766
		$status_array = array("" => "--Select--",
767
			"0" => "Active",
768
			"1" => "Inactive"
769
		);
770
		return $status_array;
771
	}
772
        
773
	function set_Billing_Schedule_status($select = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
774
		$status_array = array("" => "--Select--",
775
			"0" => "Daily",
776
			"2" => "Monthly"
777
		);
778
		return $status_array;
779
	}
780
781
	function get_action_buttons($buttons_arr, $linkid) {
782
		$ret_url = '';
783
		if (!empty($buttons_arr) && $buttons_arr != '') {
784
			foreach ($buttons_arr as $button_key => $buttons_params) {
785
				if (strtoupper($button_key) == "EDIT") {
786
					$ret_url .= $this->build_edit_button($buttons_params, $linkid);
787
				}
788
				/*
789
                 *
790
                 * Purpose : Add resend link
791
                 * Version 2.1
792
                 */
793
				if (strtoupper($button_key) == "RESEND") {
794
					$ret_url .= $this->build_edit_button_resend($buttons_params, $linkid);
795
				}
796
				/*                 * ************************************* */
797
				if (strtoupper($button_key) == "EDIT_RESTORE") {
798
					$ret_url .= $this->build_edit_button_restore($buttons_params, $linkid);
799
				}
800
				if (strtoupper($button_key) == "DELETE") {
801
					$ret_url .= $this->build_delete_button($buttons_params->url, $linkid);
802
				}
803
				if (strtoupper($button_key) == "VIEW") {
804
					$ret_url .= $this->build_view_button($buttons_params, $linkid);
805
				}
806
				if (strtoupper($button_key) == "TAXES") {
807
					$ret_url .= $this->build_add_taxes_button($buttons_params, $linkid);
808
				}
809
				if (strtoupper($button_key) == "BLUEBOX_LOGIN") {
810
					$ret_url .= $this->build_bluebox_login($buttons_params->url, $linkid);
0 ignored issues
show
Bug introduced by
The method build_bluebox_login() does not seem to exist on object<common>.

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
811
				}
812
				if (strtoupper($button_key) == "CALLERID") {
813
					$ret_url .= $this->build_add_callerid_button($buttons_params, $linkid);
814
				}
815
				if (strtoupper($button_key) == "PAYMENT") {
816
					$ret_url .= $this->build_add_payment_button($buttons_params->url, $linkid);
817
				}
818
				if (strtoupper($button_key) == "DOWNLOAD") {
819
					$ret_url .= $this->build_add_download_button($buttons_params->url, $linkid);
820
				}
821
				if (strtoupper($button_key) == "START") {
822
					$ret_url .= $this->build_start_button($buttons_params->url, $linkid);
823
				}
824
				if (strtoupper($button_key) == "STOP") {
825
					$ret_url .= $this->build_stop_button($buttons_params->url, $linkid);
826
				}
827
				if (strtoupper($button_key) == "RELOAD") {
828
					$ret_url .= $this->build_reload_button($buttons_params->url, $linkid);
829
				}
830
				if (strtoupper($button_key) == "RESCAN") {
831
					$ret_url .= $this->build_rescan_button($buttons_params->url, $linkid);
832
				}
833
834
				if (strtoupper($button_key) == "DOWNLOAD_DATABASE") {
835
					$ret_url .= $this->build_add_download_database_button($buttons_params->url, $linkid);
836
				}
837
				if (strtoupper($button_key) == "DELETE_ANIMAP") {
838
					$ret_url .= $this->build_delete_button_animap($buttons_params->url, $linkid);
839
				}
840
				if (strtoupper($button_key) == "EDIT_ANIMAP") {
841
					$ret_url .= $this->build_edit_button_animap($buttons_params, $linkid);
842
				}
843
				if (strtoupper($button_key) == "ANIMAP") {
844
					$ret_url .= $this->build_animap_button($buttons_params, $linkid);
845
				}
846
			}
847
		}
848
		return $ret_url;
849
	}
850
851
	function build_delete_button_animap($url, $linkid) {
852
		$link = base_url() . $url . "" . $linkid;
853
		return '<a href="javascript:void(0)" class="btn btn-royelblue btn-sm" title="Delete" onClick="return get_alert_msg_destination(' . $linkid . ');"><i class="fa fa-trash fa-fw"></i></a>';
854
	}
855
856
	function build_edit_button_animap($button_params, $linkid) {
857
		$link = base_url() . $button_params->url . "" . $linkid;
858
		return '<a href="javascript:void(0);" id="destination_new" class="btn btn-royelblue btn-sm" onclick="return get_destination(' . $linkid . ');" title="Update"><i class="fa fa-pencil-square-o fa-fw"></i></a>&nbsp;';
859
	}
860
861
	function build_animap_button($button_params, $linkid) {
862
		$link = base_url() . $button_params->url . "" . $linkid;
863
		return '<a href="' . $link . '" class="btn btn-royelblue btn-sm animap_image" rel="facebox" title="ANI Map"><i class="fa fa-reorder fa-fw"></i></a>&nbsp;';
864
	}
865
866
	function build_edit_button($button_params, $linkid) {
867
		$link = base_url() . $button_params->url . "" . $linkid;
868
       
869
		if ($button_params->mode == 'popup') {
870
			$rel = (isset($button_params->layout) && $button_params->layout != '')?"facebox_".$button_params->layout:"facebox";
871
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" rel="'.$rel.'" title="Edit" ="small"><i class="fa fa-pencil-square-o fa-fw"></i></a>&nbsp;';
872
            
873
		}else if(strpos($link,'customer_edit') !== false){
874
		return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Edit"><i class="fa fa-pencil-square-o fa-fw"></i></a>&nbsp;';
875
		}else {
876
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Edit"><i class="fa fa-pencil-square-o fa-fw"></i></a>&nbsp;';
877
		}
878
	}
879
880
	/**
881
      For Edit on Account number or name
882
	 **/
883
	function build_custome_edit_button($button_params, $field, $linkid) {
884
		$link = base_url() . $button_params->url . "" . $linkid;
885
		if(isset($button_params->layout)){
886 View Code Duplication
			if ($button_params->mode == 'popup') {
887
				return '<a href="' . $link . '" style="cursor:pointer;color:#005298;" rel="facebox_medium" title="Update">' . $field . '</a>&nbsp;';
888
			} else {
889
				return '<a href="' . $link . '" style="cursor:pointer;color:#005298;" title="Edit">' . $field . '</a>&nbsp;';
890
			}
891 View Code Duplication
		} else{ 
892
			if ($button_params->mode == 'popup') {
893
				return '<a href="' . $link . '" style="cursor:pointer;color:#005298;" rel="facebox" title="Update">' . $field . '</a>&nbsp;';
894
			} else {
895
				return '<a href="' . $link . '" style="cursor:pointer;color:#005298;" title="Edit">' . $field . '</a>&nbsp;';
896
			}
897
		}
898
	}
899
900
	/************************************ */
901
902 View Code Duplication
	function build_edit_button_restore($button_params, $linkid) {
903
		$link = base_url() . $button_params->url . "" . $linkid;
904
		if ($button_params->mode == 'popup') {
905
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" rel="facebox" title="Restore" onClick="return get_alert_msg();"><i class="fa fa-reorder fa-fw"></i></a>&nbsp;';
906
		} else {
907
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Restore" onClick="return get_alert_msg_restore();"><i class="fa fa-reorder fa-fw"></i></a>&nbsp;';
908
		}
909
	}
910
911
	function build_delete_button($url, $linkid) {
912
		$flag='0';
913
		$data=  explode("/",$url);
914
		$link = base_url() . $url . "" . $linkid;
915
		foreach($data as $key=>$value){
916
			if($value == 'price_delete')
917
				$flag = '1';
918
			if($value == 'trunk_remove')
919
				$flag='2';
920
			if($value == 'customer_delete' ||$value =='provider_delete')
921
				$flag='3';
922
			if($value == 'reseller_delete')
923
				$flag='4';
924
			}    
925
			if($flag=='1'){
926
				$where=array('pricelist_id'=>$linkid,'deleted !=' =>'1');
927
				$customer_cnt=$this->get_field_count('id','accounts',$where);
928
					$where=array('pricelist_id'=>$linkid);
929
					$rategroup_cnt=$this->get_field_count('id','routes',$where);
930
					if($rategroup_cnt > 0 || $customer_cnt > 0 ){
931
                        
932
						return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Delete" onClick="return get_alert_message('.$rategroup_cnt.','.$customer_cnt.','.$linkid.',1);"><i class="fa fa-trash fa-fw"></i></a>';
933
					}
934
					else{
935
						return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Delete" onClick="return get_alert_msg();"><i class="fa fa-trash fa-fw"></i></a>';
936
					}
937
			}
938
			if($flag=='2'){
939
				$where=array('trunk_id'=>$linkid);
940
				$trunk_cnt=$this->get_field_count('id','outbound_routes',$where);
941
				if($trunk_cnt > 0){
942
					return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Delete" onClick="return get_alert_message('.$trunk_cnt.',null,'.$linkid.',2);"><i class="fa fa-trash fa-fw"></i></a>';
943
				}
944
				else{
945
					return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Delete" onClick="return get_alert_msg();"><i class="fa fa-trash fa-fw"></i></a>';
946
				}
947
			}
948
			if($flag == '3'){
949
		return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Delete" onClick="return get_alert_message(0,null,'.$linkid.',3);">
950
		<i class="fa fa-trash fa-fw"></i></a>';
951
			}
952
			if($flag == '4'){
953
		return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Delete" onClick="return get_alert_message(0,null,'.$linkid.',4);">
954
		<i class="fa fa-trash fa-fw"></i></a>';
955
			}
956
			if($flag=='0' && $url.$linkid !='accounts/admin_delete/1' ){
957
				return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Delete" onClick="return get_alert_msg();"><i class="fa fa-trash fa-fw"></i></a>';
958
			}  
959
	}
960
961
	function build_view_button($button_params, $linkid) {
962
		$link = base_url() . $button_params->url . "" . $linkid;
963
		if ($button_params->mode == 'popup') {
964
			$rel = (isset($button_params->layout) && $button_params->layout != '')?"facebox_".$button_params->layout:"facebox";
965
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" rel="'.$rel.'" title="View Details"><i class="fa fa-reorder fa-fw"></i></a>&nbsp;';
966
		} else {
967
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="View Details"><i class="fa fa-reorder fa-fw"></i></a>&nbsp;';
968
		}
969
	}
970
971 View Code Duplication
	function build_add_taxes_button($button_params, $linkid) {
972
		$link = base_url() . $button_params->url . "" . $linkid;
973
		if ($button_params->mode == 'popup') {
974
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" rel="facebox" title="Add Account Taxes"><i class="fa fa-reorder fa-fw"></i></a>&nbsp;';
975
		} else {
976
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Add Account Taxes"><i class="fa fa-reorder fa-fw"></i></a>&nbsp;';
977
		}
978
	}
979
980
	function build_add_download_database_button($url, $linkid) {
981
		$link = base_url() . $url . "" . $linkid;
982
		return '<a href="' . $link . '" class="btn btn-royelblue btn-sm "  title="Download Database" ><i class="fa-fw fa fa-file-archive-o"></i></a>&nbsp;';
983
	}
984
985 View Code Duplication
	function build_add_callerid_button($button_params, $linkid) {
986
		$link = base_url() . $button_params->url . "" . $linkid;
987
		if ($button_params->mode == 'popup') {
988
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" rel="facebox" title="Force Caller Id"><i class="fa fa-mobile-phone fa-fw"></i></a>&nbsp;';
989
		} else {
990
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="CallerID"><i class="fa fa-mobile-phone fa-fw"></i></a>&nbsp;';
991
		}
992
	}
993
994
	function build_start_button($url, $linkid) {
995
		$link = base_url() . $url . "" . $linkid;
996
997
		return '<a href="' . $link . '" class=""  title="Start" style="text-decoration:none;color: #428BCA;"><b>Start |</b></a>&nbsp;';
998
	}
999
1000
	function build_stop_button($url, $linkid) {
1001
		$link = base_url() . $url . "" . $linkid;
1002
		return '<a href="' . $link . '" class=""  title="Stop" style="text-decoration:none;color: #428BCA;" ><b>Stop |</b></a>&nbsp;';
1003
	}
1004
1005
	function build_reload_button($url, $linkid) {
1006
		$link = base_url() . $url . "" . $linkid;
1007
		return '<a href="' . $link . '" class=""  title="reload" style="text-decoration:none;color: #428BCA;"><b>Reload |</b></a>&nbsp;';
1008
	}
1009
1010
	function build_rescan_button($url, $linkid) {
1011
		$link = base_url() . $url . "" . $linkid;
1012
		return '<a href="' . $link . '" class=""  title="rescan" style="text-decoration:none;color: #428BCA;"><b>Rescan</b></a>&nbsp;';
1013
	}
1014
1015
	function build_add_payment_button($url, $linkid) {
1016
		$link = base_url() . $url . "" . $linkid;
1017
		return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" rel="facebox" title="Refill" ><i class="fa fa-usd fa-fw"></i></a>&nbsp;';
1018
	}
1019
1020
	function build_add_download_button($url, $linkid) {
1021
		$link = base_url() . $url . "" . $linkid;
1022
		return '<a href="' . $link . '" class="btn btn-royelblue btn-sm"  title="Download Invoice" ><i class="fa fa-cloud-download fa-fw"></i></a>&nbsp;';
1023
	}
1024
1025
	/*
1026
     * Purpose : Add following for resent icon
1027
     * Version 2.1
1028
     */
1029
1030 View Code Duplication
	function build_edit_button_resend($button_params, $linkid) {
1031
		$link = base_url() . $button_params->url . "" . $linkid;
1032
		if ($button_params->mode == 'popup') {
1033
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" rel="facebox" title="Resend Mail"><i class="fa fa-repeat"></i></a>&nbsp;';
1034
		} else {
1035
			return '<a href="' . $link . '" class="btn btn-royelblue btn-sm" title="Resend Mail"><i class="fa fa-repeat"></i></a>&nbsp;';
1036
		}
1037
	}
1038
1039
	/*
1040
     * ----------------------------------------------------------------------------
1041
     */
1042
1043
	function get_only_numeric_val($select = "", $table = "", $string) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1044
		return filter_var($string, FILTER_SANITIZE_NUMBER_INT);
1045
	}
1046
1047
	function mail_to_users($type, $accountinfo, $attachment = "", $amount = "") {
1048
		$subject = "";
1049
		$settings_reply_email = '[email protected]';
1050
		$reseller_id=$accountinfo['reseller_id'] > 0 ? $accountinfo['reseller_id'] : 0;
1051
		$where="accountid IN ('".$reseller_id."','1')";
1052
		$this->CI->db->where($where);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1053
		$this->CI->db->select('emailaddress');
1054
		$this->CI->db->order_by('accountid', 'desc');
1055
		$this->CI->db->limit(1);
1056
		$invoiceconf = $this->CI->db->get('invoice_conf');
1057
		$invoiceconf = (array)$invoiceconf->first_row();
1058
		$settings_reply_email=$invoiceconf['emailaddress'];
1059
		$company_name=Common_model::$global_config['system_config']['company_name'];
1060
		$company_website=Common_model::$global_config['system_config']['company_website'];
1061
		$where = array('name' => $type);
1062
		$query = $this->CI->db_model->getSelect("*", "default_templates", $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1063
		$query = $query->result();
1064
		$message = $query[0]->template;
1065
		$useremail = $accountinfo['email'];
1066
		$message = html_entity_decode($message);
1067
		$message = str_replace("#COMPANY_EMAIL#", $settings_reply_email, $message);
1068
		$message = str_replace("#COMPANY_NAME#", $company_name, $message);
1069
		$message = str_replace("#COMPANY_WEBSITE#", $company_website, $message);
1070
		$message = str_replace("</p>", "", $message);
1071
		if(isset($accountinfo['refill_amount']) && $accountinfo['refill_amount']!= ""){
1072
			$refillamount = $accountinfo['refill_amount'];
1073
		} else{
1074
			$refillamount = "0";
1075
		}
1076
		
1077
		switch ($type) {
1078
			case 'email_add_user':
1079
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1080
				$message = str_replace('#NUMBER#', $accountinfo['number'], $message);
1081
				$message = str_replace('#PASSWORD#', $accountinfo['password'], $message);
1082
				$message = str_replace('#LINK#', $accountinfo['confirm'], $message);
1083
				break;
1084
			case 'email_forgot_user':
1085
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1086
				$message = str_replace('#NUMBER#', $accountinfo['number'], $message);
1087
				$message = str_replace('#PASSWORD#', $accountinfo['password'], $message);
1088
				$message = str_replace('#LINK#', $accountinfo['link'], $message);
1089
				break;
1090
1091 View Code Duplication
			case 'email_forgot_confirmation':
1092
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1093
				$message = str_replace('#CONFIRM#', $accountinfo['confirm'], $message);
1094
				break;
1095
1096 View Code Duplication
			case 'email_signup_confirmation':
1097
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1098
				$message = str_replace('#CONFIRM#', $accountinfo['confirm'], $message);
1099
				break;
1100 View Code Duplication
			case 'add_sip_device':
1101
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1102
				$message = str_replace('#USERNAME#', $accountinfo['number'], $message);
1103
				$message = str_replace('#PASSWORD#', $accountinfo['password'], $message);
1104
				break;
1105
                              
1106 View Code Duplication
			case 'voip_account_refilled':
1107
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1108
				$message = str_replace('#REFILLBALANCE#', $accountinfo['refill_amount'], $message);
1109
				$message = str_replace('#BALANCE#', $accountinfo['refill_amount'] + $accountinfo['balance'], $message);
1110
				break;
1111
			case 'voip_child_account_refilled':
1112
				$reseller_number= $this->CI->common->get_field_name('number', 'accounts', $accountinfo['reseller_id']);
0 ignored issues
show
Bug introduced by
The property common does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1113
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1114
				$message = str_replace('#REFILLBALANCE#', $accountinfo['refill_amount'], $message);
1115
				$message = str_replace('#BALANCE#', $accountinfo['balance'], $message);
1116
				$message = str_replace('#ACCOUNTNUMBER#',$reseller_number, $message);
1117
				break;
1118 View Code Duplication
			case 'add_subscription':
1119
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1120
				break;
1121 View Code Duplication
			case 'remove_subscription':
1122
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1123
				break;
1124 View Code Duplication
			case 'add_package':
1125
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1126
				break;
1127 View Code Duplication
			case 'remove_package':
1128
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1129
				break;
1130
			case 'email_calling_card':
1131
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1132
				$message = str_replace('#CARDNUMBER#', $accountinfo['cardnumber'], $message);
1133
				$message = str_replace('#PIN#', $accountinfo['pin'], $message);
1134
				$message = str_replace('#BALANCE#', $accountinfo['balance'], $message);
1135
				break;
1136
			case 'email_low_balance';
1137
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1138
				$to_currency = $this->CI->common->get_field_name('currency', 'currency', $accountinfo['currency_id']);
1139
				$balance = $this->CI->common_model->calculate_currency($accountinfo['balance'], "", $to_currency, true, true);
0 ignored issues
show
Bug introduced by
The property common_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1140
				$message = str_replace('#BALANCE#', $accountinfo['balance'], $message);
1141
				break;
1142
			case 'email_new_invoice';
1143
				$message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1144
				$message = str_replace('#AMOUNT#', $amount, $message);
1145
				$message = str_replace('#INVOICE_NUMBER#', $amount, $message);
1146
				$subject = $query[0]->subject;
1147
				$subject = str_replace("#INVOICE_NUMBER#", $amount, $subject);
1148
				break;
1149
			 case 'email_add_did';
1150 View Code Duplication
				if(isset($accountinfo['did_maxchannels']) && $accountinfo['did_maxchannels']!= ""){
1151
					$accountinfo['did_maxchannels'] = $accountinfo['did_maxchannels'];
1152
				} else if($accountinfo['did_maxchannels'] == "0"){
1153
							$accountinfo['did_maxchannels'] = "Unlimited";
1154
				} else{
1155
					$accountinfo['did_maxchannels'] = "Unlimited";
1156
				}
1157
                $message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1158
                $message = str_replace('#DIDNUMBER#', $accountinfo['did_number'] , $message);
1159
                $message = str_replace('#COUNTRYNAME#',$accountinfo['did_country_id'], $message);
1160
                $message = str_replace('#SETUPFEE#',$accountinfo['did_setup'], $message);
1161
                $message = str_replace('#MONTHLYFEE#',$accountinfo['did_monthlycost'], $message);
1162
                $message = str_replace('#MAXCHANNEL#',$accountinfo['did_maxchannels'], $message);
1163
                $message = str_replace('#NUMBER#', $accountinfo['number'], $message);	
1164
				$subject = $query[0]->subject;
1165
				$subject = str_replace("#NUMBER#", $accountinfo['number'], $subject);
1166
				$subject = str_replace("#DIDNUMBER#", $accountinfo['did_number'], $subject);
1167
                break;
1168
            case 'email_remove_did';
1169
                $message = str_replace('#NAME#', $accountinfo['first_name'] . " " . $accountinfo['last_name'], $message);
1170
                $message = str_replace('#DIDNUMBER#', $accountinfo['did_number'],$message);
1171
                $message = str_replace('#NUMBER#', $accountinfo['number'], $message);	
1172
				$subject = $query[0]->subject;
1173
				$subject = str_replace("#NUMBER#", $accountinfo['number'], $subject);
1174
				$subject = str_replace("#DIDNUMBER#", $accountinfo['did_number'], $subject);
1175
                break;
1176
        }
1177
        
1178
        if ($subject == "") {
1179
			$subject = $query[0]->subject;
1180
			$subject = str_replace("#NAME#", $accountinfo['first_name']." ".$accountinfo['last_name'], $subject);
1181
			$subject = str_replace("#COMPANY_NAME#", $company_name, $subject);	
1182
		}
1183
        $account_id = (isset($accountinfo['last_id']) && $accountinfo['last_id'] != "") ? $accountinfo['last_id'] : $accountinfo['id'];
1184
        $reseller_id = $accountinfo['reseller_id'];
1185
        if ($reseller_id != "0") {
1186
            $reseller_result = $this->CI->db_model->getSelect("email", "accounts", array("id" => $reseller_id));
1187
            $reseller_info = (array)$reseller_result->first_row();
1188
            $settings_reply_email = $reseller_info['email'];
1189
        }
1190
        $this->emailFunction($settings_reply_email, $useremail, $subject, $message, $company_name, $attachment, $account_id, $reseller_id);
1191
1192
    }
1193
1194
    /**
1195
     * @param string $message
1196
     */
1197
    function emailFunction($from, $to, $subject, $message, $company_name = "", $attachment = "", $account_id, $reseller_id) {
0 ignored issues
show
Unused Code introduced by
The parameter $company_name is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1198
        $send_mail_details = array('from' => $from,
1199
            'to' => $to,
1200
            'subject' => $subject,
1201
            'body' => $message,
1202
            'accountid' => $account_id,
1203
            'status' => '1',
1204
            'attachment' => $attachment,
1205
            'reseller_id' => $reseller_id,
1206
        );
1207
                
1208
        $this->CI->db->insert('mail_details', $send_mail_details);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1209
        return $this->CI->db->insert_id();
1210
    }
1211
1212
    /*
1213
      convert GMT id 0000 condition
1214
     */
1215
1216
    function convert_GMT_to($select = "", $table = "", $date) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1217
        if ($date == '0000-00-00 00:00:00') {
1218
            return $date;
1219
        } else {
1220
            return $this->CI->timezone->display_GMT($date);
0 ignored issues
show
Bug introduced by
The property timezone does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1221
        }
1222
    }
1223
1224
    function convert_GMT($date) {
1225
        return $this->CI->timezone->convert_to_GMT($select = "", $table = "", $date);
0 ignored issues
show
Bug introduced by
The property timezone does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1226
    }
1227
1228
    function convert_to_ucfirst($select = "", $table = "", $str_value) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1229
        return ucfirst($str_value);
1230
    }
1231
1232
    function set_charge_type($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1233
        $status_array = array('1' => 'Accounts', '2' => 'Rate Group');
1234
        return $status_array;
1235
    }
1236
1237
    function build_concat_string($select, $table, $id_where = '') {
1238
        $select_params = explode(',', $select);
1239
        $where = array("1");
1240
        if ($id_where != '') {
1241
            $where = array("id" => $id_where);
1242
        }
1243
        $select_params = explode(',', $select);
1244 View Code Duplication
        if (isset($select_params[3])) {
1245
            $cnt_str = " $select_params[0],' ',$select_params[1],' ','(',$select_params[2],')' ";
1246
        } else {
1247
            $cnt_str = " $select_params[0],' (',$select_params[1],')' ";
1248
        }
1249
        $select = "concat($cnt_str) as $select_params[0] ";
1250
        $drp_array = $this->CI->db_model->getSelect($select, $table, $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1251
        $drp_array = $drp_array->result();
1252
        if (isset($drp_array[0])) {
1253
                    return $drp_array[0]->$select_params[0];
1254
        }
1255
    }
1256
1257
    /* 
1258
     * Change invoice_total to invoice details 
1259
     */
1260
1261
    function get_invoice_total($select = '', $table = '', $id) {
0 ignored issues
show
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1262
        $where_arr = array('invoiceid' => $id, 'item_type <>' => "FREE");
1263
        $this->CI->db->where($where_arr);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1264
        $this->CI->db->select('*');
1265
        $result = $this->CI->db->get('invoice_details');
1266
        if ($result->num_rows() > 0) {
1267
            $result = $result->result_array();
1268
	    if ($select == 'debit') {
1269
		if ($result[0]['item_type'] == 'POSTCHARG') {
1270
	            return $this->convert_to_currency('', '', $result[0]['debit']);
1271
		} else {
1272
	            return $this->convert_to_currency('', '', $result[0]['credit']);
1273
		}
1274
	    } else {
1275
		   return $result[0][$select];
1276
	    }
1277
        } else {
1278
            return null;
1279
        }
1280
    }
1281
1282
    function get_array($select, $table_name, $where = false) {
1283
        $new_array = array();
1284
        $select_params = array();
1285
        $select_params = explode(",", $select);
1286
        if (isset($select_params[3])) {
1287
            $cnt_str = " $select_params[1],'(',$select_params[2],' ',$select_params[3],')' ";
1288
            $select = "concat($cnt_str) as $select_params[3] ";
1289
            $field_name = $select_params[3];
1290 View Code Duplication
        } elseif (isset($select_params[2])) {
1291
            $cnt_str = " $select_params[1],' ','(',$select_params[2],')' ";
1292
            $select = "concat($cnt_str) as $select_params[2] ";
1293
            $field_name = $select_params[2];
1294
        } else {
1295
            $select = $select_params[1];
1296
            $field_name = $select_params[1];
1297
        }
1298
        if ($where) {
1299
            $this->CI->db->where($where);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1300
        }
1301
        $this->CI->db->select("$select_params[0],$select", false);
1302
        $result = $this->CI->db->get($table_name);
1303
        foreach ($result->result_array() as $key => $value) {
1304
            $new_array[$value[$select_params[0]]] = $value[$field_name];
1305
        }
1306
        ksort($new_array);
1307
        return $new_array;
1308
    }
1309
1310
    function get_timezone_offset() {
1311
        $gmtoffset = 0;
1312
        $accountinfo = $this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1313
        $account_result = $this->CI->db->get_where('accounts', array('id' => $accountinfo['id']));
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1314
        $account_result = $account_result->result_array();
1315
        $accountinfo = $account_result[0];
1316
        $timezone_id_arr = array($accountinfo['timezone_id']);
1317
        $this->CI->db->where_in('id', $timezone_id_arr);
1318
        $this->CI->db->select('gmtoffset');
1319
        $this->CI->db->from('timezone');
1320
        $timezone_result = $this->CI->db->get();
1321
        if ($timezone_result->num_rows() > 0) {
1322
1323
            $timezone_result = $timezone_result->result_array();
1324
            foreach ($timezone_result as $data) {
1325
                $gmtoffset += $data['gmtoffset'];
1326
            }
1327
        }
1328
// 	  echo $gmtoffset;exit;
0 ignored issues
show
Unused Code Comprehensibility introduced by
72% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
1329
        return $gmtoffset;
1330
    }
1331
    /** Version 2.1
1332
     * Purpose : Set default data for new created profile
1333
     * */
1334
    function sip_profile_date() {
1335
        $defualt_profile_data = '{"rtp_ip":"$${local_ip_v4}","dialplan":"XML","user-agent-string":"ASTPP","debug":"0","sip-trace":"no","tls":"false","inbound-reg-force-matching-username":"true","disable-transcoding":"true","all-reg-options-ping":"false","unregister-on-options-fail":"true","log-auth-failures":"true","status":"0","inbound-bypass-media":"false","inbound-proxy-media":"false","disable-transfer":"true","enable-100rel":"false","rtp-timeout-sec":"60","dtmf-duration":"2000","manual-redirect":"false","aggressive-nat-detection":"false","enable-timer":"false","minimum-session-expires":"120","session-timeout-pt":"1800","auth-calls":"true","apply-inbound-acl":"default","inbound-codec-prefs":"PCMU,PCMA,G729","outbound-codec-prefs":"PCMU,PCMA,G729","inbound-late-negotiation":"false"}';
1336
        return $defualt_profile_data;
1337
    }
1338
1339
    /* ===================================================================== */
1340
    /*
1341
     * Purpose : Add following for mass mail and mail history
1342
     * Version 2.1
1343
     */
1344
1345
    function set_search_temp($select = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1346
        $status_array = array("0" => "--Select--",
1347
            "1" => "Voip account refilled",
1348
            "3" => "Email add user",
1349
            "4" => "Add sip device",
1350
            "8" => "Email add did",
1351
            "9" => "Email remove did",
1352
            "10" => "Email new invoice",
1353
            "11" => "Email low balance",
1354
            "12" => "Email signup confirmation",
1355
            "13" => "Password successfully changed",
1356
            "14" => "Reset your password",
1357
            "15" => "Email add subscription",
1358
            "16" => "Email remove subscription",
1359
            "17" => "Email add package",
1360
            "18" => "Email remove package",
1361
            "19" => "Voip child accont refilled",
1362
        );
1363
        return $status_array;
1364
    }
1365
1366
    /*     ***
1367
      Refill coupon dropdown
1368
     * ** */
1369
1370
    function set_refill_coupon_status($select = '', $table = '', $status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1371
        $refill_coupon_array = array("" => "--Select--", '2' => 'Yes', '0' => 'No');
1372
        return $refill_coupon_array;
1373
    }
1374
1375
    function get_refill_coupon_status($select = '', $table = '', $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1376
        $refill_coupon_array = array('0' => 'Inactive', '1' => 'Active', '2' => 'Inuse', "3" => "Expired");
1377
        return $refill_coupon_array[$status];
1378
    }
1379
1380
    function firstused_check($select = '', $table = '', $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1381
1382
        if ($status == '0000-00-00 00:00:00') {
1383
            return '-';
1384
        }
1385
        return $status;
1386
    }
1387
1388
    function get_refill_coupon_used($select = '', $table = '', $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1389
        return $status['status'] == 2 ? '<img src= "'.base_url().'assets/images/true.png" style="height:20px;width:20px;" title="Yes">' : '<img src= "'.base_url().'/assets/images/false.png" style="height:20px;width:20px;" title="No">';
1390
    }
1391
1392
    /*     * *******
1393
      Password encode decode
1394
     * ******* */
1395
1396
    /**
1397
     * @param string $string
1398
     */
1399
    function encode_params($string) {
1400
        $data = base64_encode($string);
1401
        $data = str_replace(array('+', '/', '='), array('-', '$', ''), $data);
1402
        return $data;
1403
    }
1404
1405
    /**
1406
     * @param string $value
1407
     */
1408 View Code Duplication
    function encode($value) {
1409
        $text = $value;
1410
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
1411
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
1412
        $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->CI->config->item('private_key'), $text, MCRYPT_MODE_ECB, $iv);
0 ignored issues
show
Bug introduced by
The property config does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1413
        return trim($this->encode_params($crypttext));
1414
    }
1415
1416
    function decode_params($string) {
1417
        $data = str_replace(array('-', '$'), array('+', '/'), $string);
1418
        $mod4 = strlen($data) % 4;
1419
        if ($mod4) {
1420
            $data .= substr('====', $mod4);
1421
        }
1422
        return base64_decode($data);
1423
    }
1424
1425 View Code Duplication
    function decode($value) {
1426
        $crypttext = $this->decode_params($value);
1427
        $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
1428
        $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
1429
        $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->CI->config->item('private_key'), $crypttext, MCRYPT_MODE_ECB, $iv);
0 ignored issues
show
Bug introduced by
The property config does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1430
        return trim($decrypttext);
1431
    }
1432
1433
    /******
1434
      Recording enable/disable dropdown
1435
     * ** */
1436
1437
    function set_recording($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1438
        $status_array = array('0' => 'On', '1' => 'Off',);
1439
        return $status_array;
1440
    }
1441
1442
    /*     * ************************** */
1443
1444
    function email_status($select = "", $table = "", $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1445
        $status = ($status['status'] == 0) ? "Sent" : "Not Sent";
1446
	return $status;    
1447
    }
1448
1449
    function email_search_status($select = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1450
        $status_array = array("" => "--Select--",
1451
            "0" => "Sent",
1452
            "1" => "Not Sent"
1453
        );
1454
        return $status_array;
1455
    }
1456
1457
    /* ===================================================================== */
1458
1459
1460
    /*
1461
     * Purpose : Add following for setting page
1462
     * Version 2.1
1463
     */
1464
1465
    function paypal_status($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1466
        $status_array = array('0' => 'Enable', '1' => 'Disable');
1467
        return $status_array;
1468
    }
1469
    function playback_audio_notification($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1470
        $status_array = array('0' => 'Enable', '1' => 'Disable');
1471
        return $status_array;
1472
    }
1473
    function custom_status($status) {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1474
		$status_array = array('0' => 'Yes', '1' => 'No');
1475
        return $status_array;
1476
    }
1477
    
1478
    function custom_status_active($status) {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1479
      $status_array = array('0' => 'Active', '1' => 'InActive');
1480
      return $status_array;
1481
    }
1482
    function custom_status_true($status) {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1483
      $status_array = array('0' => 'TRUE', '1' => 'FALSE');
1484
      return $status_array;
1485
    }
1486
    function custom_status_voicemail($status) {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1487
      $status_array = array('true' => 'True', 'false' => 'False');
1488
      return $status_array;
1489
    }
1490
1491
    /******
1492
      For enable Signup module
1493
     * */
1494
    function create_sipdevice($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1495
        $status_array = array('0' => 'Enable', '1' => 'Disable');
1496
        return $status_array;
1497
    }
1498
1499
    function enable_signup($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1500
        $status_array = array('0' => 'Enable', '1' => 'Disable');
1501
        return $status_array;
1502
    }
1503
1504
	function balance_announce($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1505
        $status_array = array('0' => 'Enable', '1' => 'Disable');
1506
        return $status_array;
1507
    }
1508
	function minutes_announce($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1509
        $status_array = array('0' => 'Enable', '1' => 'Disable');
1510
        return $status_array;
1511
    }
1512
	
1513
    function enable_disable_option() {
1514
        $option_array = array('0' => 'Enable', '1' => 'Disable');
1515
        return $option_array;
1516
    }
1517
1518
    function paypal_mode($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1519
        $status_array = array('0' => 'Live', '1' => 'Sandbox',);
1520
        return $status_array;
1521
    }
1522
1523
    function paypal_fee($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1524
        $status_array = array('0' => 'Paid By Admin', '1' => 'Paid By Customer',);
1525
        return $status_array;
1526
    }
1527
1528
    function email() {
1529
        $status_array = array('1' => 'Enable', '0' => 'Disable',);
1530
        return $status_array;
1531
    }
1532
1533
    function smtp() {
1534
        return $this->set_allow();
1535
    }
1536
1537
    function debug() {
1538
        $status_array = array('1' => 'Enable', '0' => 'Disable',);
1539
        return $status_array;
1540
    }
1541
    function default_signup_rategroup() {
1542
        $this->CI->db->select("id,name");
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1543
        $this->CI->db->where("status", 0);
1544
        $this->CI->db->where("reseller_id", 0);
1545
        $pricelist_result = $this->CI->db->get("pricelists")->result_array();
1546
        $pricelist_arr = array();
1547
        foreach ($pricelist_result as $result) {
1548
            $pricelist_arr[$result['id']] = $result['name'];
1549
        }
1550
        return $pricelist_arr;
1551
        
1552
    }
1553
    /******
1554
      Enable Fax feature
1555
     * */
1556
    function outbound_fax() {
1557
        $status_array = array('0' => 'Enable', '1' => 'Disable',);
1558
        return $status_array;
1559
    }
1560
1561
    function inbound_fax() {
1562
        $status_array = array('0' => 'Enable', '1' => 'Disable',);
1563
        return $status_array;
1564
    }
1565
1566
1567
    function opensips() {
1568
        $status_array = array('1' => 'Enable', '0' => 'Disable');
1569
        return $status_array;
1570
    }
1571
1572
    function cc_ani_auth() {
1573
        $status_array = array('1' => 'Enable', '0' => 'Disable');
1574
        return $status_array;
1575
    }
1576
1577
    function calling_cards_balance_announce() {
1578
        $status_array = array('1' => 'Enable', '0' => 'Disable');
1579
        return $status_array;
1580
    }
1581
1582
    function calling_cards_timelimit_announce() {
1583
        $status_array = array('1' => 'Enable', '0' => 'Disable');
1584
        return $status_array;
1585
    }
1586
1587
    function calling_cards_rate_announce() {
1588
        $status_array = array('1' => 'Enable', '0' => 'Disable');
1589
        return $status_array;
1590
    }
1591
1592
    function startingdigit() {
1593
        $status_array = array('1' => 'Enable', '0' => 'Disable');
1594
        return $status_array;
1595
    }
1596
1597
    function SMPT() {
1598
        $status_array = array('1' => 'Enable', '0' => 'Disable');
1599
        return $status_array;
1600
    }
1601
1602
    function country() {
1603
        return $this->CI->common_model->get_country_list();
0 ignored issues
show
Bug introduced by
The property common_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1604
    }
1605
1606
    function default_timezone() {
1607
        return $this->CI->db_model->build_dropdown('id,gmtzone', 'timezone');
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1608
    }
1609
1610
    function timezone() {
1611
        return $this->CI->db_model->build_dropdown('gmttime,gmttime', 'timezone');
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1612
    }
1613
1614
    function base_currency() {
1615
        return $this->CI->db_model->build_dropdown('currency,currencyname', 'currency');
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1616
    }
1617
1618
    /******	
1619
      Calculate Currency manually.
1620
     */
1621
1622
    function calculate_currency_manually($currency_info, $amount, $show_currency_flag = true, $number_format = true) {
1623
        $decimal_points = $currency_info['decimalpoints'];
1624
        $system_currency_rate = $currency_info['base_currency']['currencyrate'];
1625
        $user_currency_rate = $currency_info['user_currency']['currencyrate'];
1626
        $calculated_amount = (float)(($amount * $currency_info['user_currency']['currencyrate']) / $currency_info['base_currency']['currencyrate']); 
1627
        if ($number_format) {
1628
         $calculated_amount = number_format($calculated_amount, $currency_info['decimalpoints']);
1629
        }
1630
        if ($show_currency_flag) {
1631
          return $calculated_amount." ".$currency_info['user_currency']['currency'];
1632
        } else {
1633
          return $calculated_amount;
1634
        }
1635
    }
1636
1637
    /*
1638
      Using By Summary Report search
1639
     */
1640
1641
    function search_report_in($select = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1642
        $status_array = array("minutes" => "Minutes", "seconds" => "Seconds");
1643
        return $status_array;
1644
    }
1645
1646
    function set_summarycustomer_groupby($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1647
        $status_array = array('' => "--Select--", 'accountid' => 'Account', 'pattern' => 'Code', 'package_id'=>"Package");
1648
        return $status_array;
1649
    }
1650
1651
    function set_summaryprovider_groupby($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1652
        $status_array = array('' => "--Select--", 'provider_id' => 'Account', 'trunk_id' => "Trunks", 'pattern' => 'Code');
1653
        return $status_array;
1654
    }
1655
1656
    function get_currency_info() {
1657
        //System Currency info 
1658
        $base_currency = Common_model::$global_config['system_config']['base_currency'];
1659
        //Get Account Information from session to get currency_id
1660
        $accountinfo = $this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1661
        //Get User Currency id 
1662
        $user_currency_id = $accountinfo['currency_id'] > 0 ? $accountinfo['currency_id'] : $base_currency;
1663
        $where = "currency = '".$base_currency."' OR id= ".$user_currency_id;
1664
        $this->CI->db->where($where);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1665
        $this->CI->db->select('*');
1666
        $currency_result = $this->CI->db->get('currency');
1667
1668
        if ($currency_result->num_rows() == 2) {
1669
            $currency_result = $currency_result->result_array();
1670
            foreach ($currency_result as $key => $records) {
1671
                //User Currency is currency details of logged in user.
1672
                if ($records['id'] == $user_currency_id) {
1673
                    $currency_info['user_currency'] = $records;
0 ignored issues
show
Coding Style Comprehensibility introduced by
$currency_info was never initialized. Although not strictly required by PHP, it is generally a good practice to add $currency_info = array(); before regardless.

Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.

Let’s take a look at an example:

foreach ($collection as $item) {
    $myArray['foo'] = $item->getFoo();

    if ($item->hasBar()) {
        $myArray['bar'] = $item->getBar();
    }

    // do something with $myArray
}

As you can see in this example, the array $myArray is initialized the first time when the foreach loop is entered. You can also see that the value of the bar key is only written conditionally; thus, its value might result from a previous iteration.

This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.

Loading history...
1674
                }
1675
                //System Currency is currency details of system.
1676
                if ($records['currency'] == Common_model::$global_config['system_config']['base_currency']) {
1677
                    $currency_info['base_currency'] = $records;
0 ignored issues
show
Bug introduced by
The variable $currency_info does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
1678
                }
1679
            }
1680
        } else if ($currency_result->num_rows() == 1) {
1681
            $currency_info['user_currency'] = $currency_info['base_currency'] = (array)$currency_result->first_row();
1682
        }
1683
        //Get Decimal points as per defined from system.
1684
        $currency_info['decimalpoints'] = Common_model::$global_config['system_config']['decimalpoints'];
1685
        return $currency_info;
1686
    }
1687
1688
    function convert_to_show_in($search_name = "", $table = "", $second) {
0 ignored issues
show
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1689
        $search_arr = $this->CI->session->userdata($search_name);
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1690
        $show_seconds = ( ! empty($search_arr['search_in'])) ? $search_arr['search_in'] : 'minutes';
1691
        return ($show_seconds === 'minutes') ? ($second > 0) ?
1692
                        sprintf('%02d', $second / 60).":".sprintf('%02d', ($second % 60)) : "00:00" : sprintf('%02d', $second);
1693
    }
1694
1695
    function array_column($input, $columnKey, $indexKey = null) {
1696
        $array = array();
1697
        foreach ($input as $value) {
1698
            if ( ! isset($value[$columnKey])) {
1699
                trigger_error("Key \"$columnKey\" does not exist in array");
1700
                return false;
1701
            }
1702
1703
            if (is_null($indexKey)) {
1704
                $array[] = $value[$columnKey];
1705
            } else {
1706
                if ( ! isset($value[$indexKey])) {
1707
                    trigger_error("Key \"$indexKey\" does not exist in array");
1708
                    return false;
1709
                }
1710
                if ( ! is_scalar($value[$indexKey])) {
1711
                    trigger_error("Key \"$indexKey\" does not contain scalar value");
1712
                    return false;
1713
                }
1714
                $array[$value[$indexKey]] = $value[$columnKey];
1715
            }
1716
        }
1717
1718
        return $array;
1719
    }
1720
1721
    function group_by_time() {
1722
        $status_array = array('' => "--Select--", 'HOUR' => 'Hour', 'DAY' => "Day", 'MONTH' => 'Month', "YEAR" => "Year");
1723
        return $status_array;
1724
    }
1725
1726
    function currency_decimal($amount) {
1727
		$amount = str_replace(',', '', $amount);
1728
        $decimal_amount = Common_model::$global_config['system_config']['decimalpoints'];
1729
        $number_convert = number_format((float)$amount, $decimal_amount, '.', '');
1730
        return $number_convert;
1731
    }
1732
1733
    function add_invoice_details($account_arr, $charge_type, $amount, $description) {
1734
        $accountinfo = $this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1735
        $reseller_id = $accountinfo['type'] == 1 ? $accountinfo['id'] : 0;
1736
        $where = "accountid IN ('".$reseller_id."','1')";
1737
        $this->CI->db->where($where);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1738
        $this->CI->db->select('*');
1739
        $this->CI->db->order_by('accountid', 'desc');
1740
        $this->CI->db->limit(1);
1741
        $invoiceconf = $this->CI->db->get('invoice_conf');
1742
        $invoice_conf = (array)$invoiceconf->first_row();
1743
        $last_invoiceid = $this->get_invoice_date('invoiceid', '', $account_arr['reseller_id']);
1744 View Code Duplication
        if ($last_invoiceid && $last_invoiceid > 0) {
1745
            $last_invoiceid = ($last_invoiceid + 1);
1746
        } else {
1747
            $last_invoiceid = $invoice_conf['invoice_start_from'];
1748
        }
1749
        $last_invoiceid = str_pad($last_invoiceid, (strlen($last_invoiceid) + 4), '0', STR_PAD_LEFT);
1750
        $invoice_prefix = $invoice_conf['invoice_prefix'];
1751
        $due_date = gmdate("Y-m-d H:i:s", strtotime(gmdate("Y-m-d H:i:s")." +".$invoice_conf['interval']." days"));
1752
        $invoiceid = $account_arr['posttoexternal'] == 0 ? $this->CI->common_model->generate_receipt($account_arr['id'], $amount, $account_arr, $last_invoiceid, $invoice_prefix, $due_date) : 0;
0 ignored issues
show
Bug introduced by
The property common_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1753
        
1754
        $insert_arr = array("accountid" => $account_arr['id'],
1755
            "description" => $description,
1756
            "debit" => $amount,
1757
            "credit" => '0',
1758
            "created_date" => gmdate("Y-m-d H:i:s"),
1759
            "invoiceid" => $invoiceid,
1760
            "reseller_id" => $account_arr['reseller_id'],
1761
            "item_type" => $charge_type,
1762
            "item_id" => '0',
1763
        );
1764
        $this->CI->db->insert("invoice_details", $insert_arr);
1765
        return true;
1766
    }
1767
    /* ASTPP  3.0  Remove all information related to going to delete customer.
1768
     */
1769
    function customer_delete_dependencies($id){
1770
          $this->delete_data('ani_map',array('accountid'=>$id));
1771
          $this->delete_data('block_patterns',array('accountid'=>$id));
1772
          $this->delete_data('charge_to_account',array('accountid'=>$id));
1773
          $this->delete_data('counters',array('accountid'=>$id));
1774
          $this->delete_data('ip_map',array('accountid'=>$id));
1775
          $this->delete_data('sip_devices',array('accountid'=>$id));
1776
          $this->delete_data('speed_dial',array('accountid'=>$id));
1777
          $this->delete_data('taxes_to_accounts',array('accountid'=>$id));
1778
          $this->delete_data('mail_details',array('accountid'=>$id));
1779
          $this->update_data('dids',array("accountid"=>$id),array('accountid'=>0));
1780
          $this->update_data("accounts",array("id"=>$id),array("deleted"=>1));
1781
    }
1782
    /*
1783
     *  ASTPP  3.0 
1784
     *  Remove all information related to going to delete reseller.
1785
     */
1786
    function reseller_delete_dependencies($id){
1787
        $accountinfo=$this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1788
        $child_arr=$this->select_data("accounts",array("reseller_id"=>$id,"type"=>0),'id,reseller_id');
1789
        if($child_arr){
1790
            foreach($child_arr as $value){
1791
                $this->customer_delete_dependencies($value['id']);
1792
            }
1793
        }
1794
        $package_arr=$this->select_data("packages",array("reseller_id"=>$id),'id');
1795
        if($package_arr){
1796
            foreach($package_arr as $value){
1797
                $this->delete_data('package_patterns',array("id"=>$value['id']));
1798
            }
1799
        }
1800
        $acc_arr=$this->select_data('accounts',array("id"=>$id),'id,reseller_id');
1801
        $parent_id=0;
1802
        if($acc_arr){
1803
            $parent_id=$acc_arr[0]['reseller_id'];
1804
        }
1805
        $pricelist_arr=$this->select_data('pricelists',array('reseller_id'=>$id),'id');
1806
        if($pricelist_arr){
1807
             foreach($pricelist_arr as $value){
1808
                $this->delete_data("routing",array("pricelist_id"=>$value['id']));
1809
                $this->delete_data("routes",array("pricelist_id"=>$value['id']));
1810
                $this->update_data('pricelists',array('id'=>$value['id']),array('status'=>2));         
1811
             }
1812
        }
1813
        $charge_arr=$this->select_data('charges',array('reseller_id'=>$id),'id');
1814
        if($charge_arr){
1815
             foreach($charge_arr as $value){
1816
                $this->delete_data("charge_to_account",array("charge_id"=>$value['id']));
1817
             }
1818
        }
1819
        $this->delete_data('charges',array('reseller_id'=>$id));
1820
        $this->update_data('dids',array('parent_id'=>$id),array("parent_id"=>$parent_id));
1821
        $this->delete_data('reseller_pricing',array("reseller_id"=>$id));
1822
        $this->delete_data('refill_coupon',array("reseller_id"=>$id));
1823
        $this->delete_data('mail_details',array('accountid'=>$id));
1824
        $taxes_arr=$this->select_data('taxes',array("reseller_id"=>$id),'id');
1825
        if($taxes_arr){
1826
             foreach($taxes_arr as $value){
1827
                $this->delete_data("taxes_to_accounts",array("taxes_id"=>$value['id']));
1828
             }
1829
        }
1830
        $this->delete_data('taxes',array("reseller_id"=>$id));
1831
        $this->delete_data('default_templates',array("reseller_id"=>$id));
1832
        $package_arr=$this->select_data('packages',array('reseller_id'=>$id),'id');
1833
        if($package_arr){
1834
            $this->delete_data("counters",array("package_id"=>$value['id']));
0 ignored issues
show
Bug introduced by
The variable $value does not seem to be defined for all execution paths leading up to this point.

If you define a variable conditionally, it can happen that it is not defined for all execution paths.

Let’s take a look at an example:

function myFunction($a) {
    switch ($a) {
        case 'foo':
            $x = 1;
            break;

        case 'bar':
            $x = 2;
            break;
    }

    // $x is potentially undefined here.
    echo $x;
}

In the above example, the variable $x is defined if you pass “foo” or “bar” as argument for $a. However, since the switch statement has no default case statement, if you pass any other value, the variable $x would be undefined.

Available Fixes

  1. Check for existence of the variable explicitly:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        if (isset($x)) { // Make sure it's always set.
            echo $x;
        }
    }
    
  2. Define a default value for the variable:

    function myFunction($a) {
        $x = ''; // Set a default which gets overridden for certain paths.
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
        }
    
        echo $x;
    }
    
  3. Add a value for the missing path:

    function myFunction($a) {
        switch ($a) {
            case 'foo':
                $x = 1;
                break;
    
            case 'bar':
                $x = 2;
                break;
    
            // We add support for the missing case.
            default:
                $x = '';
                break;
        }
    
        echo $x;
    }
    
Loading history...
1835
            $this->delete_data("package_patterns",array("package_id"=>$value['id']));
1836
        }
1837
        $this->delete_data('invoice_conf',array('accountid'=>$id));
1838
        $this->delete_data('packages',array("reseller_id"=>$id));
1839
        $this->update_data('accounts',array("id"=>$id),array("deleted"=>1));
1840
    }
1841
    function subreseller_list($parent_id = '') {
1842
        $customer_id = $parent_id;
1843
        $this->reseller_delete_dependencies($parent_id);
1844
        $query = 'select id,type from accounts where reseller_id = ' . $parent_id .' AND deleted =0';
1845
        $result = $this->CI->db->query($query);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1846
        if ($result->num_rows() > 0) {
1847
            $result = $result->result_array();
1848
            foreach ($result as $data) {
1849
	      if($data['type']==1){
1850
		  $this->reseller_delete_dependencies($data['id']);
1851
		  $this->subreseller_list($data['id']);
1852
	      } else{
1853
		  $this->customer_delete_dependencies($data['id']);
1854
	      }
1855
            }
1856
        }
1857
    }
1858
    
1859
    /**
1860
     * @param string $table_name
1861
     */
1862
    function delete_data($table_name,$where_arr){
1863
        $this->CI->db->where($where_arr);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1864
        $this->CI->db->delete($table_name);
1865
    }
1866
1867
    /**
1868
     * @param string $table_name
1869
     */
1870
    function update_data($table_name,$where_arr,$update_arr){
1871
        $this->CI->db->where($where_arr);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1872
        $this->CI->db->update($table_name,$update_arr);
1873
    }
1874
1875
    /**
1876
     * @param string $table_name
1877
     * @param string $select
1878
     */
1879
    function select_data($table_name,$where_arr,$select){
1880
        $this->CI->db->where($where_arr);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1881
        $this->CI->db->select($select);
1882
        $result=$this->CI->db->get($table_name);
1883
        if($result->num_rows() > 0){
1884
            return $result->result_array();
1885
        } else{
1886
            return false;
1887
        }
1888
    }
1889
    
1890
    function set_call_waiting($status = '') {
0 ignored issues
show
Unused Code introduced by
The parameter $status is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1891
		$status_array = array('0' => 'Enable', '1' => 'Disable');
1892
		return $status_array;
1893
	} 
1894
    function get_call_waiting($select = "", $table = "", $status) {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1895
        return ($status == 0) ? "Enable" : "Disable";
1896
	}
1897
  function set_invoice_details($select= ''){
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1898
        $status_array = array("invoice_select" => "--Select--",
1899
            "invoice_inactive" => "Deleted Invoices",
1900
            "invoice_active" => "All Invoices",
1901
        );
1902
        return $status_array;
1903
}
1904
function get_invoice_template($invoicedata,$accountdata,$flag){
1905
      $login_info = $this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1906
1907
      $invoice_config = $this->CI->db_model->getSelect("*", "invoice_conf", array('accountid'=>$login_info['id']));
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1908
      $invoice_config= $invoice_config->result_array();
1909
      $invoice_config_res= $invoice_config[0];
1910
1911
      $accountdata["currency_id"] = $this->get_field_name('currency', 'currency', $accountdata["currency_id"]);
1912
      $accountdata["country"] = $this->get_field_name('country', 'countrycode', $accountdata["country_id"]);
1913
      $data["to_currency"] = Common_model::$global_config['system_config']['base_currency'];
0 ignored issues
show
Coding Style Comprehensibility introduced by
$data was never initialized. Although not strictly required by PHP, it is generally a good practice to add $data = array(); before regardless.

Adding an explicit array definition is generally preferable to implicit array definition as it guarantees a stable state of the code.

Let’s take a look at an example:

foreach ($collection as $item) {
    $myArray['foo'] = $item->getFoo();

    if ($item->hasBar()) {
        $myArray['bar'] = $item->getBar();
    }

    // do something with $myArray
}

As you can see in this example, the array $myArray is initialized the first time when the foreach loop is entered. You can also see that the value of the bar key is only written conditionally; thus, its value might result from a previous iteration.

This might or might not be intended. To make your intention clear, your code more readible and to avoid accidental bugs, we recommend to add an explicit initialization $myArray = array() either outside or inside the foreach loop.

Loading history...
1914
      if($login_info['type'] == -1){
1915
          $currency = $data["to_currency"];
1916
      } elseif($login_info['type'] == 1){
1917
	  $accountdata["currency_id"] = $this->get_field_name('currency', 'currency', $login_info["currency_id"]);
1918
          $currency = $accountdata["currency_id"];
1919
      } else{
1920
          $currency = $accountdata["currency_id"];
1921
      }
1922
      $decimal_amount=Common_model::$global_config['system_config']['decimalpoints'];
1923
      ob_start();
1924
      $this->CI->load->library('/html2pdf/html2pdf');
0 ignored issues
show
Bug introduced by
The property load does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1925
      $this->CI->html2pdf = new HTML2PDF('P','A4','en');
0 ignored issues
show
Bug introduced by
The property html2pdf does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1926
      $this->CI->html2pdf->pdf->SetDisplayMode('fullpage');
1927
      $template_config=$this->CI->config->item('invoice_template');
0 ignored issues
show
Bug introduced by
The property config does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
1928
      include($template_config.'invoice_template.php');
1929
      $content = ob_get_clean();
1930
      ob_clean();
1931
1932
	$ACCOUNTADD = '';
1933
	$ACCOUNTADD_CUSTOMER ='';
1934
	$ACCOUNTADD_RIGHT = '';
1935
	$ACCOUNT_DESCRIPTION = '';
1936
	$ACCOUNT_CDRS = '';
1937
	$ACCOUNT_TOTAL= '';
1938
	$ACCOUNT_TOTAL_FINAL = '';
1939
	$ACCOUNT_FINAL = '';
1940
	$CHARGE_ACCOUNT ='';
1941
	$service_info = '';
1942
	$TotalChrg = "0.00";
1943
	$NETAMT = "0.00";
1944
	$TAXAMT = "0.00";
1945
	$total_sum=0;
1946
	$total_vat=0;
1947
	$fromdate = strtotime($invoicedata['from_date']);
1948
	$from_date =date("Y-m-d",$fromdate);
1949
	$duedate = strtotime($invoicedata['due_date']);
1950
	$due_date =date("Y-m-d",$duedate);
1951
1952
/*************************** Company Address Code START ***************************************************/
1953
		$ACCOUNTADD .= '<tr>';
1954
		$ACCOUNTADD .= '<td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;"><b>'.$invoice_config_res['company_name'].'</b></td>';
1955
		$ACCOUNTADD .= '</tr>';
1956
	if ( $invoice_config_res['address'] != ""){
1957
1958
		$ACCOUNTADD .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$invoice_config_res['address'].'</td></tr>';
1959
	}
1960
	if ( $invoice_config_res['city'] != ""){
1961
1962
		$ACCOUNTADD .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$invoice_config_res['city'].'</td></tr>';
1963
	}
1964
	if ( $invoice_config_res['province'] != ""){
1965
1966
		$ACCOUNTADD .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$invoice_config_res['province'].'</td></tr>';
1967
	}
1968
	if ( $invoice_config_res['country'] != ""){
1969
1970
		$ACCOUNTADD .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$invoice_config_res['country'].'</td></tr>';
1971
	}
1972
	if ( $invoice_config_res['zipcode'] != ""){
1973
1974
		$ACCOUNTADD .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$invoice_config_res['zipcode'].'</td></tr>';
1975
	}
1976
/*************************** Company Address Code END ***************************************************/
1977
1978
/*************************** Customer Address Code START ***************************************************/
1979
1980
		$ACCOUNTADD_CUSTOMER .= '<table><tr>';
1981
		$ACCOUNTADD_CUSTOMER .= '<td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;"><b>'.$accountdata['company_name'].'</b></td></tr>';
1982
1983
	if ( $accountdata['address_1'] != ""){
1984
1985
		$ACCOUNTADD_CUSTOMER .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$accountdata['address_1'].'</td></tr>';
1986
	}
1987
	if ( $accountdata['city'] != ""){
1988
1989
		$ACCOUNTADD_CUSTOMER .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$accountdata['city'].'</td></tr>';
1990
	}
1991
	if ( $accountdata['province'] != ""){
1992
1993
		$ACCOUNTADD_CUSTOMER .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$accountdata['province'].'</td></tr>';
1994
	}
1995
	if ( $accountdata['country'] != ""){
1996
1997
		$ACCOUNTADD_CUSTOMER .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$accountdata['country'].'</td></tr>';
1998
	}
1999
	if ( $accountdata['postal_code'] != ""){
2000
2001
		$ACCOUNTADD_CUSTOMER .= '<tr><td style="width:100%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$accountdata['postal_code'].'</td></tr>';
2002
	}
2003
	$ACCOUNTADD_CUSTOMER .="</table>"; 
2004
/*************************** Customer Address Code END ***************************************************/
2005
2006
2007
/*************************** Charge Histry Code START ***************************************************/
2008
2009
 	$ACCOUNT_DESCRIPTION .= '<tr style="background-color:#375C7C;">';
2010
	$ACCOUNT_DESCRIPTION .= '<td style="width:20%;font-size: 12px;color:#fff;font-family:arial; line-height: 22px;">Date</td>';
2011
		$ACCOUNT_DESCRIPTION .= '<td  style="width:40%;font-size: 12px;color:#fff;font-family:arial; line-height: 22px;">Description</td>';
2012
		$ACCOUNT_DESCRIPTION .= '<td  style="width:20%;font-size: 12px;color:#fff;font-family:arial; line-height: 22px;">Charge Type</td>';
2013
	$ACCOUNT_DESCRIPTION .= '<td style="width:20%;font-size: 12px;color:#fff;font-family:arial; line-height: 22px;text-align:right;">Amount ('.$currency .')</td>';
2014
		$ACCOUNT_DESCRIPTION .= '</tr>';
2015
2016
2017
	$ACCOUNT_CDRS .= '<tr style="background-color:#375C7C;">';
2018
	$ACCOUNT_CDRS .= '<td style="width:40%;font-size: 12px;color:#fff;font-family:arial; line-height: 22px;">Description</td>';
2019
	$ACCOUNT_CDRS .= '<td style="width:20%;font-size: 12px;color:#fff;font-family:arial; line-height: 22px;">Duration (Seconds)</td>';
2020
		$ACCOUNT_CDRS .= '<td style="width:20%;font-size: 12px;color:#fff;font-family:arial; line-height: 22px;">Total Calls</td>';
2021
	$ACCOUNT_CDRS .= '<td style="width:20%;font-size: 12px;color:#fff;font-family:arial; line-height: 22px;text-align:right;">Amount ('.$currency .')</td>';
2022
		$ACCOUNT_CDRS .= '</tr>';
2023
2024
	/*** manual invoice **/
2025
	$this->CI->db->where('item_type <>','INVPAY');
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
2026
		$invoice_details = $this->CI->db_model->getSelect('*', 'invoice_details',array("invoiceid"=> $invoicedata['id'],'item_type <>'=> 'TAX' ));
2027
	$invoice_details= $invoice_details->result_array();
2028
	$total_sum=0;
2029
	foreach($invoice_details as $charge_res){
2030
		if($charge_res['item_type'] == 'DIDCHRG' || $charge_res['item_type'] == 'SUBCHRG' || $charge_res['item_type'] == 'manual_inv' ){
2031
		if($charge_res['item_type'] == 'manual_inv'){
2032
			$charge_res['item_type'] = 'Manual Invoice';
2033
		}
2034
		if($charge_res['item_type'] == 'DIDCHRG'){
2035
			$charge_res['item_type'] = 'DID Charge';
2036
		}
2037
		if($charge_res['item_type'] == 'SUBCHRG'){
2038
			$charge_res['item_type'] = 'Subscription Charge';
2039
		}
2040
2041
	 	$ACCOUNT_DESCRIPTION .= '<tr>';
2042
		$ACCOUNT_DESCRIPTION .= '<td style="width:20%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$charge_res['created_date'].'</td>';
2043
  	 	  $ACCOUNT_DESCRIPTION .= '<td style="width:40%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$charge_res['description'].'</td>';
2044
  	 	  $ACCOUNT_DESCRIPTION .= '<td style="width:20%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$charge_res['item_type'].'</td>';
2045
2046
		$ACCOUNT_DESCRIPTION .= '<td style="width:20%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;text-align:right;">'.$this->currency_decimal($this->CI->common_model->calculate_currency($charge_res['debit'])).'</td>';
0 ignored issues
show
Bug introduced by
The property common_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
2047
		$ACCOUNT_DESCRIPTION .= '</tr>';
2048
		 }else{
2049
			$cdrs_data = $this->CI->db_model->getSelect("sum(billseconds) as billseconds,count(*) as count", "cdrs", array("accountid" => $charge_res['accountid'],"calltype" => $charge_res['item_type']));
2050
			$cdrs_result = $cdrs_data->result_array();
2051
		if($cdrs_result[0]['count'] > 0 ){
2052
		$cdrs_record_count=$cdrs_result[0]['count'] ;
2053
		$cdrs_record_billseconds=$cdrs_result[0]['billseconds'] ;
2054
/*echo '<pre>'.$cdrs_record_count;
0 ignored issues
show
Unused Code Comprehensibility introduced by
67% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
2055
print_r($cdrs_result);
2056
exit;*/
2057
	 	$ACCOUNT_CDRS .= '<tr>';
2058
		$ACCOUNT_CDRS .= '<td style="width:40%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$charge_res['description'].'</td>';
2059
  	 	$ACCOUNT_CDRS .= '<td style="width:20%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$cdrs_record_billseconds.'</td>';
2060
		$ACCOUNT_CDRS .= '<td style="width:20%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;">'.$cdrs_record_count.'</td>';
2061
		$ACCOUNT_CDRS .= '<td style="width:20%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;text-align:right;">'.$this->currency_decimal($this->CI->common_model->calculate_currency($charge_res['debit'])).'</td>';
2062
		$ACCOUNT_CDRS .= '</tr>';
2063
		 }
2064
		}
2065
		$total_sum += $charge_res['debit'];
2066
	}
2067
/*************************** Charge Histry Code END ***************************************************/
2068
2069
/**********************************Tax Apply Start********************************************************************/
2070
	$total_sum = $total_sum;
0 ignored issues
show
Bug introduced by
Why assign $total_sum to itself?

This checks looks for cases where a variable has been assigned to itself.

This assignement can be removed without consequences.

Loading history...
2071
	$total_sum=$this->currency_decimal($this->CI->common_model->calculate_currency($total_sum));
2072
		$invoice_tax = $this->CI->db_model->getSelect('*', 'invoice_details',array("invoiceid"=> $invoicedata['id'],'item_type '=> 'TAX'));
2073
 	//$ACCOUNT_TOTAL .= '<td><table style="width:100%;margin-left:360px;">';
0 ignored issues
show
Unused Code Comprehensibility introduced by
43% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
2074
2075
	$ACCOUNT_TOTAL .= '<tr>';
2076
	$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"></td>';
2077
	$ACCOUNT_TOTAL .= '<td style="width:40%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"></td>';
2078
//        $ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"><b>Total Exclusive:</b></td>';
0 ignored issues
show
Unused Code Comprehensibility introduced by
37% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
2079
//	$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;text-align:right;">'.$total_sum .'</td>';
2080
		$ACCOUNT_TOTAL .= '</tr>';
2081
2082
	if ($invoice_tax->num_rows() > 0) {
2083
	   foreach ($invoice_tax->result_array() as $invoice_tax) {
2084
2085
		$total_vat += $invoice_tax['debit'];
2086
		$ACCOUNT_TOTAL .= '<tr>';
2087
		$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;text-align:right;"></td>';
2088
		$ACCOUNT_TOTAL .= '<td style="width:40%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;text-align:right;"></td>';
2089
		$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"><b>'.$invoice_tax["description"].':</b></td>';
2090
		$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;text-align:right;">'.$this->currency_decimal($this->CI->common_model->calculate_currency($total_vat)).'</td>';
2091
		$ACCOUNT_TOTAL .= '</tr>';
2092
2093
	   }
2094
		$total_vat = $this->currency_decimal($this->CI->common_model->calculate_currency($total_vat));	
2095
	} else {
2096
/********harsh_308***********/
2097
		$ACCOUNT_TOTAL .= '<tr>';
2098
		$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"></td>';
2099
		$ACCOUNT_TOTAL .= '<td style="width:40%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"></td>';
2100
		$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"><b>Total TAX:</b></td>';
2101
		$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;text-align:right;">'.$this->currency_decimal($total_vat).'</td>';
2102
		$ACCOUNT_TOTAL .= '</tr>';
2103
2104
	}
2105
	$sub_total = $total_sum + $total_vat;
2106
	$ACCOUNT_TOTAL .= '<tr>';
2107
	$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"></td>';
2108
	$ACCOUNT_TOTAL .= '<td style="width:40%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"></td>';
2109
	$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"><b>Sub Total:</b></td>';
2110
	$ACCOUNT_TOTAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;text-align:right;">'.$this->currency_decimal($sub_total).'</td>';
2111
	$ACCOUNT_TOTAL .= '</tr>';
2112
2113
2114
/***********************************Tax Apply END*******************************************************************/
2115
2116
/*************************** Invoice Details Code START ***************************************************/
2117
2118
		$ACCOUNTADD_RIGHT .= '<table style="width:100%;"><tr style="width:100%;"><td style="width:40%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;"><b>Number:</b></td>';
2119
		$ACCOUNTADD_RIGHT .= '<td style="width:60%;font-size: 10px;color:#525252;font-family:arial;text-align:right; line-height: 22px;">'.$invoicedata["invoice_prefix"].$invoicedata["invoiceid"].'</td></tr>';
2120
2121
		$ACCOUNTADD_RIGHT .= '<tr style="width:100%;"><td style="width:40%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;"><b>Date:</b></td>';
2122
		$ACCOUNTADD_RIGHT .= '<td style="width:60%;font-size: 10px;color:#525252;font-family:arial;text-align:right; line-height: 22px;">'.$from_date.'</td></tr>';
2123
		$ACCOUNTADD_RIGHT .= '<tr style="width:100%;"><td style="width:40%;font-size: 12px;color:#525252;font-family:arial; line-height: 22px;"><b>Due Date:</b></td>';
2124
		$ACCOUNTADD_RIGHT .= '<td style="width:60%;font-size: 10px;color:#525252;font-family:arial;text-align:right; line-height: 22px;">'.$due_date.'</td></tr>';
2125
2126
		$ACCOUNTADD_RIGHT .= '<tr style="background-color:#375C7C;width:100%; line-height: 30px;"><td style="width:40%;font-size: 12px;color:#fff;font-family:arial; line-height: 30px;"><b>Total Due:</b></td>';
2127
		$ACCOUNTADD_RIGHT .= '<td style="width:60%;font-size: 10px;color:#fff;font-family:arial;text-align:right; line-height: 30px;">'.$this->currency_decimal($sub_total).'</td></tr>';
2128
	$ACCOUNTADD_RIGHT .= "</table>";
2129
2130
/*************************** Invoice Details Code END ***************************************************/
2131
2132
2133
2134
2135
2136
2137
/*************************** Invoice Note Code END ***************************************************/
2138
		$invoice_notes = $this->CI->db_model->getSelect('*', 'invoices', array('id'=>$invoicedata['id']));
2139
		$invoice_notes=$invoice_notes->result_array();
2140 View Code Duplication
	if(isset($invoice_notes[0]['notes'])){
2141
		$invoice_notes=$invoice_notes[0]['notes'];
2142
	} else{
2143
		if($invoice_notes[0]['invoice_note'] == '0' ){
2144
			$invoice_notes='THIS IS A 30 DAY ACCOUNT, SO PLEASE MAKE PAYMENT WITHIN THESE TERMS';
2145
		} else{
2146
			$invoice_notes=$invoice_notes[0]['invoice_note'];
2147
		}
2148
	}
2149
/*************************** Invoice Note Code END ***************************************************/
2150
2151
	if (file_exists(getcwd()."/upload/".$invoice_config[0]['accountid']."_".$invoice_config[0]['logo'])) {
2152
		if($invoice_config[0]['logo'] != ''){
2153
			$content = str_replace("<LOGO>",base_url()."upload/".$invoice_config[0]['accountid']."_".$invoice_config[0]['logo'],$content);
2154
		} else{
2155
			$content = str_replace("<LOGO>",base_url().'/assets/images/logo.png',$content);
2156
		}
2157
	} else{
2158
		$content = str_replace("<LOGO>",base_url().'/assets/images/logo.png',$content);
2159
	}
2160
2161
	$ACCOUNT_TOTAL_FINAL .= '<tr>';
2162
	$ACCOUNT_TOTAL_FINAL .= '<td style="width:20%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"></td>';
2163
	$ACCOUNT_TOTAL_FINAL .= '<td style="width:40%;font-size: 12px;color:#000;font-family:arial; line-height: 22px;"></td>';
2164
	$ACCOUNT_TOTAL_FINAL .= '</tr>';
2165
2166
	  //  $content = str_replace("<LOGO>",$image_logo,$content);   
0 ignored issues
show
Unused Code Comprehensibility introduced by
65% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
2167
		$content = str_replace("<ACCOUNTADD>",$ACCOUNTADD,$content);
2168
		$content = str_replace("<ACCOUNTADD_CUSTOMER>",$ACCOUNTADD_CUSTOMER,$content);
2169
		$content = str_replace("<ACCOUNTADD_RIGHT>",$ACCOUNTADD_RIGHT,$content);
2170
	$content = str_replace("<ACCOUNT_DESCRIPTION>",$ACCOUNT_DESCRIPTION,$content);
2171
	$content = str_replace("<ACCOUNT_CDRS>",$ACCOUNT_CDRS,$content);
2172
	$content = str_replace("<ACCOUNT_TOTAL>",$ACCOUNT_TOTAL,$content);
2173
	$content = str_replace("<ACCOUNT_TOTAL_FINAL>",$ACCOUNT_TOTAL_FINAL,$content);
2174
		$content = str_replace("<NOTES>",$invoice_notes,$content);
2175
2176
//echo $content; exit;
0 ignored issues
show
Unused Code Comprehensibility introduced by
72% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
2177
2178
	$invoice_path=$this->CI->config->item('invoices_path');
2179
	$download_path = $invoice_path.$accountdata["id"].'/'.$invoicedata['invoice_prefix'].$invoicedata['invoiceid']."_invoice.pdf"; 
2180
	   //echo  $download_path; exit;
0 ignored issues
show
Unused Code Comprehensibility introduced by
72% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
2181
	   $this->CI->html2pdf->pdf->SetDisplayMode('fullpage');
2182
	   $this->CI->html2pdf->writeHTML($content);
2183
       
2184
	   if($flag== 'TRUE'){
2185
		$download_path = $invoicedata['invoice_prefix'].$invoicedata['invoiceid'].".pdf";
2186
       
2187
		$this->CI->html2pdf->Output($download_path,"D");        
2188
	   }else{
2189
		$current_dir = getcwd()."/invoices/";
2190
		$dir_name = $accountdata["id"];
2191
		if(!is_dir($current_dir.$dir_name)){
2192
				mkdir($current_dir.$dir_name,0777, true);
2193
				chmod($current_dir.$dir_name, 0777);        
2194
		}        
2195
		$invoice_path=$this->CI->config->item('invoices_path');
2196
		$download_path = $invoice_path.$accountdata["id"].'/'.$invoicedata['invoice_prefix'].$invoicedata['invoiceid']."_invoice.pdf"; 
2197
		$this->CI->html2pdf->Output($download_path,"F");         
2198
	   }
2199
}
2200
	function reseller_select_value($select, $table, $id_where = '') {
2201
		$select_params = explode(',', $select);
2202
		$where = array("1");
2203
		if ($id_where != '') {
2204
			$where = array("id" => $id_where);
2205
		}
2206
		$select_params = explode(',', $select);
2207
		$cnt_str = " $select_params[0],' ',$select_params[1],' ','(',$select_params[2],')' ";
2208
		$select = "concat($cnt_str) as $select_params[2] ";
2209
		$drp_array = $this->CI->db_model->getSelect($select, $table, $where);
0 ignored issues
show
Bug introduced by
The property db_model does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
2210
		$drp_array = $drp_array->result();
2211
		if (isset($drp_array[0]))
2212
			return $drp_array[0]->$select_params[2];
2213
	else
2214
	   return 'Admin';
2215
	}
2216
    
2217 View Code Duplication
	function get_subreseller_info($parent_id){
2218
		if(!empty($parent_id)){
2219
	  $str=$parent_id.",";
2220
		}else{
2221
		  $str=null;
2222
		}
2223
		$query = "select id from accounts where reseller_id = '$parent_id' AND deleted =0 AND type=1";
2224
		$result = $this->CI->db->query($query);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
2225
		if($result->num_rows() > 0){
2226
		$result = $result->result_array();
2227
	  foreach ($result as $data){
2228
		if(!empty($data['id'])){
2229
		  $str.=$this->get_subreseller_info($data['id']);
2230
		}
2231
	  }
2232
	}
2233
	return $str;
2234
	}
2235 View Code Duplication
	function get_parent_info($child_id,$parent_id){
2236
		if(!empty($child_id)){
2237
	  $str=$child_id.",";
2238
		}else{
2239
		  $str=null;
2240
		}
2241
		if($child_id > 0){
2242
		$query = "select reseller_id from accounts where id = '$child_id'";
2243
		$result = $this->CI->db->query($query);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
2244
		if($result->num_rows() > 0){
2245
		$parent_info = (array)$result->first_row();
2246
	  if($parent_info['reseller_id'] != $parent_id){
2247
		$str.=$this->get_parent_info($parent_info['reseller_id'],$parent_id);
2248
	  }
2249
	}
2250
	}
2251
	return $str;
2252
	}
2253
	function get_did_accountid($select,$table,$where){
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2254
	  $accountinfo=$this->CI->session->userdata('accountinfo');
0 ignored issues
show
Bug introduced by
The property session does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
2255
	  $this->CI->db->where('note',$where);
0 ignored issues
show
Bug introduced by
The property db does not seem to exist in CI_Controller.

An attempt at access to an undefined property has been detected. This may either be a typographical error or the property has been renamed but there are still references to its old name.

If you really want to allow access to undefined properties, you can define magic methods to allow access. See the php core documentation on Overloading.

Loading history...
2256
	  $this->CI->db->where('parent_id',$accountinfo['id']);
2257
	  $this->CI->db->select('reseller_id');
2258
	  $reseller_pricing_result=$this->CI->db->get('reseller_pricing');
2259
	  $account_info=(array)$reseller_pricing_result->first_row();
2260
	  $account_name=$this->get_field_name_coma_new('first_name,last_name,number','accounts',$account_info['reseller_id']);
2261
	  return $account_name;     
2262
	}
2263
2264
	function get_status_new($select = "",$table = "",$status = "") {
0 ignored issues
show
Unused Code introduced by
The parameter $select is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $table is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2265
	  return ($status['status']==0) ? "<span class='label label-sm label-inverse arrowed-in' title='release'>Active<span>" : "<span class='label label-sm' title='release'>Inactive<span>";
2266
	}
2267
    
2268
}
2269