function smarty_function_html_menu($params, &$smarty)
{
    $conditions = '';
    extract($params);
    if (empty($field)) {
        $field = $name;
    }
    if (empty($id)) {
        $id = $field;
    }
    $db =& DB();
    $rs =& $db->Execute($sql = sqlSelect($db, $assoc_table, "id," . $assoc_field, $conditions, $assoc_field));
    #echo $sql;
    $return = '<select id="' . $id . '" name="' . $field . '">';
    if ($default == "all" || $blank) {
        $return .= '<option value="" selected></option>';
    }
    if ($rs && $rs->RecordCount() > 0) {
        while (!$rs->EOF) {
            $return .= '<option value="' . $rs->fields['id'] . '"';
            if ($default == $rs->fields['id']) {
                $return .= "selected";
            }
            $return .= '>' . $rs->fields["{$assoc_field}"] . '</option>';
            $rs->MoveNext();
        }
    } else {
        if ($default != "all") {
            $return .= '<option value=""></option>';
        }
    }
    $return .= '</select>';
    echo $return;
}
Example #2
0
 /** Get the plugin settings from the database */
 function config()
 {
     $db =& DB();
     $rs =& $db->Execute(sqlSelect($db, "voip_did_plugin", "*", "id = {$this->id}"));
     $this->release_minutes = $rs->fields['release_minutes'];
     $this->avail_countries = $rs->fields['avail_countries'];
 }
function smarty_function_voip_did_id($params, &$smarty)
{
    extract($params);
    if (empty($service_id)) {
        $smarty->trigger_error("voip_did_id: attribute 'service_id' required");
        return false;
    }
    $db =& DB();
    $rs = $db->Execute(sqlSelect($db, "service", "prod_attr_cart", "id=::" . $service_id . "::"));
    $prod_attr_cart = unserialize($rs->fields['prod_attr_cart']);
    $did = "";
    if (!empty($prod_attr_cart['station'])) {
        $did = $prod_attr_cart['station'];
    }
    if (!empty($prod_attr_cart['ported'])) {
        $did = $prod_attr_cart['ported'];
    }
    if (substr($did, 0, 1) == "1") {
        $did = "(did=::" . $did . ":: OR did=::" . substr($did, 1) . "::)";
    } else {
        $did = "did=::" . $did . "::";
    }
    $rs = $db->Execute($sql = sqlSelect($db, "voip_did", "id", $did));
    return $rs->fields[0];
}
 function download($VAR)
 {
     if (empty($VAR['id'])) {
         return false;
     }
     $id = $VAR['id'];
     // get ticket id
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, array("ticket_attachment", "ticket"), "A.ticket_id,B.department_id,B.account_id", "A.id=::{$id}:: AND A.ticket_id=B.id"));
     if (!$rs || $rs->RecordCount() == 0) {
         return false;
     }
     // is this an admin?
     global $C_auth;
     if ($C_auth->auth_method_by_name("ticket", "view")) {
         // get the data & type
         $rs = $db->Execute(sqlSelect($db, "ticket_attachment", "*", "id=::{$id}::"));
         // set the header
         require_once PATH_CORE . 'file_extensions.inc.php';
         $ft = new file_extensions();
         $type = $ft->set_headers_ext($rs->fields['type'], $rs->fields['name']);
         if (empty($type)) {
             echo imap_qprint($rs->fields['content']);
         } elseif (preg_match("/^text/i", $type)) {
             echo imap_base64($rs->fields['content']);
         } else {
             echo imap_base64($rs->fields['content']);
         }
         exit;
     }
 }
 /** Output avial/assigned rate tables for configuration
  */
 function product_rates($VAR)
 {
     @($product = $VAR['product']);
     $avail = false;
     $assigned = false;
     $db =& DB();
     $as = $db->Execute($sql = sqlSelect($db, "voip_rate_prod", "voip_rate_id", "product_id = ::{$product}::"));
     if ($as && $as->RecordCount() > 0) {
         while (!$as->EOF) {
             $av["{$as->fields['voip_rate_id']}"] = true;
             $as->MoveNext();
         }
     }
     $rs = $db->Execute($sql = sqlSelect($db, "voip_rate", "id,name,pattern,amount", ""));
     if ($rs && $rs->RecordCount() > 0) {
         while (!$rs->EOF) {
             if (is_array($av) && array_key_exists($rs->fields['id'], $av)) {
                 $assigned[] = array('id' => $rs->fields['id'], 'name' => $rs->fields['name'] . ' - ' . substr($rs->fields['pattern'], 0, 20) . ' - ' . $rs->fields['amount']);
             } else {
                 $avail[] = array('id' => $rs->fields['id'], 'name' => $rs->fields['name'] . ' - ' . substr($rs->fields['pattern'], 0, 20) . ' - ' . $rs->fields['amount']);
             }
             $rs->MoveNext();
         }
     }
     global $smarty;
     $smarty->assign('avail', $avail);
     $smarty->assign('assigned', $assigned);
 }
 function task()
 {
     $db =& DB();
     /* get the max invoice days from the setup_invoice table */
     if (!$this->advance_days) {
         $setup = $db->Execute(sqlSelect($db, "setup_invoice", "advance_notice", "advance_notice>0 and advance_notice != '' and advance_notice is not null"));
         if (!$setup->RecordCount()) {
             return false;
         }
         $this->advance_days = $setup->fields['advance_notice'];
     }
     /* pre-billing days global setting */
     if (MAX_INV_GEN_PERIOD <= 0) {
         $max_days = $max_date = 1;
     } else {
         $max_days = MAX_INV_GEN_PERIOD;
     }
     /* pre-notification date for service */
     $this->advance_days_service = $this->advance_days + $max_days;
     $max_date = time() + $this->advance_days_service * 86400;
     date("Y-m-d", $max_date);
     $p = AGILE_DB_PREFIX;
     $s = DEFAULT_SITE;
     $ids = false;
     $account = false;
     $date = false;
     $invoice = false;
     $sql = "SELECT DISTINCT service.id as serviceId, account.id as accountId, invoice.id as invoiceId, from_unixtime(service.date_next_invoice,'%Y-%m-%d') as dayGroup\n\t\t\t\t\tFROM {$p}service as service \n\t\t\t\t\tJOIN {$p}account as account ON ( service.account_id=account.id and account.site_id={$s} )\n\t\t\t\t\tLEFT JOIN {$p}invoice as invoice ON ( service.invoice_id=invoice.id and invoice.site_id={$s} )\n\t\t\t\t\tWHERE service.site_id={$s} \n\t\t\t\t\tAND service.active = 1 \n\t\t\t\t\tAND ( service.invoice_advance_notified IS NULL OR service.invoice_advance_notified = 0 )\n\t\t\t\t\tAND ( service.suspend_billing IS NULL OR service.suspend_billing = 0 )  \n\t\t\t\t\tAND ( service.date_next_invoice > 0 AND service.date_next_invoice IS NOT NULL )\n\t\t\t\t\tAND  \n\t\t\t\t\t((\n\t\t\t\t\t    ( account.invoice_advance_gen!='' OR account.invoice_advance_gen is not null ) AND service.date_next_invoice <= ((86400*(account.invoice_advance_gen+{$this->advance_days})) + (UNIX_TIMESTAMP(CURDATE())))\n\t\t\t\t\t ) OR (\n\t\t\t\t\t    ( account.invoice_advance_gen='' OR account.invoice_advance_gen is null ) AND service.date_next_invoice <= {$max_date}\n\t\t\t\t\t))\n\t\t\t\t\tORDER BY accountId, dayGroup, serviceId";
     $rs = $db->Execute($sql);
     if ($rs === false) {
         global $C_debug;
         $C_debug->error('advance_notice.inc.php', 'task()', $sql . " \r\n\r\n " . @$db->ErrorMsg());
     }
     if ($rs && $rs->RecordCount()) {
         while (!$rs->EOF) {
             if ($ids && $rs->fields['accountId'] != $account || $rs->fields['dayGroup'] != $date) {
                 $this->sendEmail($ids, $account, $date);
                 $ids = false;
             }
             // set the current account and date
             $account = $rs->fields['accountId'];
             $invoice = $rs->fields['invoiceId'];
             $date = $rs->fields['dayGroup'];
             // add to id list
             if ($ids) {
                 $ids .= ",";
             }
             $ids .= $rs->fields['serviceId'];
             $rs->MoveNext();
         }
         if ($ids) {
             $this->sendEmail($ids, $account, $date);
         }
     }
 }
