Changeset 877

Show
Ignore:
Timestamp:
07/10/08 09:02:44 (2 months ago)
Author:
rach
Message:

add minimum cost for the rate...
Correct the billing when you using grace

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/admin/Public/form_data/FG_var_def_ratecard.inc

    r874 r877  
    55'stepchargea', 'chargea', 'timechargea', 'billingblocka', 'stepchargeb', 'chargeb', 'timechargeb', 
    66'billingblockb', 'stepchargec', 'chargec', 'timechargec', 'billingblockc', 'startdate', 'stopdate', 
    7 'starttime', 'endtime', 'id_trunk', 'musiconhold','tariffplan', 'tariffgroup','posted','id_outbound_cidgroup','rounding_calltime', 'rounding_threshold', 'additional_block_charge', 'additional_block_charge_time', 'additional_grace')); 
     7'starttime', 'endtime', 'id_trunk', 'musiconhold','tariffplan', 'tariffgroup','posted','id_outbound_cidgroup','rounding_calltime', 'rounding_threshold', 'additional_block_charge', 'additional_block_charge_time', 'additional_grace','minimal_cost')); 
    88 
    99// put all the destination name to lowercase 
     
    254254   gettext("Insert the disconnect charge"), 
    255255   "" , "", "", "", "", "", "NO", gettext("Apply a disconnection charge" )); 
    256  
     256  
     257$HD_Form -> AddEditElement(gettext("MINIMAL CALL COST "), 
     258   "minimal_cost", 
     259   '$value', 
     260   "INPUT", 
     261   "size=30 maxlength=20", 
     262   "12", 
     263   gettext("Insert the Minimal call cost"), 
     264   "" , "", "", "", "", "", "NO", gettext("Apply a minimal call cost" )); 
     265    
    257266if (ADVANCED_MODE){ 
    258267        $HD_Form -> AddEditElement(gettext("STEPCHARGE A"), 
     
    506515if (ADVANCED_MODE) { 
    507516        // This Variable store the argument for the SQL query 
    508         $HD_Form -> FieldEditElement ('idtariffplan, dialprefix, destination, buyrate, buyrateinitblock, buyrateincrement, rateinitial, initblock, billingblock, connectcharge, disconnectcharge, stepchargea, chargea, timechargea, billingblocka, stepchargeb, chargeb, timechargeb, billingblockb, stepchargec, chargec, timechargec, billingblockc, startdate, stopdate, starttime, endtime, rounding_calltime, rounding_threshold, additional_block_charge, additional_block_charge_time,additional_grace, id_trunk, id_outbound_cidgroup, tag, musiconhold'); 
     517        $HD_Form -> FieldEditElement ('idtariffplan, dialprefix, destination, buyrate, buyrateinitblock, buyrateincrement, rateinitial, initblock, billingblock, connectcharge, disconnectcharge, minimal_cost, stepchargea, chargea, timechargea, billingblocka, stepchargeb, chargeb, timechargeb, billingblockb, stepchargec, chargec, timechargec, billingblockc, startdate, stopdate, starttime, endtime, rounding_calltime, rounding_threshold, additional_block_charge, additional_block_charge_time,additional_grace, id_trunk, id_outbound_cidgroup, tag, musiconhold'); 
    509518}else{ 
    510519        // This Variable store the argument for the SQL query 
    511         $HD_Form -> FieldEditElement ('idtariffplan, dialprefix, destination, buyrate, buyrateinitblock, buyrateincrement,rateinitial, initblock, billingblock, connectcharge, disconnectcharge, startdate, stopdate, starttime, endtime, rounding_calltime, rounding_threshold, additional_block_charge, additional_block_charge_time,additional_grace, id_trunk, id_outbound_cidgroup, tag'); 
     520        $HD_Form -> FieldEditElement ('idtariffplan, dialprefix, destination, buyrate, buyrateinitblock, buyrateincrement,rateinitial, initblock, billingblock, connectcharge, disconnectcharge, minimal_cost, startdate, stopdate, starttime, endtime, rounding_calltime, rounding_threshold, additional_block_charge, additional_block_charge_time,additional_grace, id_trunk, id_outbound_cidgroup, tag'); 
    512521} 
    513522 
  • trunk/common/lib/Class.RateEngine.php

    r874 r877  
    176176        id_cc_package_offer,tp_trunk.status, rt_trunk.status, tp_trunk.inuse, rt_trunk.inuse,  
    177177        tp_trunk.maxuse,  rt_trunk.maxuse,tp_trunk.if_max_use, rt_trunk.if_max_use,cc_ratecard.rounding_calltime AS rounding_calltime, 
    178         cc_ratecard.rounding_threshold AS rounding_threshold,cc_ratecard.additional_block_charge AS additional_block_charge,cc_ratecard.additional_block_charge_time AS additional_block_charge_time, cc_ratecard.additional_grace AS additional_grace 
     178        cc_ratecard.rounding_threshold AS rounding_threshold,cc_ratecard.additional_block_charge AS additional_block_charge,cc_ratecard.additional_block_charge_time AS additional_block_charge_time, cc_ratecard.additional_grace AS additional_grace, cc_ratecard.minimal_cost AS minimal_cost 
    179179 
    180180                FROM cc_tariffgroup 
     
    721721                $additional_block_charge                = $this->ratecard_obj[$K][56]; 
    722722                $additional_block_charge_time   = $this->ratecard_obj[$K][57]; 
    723                 $additional_grace                               = $this->ratecard_obj[$K][58]; 
     723                $additional_grace_time                  = $this->ratecard_obj[$K][58]; 
     724                $minimal_call_cost                              = $this->ratecard_obj[$K][59]; 
    724725 
    725726                if (!is_numeric($rounding_calltime))                    $rounding_calltime = 0; 
     
    737738 
    738739                $this -> real_answeredtime = $callduration; 
    739                 if($additional_grace>0){ 
    740                 $callduration =$callduration + $additional_grace;                        
    741                 } 
     740                $callduration =$callduration + $additional_grace_time;                   
    742741                 
    743742                /* 
     
    764763 
    765764                // ####         CALCUL BUYRATE COST   ##### 
    766                 $buyratecallduration = $this -> real_answeredtime
     765                $buyratecallduration = $this -> real_answeredtime + $additional_grace_time
    767766 
    768767                $buyratecost =0; 
     
    881880                if ($this -> debug_st)  echo "FINAL COST: $cost\n\n"; 
    882881                $A2B -> debug( WRITELOG, $agi, __FILE__, __LINE__, "[CC_RATE_ENGINE_CALCULCOST: K=$K - BUYCOST: $buyratecost - SELLING COST: $cost]"); 
    883                 $this -> lastcost = $cost; 
     882                 
     883                if($cost> (0-$minimal_call_cost)){ 
     884                        $this -> lastcost = 0 - $minimal_call_cost; 
     885                }else{ 
     886                        $this -> lastcost = $cost; 
     887                } 
    884888                $this -> lastbuycost = $buyratecost; 
     889                 
    885890        } 
    886891 
     
    925930                //$freetimetocall = $this -> ratecard_obj[$K][46]; 
    926931                $id_cc_package_group= $this -> ratecard_obj[$K][45]; 
    927  
     932                $additional_grace_time= $this->ratecard_obj[$K][58]; 
    928933                if ($A2B -> CC_TESTING){ 
    929934                        $sessiontime = 120; 
     
    962967                                // rate_engine_calculcost could have change the duration of the call 
    963968                                $sessiontime = $this -> answeredtime; 
     969                                //add grace time 
     970                                if($sessiontime>0 && $additional_grace_time>0){ 
     971                                        $sessiontime = $sessiontime + $additional_grace_time; 
     972                                } 
    964973 
    965974                                $QUERY_FIELS = 'id_cc_card, id_cc_package_offer, used_secondes'; 
     
    970979 
    971980                                $this -> rate_engine_calculcost ($A2B, $sessiontime, 0); 
    972  
     981                                 
    973982                                // rate_engine_calculcost could have change the duration of the call 
    974983                                $sessiontime = $this -> answeredtime; 
     984                                if($sessiontime>0 && $additional_grace_time>0){ 
     985                                        $sessiontime = $sessiontime + $additional_grace_time; 
     986                                } 
    975987                        } 
    976988 
     
    13021314                                        $answeredtime = $agi->get_variable("ANSWEREDTIME"); 
    13031315                                        $this -> real_answeredtime = $this -> answeredtime = $answeredtime['data']; 
     1316                                         
    13041317                                        $dialstatus = $agi -> get_variable("DIALSTATUS"); 
    13051318                                        $this -> dialstatus = $dialstatus['data']; 
  • trunk/DataBase/mysql-5.x/UPDATE-a2billing-v1.3.0-to-v1.4.0-mysql.sql

    r876 r877  
    10051005 
    10061006ALTER TABLE cc_ratecard ADD additional_grace INT NOT NULL DEFAULT '0'; 
     1007 
     1008ALTER TABLE cc_ratecard ADD minimal_cost FLOAT NOT NULL DEFAULT '0'; 
  • trunk/DataBase/psql/UPDATE-a2billing-v1.3.0-to-v1.4.0-pgsql.sql

    r873 r877  
    997997 ( 'Max Time For Free Calls', 'maxtime_tofree_calls', '5400', 'For free calls, limit the duration: amount in seconds .', '0', '11', NULL); 
    998998 
    999  ALTER TABLE cc_ratecard DROP freetimetocall_package_offer  
     999 ALTER TABLE cc_ratecard DROP freetimetocall_package_offer;  
    10001000-- add additionnal grace to the ratecard 
    10011001 
    10021002ALTER TABLE cc_ratecard ADD additional_grace integer NOT NULL DEFAULT 0; 
    10031003 
     1004ALTER TABLE cc_ratecard ADD minimal_cost real NOT NULL DEFAULT 0; 


Google