Changeset 1062

Show
Ignore:
Timestamp:
09/19/08 07:20:52 (2 months ago)
Author:
rach
Message:

Correct Batch for recurring service

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Cronjobs/a2billing_batch_process.php

    r709 r1062  
    2727 
    2828include_once (dirname(__FILE__)."/lib/Class.Table.php"); 
     29include (dirname(__FILE__)."/lib/interface/constants.php"); 
    2930include (dirname(__FILE__)."/lib/Class.A2Billing.php"); 
    3031include (dirname(__FILE__)."/lib/Misc.php"); 
    3132 
    32 $verbose_level=0
     33$verbose_level=1
    3334$groupcard=5000; 
    3435 
     
    5253$instance_table = new Table(); 
    5354 
     55$QUERY_GROUP = 'SELECT DISTINCT id_card_group FROM cc_cardgroup_service '; 
     56$result_group = $instance_table -> SQLExec ($A2B -> DBHandle, $QUERY_GROUP); 
     57if (sizeof($result_group)==0){ 
     58        if ($verbose_level>=1) echo "[No card to run the Recurring service]\n"; 
     59        write_log(LOGFILE_CRONT_BATCH_PROCESS, basename(__FILE__).' line:'.__LINE__."[No card to run the Recurring service]"); 
     60        exit(); 
     61} 
     62 
     63 
     64$groupe_clause = "IN ("; 
     65$idx =1; 
     66foreach ($result_group as $row) 
     67{  
     68        $groupe_clause .= " '".$row['id_card_group']."' "; 
     69        if($idx != sizeof($result_group)) $groupe_clause .= ","; 
     70        $idx++; 
     71         
     72} 
     73$groupe_clause .= " )"; 
    5474 
    5575// CHECK AMOUNT OF CARD ON WHICH APPLY THE SERVICE 
    56 $QUERY = 'SELECT count(*) FROM cc_card WHERE runservice=1'
    57  
     76$QUERY = 'SELECT count(*) FROM cc_card WHERE firstusedate IS NOT NULL AND firstusedate>0 AND runservice=1 AND id_group '.$groupe_clause
     77if ($verbose_level>=1) echo $QUERY; 
    5878$result = $instance_table -> SQLExec ($A2B -> DBHandle, $QUERY); 
    5979$nb_card = $result[0][0]; 
     
    7090 
    7191// CHECK THE SERVICES 
    72 $QUERY = "SELECT id, name, amount, period, rule, daynumber, stopmode, maxnumbercycle, status, numberofrun, datecreate, $UNIX_TIMESTAMP datelastrun), emailreport, totalcredit,totalcardperform FROM cc_service WHERE status=1"; 
     92$QUERY = "SELECT DISTINCT id, name, amount, period, rule, daynumber, stopmode, maxnumbercycle, status, numberofrun, datecreate, $UNIX_TIMESTAMP datelastrun), emailreport, totalcredit,totalcardperform FROM cc_service , cc_cardgroup_service WHERE status=1 AND id = id_service"; 
    7393 
    7494$result = $instance_table -> SQLExec ($A2B -> DBHandle, $QUERY); 
    75  
    7695if ($verbose_level>=1) print_r ($result); 
    7796 
     
    114133        for ($page = 0; $page <= $nbpagemax; $page++) { 
    115134                 
    116                 $sql = "SELECT id, credit, nbservice, $UNIX_TIMESTAMP lastuse), username, $UNIX_TIMESTAMP servicelastrun), email FROM cc_card WHERE firstusedate IS NOT NULL AND firstusedate>0 AND runservice=1 ORDER BY id  "; 
     135                $sql = "SELECT id, credit, nbservice, $UNIX_TIMESTAMP lastuse), username, $UNIX_TIMESTAMP servicelastrun), email FROM cc_card , cc_cardgroup_service WHERE id_group = id_card_group AND id_service = $myservice[0] AND firstusedate IS NOT NULL AND firstusedate>0 AND runservice=1 ORDER BY id  "; 
    117136                if ($A2B->config["database"]['dbtype'] == "postgres"){ 
    118137                        $sql .= " LIMIT $groupcard OFFSET ".$page*$groupcard; 
  • trunk/DataBase/mysql-5.x/UPDATE-a2billing-v1.3.0-to-v1.4.0-mysql.sql

    r1060 r1062  
    11391139 CREATE TABLE cc_cardgroup_service ( 
    11401140id_card_group INT NOT NULL , 
    1141 id_service INT NOT NULL 
     1141id_service INT NOT NULL, 
     1142PRIMARY KEY ( id_card_group , id_service ) 
    11421143) ENGINE = MYISAM ; 


Google