function smarty_function_html_menu_multi($params, &$smarty)
{
    $conditions = '';
    extract($params);
    if (empty($field)) {
        $field = $name;
    }
    if (empty($id)) {
        $id = $field;
    }
    if (empty($size)) {
        $size = '4';
    }
    $db =& DB();
    $rs =& $db->Execute($sql = sqlSelect($db, $assoc_table, "id," . $assoc_field, $conditions, $assoc_field));
    if (empty($default)) {
        $default = array('');
    } elseif (is_array($default)) {
        $default = $default;
    } elseif (is_numeric($default)) {
        $default[] = $default;
    } elseif (is_string($default)) {
        $default = unserialize($default);
    } else {
        $default = array('');
    }
    if ($default == "all") {
        $return .= '<option value="" selected></option>';
    }
    $i = 0;
    if ($rs && $rs->RecordCount() > 0) {
        while (!$rs->EOF) {
            $return .= '<option value="' . $rs->fields['id'] . '"';
            foreach ($default as $def) {
                if ($def == $rs->fields["id"]) {
                    $return .= " selected";
                }
                break;
            }
            $return .= '>' . $rs->fields["{$assoc_field}"] . '</option>';
            $i++;
            $rs->MoveNext();
        }
    } else {
        if ($default != "all") {
            $return .= '<option value=""></option>';
        }
    }
    $return .= '</select>';
    if ($i < $size) {
        $size = $i++;
    }
    echo '<select id="' . $id . '" name="' . $field . '[]" size="' . $size . '" value="" multiple>' . $return;
}
 function p_one($id)
 {
     global $C_debug;
     /* Get the service details */
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, "service", "*", "id=::{$id}::"));
     if (!$rs || !$rs->RecordCount()) {
         return false;
     }
     $this->service = $rs->fields;
     @($this->plugin_data = unserialize($this->service['prod_plugin_data']));
     @($this->prod_attr_cart = unserialize($this->service['prod_attr_cart']));
     /* Get the account details */
     $acct = $db->Execute(sqlSelect($db, "account", "*", "id=::{$this->service['account_id']}::"));
     if ($acct && $acct->RecordCount()) {
         $this->account = $acct->fields;
     }
     /* Get the product details */
     if (!empty($this->service['product_id'])) {
         $product = $db->Execute(sqlSelect($db, "product", "*", "id = ::{$this->service['product_id']}::"));
         $this->product = $product->fields;
         @($this->product_attr = unserialize($product->fields['prod_plugin_data']));
     }
     /* determine the correct action */
     switch ($this->service['queue']) {
         case 'new':
             $result = $this->p_new();
             break;
         case 'active':
             $result = $this->p_active();
             break;
         case 'inactive':
             $result = $this->p_inactive();
             break;
         case 'edit':
             if ($this->service['active'] == 1) {
                 $this->p_active();
             } else {
                 $this->p_inactive();
             }
             $result = $this->p_edit();
             break;
         case 'delete':
             $result = $this->p_delete();
             break;
     }
     if (@$result !== false) {
         $sql = 'UPDATE ' . AGILE_DB_PREFIX . 'service SET queue=' . $db->qstr('none') . ', date_last=' . $db->qstr(time()) . ' WHERE id =' . $db->qstr($rs->fields['id']) . ' AND site_id=' . $db->qstr(DEFAULT_SITE);
         $upd = $db->Execute($sql);
     } else {
         $C_debug->error($this->name . 'php', $this->service['queue'], @$result);
     }
 }
 /** view system message */
 function view($VAR)
 {
     if (!SESS_LOGGED) {
         return false;
     }
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, "account_message", "date_orig,message", "id=1"));
     if ($rs && $rs->RecordCount()) {
         global $smarty;
         $smarty->assign('message', $rs->fields['message']);
         $smarty->assign('date', date("m-d-Y", $rs->fields['date_orig']));
     }
 }
 function getIsPasswordOk($account_id, $password, $hashed = true)
 {
     if (!$hashed) {
         $this->hashPassword($password);
     }
     $db =& DB();
     /* currently used or used in duplicatePeriod? */
     $date = time() - 86400 * $this->duplicateAfter;
     $rs = $db->Execute(sqlSelect($db, "account_password_history", "id", "account_id={$account_id} and password=::{$password}:: and (date_last=0 OR (date_last > {$date} OR date_orig > {$date}))"));
     if ($rs && $rs->RecordCount()) {
         return false;
     }
     return true;
 }
Example #11
0
 function assign($serviceId, $assetPoolId)
 {
     // check if any available
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, "asset", "id,asset", "(status=0 or status is null) and pool_id=::{$assetPoolId}::", "", 1));
     if ($rs && $rs->RecordCount()) {
         $id = $rs->fields['id'];
         $asset = $rs->fields['asset'];
         $fields = array('service_id' => $serviceId, 'status' => 1, 'date_last' => time());
         $db->Execute($sql = sqlUpdate($db, "asset", $fields, "id = {$id}"));
         return $asset;
     }
     return false;
 }
 function add($VAR)
 {
     // check this is not a duplicate for the selected product/voip_rate record combo
     $product_id = $VAR['voip_rate_prod_product_id'];
     $voip_rate_id = $VAR['voip_rate_prod_voip_rate_id'];
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, 'voip_rate_prod', 'id', "product_id = ::{$product_id}:: AND voip_rate_id = ::{$voip_rate_id}::"));
     if ($rs && $rs->RecordCount() > 0) {
         echo "<script>alert('Specified product/voip_rate combo already exists, cannot create record'); history.back();</script>";
         return false;
     }
     $type = "add";
     $this->method["{$type}"] = explode(",", $this->method["{$type}"]);
     $db = new CORE_database();
     $db->add($VAR, $this, $type);
 }
