#!/usr/bin/php -q $columns[0], "src" => $columns[1], "dst" => $columns[2], "dcontext" => $columns[3], "clid" => $columns[4], "channel" => $columns[5], "dstchannel" => $columns[6], "lastapp" => $columns[7], "lastdata" => $columns[8], "calldate" => $columns[9], "answerdate" => $columns[10], "hangupdate" => $columns[11], "duration" => $columns[12], "billsec" => $columns[13], "disposition" => $columns[14], "amaflags" => $columns[15], "uniqueid" => $columns[16], "userfield" => $columns[17] ); } if(count($columns) == 25){ $lastdata = array( $columns[8], $columns[9], $columns[10], $columns[10], $columns[11], $columns[12], $columns[13], $columns[14], $columns[15], ); $columnInsert = array( "accountcode" => $columns[0], "src" => $columns[1], "dst" => $columns[2], "dcontext" => $columns[3], "clid" => $columns[4], "channel" => $columns[5], "dstchannel" => $columns[6], "lastapp" => $columns[7], "lastdata" => implode(",", $lastdata), "calldate" => $columns[16], "answerdate" => $columns[17], "hangupdate" => $columns[18], "duration" => $columns[19], "billsec" => $columns[20], "disposition" => $columns[21], "amaflags" => $columns[22], "uniqueid" => $columns[23], "userfield" => $columns[24] ); } if(count($columns) == 27){ $lastdata = array( $columns[8], $columns[9], $columns[10], $columns[10], $columns[11], $columns[12], $columns[13], $columns[14], $columns[15], $columns[16], $columns[17], ); $columnInsert = array( "accountcode" => $columns[0], "src" => $columns[1], "dst" => $columns[2], "dcontext" => $columns[3], "clid" => $columns[4], "channel" => $columns[5], "dstchannel" => $columns[6], "lastapp" => $columns[7], "lastdata" => implode(",", $lastdata), "calldate" => $columns[18], "answerdate" => $columns[19], "hangupdate" => $columns[20], "duration" => $columns[21], "billsec" => $columns[22], "disposition" => $columns[23], "amaflags" => $columns[24], "uniqueid" => $columns[25], "userfield" => $columns[26] ); } if(count($columns) == 28){ $lastdata = array( $columns[8], $columns[9], $columns[10], $columns[10], $columns[11], $columns[12], $columns[13], $columns[14], $columns[15], $columns[16], $columns[17], $columns[18], ); $columnInsert = array( "accountcode" => $columns[0], "src" => $columns[1], "dst" => $columns[2], "dcontext" => $columns[3], "clid" => $columns[4], "channel" => $columns[5], "dstchannel" => $columns[6], "lastapp" => $columns[7], "lastdata" => implode(",", $lastdata), "calldate" => $columns[19], "answerdate" => $columns[20], "hangupdate" => $columns[21], "duration" => $columns[22], "billsec" => $columns[23], "disposition" => $columns[24], "amaflags" => $columns[25], "uniqueid" => $columns[26], "userfield" => $columns[27] ); } if(count($columns) == 29){ $lastdata = array( $columns[8], $columns[9], $columns[10], $columns[10], $columns[11], $columns[12], $columns[13], $columns[14], $columns[15], $columns[16], $columns[17], $columns[18], $columns[19], ); $columnInsert = array( "accountcode" => $columns[0], "src" => $columns[1], "dst" => $columns[2], "dcontext" => $columns[3], "clid" => $columns[4], "channel" => $columns[5], "dstchannel" => $columns[6], "lastapp" => $columns[7], "lastdata" => implode(",", $lastdata), "calldate" => $columns[20], "answerdate" => $columns[21], "hangupdate" => $columns[22], "duration" => $columns[23], "billsec" => $columns[24], "disposition" => $columns[25], "amaflags" => $columns[26], "uniqueid" => $columns[27], "userfield" => $columns[28] ); } $query = "insert into cdr(accountcode, src, dst, dcontext, clid, " . "channel, dstchannel, lastapp, lastdata, calldate," . "answerdate,hangupdate, duration, " . "billsec, disposition, amaflags, uniqueid, userfield)" . "values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);\n"; $query = sprintf($query, NullDb($columnInsert['accountcode']), NullDb($columnInsert['src']), NullDb($columnInsert['dst']), NullDb($columnInsert['dcontext']), NullDb($columnInsert['clid']), NullDb($columnInsert['channel']), NullDb($columnInsert['dstchannel']), NullDb($columnInsert['lastapp']), NullDb($columnInsert['lastdata']), NullDb($columnInsert['calldate']), NullDb($columnInsert['answerdate']), NullDb($columnInsert['calldate']), sprintf("strtoint('%s')", $columnInsert['duration']), sprintf("strtoint('%s')", $columnInsert['billsec']), NullDb($columnInsert['disposition']), sprintf("strtoint('%s')", $columnInsert['amaflags']), NullDb($columnInsert['uniqueid']), NullDb($columnInsert['userfield']) ); if (!pg_query($query)) { $lineErro .= sprintf("Num. Erro: %s %s\nErro Sys: %s\n\nErro DB: %s\n\nQuery: %s\n%s\n", ++$numErro, date("d-m-Y H:i:s"), GetLasterror(), pg_errormessage(), $query, str_repeat('-', 80)); } else { $lineOk++; } $lines++; } } $res = sprintf("Resumo da Importacao, Linhas: %s Importadas: %s Erro: %s\n", $lines, $lineOk, $numErro); file_put_contents($pathLog, $lineErro); return $res; } catch (Exception $ex) { return $ex->getMessage(); } }