diff --git a/build/MagnusBilling-current.tar.gz b/build/MagnusBilling-current.tar.gz index 2f91480f8..555d35e60 100644 Binary files a/build/MagnusBilling-current.tar.gz and b/build/MagnusBilling-current.tar.gz differ diff --git a/classic/src/view/did/Form.js b/classic/src/view/did/Form.js index 550c4f431..32ae0d9f4 100755 --- a/classic/src/view/did/Form.js +++ b/classic/src/view/did/Form.js @@ -185,7 +185,7 @@ Ext.define('MBilling.view.did.Form', { }, { title: t('Billing'), reference: 'billingTab', - hidden: !App.user.isAdmin, + hidden: App.user.isClient, items: [{ xtype: 'fieldset', style: 'margin-top:5px; overflow: visible;', @@ -221,7 +221,7 @@ Ext.define('MBilling.view.did.Form', { xtype: 'moneyfield', mask: App.user.currency + ' #9.999.990,' + App.user.decimalPrecision, name: 'agent_client_rate_1', - fieldLabel: t('Agent\'s client price per min'), + fieldLabel: App.user.isAgent ? t('Sell price per min') : t('Agent\'s client price per min'), value: '0', hidden: App.user.isClient }, { @@ -241,7 +241,7 @@ Ext.define('MBilling.view.did.Form', { title: t('DID billing per minute rate') + ' 2', collapsible: false, collapsed: false, - hidden: !App.user.isAdmin, + hidden: App.user.isClient, defaults: { labelWidth: 250, anchor: '100%', @@ -271,7 +271,7 @@ Ext.define('MBilling.view.did.Form', { xtype: 'moneyfield', mask: App.user.currency + ' #9.999.990,' + App.user.decimalPrecision, name: 'agent_client_rate_2', - fieldLabel: t('Agent\'s client price per min'), + fieldLabel: App.user.isAgent ? t('Sell price per min') : t('Agent\'s client price per min'), value: '0', hidden: App.user.isClient }, { @@ -291,7 +291,7 @@ Ext.define('MBilling.view.did.Form', { title: t('DID billing per minute rate') + ' 3', collapsible: false, collapsed: false, - hidden: !App.user.isAdmin, + hidden: App.user.isClient, defaults: { labelWidth: 250, anchor: '100%', @@ -321,7 +321,7 @@ Ext.define('MBilling.view.did.Form', { xtype: 'moneyfield', mask: App.user.currency + ' #9.999.990,' + App.user.decimalPrecision, name: 'agent_client_rate_3', - fieldLabel: t('Agent\'s client price per min'), + fieldLabel: App.user.isAgent ? t('Sell price per min') : t('Agent\'s client price per min'), value: '0', hidden: App.user.isClient }, { diff --git a/protected/commands/DidCheckCommand.php b/protected/commands/DidCheckCommand.php index 89ec19205..a9e9234c4 100755 --- a/protected/commands/DidCheckCommand.php +++ b/protected/commands/DidCheckCommand.php @@ -43,6 +43,11 @@ public function run($args) $oneday = 60 * 60 * 24; foreach ($modelDidUse as $didUse) { + + if ( ! isset($didUse->idUser->id)) { + continue; + } + $id_agent = $didUse->idUser->id_user; $day_remaining = 0; diff --git a/protected/components/AsteriskAccess.php b/protected/components/AsteriskAccess.php index 2f0c90b72..58ecd624a 100755 --- a/protected/components/AsteriskAccess.php +++ b/protected/components/AsteriskAccess.php @@ -662,34 +662,6 @@ public static function getCoreShowChannel($channel, $agi = null, $server = null) } - public function generateSipDid() - { - - $sipDidfile = '/etc/asterisk/mbilling_sip_did.conf'; - $sipDid = ''; - - $modelSip = Sip::model()->findAll(); - $modelDID = Did::model()->findAll('reserved = 1 AND activated = 1'); - - if (isset($modelDID[0]->id)) { - foreach ($modelDID as $key => $did) { - $sipDid .= "[" . $did->did . "]\n"; - } - } - - if (isset($modelSip[0]->id)) { - foreach ($modelSip as $key => $sip) { - $sipDid .= "[" . $sip->name . "]\n"; - } - } - - $fdSD = fopen($sipDidfile, "w"); - - fwrite($fdSD, $sipDid); - fclose($fdSD); - - } - public function generateSipPeers() { $modelSip = Sip::model()->findAll(); diff --git a/protected/controllers/DidController.php b/protected/controllers/DidController.php index 4e2e0ba9f..8cb406f91 100755 --- a/protected/controllers/DidController.php +++ b/protected/controllers/DidController.php @@ -36,28 +36,98 @@ class DidController extends Controller ], ]; public $fieldsInvisibleAgent = [ + 'did', + 'id_user', + 'id_didgroup', + 'activated', + 'connection_sell', + 'minimal_time_buy', + 'buyrateinitblock', + 'buyrateincrement', + 'minimal_time_charge', + 'initblock', + 'increment', + 'charge_of', + 'id_server', + 'block_expression_1', + 'block_expression_2', + 'block_expression_3', + 'send_to_callback_1', + 'send_to_callback_2', + 'send_to_callback_3', + 'cbr', + 'cbr_ua', + 'cbr_total_try', + 'cbr_time_try', + 'cbr_em', + 'TimeOfDay_monFri', + 'TimeOfDay_sat', + 'TimeOfDay_sun', + 'workaudio', + 'noworkaudio', + 'fixrate', + 'buy_rate_1', + 'buy_rate_2', + 'buy_rate_3', + 'calllimit', + 'expression_1', + 'expression_2', + 'expression_3', 'buy_rate_1', 'buy_rate_2', 'buy_rate_3', + 'selling_rate_1', + 'selling_rate_2', + 'selling_rate_3', ]; public $fieldsInvisibleClient = [ + 'did', 'id_user', 'id_didgroup', 'activated', - 'creationdate', - 'startingdate', - 'expirationdate', - 'description', - 'billingtype', - 'selling_rate', + 'connection_sell', + 'minimal_time_buy', + 'buyrateinitblock', + 'buyrateincrement', + 'minimal_time_charge', + 'initblock', + 'increment', + 'charge_of', + 'id_server', + 'block_expression_1', + 'block_expression_2', + 'block_expression_3', + 'send_to_callback_1', + 'send_to_callback_2', + 'send_to_callback_3', + 'cbr', + 'cbr_ua', + 'cbr_total_try', + 'cbr_time_try', + 'cbr_em', + 'TimeOfDay_monFri', + 'TimeOfDay_sat', + 'TimeOfDay_sun', + 'workaudio', + 'noworkaudio', + 'fixrate', + 'buy_rate_1', + 'buy_rate_2', + 'buy_rate_3', + 'calllimit', + 'expression_1', + 'expression_2', + 'expression_3', 'buy_rate_1', 'buy_rate_2', 'buy_rate_3', + 'selling_rate_1', + 'selling_rate_2', + 'selling_rate_3', 'agent_client_rate_1', 'agent_client_rate_2', 'agent_client_rate_3', - 'calllimit', ]; public function init() @@ -316,8 +386,6 @@ public function beforeSave($values) public function afterSave($model, $values) { - AsteriskAccess::instance()->generateSipDid(); - if (isset($_FILES["workaudio"]) && strlen($_FILES["workaudio"]["name"]) > 1) { if (file_exists($this->uploaddir . 'idDidAudioProWork_' . $model->id . '.wav')) { unlink($this->uploaddir . 'idDidAudioProWork_' . $model->id . '.wav'); @@ -448,12 +516,6 @@ public function actionLiberar() } } - public function afterDestroy($values) - { - AsteriskAccess::instance()->generateSipDid(); - return; - } - public function beforeDestroy($values) { diff --git a/protected/controllers/DiddestinationController.php b/protected/controllers/DiddestinationController.php index f72a8b881..3d4498a3f 100755 --- a/protected/controllers/DiddestinationController.php +++ b/protected/controllers/DiddestinationController.php @@ -270,7 +270,6 @@ public function actionbulkdestinatintion() } } - AsteriskAccess::instance()->generateSipDid(); echo json_encode([ $this->nameSuccess => $this->success, $this->nameMsg => $this->msg, @@ -291,8 +290,6 @@ public function afterSave($model, $values) $modelDid->id_user = $model->id_user; $modelDid->save(); - AsteriskAccess::instance()->generateSipDid(); - //discount credit of customer $priceDid = $modelDid->connection_charge + $modelDid->fixrate; @@ -339,13 +336,11 @@ public function afterSave($model, $values) } } - AsteriskAccess::instance()->generateSipDid(); return; } public function afterDestroy($values) { - AsteriskAccess::instance()->generateSipDid(); return; } diff --git a/protected/controllers/SipController.php b/protected/controllers/SipController.php index 7f6596f70..739716efd 100755 --- a/protected/controllers/SipController.php +++ b/protected/controllers/SipController.php @@ -190,7 +190,6 @@ public function afterSave($model, $values) { if ($_SERVER['HTTP_HOST'] != 'localhost') { AsteriskAccess::instance()->generateSipPeers(); - AsteriskAccess::instance()->generateSipDid(); AsteriskAccess::instance()->generateQueueFile(); } @@ -202,7 +201,6 @@ public function afterSave($model, $values) public function afterDestroy($values) { AsteriskAccess::instance()->generateSipPeers(); - AsteriskAccess::instance()->generateSipDid(); AsteriskAccess::instance()->generateQueueFile(); $this->siproxyServer($values, 'destroy'); diff --git a/protected/controllers/UserController.php b/protected/controllers/UserController.php index 4107b4365..1091ea432 100755 --- a/protected/controllers/UserController.php +++ b/protected/controllers/UserController.php @@ -126,7 +126,6 @@ public function checkAgentEdit($values) public function afterDestroy($values) { AsteriskAccess::instance()->generateSipPeers(); - AsteriskAccess::instance()->generateSipDid(); return; } @@ -356,8 +355,6 @@ public function afterSave($model, $values) $this->createCallshopRates($model, $values); } - AsteriskAccess::instance()->generateSipDid(); - return; }