function smarty_function_voip_did($params, &$smarty)
{
    extract($params);
    if (empty($service_id)) {
        $smarty->trigger_error("voip_did: attribute 'service_id' required");
        return false;
    }
    $db =& DB();
    $rs = $db->Execute(sqlSelect($db, "service", "prod_attr_cart", "id=::" . $service_id . "::"));
    $prod_attr_cart = unserialize($rs->fields['prod_attr_cart']);
    if (!empty($prod_attr_cart['station'])) {
        return $prod_attr_cart['station'];
    }
    if (!empty($prod_attr_cart['ported'])) {
        return $prod_attr_cart['ported'];
    }
}
Example #14
0
 function p_new()
 {
     # generate a password
     $pass_len = 8;
     $password = substr(md5(md5(time()) . $this->domain_name), 0, $pass_len);
     $this->login['password'] = $password;
     // connect to api
     $rserver = new RRADServer($this->server_cfg['user'], $this->server_cfg['pass']);
     if (!$rserver->authenticate()) {
         if ($this->server['debug']) {
             print "Couldn't authenticate against server b/c: " . $rserver->getMessage();
         }
         return false;
     }
     if ($this->server['debug']) {
         print "RServer Msg: " . $rserver->getMessage() . "<br>";
     }
     $con_svc = $rserver->getConvenienceService();
     // set properties
     $properties = array("FirstName" => $this->account['first_name'], "LastName" => $this->account['last_name'], "Email" => $this->account['email'], "Company" => $this->account['company']);
     // send command
     $result = $con_svc->newDomain($this->domain_name, $this->login['password'], $this->plugin_data['package'], $properties);
     if ($this->server['debug']) {
         print "RServer Msg: " . $rserver->getMessage() . "<br>";
     }
     // return results
     if ($result) {
         // add service
         $con_svc->addService($this->domain_name, $this->plugin_data['service']);
         // update service record
         $db =& DB();
         $rs =& $db->Execute(sqlSelect($db, "service", "*", "id={$this->service_id}"));
         $plugin_data = unserialize($rs->fields['host_provision_plugin_data']);
         $insert = array('host_provision_plugin_data' => serialize($plugin_data), 'host_username' => $this->domain_name, 'host_password' => $this->login['password']);
         $sql = $db->GetUpdateSQL($rs, $insert);
         $result = $db->Execute($sql);
         # send the user the details
         include_once PATH_MODULES . 'email_template/email_template.inc.php';
         $email = new email_template();
         $email->send('host_new_user', $this->account['id'], $this->service_id, '', '');
         return true;
     }
     return false;
 }
Example #15
0
 function user_view($VAR)
 {
     /* validate, update to read, and view() */
     if (!SESS_LOGGED || empty($VAR['id'])) {
         return false;
     }
     /* select id for this user */
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, "email_log", "*", "id=::{$VAR['id']}:: and account_id=" . SESS_ACCOUNT));
     if ($rs && $rs->RecordCount()) {
         global $smarty;
         $smarty->assign('email_log', $rs->fields);
         if ($rs->fields['userread'] != 1) {
             /* update to read */
             $fields = array('userread' => 1);
             $db->Execute(sqlUpdate($db, "email_log", $fields, "id = {$rs->fields['id']}"));
         }
     }
 }
function smarty_function_db_lookup($params, &$smarty)
{
    extract($params);
    if (empty($id)) {
        $smarty->trigger_error("db_lookup: attribute 'id' required");
        return false;
    }
    if (empty($table)) {
        $smarty->trigger_error("db_lookup: attribute 'table' required");
        return false;
    }
    if (empty($field)) {
        $smarty->trigger_error("db_lookup: attribute 'field' required");
        return false;
    }
    $db =& DB();
    $rs = $db->Execute(sqlSelect($db, $table, $field, "id=::" . $id . "::"));
    return $rs->fields[0];
}
 function load_setup(&$rs)
 {
     if (!$rs) {
         $db =& DB();
         $rs = $db->Execute(sqlSelect($db, "setup_invoice", "*", ""));
     }
     $this->billToCompany = $rs->fields['bill_to_company'];
     $this->invoiceCurrency = $rs->fields['invoice_currency'];
     $this->invoiceDecimals = $rs->fields['invoice_decimals'];
     $this->itemsSummaryMax = $rs->fields['items_summary_max'];
     $this->news = $rs->fields['news'];
     $this->pageType = $rs->fields['page_type'];
     $this->show_itemized = $rs->fields['invoice_show_itemized'];
     $this->show_service_range = $rs->fields['invoice_show_service_dates'];
     $this->contact_us_url = $rs->fields['contact_us_url'];
     $this->contact_us_phone = $rs->fields['contact_us_phone'];
     #$this->currency;
     $this->currency = $rs->fields['invoice_currency'];
 }
Example #18
0
 /**
  * Validate inputted tax id on account addition/update
  */
 function TaxIdsValidate($country_id, $tax_id, $exempt = false)
 {
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, "tax", "*", "country_id={$country_id} AND zone=::*:: AND tax_id_collect=1 AND tax_id_req=1"));
     if ($rs && $rs->RecordCount()) {
         $this->errField = $rs->fields['tax_id_name'];
         if (empty($tax_id)) {
             if ($rs->fields['tax_id_exempt'] && $exempt) {
                 return true;
             } else {
                 return false;
             }
         }
         if (!empty($rs->fields['tax_id_regex'])) {
             $regex = $rs->fields['tax_id_regex'];
             if (!preg_match(",{$regex},", trim($tax_id))) {
                 return false;
             }
         }
     }
     return true;
 }
