$v) { // if has : then its an installment if (strpos($v, ":") === false) { // Not installment $bills[$k] = $v; $addcost += $v; } else { // installment list($cost, $rem) = explode(":", $v); // :0 installment is done if (!empty($rem)) { $bills[$k] = $cost; $addcost += $cost; } } } return [$bills, $addcost]; } public static function billsPaid($bills, $id = 0) { if (!$id) { $id = User::getID(); if (!$id) { return []; } } foreach ($bills as $k => $v) { // if has : then its an installment $v = User::getAttribute($k, $id); if (strpos($v, ":") === false) { // Not installment, no need decrement } else { // installment list($cost, $rem) = explode(":", $v); // :0 installment is done if ($rem != 0) { User::setAttribute($k, "$cost:".($rem - 1), $id); } } } } public static function setAttribute($name, $value, $id = 0) { if (!$id) { $id = User::getID(); if (!$id) { return ''; } } $f = ORM::for_table('tbl_customers_fields')->where('field_name', $name)->where('customer_id', $id)->find_one(); if (!$f) { $f = ORM::for_table('tbl_customers_fields')->create(); $f->customer_id = $id; $f->field_name = $name; $f->field_value = $value; $f->save(); $result = $f->id(); if ($result) { return $result; } } else { $f->field_value = $value; $f->save(); return $f['id']; } return 0; } public static function getAttribute($name, $id = 0) { if (!$id) { $id = User::getID(); if (!$id) { return []; } } $f = ORM::for_table('tbl_customers_fields')->where('field_name', $name)->where('customer_id', $id)->find_one(); if ($f) { return $f['field_value']; } return ''; } public static function getAttributes($endWith, $id = 0) { if (!$id) { $id = User::getID(); if (!$id) { return []; } } $attrs = []; $f = ORM::for_table('tbl_customers_fields')->where_like('field_name', "%$endWith")->where('customer_id', $id)->find_many(); if ($f) { foreach ($f as $k) { $attrs[$k['field_name']] = $k['field_value']; } return $attrs; } return []; } public static function setCookie($uid) { global $db_password; if (isset($uid)) { $time = time(); setcookie('uid', $uid . '.' . $time . '.' . sha1($uid . '.' . $time . '.' . $db_password), time() + 86400 * 30); } } public static function removeCookie() { if (isset($_COOKIE['uid'])) { setcookie('uid', '', time() - 86400); } } public static function _info($id = 0) { if (!$id) { $id = User::getID(); } $d = ORM::for_table('tbl_customers')->find_one($id); if (empty($d['username'])) { r2(U . 'logout', 'd', ''); } return $d; } public static function _billing($id = 0) { if (!$id) { $id = User::getID(); } $d = ORM::for_table('tbl_user_recharges') ->select('tbl_user_recharges.id', 'id') ->select('customer_id') ->select('username') ->select('plan_id') ->select('namebp') ->select('recharged_on') ->select('recharged_time') ->select('expiration') ->select('time') ->select('status') ->select('method') ->select('plan_type') ->select('tbl_user_recharges.routers', 'routers') ->select('tbl_user_recharges.type', 'type') ->select('admin_id') ->select('prepaid') ->where('customer_id', $id) ->join('tbl_plans', array('tbl_plans.id', '=', 'tbl_user_recharges.plan_id')) ->find_many(); return $d; } }