/plugins/product/PREPAID.php
https://github.com/axxtel/agilebill · PHP · 154 lines · 107 code · 17 blank · 30 comment · 9 complexity · eda6bf7c6004d8cabb97c797c98b422e MD5 · raw file
- <?php
-
- /**
- * AgileBill - Open Billing Software
- *
- * This body of work is free software; you can redistribute it and/or
- * modify it under the terms of the Open AgileBill License
- * License as published at http://www.agileco.com/agilebill/license1-4.txt
- *
- * For questions, help, comments, discussion, etc., please join the
- * Agileco community forums at http://forum.agileco.com/
- *
- * @link http://www.agileco.com/
- * @copyright 2004-2008 Agileco, LLC.
- * @license http://www.agileco.com/agilebill/license1-4.txt
- * @author Tony Landis <tony@agileco.com>
- * @package AgileBill
- * @version 1.4.93
- */
-
- require_once PATH_MODULES.'voip/base_voip_plugin.inc.php';
- class plgn_prov_PREPAID extends base_voip_plugin
- {
- function plgn_prov_PREPAID()
- {
- $this->name = 'PREPAID';
- $this->task_based = false;
- $this->remote_based = true;
- }
-
- function delete_cart($VAR, $cart)
- {
- parent::delete_cart($VAR, $cart, true);
- }
-
- function validate_cart($VAR, $product)
- {
- // check if prepaid type is ani or pin, if so, escape:
- $unserial = unserialize($product->fields['prod_plugin_data']);
- if(!empty($unserial['type']) && ( $unserial['type']=='ani' || $unserial['type']=='pin' ) ) return true;
-
- // verify that attr['station'] is defined and numeric
- @$did = $VAR['attr']['station'];
- $ported = 0;
- if (@$VAR['attr']['ported']) {
- $did = $VAR['attr']['ported'];
- $ported = 1;
- }
- if(empty($did) || !is_numeric($did))
- return "Sorry, the DID format specified is incorrect.";
-
- // check if user owns did && is in did pool
- $db =& DB();
- $didrs = $db->Execute(sqlSelect($db,"voip_did","id,did","did = ::{$did}:: AND account_id=".SESS_ACCOUNT));
- if($didrs && $didrs->RecordCount()>0) return true;
- return parent::validate_cart($VAR, $product, $did, $ported);
- }
-
- # add new service
- function p_new()
- {
- # todo: check that the pin is random!
- include_once(PATH_MODULES.'voip_prepaid/voip_prepaid.inc.php');
- $prepaid= new voip_prepaid;
-
- # determine the prepaid type:
- switch($this->product_attr['type']) {
- case 'did':
- return $prepaid->provision_did_new($this);
- break;
- case 'ani':
- return $prepaid->provision_ani_new($this);
- break;
- case 'pin':
- return $prepaid->provision_pin_new($this);
- break;
- }
- return false;
- }
- # edit service
- function p_edit()
- {
- # determine the prepaid type:
- switch($this->product_attr['type']) {
- case 'did':
- include_once(PATH_PLUGINS.'product/VOIP.php');
- $voip = new plgn_prov_VOIP;
- if(!$voip->p_one($this->service_id)) return false;
- break;
- }
- return true;
- }
- # activate service
- function p_inactive()
- {
- $db=&DB();
- $rs = $db->Execute(sqlSelect($db,"voip_did","id,did","service_id = $this->service_id"));
- $did_id = $rs->fields['id'];
- $fields=Array('in_use'=>2);
- $db->Execute(sqlUpdate($db,"voip_prepaid",$fields,"voip_did_id = {$did_id}"));
- return true;
- }
- # deactivate service
- function p_active()
- {
- $db=&DB();
- $rs = $db->Execute(sqlSelect($db,"voip_did","id,did","service_id = $this->service_id"));
- $did_id = $rs->fields['id'];
- $fields=Array('in_use'=>0);
- $db->Execute(sqlUpdate($db,"voip_prepaid",$fields,"voip_did_id = {$did_id}"));
- return true;
- }
- # delete service
- function p_delete()
- {
- $db =& DB();
- # determine the prepaid type:
- switch($this->product_attr['type']) {
- case 'ani':
- $sql = sqlDelete($db,"voip_prepaid","pin=::{$this->prod_attr_cart['ani_new']}::");
- $db->Execute($sql);
- break;
- case 'did':
- include_once(PATH_PLUGINS.'product/VOIP.php');
- $voip = new plgn_prov_VOIP;
- $voip->p_one($this->service_id);
- break;
- }
- $rs = $db->Execute($sql=sqlSelect($db,"voip_did","id,did","service_id = $this->service_id"));
- $did_id = $rs->fields['id'];
- $db->Execute($sql=sqlDelete($db,"voip_prepaid","voip_did_id = {$did_id}"));
- return true;
- }
- function p_one($id)
- {
- $db =& DB();
-
- # Get the asterisk global configuration
- $sql = sqlSelect($db, "voip", "voip_vm_passwd, voip_secret_gen", "");
- $rs = $db->Execute($sql);
- $this->voip_vm_passwd = $rs->fields['voip_vm_passwd'];
- $this->voip_secret_gen = $rs->fields['voip_secret_gen'];
-
- parent::p_one($id);
- }
- }
- ?>