Example #19
0
 function getAccountInfo()
 {
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, "account", "*", "id = ::{$this->account_id}::"));
     if (!empty($rs->fields['parent_id'])) {
         $this->account_parent_id = $rs->fields['parent_id'];
     }
     $ret = array('company' => $rs->fields['company'], 'first_name' => $rs->fields['first_name'], 'last_name' => $rs->fields['last_name'], 'address1' => $rs->fields['address1'], 'address2' => $rs->fields['address2'], 'city' => $rs->fields['city'], 'state' => $rs->fields['state'], 'zip' => $rs->fields['zip'], 'email' => $rs->fields['email'], 'acct_parent_id' => $rs->fields['parent_id']);
     $rs = $db->Execute(sqlSelect($db, "module", "id", "name=::account::"));
     $account_module = $rs->fields['id'];
     /* get custom fields*/
     $sql = "SELECT DISTINCT A.value, B.name FROM " . AGILE_DB_PREFIX . "static_var as B \n\t\t\t\tLEFT JOIN " . AGILE_DB_PREFIX . "static_var_record as A on (B.id=A.static_var_id AND A.record_id = " . $db->qstr($this->account_id) . ") \n\t\t\t\tWHERE A.module_id={$account_module} ";
     $rs = $db->Execute($sql);
     if ($rs && $rs->RecordCount()) {
         while (!$rs->EOF) {
             $fld = substr(strtolower(ereg_replace(" ", '_', $rs->fields['name'])), 0, 32);
             @($ret["{$fld}"] = $rs->fields['value']);
             $rs->MoveNext();
         }
     }
     return $ret;
 }
 function task($VAR)
 {
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, "voip_did_plugin", "*", ""));
     if ($rs && $rs->RecordCount() > 0) {
         while (!$rs->EOF) {
             // load the plugin and call refresh();
             $plugin = $rs->fields['plugin'];
             $file = PATH_PLUGINS . 'voip_did/' . $plugin . '.php';
             if (is_file($file)) {
                 include_once $file;
                 eval('$plg = new plgn_voip_did_' . $plugin . ';');
                 if (is_object($plg)) {
                     if (is_callable(array($plg, 'release'))) {
                         $plg->id = $rs->fields['id'];
                         $plg->refresh();
                     }
                 }
             }
             $rs->MoveNext();
         }
     }
 }
Example #21
0
<?php
			if (!$subPage) {
				// $member = sqlSelect("SELECT groups.description, group_members.admin FROM groups INNER JOIN group_members WHERE groups.id = {$groupId} GROUP BY group_members.admin;");
				if (!empty($group_info[0]['description']) && !empty($member[0]['admin'])): ?>
				<a href="groups/<?=$groupId; ?>/description/edit" class="btn btn-primary">Redigera</a>
				<hr />
				<p><?=$group_info[0]['description']; ?><p>
				<?php else: ?>
					<div>Gruppen har ingen beskrivning än.</div>
					<?php if (!empty($member[0]['admin'])): ?>
					<a href="groups/<?=$groupId; ?>/description/edit" class="btn btn-primary">Lägg till beskrivning</a>
				<?php 
					endif;
				endif;
			}

			if ($subPage === 'edit'):
				$member = sqlSelect("SELECT groups.name, groups.description, group_members.admin FROM groups INNER JOIN group_members WHERE groups.id = {$groupId} AND group_members.user_id = {$_SESSION['user']['id']} GROUP BY group_members.admin;");
				if (!empty($member[0]['admin'])): ?>
				<form action="form/post/group/edit_description" method="post">
					<input type="hidden" name="group_id" value="<?=$groupId; ?>">
					<input type="hidden" name="group_name" value="<?=$group_info[0]['name']; ?>">
					<textarea name="group_description" class="form-control"><?=$group_info[0]['description']; ?></textarea>
					<input type="submit" class="btn btn-success" value="Spara">
				</form>
			<?php else: ?>
				<p>Du har inte behörighet att ändra gruppens beskrivning.</p>
			<?php endif;
			endif;

?>
Example #22
0
<?php

if ($_SERVER['REQUEST_METHOD'] == 'GET') {
    session_start();
    require '../../../mysql/query.php';
    require '../../../lang/config.php';
    if (isset($_SESSION['user'])) {
        if (isset($_GET['view']) && isset($_GET['admin'])) {
            if (is_numeric($_GET['view']) && is_numeric($_GET['admin'])) {
                $group_info = sqlSelect("SELECT admin FROM `group_members` WHERE group_id = {$_GET['view']} AND user_id = {$_SESSION['user']['id']};");
                if ($group_info[0]['admin'] == 1) {
                    if (sqlAction("UPDATE group_members SET admin = 1 WHERE id = {$_GET['admin']};")) {
                        $member = sqlSelect("SELECT users.user_id, users.username, groups.id, groups.name FROM users INNER JOIN `group_members` INNER JOIN groups ON users.user_id = group_members.user_id AND groups.id = group_members.group_id WHERE group_members.id = {$_GET['admin']};");
                        if (sqlAction("INSERT INTO group_news_feed (group_id, user_id, type, what, date) VALUES ({$_GET['view']}, {$_SESSION['user']['id']}, 'made_admin', '{\"id\":{$member[0]['user_id']}, \"username\":\"{$member[0]['username']}\"}', now());")) {
                            header("Location: ../../../groups/{$_GET['view']}/members");
                        }
                    }
                }
            }
        }
    }
}
Example #23
0
<?php

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    session_start();
    require '../../mysql/query.php';
    $input = json_decode($_POST['login']);
    $user = sqlEscape($input->user);
    $password = sqlEscape($input->password);
    $user_exists = sqlSelect("SELECT id, person_nr, first_name, last_name, mail, tel, password FROM customers WHERE person_nr = '{$user}' OR mail = '{$user}';");
    if ($user_exists) {
        $pwd = $user_exists[0]['password'];
        if (password_verify($password, $pwd)) {
            $_SESSION['me'] = array('id' => $user_exists[0]['id'], 'personnr' => $user_exists[0]['person_nr'], 'first_name' => $user_exists[0]['first_name'], 'last_name' => $user_exists[0]['last_name'], 'mail' => $user_exists[0]['mail'], 'tel' => $user_exists[0]['id']);
            echo 1;
        } else {
            echo 'wrong password';
        }
    } else {
        echo 'wrong username';
    }
}
 function user_update($VAR)
 {
     if (!SESS_LOGGED) {
         return false;
     }
     $db =& DB();
     $rs = $db->Execute(sqlSelect($db, "account_billing", "card_type", "id=::{$VAR['id']}:: and account_id=" . SESS_ACCOUNT));
     if (!$rs || !$rs->RecordCount()) {
         return false;
     }
     $result = $this->update($VAR, $this);
     global $VAR;
     $VAR['_page'] = 'account_billing:user_view';
     if ($result) {
         global $C_debug;
         $C_debug->alert("Your billing details have been updated.");
     }
 }
