40   $sql = 
"SELECT user_pk,group_pk FROM users LEFT JOIN groups ON group_name=user_name WHERE group_fk IS NULL";
    41   $dbManager->prepare($stmt,$sql);
    42   $res = $dbManager->execute($stmt);
    43   if (pg_num_rows($res)==0)
    48   $userGroupMap = pg_fetch_all($res);
    50   $selectStmt = __METHOD__.
'.select';
    51   $sql = 
"SELECT user_fk,min(group_fk) group_fk FROM group_user_member WHERE user_fk=$1";
    52   $updateStmt = __METHOD__.
'.update';
    53   $dbManager->prepare($updateStmt,
"UPDATE users SET group_fk=$2 WHERE user_pk=$1");
    54   foreach($userGroupMap as $row)
    56     if (!empty($row[
'group_pk']))
    58       pg_free_result( $dbManager->execute($updateStmt,$row) );
    61     $rowrow = $dbManager->getSingleRow($sql,array($row[
'user_pk']),$selectStmt);
    62     pg_fetch_result($dbManager->execute($updateStmt,$rowrow) );
    76   $stmt = __METHOD__.
".blowAudit";
    77   $sql = 
"SELECT min(ut.uploadtree_pk) uploadtree_id, lfa.user_fk user_id, lfa.date date_added, lfa.reason reportinfo,    78                  lfa.rf_fk license_id, ut.pfile_fk pfile_id    79           FROM license_file_audit lfa INNER JOIN license_file lf ON lfa.fl_fk=lf.fl_pk    80                INNER JOIN uploadtree ut ON lf.pfile_fk=ut.pfile_fk    81           GROUP BY lfa.user_fk, lfa.date, lfa.reason, lfa.rf_fk, ut.pfile_fk";
    83   $sql = 
"SELECT pureInserts.* FROM ($sql) pureInserts    84             LEFT JOIN clearing_decision cd    85               ON pureInserts.uploadtree_id=cd.uploadtree_fk and pureInserts.user_id=cd.user_fk    86                 AND pureInserts.date_added=cd.date_added and pureInserts.reportinfo=cd.reportinfo    87           WHERE cd.clearing_pk is null";
    88   $dbManager->prepare($stmt,$sql);
    89   $res = $dbManager->execute($stmt);
    90   if (pg_num_rows($res)==0)
    94       echo 
"no unknown decision\n";
    96     $dbManager->freeResult($res);
    99   $auditDecisions = pg_fetch_all($res);
   100   $dbManager->freeResult($res);
   101   $scope = $dbManager->getSingleRow(
'SELECT scope_pk FROM clearing_decision_scope WHERE meaning=$1',array(
'global'));
   102   $scope = $scope[
'scope_pk'];
   103   $type = $dbManager->getSingleRow(
'SELECT type_pk FROM clearing_decision_type WHERE meaning=$1',array(
'userDecision'));
   104   $type = $scope[
'type_pk'];
   105   $dbManager->prepare($stmt=
'insertClearingDecision',
   106           'INSERT INTO clearing_decision'   107           . 
' (uploadtree_fk,pfile_fk,user_fk,type_fk,scope_fk,comment,reportinfo,date_added) VALUES ($1,$2,$3,$4,$5,$6,$7,$8)'   108           . 
' RETURNING clearing_pk');
   109   $dbManager->prepare($stmt=
'insertClearingLicense',
'INSERT INTO clearing_licenses'   110           . 
' (clearing_fk,rf_fk) VALUES ($1,$2)');
   112   foreach($auditDecisions as $audit)
   114    $cd = $dbManager->execute(
'insertClearingDecision',
   115            array($audit[
'uploadtree_id'],$audit[
'pfile_id'] ,$audit[
'user_id'],$type,$scope,
'migrated',$audit[
'reportinfo'],$audit[
'date_added']));
   116    $clearing = $dbManager->fetchArray($cd);
   117    $clearingId = $clearing[
'clearing_pk'];
   118    $dbManager->freeResult($cd);
   119    $dbManager->freeResult( $dbManager->execute(
'insertClearingLicense',array($clearingId,$audit[
'license_id'])) );
   120    $pfiles[$audit[
'pfile_id']] = 0;
   124    echo 
"inserted ".count($auditDecisions).
" clearing decisions for ".count($pfiles).
" files\n";
   126   return count($auditDecisions);
   139   $nInsertedDecisions = 0;
   140   return $nInsertedDecisions;
 setActiveGroup($verbose)
Set active group for existing users from group_user_member table. 
blowAudit($verbose)
Copy decisions from license_file_audit table to clearing_decision  type $dbManager.