Example #25
0
     $insert_services .= ';';
     // echo $insert_services;
     // die;
     if (sqlAction($insert_services)) {
         $success = true;
     }
     // echo $success;
     // die;
 }
 if (!empty($_POST['existing_service'])) {
     $serviceArray = '';
     foreach ($_POST['existing_service'] as $a) {
         $serviceArray .= $a["'service_id'"] . ',';
     }
     $serviceArray = rtrim($serviceArray, ',');
     $check_services = sqlSelect("SELECT id, name, price, time, category_id FROM services WHERE id IN ({$serviceArray});");
     $update_description_text = '';
     $update_price_text = '';
     $update_time_text = '';
     $update_category_text = '';
     $current = 0;
     $rowsToUpdate = '';
     // 	echo '<pre>';
     // print_r($_POST['existing_service']);
     // echo '</pre>';
     // echo '<pre>';
     // print_r($check_services);
     // echo '</pre>';
     // echo "SELECT id, name, price, time, category_id FROM services WHERE id IN ({$serviceArray});";
     // echo count($_POST['existing_service']);
     // die;
Example #26
0
<ul class="breadcrumb">
	<li><a href="groups/<?=$groupId; ?>/stories">Översikt</a></li>
	<li><a href="groups/<?=$groupId; ?>/stories/started">Pågående</a></li>
	<li><a href="groups/<?=$groupId; ?>/stories/finished">Färdiga</a></li>
</ul>
<?php
if (!$subPage):
$stories = sqlSelect("SELECT story_id, title, status FROM `story` WHERE with_group = {$groupId};");
if ($stories): foreach($stories as $story): ?>
<div class="panel panel-success">
  	<div class="panel-heading">
    	<h3 class="panel-title">
    		<?php if (!empty($member)): ?>
    		<a href="write?story=<?=$story['story_id']; ?>"><?=$story['title']; ?></a></h3>
    		<?php else: echo $story['title']; ?>
    		<?php endif; ?>
  	</div>
  	<div class="panel-body">
  		<?php if ($story['status'] == 1): ?>
  		<span>Pågår</span>
  		<?php elseif ($story['status'] == 2): ?>
  		<span>Färdig</span>
  		<?php endif; ?>
  	</div>
</div>
<?php endforeach;endif;endif; ?>
 function ajax_add($VAR)
 {
     $db =& DB();
     $rs = $db->Execute($sql = sqlSelect($db, "voip_cdr", "src, dst", "id=::" . $VAR['voip_cdr_id'] . ":: and account_id=::" . SESS_ACCOUNT . "::"));
     if ($rs && $rs->RecordCount()) {
         if (strlen($rs->fields['src'])) {
             $did = $rs->fields['dst'];
             $rs1 = $db->Execute(sqlSelect($db, "voip_did", "id, blacklist", "account_id=::" . SESS_ACCOUNT . ":: and (did=::{$did}:: or did=::1{$did}::)"));
             if ($rs1 && $rs1->RecordCount()) {
                 if ($rs1->fields['blacklist']) {
                     $rs2 = $db->Execute(sqlSelect($db, "voip_blacklist", "id", "account_id=::" . SESS_ACCOUNT . ":: and src=::" . $rs->fields['src'] . "::"));
                     if ($rs2 && $rs2->RecordCount()) {
                         echo "alert('Sorry, this number is already in your blacklist.');\n";
                     } else {
                         $f['account_id'] = SESS_ACCOUNT;
                         $f['voip_did_id'] = $rs1->fields['id'];
                         $f['src'] = $rs->fields['src'];
                         $f['dst'] = 'Playback tt-monkeys';
                         $db->Execute(sqlInsert($db, "voip_blacklist", $f));
                         echo "alert('Added entry to your blacklist.');\n";
                     }
                 } else {
                     echo "alert('Your account does not have the blacklist feature.');\n";
                 }
             } else {
                 echo "alert('Sorry, can not find the DID associated with this CDR.');\n";
             }
         }
     } else {
         echo "alert('Sorry, the CDR does not belong to your account.');\n";
     }
     return true;
 }
Example #28
0
 function sweep($type)
 {
     $this->charge_construct();
     include_once PATH_MODULES . 'account_billing/account_billing.inc.php';
     $account_billing = new account_billing();
     include_once PATH_MODULES . 'tax/tax.inc.php';
     $taxObj = new tax();
     include_once PATH_MODULES . 'discount/discount.inc.php';
     $db =& DB();
     $sql = "SELECT DISTINCT\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.account_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.service_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.amount,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.taxable,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.attributes,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.quantity,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.product_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.description,  \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.affiliate_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.reseller_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.country_id,\n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.currency_id, \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.state \n\t\t\t\tFROM \n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge  \t\t\n\t\t\t\tLEFT JOIN \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account \t\t\t\n\t\t\t\tON \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.id \t\t = " . AGILE_DB_PREFIX . "charge.account_id \t\t\t\t\t\t\t\n\t\t\t\tWHERE  \n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.site_id \t = " . $db->qstr(DEFAULT_SITE) . " \n\t\t\t\tAND \n\t\t\t\t\t" . AGILE_DB_PREFIX . "account.site_id \t = " . $db->qstr(DEFAULT_SITE) . "\t\t\t\n\t\t\t\tAND\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.status \t = " . $db->qstr('0') . " \n\t\t\t\tAND\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.sweep_type = " . $db->qstr($type) . "\n\t\t\t\tORDER BY\n\t\t\t\t\t" . AGILE_DB_PREFIX . "charge.account_id";
     $rs = $db->Execute($sql);
     if ($rs === false) {
         global $C_debug;
         $C_debug->error('charge.inc.php', 'charge :: sweep()', $db->ErrorMsg() . "\r\n\r\n" . $sql);
         return false;
     }
     $account_id = false;
     $invoice_id = false;
     $i = false;
     $i_total = false;
     $invoice_count = 0;
     $sweep_count = 0;
     while (!$rs->EOF) {
         if ($rs->fields['account_id'] != $account_id) {
             $account_id = $rs->fields['account_id'];
             $i = 0;
             $i_total = $this->count_account_charges($account_id, $rs->CurrentRow(), $rs);
             $sub_total = 0;
             $taxable_amount = 0;
             $this_discount_total = 0;
             $tax_amt = 0;
             $discount_amt = 0;
             # Start a new transaction
             $trans =& DB();
             $trans->StartTrans();
             # Start a new invoice
             $invoice_id = $db->GenID(AGILE_DB_PREFIX . 'invoice_id');
             # check for any discounts for the parent invoice or account_id (applied at checkout and should continue to be applied if recurring type discount)
             $discountObj = new discount();
             # get parent invoice id if service specified (for discount checking)
             $parent_invoice_id = false;
             if ($rs->fields['service_id']) {
                 $parentinv = $db->Execute(sqlSelect($db, "service", "invoice_id", "id={$rs->fields['service_id']}"));
                 if ($parentinv && $parentinv->RecordCount()) {
                     $parent_invoice_id = $parentinv->fields['invoice_id'];
                 }
             }
             # get available discounts to this account/service
             $discountObj->available_discounts($account_id, 1, $parent_invoice_id);
         }
         ###########################
         ##### LINE ITEM ACTIONS ###
         ###########################
         if (!empty($account_id)) {
             ### Get the line item id
             $invoice_item_id = $db->GenID(AGILE_DB_PREFIX . 'invoice_item_id');
             ### Set the invoice item details:
             $product_id = $rs->fields['product_id'];
             if (!empty($product_id) && empty($this->product["{$product_id}"])) {
                 $sql = "SELECT sku FROM " . AGILE_DB_PREFIX . "product WHERE  \n\t\t\t\t\t\t\tid \t= " . $db->qstr($product_id) . " AND\n\t\t\t\t\t\t\tsite_id = " . $db->qstr(DEFAULT_SITE);
                 $prod = $db->Execute($sql);
                 if ($prod->RecordCount() > 0) {
                     $sku = $prod->fields['sku'];
                     $this->product["{$product_id}"] = $sku;
                     $product_attr = '';
                     if (!empty($rs->fields['description'])) {
                         $product_attr = "Description=={$rs->fields['description']}\r\n";
                     }
                     $product_attr .= $rs->fields['attributes'];
                 } else {
                     $sku = $rs->fields['description'];
                     $this->product["{$product_id}"] = $sku;
                     $product_attr = $rs->fields['attributes'];
                 }
             } elseif (!empty($this->product["{$product_id}"])) {
                 $sku = $this->product["{$product_id}"];
                 $product_attr = $rs->fields['attributes'];
             } else {
                 $sku = $rs->fields['description'];
                 $product_attr = $rs->fields['attributes'];
             }
             $quantity = $rs->fields['quantity'];
             $price_base = $rs->fields['amount'];
             $item_total_amt = $price_base * $quantity;
             // Calculate any recurring discounts for this account
             $item_discount_amt = $discountObj->calc_all_discounts(1, $invoice_item_id, $rs->fields['product_id'], $item_total_amt, $account_id, $sub_total + $item_total_amt);
             $item_total_amt -= $item_discount_amt;
             $sub_total += $item_total_amt;
             $discount_amt += $item_discount_amt;
             # calculate any taxes for this item
             $item_tax_amt = 0;
             if ($rs->fields['taxable']) {
                 $item_tax_arr = $taxObj->calculate($item_total_amt, $rs->fields['country_id'], $rs->fields['state']);
                 if (is_array($item_tax_arr)) {
                     foreach ($item_tax_arr as $tx) {
                         $item_tax_amt += $tx['rate'];
                     }
                 }
                 $tax_amt += $item_tax_amt;
             }
             ### Add line item to new invoice
             $sql = "INSERT INTO " . AGILE_DB_PREFIX . "invoice_item SET\n\t\t\t\t\t\tid\t\t\t\t\t    = " . $db->qstr($invoice_item_id) . ",\n\t\t\t\t\t\tsite_id\t\t\t\t    = " . $db->qstr(DEFAULT_SITE) . ",\n\t\t\t\t\t\tinvoice_id\t\t\t    = " . $db->qstr($invoice_id) . ",\n\t\t\t\t\t\taccount_id\t\t\t\t= " . $db->qstr($account_id) . ",\n\t\t\t\t\t\tdate_orig\t\t\t    = " . $db->qstr(time()) . ",\n\t\t\t\t\t\tproduct_id\t\t\t    = " . $db->qstr($product_id) . ",\n\t\t\t\t\t\tsku\t\t\t\t\t    = " . $db->qstr($sku) . ",\n\t\t\t\t\t\tquantity\t\t\t    = " . $db->qstr($quantity) . ",\n\t\t\t\t\t\titem_type\t\t\t    = " . $db->qstr('0') . ",\n\t\t\t\t\t\tproduct_attr\t\t    = " . $db->qstr($product_attr) . ", \n\t\t\t\t\t\tprice_type              = " . $db->qstr('0') . ",\n\t\t\t\t\t\tprice_base\t\t\t    = " . $db->qstr($price_base) . ",\n\t\t\t\t\t\tprice_setup\t\t\t    = " . $db->qstr(0) . ",\n\t\t\t\t\t\ttax_amt\t\t\t\t\t= " . $db->qstr($item_tax_amt) . ",\n\t\t\t\t\t\ttotal_amt\t\t\t\t= " . $db->qstr($item_total_amt) . ",\n\t\t\t\t\t\tdiscount_amt\t\t\t= " . $db->qstr($item_discount_amt);
             $trans->Execute($sql);
             # Insert tax records
             $taxObj->invoice_item($invoice_id, $invoice_item_id, $account_id, @$item_tax_arr);
             # Insert discount records
             $discountObj->invoice_item($invoice_id, $invoice_item_id, $account_id);
             ### Update this charge status to billed
             $sql = "UPDATE " . AGILE_DB_PREFIX . "charge SET\n\t\t\t\t\t\tstatus   \t= " . $db->qstr('1') . " \n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\tsite_id\t    = " . $db->qstr(DEFAULT_SITE) . " AND \n\t\t\t\t\t\tid\t\t    = " . $db->qstr($rs->fields['id']);
             $trans->Execute($sql);
             $i++;
             $sweep_count++;
         }
         #######################
         ### INVOICE ACTIONS ###
         #######################
         if ($i_total == $i || $i == $rs->RecordCount()) {
             if ($invoice_id) {
                 ### Get the most recent billing id for this client:
                 if (!isset($billing_id["{$account_id}"])) {
                     $billing_arr = $account_billing->default_billing($account_id);
                     $billing_id["{$account_id}"] = $billing_arr['billing_id'];
                     $checkout_plugin_id["{$account_id}"] = $billing_arr['checkout_plugin_id'];
                 }
                 ### Affiliate & Reseller info:
                 $affiliate_id = $rs->fields['affiliate_id'];
                 $reseller_id = $rs->fields['reseller_id'];
                 $actual_billed_currency_id = $rs->fields['currency_id'];
                 # calculate any taxes
                 @($total = $sub_total + $tax_amt);
                 if ($total <= 0) {
                     $process_status = 1;
                     $billing_status = 1;
                 } else {
                     $process_status = 0;
                     $billing_status = 0;
                 }
                 ### Generate the invoice insert SQL:
                 $sql = "INSERT INTO " . AGILE_DB_PREFIX . "invoice SET\n\t\t\t\t\t\t\t\tid\t\t\t\t\t\t\t= " . $db->qstr($invoice_id) . ",\n\t\t\t\t\t\t\t\tsite_id\t\t\t\t\t\t= " . $db->qstr(DEFAULT_SITE) . ",\n\t\t\t\t\t\t\t\tdate_orig\t\t\t\t\t= " . $db->qstr(time()) . ",\n\t\t\t\t\t\t\t\tdate_last\t\t\t\t\t= " . $db->qstr(time()) . ",\n\t\t\t\t\t\t\t\tprocess_status\t\t\t\t= " . $db->qstr($process_status) . ",\n\t\t\t\t\t\t\t\tbilling_status\t\t\t\t= " . $db->qstr($billing_status) . ",\n\t\t\t\t\t\t\t\tprint_status\t\t\t\t= " . $db->qstr('0') . ",\n\t\t\t\t\t\t\t\taccount_id\t\t\t\t\t= " . $db->qstr($account_id) . ",\n\t\t\t\t\t\t\t\taccount_billing_id\t\t\t= " . $db->qstr($billing_id["{$account_id}"]) . ",\n\t\t\t\t\t\t\t\taffiliate_id\t\t\t\t= " . $db->qstr($affiliate_id) . ",\n\t\t\t\t\t\t\t\treseller_id\t\t\t\t\t= " . $db->qstr($reseller_id) . ",\n\t\t\t\t\t\t\t\tcheckout_plugin_id\t\t\t= " . $db->qstr($checkout_plugin_id["{$account_id}"]) . ",  \n\t\t\t\t\t\t\t\ttax_amt\t\t\t\t\t\t= " . $db->qstr($tax_amt) . ", \n\t\t\t\t\t\t\t\tdiscount_amt\t\t\t\t= " . $db->qstr($discount_amt) . ",\n\t\t\t\t\t\t\t\tactual_billed_currency_id\t= " . $db->qstr($actual_billed_currency_id) . ",\n\t\t\t\t\t\t\t\tactual_billed_amt\t\t\t= " . $db->qstr('0') . ",\n\t\t\t\t\t\t\t\tbilled_currency_id\t\t\t= " . $db->qstr(DEFAULT_CURRENCY) . ",\n\t\t\t\t\t\t\t\tbilled_amt\t\t\t\t\t= " . $db->qstr('0') . ",\n\t\t\t\t\t\t\t\ttotal_amt\t\t\t\t\t= " . $db->qstr($total) . ",\n\t\t\t\t\t\t\t\tnotice_count\t\t\t\t= " . $db->qstr('0') . ",\n\t\t\t\t\t\t\t\tnotice_max\t\t\t\t\t= " . $db->qstr(MAX_BILLING_NOTICE) . ",\n\t\t\t\t\t\t\t\tnotice_next_date\t\t\t= " . $db->qstr(time()) . ",\n\t\t\t\t\t\t\t\tgrace_period\t\t\t\t= " . $db->qstr(GRACE_PERIOD) . ",\n\t\t\t\t\t\t\t\tdue_date\t\t\t\t\t= " . $db->qstr(time());
                 $trans->Execute($sql);
                 ### Close this transaction
                 $trans->CompleteTrans();
                 $i_total = false;
                 $i = false;
                 $account_id = false;
                 $invoice_id = false;
                 $discount = false;
                 $cookie = false;
                 $invoice_count++;
             }
         }
         $rs->MoveNext();
     }
     global $C_debug;
     $C_debug->alert("Swept {$sweep_count} Charge(s) into {$invoice_count} Invoice(s).");
     return true;
 }
Example #29
0
 function task($VAR)
 {
     if (function_exists('agileco_parse_country_code')) {
         $this->c_task($VAR);
         return;
     }
     global $rate;
     $rate = array();
     $db =& DB();
     $rs =& $db->Execute(sqlSelect($db, "product", "id,prod_plugin_data", "prod_plugin_file=::VOIP:: and prod_plugin=1"));
     while (!$rs->EOF) {
         $pdata = unserialize($rs->fields['prod_plugin_data']);
         $id = $rs->fields['id'];
         if ($pdata['rate_cdr'] == 1) {
             $products[] = $id;
         }
         $rs->MoveNext();
     }
     // no products to rate
     if (empty($products)) {
         return false;
     }
     # Load configuration
     $sql = sqlSelect($db, "voip", "voip_intrastate, voip_default_prefix, perform_normalization, normalization_min_len", "");
     $rs = $db->Execute($sql);
     $this->voip_intrastate = explode(",", ereg_replace("[[:space:]]", "", $rs->fields['voip_intrastate']));
     $this->voip_default_prefix = $rs->fields['voip_default_prefix'];
     $this->normalization_min_len = $rs->fields['normalization_min_len'];
     $this->perform_normalization = $rs->fields['perform_normalization'];
     ob_start();
     # normalize the CDR records
     echo "Begin normalization...\n";
     if ($this->perform_normalization) {
         $this->normalize($db);
     }
     echo "Finished normalization...\n";
     # rate prepaid cards, non-SIP prepaid
     $rs =& $db->Execute(sqlSelect($db, "voip_prepaid", "pin, account_id, product_id, voip_did_id", "(voip_did_id=0 or voip_did_id is null)"));
     if ($rs && $rs->RecordCount() > 0) {
         while (!$rs->EOF) {
             $dp = 0;
             unset($dids);
             $dids[$dp]['start'] = 0;
             $dids[$dp]['end'] = mktime(0, 0, 0, date('m') + 1, 1, date('Y'));
             $dids[$dp]['accountcode'] = "cc:" . $rs->fields['pin'];
             echo "Rating calling card PIN: " . $rs->fields['pin'] . "\n";
             # Load rating table configuration
             $rate = $this->load_rating_table($db, $rs->fields['product_id']);
             $this->rate_calls($db, $db, $dids, $rs->fields, false);
             # Mark inbound calls
             if ($rs->fields['voip_did_id'] > 0) {
                 $sql = "update " . AGILE_DB_PREFIX . "voip_cdr SET amount=0, rated=1, account_id=" . $db->qstr($rs->fields['account_id']) . " where dst=" . $db->qstr($rs->fields['pin']) . " and rated=0 and site_id=" . DEFAULT_SITE;
                 echo $sql . "\n";
                 $db->Execute($sql);
             }
             $rs->MoveNext();
         }
     }
     echo "Begin SIP Prepaid rating...\n";
     $sql = "select account_id, username, prod_attr_cart, prod_plugin_data, date_last_invoice, date_next_invoice, b.product_id, b.id as service_id from " . AGILE_DB_PREFIX . "account as a left join " . AGILE_DB_PREFIX . "service as b on (a.id=b.account_id) where a.status=1 and prod_plugin_name='PREPAID' and b.active=1 and a.site_id=" . DEFAULT_SITE . " and b.site_id=" . DEFAULT_SITE;
     echo $sql . "\n";
     $rs =& $db->Execute($sql);
     if ($rs && $rs->RecordCount() > 0) {
         while (!$rs->EOF) {
             $dp = 0;
             unset($dids);
             $cart = @unserialize($rs->fields['prod_attr_cart']);
             $plugin = unserialize($rs->fields['prod_plugin_data']);
             if (isset($cart['station']) && isset($plugin['type']) && $plugin['type'] == 'did') {
                 $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400;
                 $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399;
                 $dids[$dp]['did'] = $cart['station'];
                 # Load rating table configuration
                 $rate = $this->load_rating_table($db, $rs->fields['product_id']);
                 if (is_array($rate)) {
                     $this->rate_calls($db, $db, $dids, $rs->fields);
                 }
             }
             $rs->MoveNext();
         }
     }
     echo "Begin postpaid rating...\n";
     # rate calls
     $sql = "select account_id, username, prod_attr_cart, prod_plugin_data, date_last_invoice, date_next_invoice, b.product_id, b.id as service_id, b.sku from " . AGILE_DB_PREFIX . "account as a left join " . AGILE_DB_PREFIX . "service as b on (a.id=b.account_id) where a.status=1 and prod_plugin_name='VOIP' and b.active=1 and product_id IN (" . join(",", $products) . ") and a.site_id=" . DEFAULT_SITE . " and b.site_id=" . DEFAULT_SITE;
     echo $sql . "\n";
     $rs = $db->Execute($sql);
     $dp = 0;
     while (!$rs->EOF) {
         $dp = 0;
         unset($dids);
         $cart = @unserialize($rs->fields['prod_attr_cart']);
         $plugin = unserialize($rs->fields['prod_plugin_data']);
         $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400;
         $dids[$dp]['end'] = $rs->fields['date_next_invoice'];
         $dids[$dp]['did'] = @$cart['station'];
         if (strlen(@$cart['ported'])) {
             $dids[0]['did'] = $cart['ported'];
         }
         $cc = "";
         $e164 = "";
         $npa = "";
         $nxx = "";
         if (!strlen($dids[0]['did']) && $plugin['rate_accountcode'] == 0) {
             echo "Skipping service_id = " . $rs->fields['service_id'] . " (sku: " . $rs->fields['sku'] . ")\n";
         } else {
             if ($this->e164($dids[0]['did'], $e164, $cc, $npa, $nxx)) {
                 $dids[0]['did'] = substr($e164, 1);
                 if ($cc == '1') {
                     $dp++;
                     $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400;
                     $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399;
                     $dids[$dp]['did'] = substr($e164, 2);
                     $dp++;
                     $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400;
                     $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399;
                     $dids[$dp]['did'] = substr($e164, 1);
                 } else {
                     $dp++;
                     $dids[$dp]['start'] = $rs->fields['date_last_invoice'];
                     $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399;
                     $dids[$dp]['did'] = substr($e164, 4);
                 }
             }
             if (@$cart['parent_service_id'] > 0) {
                 # echo "This is a virtual number, skipping record...";
             } else {
                 # load virtual numbers on this parent service
                 $sql = "select * from " . AGILE_DB_PREFIX . "service where account_id=" . $db->qstr($rs->fields['account_id']) . " and active=1 and prod_plugin_name='VOIP' and site_id=" . DEFAULT_SITE;
                 echo $sql . "\n";
                 $rs1 = $db->Execute($sql);
                 $i = 1;
                 if ($rs1) {
                     while (!$rs1->EOF) {
                         $carttmp = @unserialize($rs1->fields['prod_attr_cart']);
                         if (@$carttmp['parent_service_id'] == $rs->fields['service_id']) {
                             # is this an actual virtual line?
                             $ppd = unserialize($rs1->fields['prod_plugin_data']);
                             if ($ppd['parent_enabled'] && $ppd['virtual_number']) {
                                 $dp++;
                                 $dids[$dp]['start'] = $rs1->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400;
                                 $dids[$dp]['end'] = $rs1->fields['date_next_invoice'] + 86399;
                                 $dids[$dp]['did'] = @$carttmp['station'];
                                 if (strlen($carttmp['ported'])) {
                                     $dids[$dp]['did'] = $carttmp['ported'];
                                 }
                                 $cc = "";
                                 $e164 = "";
                                 $npa = "";
                                 $nxx = "";
                                 if ($this->e164($dids[$dp]['did'], $e164, $cc, $npa, $nxx)) {
                                     $dids[$dp]['did'] = substr($e164, 1);
                                     if ($cc == '1') {
                                         $dp++;
                                         $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400;
                                         $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399;
                                         $dids[$dp]['did'] = substr($e164, 2);
                                         $dp++;
                                         $dids[$dp]['start'] = $rs->fields['date_last_invoice'] - MAX_INV_GEN_PERIOD * 86400;
                                         $dids[$dp]['end'] = $rs->fields['date_next_invoice'] + 86399;
                                         $dids[$dp]['did'] = substr($e164, 1);
                                     }
                                 }
                                 echo "Found virtual number: " . $dids[$dp]['did'] . "\n";
                             }
                             # end test to see if truely virtual
                         }
                         $rs1->MoveNext();
                     }
                 }
                 # Load rating table configuration
                 $rate = $this->load_rating_table($db, $rs->fields['product_id']);
                 if (is_array($rate)) {
                     if ($plugin['rate_accountcode']) {
                         # rate accountcode based
                         # echo "Rate by account code: ".$rs->fields['username']."\n";
                         $dids[$dp]['accountcode'] = $rs->fields['username'];
                         $this->rate_calls($db, $db, $dids, $rs->fields);
                     } else {
                         # rate non-accountcode based
                         $this->rate_calls($db, $db, $dids, $rs->fields);
                     }
                 }
             }
         }
         # end did length check
         $rs->MoveNext();
     }
     $debug = ob_get_contents();
     echo $debug;
     ob_end_clean();
     if (defined('RATING_DEBUG')) {
         mail("*****@*****.**", "Rating Debug For " . URL, $debug);
     }
     return true;
 }
Example #30
0
		        	<label>
		            	<input type="radio" name="radio" <?=(!$subPage) ? 'checked=""' : ''; ?> onClick="window.location.replace('groups/<?=$groupId; ?>/news');">Visa senaste
		        	</label>
		        </div>
		        <div class="radio">
		        	<label>
		            	<input type="radio" name="radio" <?=($subPage === 'oldest') ? 'checked=""' : ''; ?> onClick="window.location.replace('groups/<?=$groupId; ?>/news/oldest');">Visa äldsta
		        	</label>
		        </div>

<?php

if (!$subPage) 
					$news = sqlSelect("SELECT users.user_id, users.username, group_news_feed.type, group_news_feed.what, group_news_feed.date FROM `group_news_feed` INNER JOIN users ON users.user_id = group_news_feed.user_id WHERE group_news_feed.group_id = {$groupId} ORDER BY group_news_feed.id DESC;");
				else if ($subPage === 'oldest')
					$news = sqlSelect("SELECT users.user_id, users.username, group_news_feed.type, group_news_feed.what, group_news_feed.date FROM `group_news_feed` INNER JOIN users ON users.user_id = group_news_feed.user_id WHERE group_news_feed.group_id = {$groupId} ORDER BY group_news_feed.id ASC;");
				$i = 0;
				foreach ($news as $newsItem) {
					$i++;
					if ($i % 2 === 0)
						$color = '#4899B1;';
					else
						$color = '#2B5B6A;';
					?>

					<div class="panel panel-default">
						<div class="panel-heading" style="background: <?=$color; ?>">
							<?php
							if ($newsItem['type'] === 'edited_description') {
								echo ($newsItem['user_id'] == $_SESSION['user']['id']) ? 'Jag' : "<a href=\"profile?view={$newsItem['user_id']}\">{$newsItem['username']}</a>"; ?> ändrade gruppens beskrivning.
							<?php }