Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- if($_SERVER['DOCUMENT_ROOT'] == "")
- $_SERVER['DOCUMENT_ROOT'] = preg_replace('/\/[a-zA-Z0-9\-\_]*$/', '', dirname(__FILE__));
- require_once $_SERVER['DOCUMENT_ROOT'] . '/include/script.start.php';
- function sqlDateFormat($date)
- {
- $date = str_replace(array('T', '+'), array(' ', ':'), $date);
- $date = preg_replace('/\:00\:00$/', '', $date);
- return $date;
- }
- function getXMLfile($startDate, $endDate, $account)
- {
- // Create temp file to store cookies
- //$ckfile = tempnam (Ticketing::$xmlPath, "CURLCOOKIE");
- $ckfile = Ticketing::$xmlPath . "/CURLCOOKIE" . $account;
- //$startDate = $checkDate . 'T00:00:00';
- //$endDate = $checkDate . 'T23:59:59';
- $startDate = str_replace(' ', 'T', $startDate);
- $endDate = str_replace(' ', 'T', $endDate);
- $fields = array(
- 'site' => $account,
- 'user' => Ticketing::$accountsUserPass[$account]['username'],
- 'pass' => Ticketing::$accountsUserPass[$account]['password'],
- 'includeEvents' => 'true',
- 'limit' => '5000',
- //'tid' => $ticketId//,
- 'startDate' => $startDate,
- 'endDate' => $endDate
- );
- $fields_string = '';
- foreach($fields as $key=>$value) {
- $fields_string .= $key . '=' . $value . '&';
- }
- rtrim($fields_string, '&');
- //$fields_string = http_build_query($fields);
- //$ticketId = 'LTK1218404583216X';
- // URL to login page &includeEvents=true
- $url = "https://server.iad.liveperson.net/hc/web/mlogin/utils/ticketExport.jsp?site=" . $account . "&startDate=" . $startDate . "&endDate=" . $endDate . "&user=" . Ticketing::$accountsUserPass[$account]['username'] . "&pass=" . Ticketing::$accountsUserPass[$account]['password'] . "&includeEvents=true&limit=5000";
- //$url = "https://server.iad.liveperson.net/hc/web/mlogin/utils/ticketExport.jsp?site=" . $account . "&tid=" . $ticketId . "&user=frank.lojzer&pass=ve8fll&includeEvents=true";
- //$url = "https://server.iad.liveperson.net/hc/web/mlogin/utils/ticketExport.jsp?" . $fields_string;
- Dump::liveDump($url);
- // Post login form and follow redirects
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Accepts all CAs
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_POST, count($fields));
- curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
- curl_setopt($ch, CURLOPT_COOKIEFILE, $ckfile); //Uses cookies from the temp file
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Tells cURL to follow redirects
- $output = curl_exec($ch);
- $myFile = Ticketing::$xmlPath . "/tickets" . $account . ".xml";
- $fh = fopen($myFile, 'w') or die("can't open file");
- //$output = preg_replace("/^[\s\t]*[\r\n]+|[\r\n]+\Z/m", "\n", $output);
- //$output=str_replace("\t", " ", (string)$output);
- //$output=str_replace('A& $O'
- fwrite($fh, $output);
- fclose($fh);
- $path_to_file = $myFile;
- $file_contents = file_get_contents($path_to_file);
- $file_contents = str_replace("\t", " ",$file_contents);
- $file_contents = str_replace(" ", " ",$file_contents);
- $file_contents = str_replace(" ", " ",$file_contents);
- $file_contents = str_replace(" ", " ",$file_contents);
- $file_contents = str_replace('A& $O', "",$file_contents);
- $file_contents = str_replace(array("<ticket id=", "</ticket", "<message", "</message", "<VarValue"), array("\r\n<ticket id=", "\r\n</ticket", "\r\n<message", "\r\n</message", "\r\n<VarValue"),$file_contents);
- $file_contents = Data::sanitizeString4database($file_contents);
- preg_match_all('/attachment\sfileName\=\"([\s\S]*?)\"\//', $file_contents, $dataMatches);
- //var_dump($dataMatches);
- if(isset($dataMatches[1]) && !empty($dataMatches[1]))
- {
- foreach($dataMatches[1] as $searchString)
- {
- if(strlen($searchString) < 600)
- {
- //echo '<pre>';
- //var_dump($searchString);
- //echo '</pre>';
- $replaceWhat = array();
- $replaceTo = array();
- //echo $searchString. '<br />-------<br />';
- //$replacementString = str_replace('"', '', $searchString);
- //echo $replacementString . '<br />-------<br />';
- //$fileData = str_replace($searchString, $replacementString, $fileData);
- preg_match_all('/([\s\S]*?)(\"\sformat\=\"|"\sname\=\")/', $searchString, $searchMatches1);
- if(isset($searchMatches1[1][0]) && !empty($searchMatches1[1][0]))
- {
- //echo '/////' . $searchMatches1[1][0] . '<br />++++++<br />';
- $replaceWhat[] = $searchMatches1[1][0];
- $replaceTo[] = preg_replace('/[^\p{L}]/u', '', str_replace('"', '', $searchMatches1[1][0]));
- }
- preg_match_all('/name\=\"([\s\S]*?)$/', $searchString, $searchMatches2);
- //echo '1111 ' . $searchString. '<br /> 1111-------<br />';
- //var_dump($searchMatches2);
- if(isset($searchMatches2[1][0]) && !empty($searchMatches2[1][0]))
- {
- //echo '\\\\\' . $searchMatches2[1][0] . '<br />\\\\\\<br />';
- //var_dump($searchMatches2[1][0]);
- $replaceWhat[] = $searchMatches2[1][0];
- $replaceTo[] = preg_replace('/[^\p{L}]/u', '', str_replace('"', '', $searchMatches2[1][0]));
- }
- //var_dump($replaceWhat);
- //var_dump($replaceTo);
- $replacementString = str_replace($replaceWhat, $replaceTo, $searchString);
- //echo '2222 ' . $replacementString . ' 2222';
- $file_contents = str_replace($searchString, $replacementString, $file_contents);
- }
- }
- }
- file_put_contents($path_to_file,$file_contents);
- echo '<pre>';
- var_dump('XML FILE CREATED - ' . date('Y-m-d H:i:s'));
- echo '</pre>';
- }
- function createXmlFile($startDate, $endDate, $account)
- {
- getXMLfile($startDate, $endDate, $account);
- $dataCheck = '';
- $dataCheck = '';
- $f = fopen(Ticketing::$xmlPath . "/tickets" . $account . ".xml", 'r');
- $dataCheck = fgets($f);
- fclose($f);
- return $dataCheck;
- }
- $checkDate = date('Y-m-d');
- //$calendarsArray[$dt->format("Y")][$dt->format("m")][$dt->format("d")] = $dt->format("N");
- $startDate = date('Y-m-d H:i:s', strtotime(gmdate("Y-m-d H:i:s") . ' - 2 hour'));
- $endDate = date('Y-m-d H:i:s', strtotime(gmdate("Y-m-d H:i:s") . ' - 0 minute'));
- $accounts = Ticketing::$accounts;
- //$accounts = array('85501512' => '85501512');
- $check = 'H';
- if($check == 'D')
- {
- $dateFrom = date('Y-m-d', strtotime('- 5 day', time()));
- $dateTo = date('Y-m-d', strtotime(' + 1 day'));
- }
- else if($check == 'H')
- {
- $dateFrom = date('Y-m-d', strtotime('today', time()));
- $dateTo = date('Y-m-d', strtotime(' + 1 day'));
- }
- $begin = new DateTime($dateFrom);
- $end = new DateTime($dateTo);
- $interval = DateInterval::createFromDateString('1 day');
- $period = new DatePeriod($begin, $interval, $end);
- foreach ( $period as $dt )
- {
- $checkDate = $dt->format( "Y-m-d" );
- if($check == 'H')
- {
- $startDate = date('Y-m-d H:i:s', strtotime(gmdate("Y-m-d H:i:s") . ' - 2 hour'));
- $endDate = date('Y-m-d H:i:s', strtotime(gmdate("Y-m-d H:i:s") . ' - 0 minute'));
- }
- else
- {
- $startDate = $checkDate . ' 00:00:00';
- $endDate = $checkDate . ' 23:59:59';
- }
- foreach($accounts as $shortAcc => $account)
- {
- echo '<pre>';
- var_dump('STARTED - ' . date('Y-m-d H:i:s') . ' -start date: ' . $startDate . ' - ' . $endDate . ' - account: ' . $account);
- echo '</pre>';
- $dataCheck = createXmlFile($startDate, $endDate, $account);
- //while(preg_match('/Ticket\sExport\sis\stemporarily\sunavailable/',$dataCheck) || preg_match('/Server\sis\sBusy/',$dataCheck) || preg_match('/\<\!DOCTYPE\shtml\>/',$dataCheck))
- $tryCounter = 1;
- while(!preg_match('/\<\?xml/',$dataCheck) || preg_match('/\<Errors\>\<error\>/',$dataCheck))
- {
- Dump::liveDump(substr($dataCheck, 0, 10));
- echo '<pre>';
- var_dump('NOT AVAILABLE - ' . date('Y-m-d H:i:s'));
- echo '</pre>';
- sleep(10);
- $dataCheck = createXmlFile($startDate, $endDate, $account);
- Dump::liveDump('Try - ' . $tryCounter);
- $tryCounter++;
- if($tryCounter >= 20)
- {
- Dump::object('<pre>Ticket synchronisation failed!</pre>', __FILE__ . " - " . __LINE__ . " - " . 'URGENT CHECK Ticket synchronisation failed!' . '' . '-' . '' , true, array('support@tango.hr'));
- exit;
- }
- }
- echo '<pre>';
- var_dump('FILE CHECKED - ' . date('Y-m-d H:i:s'));
- echo '</pre>';
- $xmlMessageData = array();
- $xmlTicketData = array();
- $xmlTicketChangeData = array();
- $xmlTicketChangeDataHelp = array();
- $emailTypes = array(
- 'to' => 'to_email',
- 'cc' => 'cc_email',
- 'bcc' => 'bcc_email',
- 'from' => 'from_email',
- 'replyTo' => 'reply_email'
- );
- $xml=simplexml_load_file(Ticketing::$xmlPath . "/tickets" . $account . ".xml");
- echo '<pre><strong>' . $xml->getName() . "</strong></pre><br />";
- $accountId = $xml["account"];
- echo '<pre>' . $accountId . "</pre><br />";
- foreach($xml->children() as $child)
- {
- echo '<pre>' . $child->getName() . ":11 " . '' . "</pre>-<br />";
- $ticketId = str_replace('ID', '', (string)$child["id"]);
- if($ticketId)
- {
- ////if(isset($exisitngTickets[$ticketId]))
- ////unset($exisitngTickets[$ticketId]);
- $xmlTicketChangeDataHelp[$ticketId]['skill'] = (string)$child["skill"];
- $xmlTicketChangeDataHelp[$ticketId]['state'] = (string)$child["state"];
- $xmlTicketData[$ticketId]['account'] = $accountId;
- }
- foreach($child->children() as $child1) {
- echo '<pre>----' . $child1->getName() . ":22 " . $child1 . "--</pre><br />";
- $messageDate = '';
- if($child1->getName() == 'message')
- {
- $messageDate = sqlDateFormat((string)$child1['createDate']);
- if(!isset($xmlTicketData[$ticketId]['first_datetime']))
- $xmlTicketData[$ticketId]['first_datetime'] = $messageDate;
- $xmlMessageData[$ticketId][$messageDate]['type'] = (string)$child1['type'];
- $xmlMessageData[$ticketId][$messageDate]['message_id'] = (string)$child1['messageId'];
- foreach($child1->attributes() as $a => $b)
- echo '------------>' . $a,'="',$b,"\"<br />";
- }
- foreach($child1->children() as $child2) {
- //echo '--------' . $child2->getName() . ":33 " . $child2 . "<br />";
- echo '<pre>--------' . $child2->getName() . ":33 " . '' . "</pre><br />";
- if($child2->getName() == 'subject')
- $xmlMessageData[$ticketId][$messageDate]['subject'] = (string)$child2;
- else if($child2->getName() == 'body' && !isset($xmlMessageData[$ticketId][$messageDate]['body']))
- $xmlMessageData[$ticketId][$messageDate]['body'] = (string)$child2;
- else if($child2->getName() == 'varValue' && (string)$child2['name'] == 'X-ticket-released')
- $xmlTicketChangeDataHelp[$ticketId]['XTicketReleased'] = sqlDateFormat((string)$child2['time']);
- else if($child2->getName() == 'varValue' && (string)$child2['name'] == 'X-ticket-resolved')
- $xmlTicketChangeDataHelp[$ticketId]['XTicketResolved'] = sqlDateFormat((string)$child2['time']);
- else if($child2->getName() == 'varValue' && (string)$child2['name'] == 'X-ticket-returnedfrompending' && (string)$child2['time'])
- $xmlTicketChangeDataHelp[$ticketId]['XTicketPending'] = sqlDateFormat((string)$child2['time']);
- else if($child2->getName() == 'varValue' && (string)$child2['name'] == 'X-ticket-trashed')
- $xmlTicketChangeDataHelp[$ticketId]['XTicketTrashed'] = sqlDateFormat((string)$child2['time']);
- else if($child2->getName() == 'event')
- {
- //echo '<pre>EVENT------------' . $child2 . ":----------c3 " . "</pre><br />";
- $child2String = (string)$child2;
- $ticketChangeDate = sqlDateFormat((string)$child2['timestamp']) . '||' . (string)$child2['type'];
- if(isset($xmlTicketChangeData[$ticketId][$ticketChangeDate]['type']) && $xmlTicketChangeData[$ticketId][$ticketChangeDate]['type'] == 'Rules')
- {
- //$unsetNonPendingRuleEvents[$ticketId][$ticketChangeDate] = (string)$child2['type'];
- $ticketChangeDate = sqlDateFormat((string)$child2['timestamp']) . '.030||' . (string)$child2['type'];
- //$unsetNonPendingRuleEvents[$ticketId][$ticketChangeDate] = (string)$child2['type'];
- }
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['event'] = (string)$child2;
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['info'] = (string)$child2['info'];
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['message_id'] = (string)$child2['messageID'];
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['skill'] = (string)$child2['newSkill'];
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['type'] = (string)$child2['type'];
- if(preg_match('/Pending\sInternal\sAction/', $child2String))
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['custom_type'] = 'Pending';
- else
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['custom_type'] = '';
- if(preg_match('/kill\s/', $child2String) || preg_match('/kill\:\s/', $child2String))
- {
- preg_match_all('/kill(\:|)\s[a-zA-Z0-9\_\-\s]*(\.|$)/', $child2String, $matches);
- if(isset($matches[0][0]))
- {
- $match = $matches[0][0];
- $matchSkill = trim(str_replace(array('kill', ':', '.'), '', $match));
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['skill'] = trim($matchSkill);
- }
- else
- {
- Dump::object('Bug checking ' . $startDate . ' - ' . $endDate . '<br />' . 'skill string: ' . $child2String . '<br />' . $ticketId, __FILE__ . " - " . __LINE__ . " - " . 'debugging skill string', false, 'tomislav.cipric@tango.hr');
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['skill'] = '';
- }
- }
- }
- //foreach($child2->attributes() as $a => $b)
- //echo '------------>>' . $a,'="',$b,"\"<br />";
- $ChatBody = array();
- foreach($child2->children() as $child3) {
- echo '<pre>------------' . $child3->getName() . ":----------c3 " . "</pre><br />";
- if($child3->getName() == 'Visitor')
- {
- ///echo '------------<pre>' . print_r(json_encode($child3), true) . "</pre>----------c3Visitor " . "<br />";
- $ChatBody['Visitor'] = '<p><span class="chat-visitor">' . (string)json_encode($child3) . '</span></p>';
- //echo '------------<pre>' . print_r($ChatBody['Visitor'], true) . "</pre>----------c3Visitortrrrrr " . "<br />";
- }
- if($child3->getName() == 'Chat')
- {
- //echo '------------<pre>' . print_r($ChatBody['Visitor'], true) . "</pre>----------c3Visitortrrrrr " . "<br />";
- //echo '------------<pre>' . print_r($child3->line, true) . "</pre>----------c3 " . "<br />";
- $chatCounter = 1;
- foreach($child3->children() as $child3Chat)
- {
- //echo '------------<pre>' . print_r((string)$child3Chat['by'], 1) . print_r((string)$child3Chat['time'], 1) . "</pre>----------chat " . "<br />";
- //echo '------------<pre>' . print_r((string)$child3Chat->Text, 1) . "</pre>----------chat " . "<br />";
- $ChatBody[$chatCounter] = '
- <p class="chat-message">
- <span class="chat-time">' . sqlDateFormat((string)$child3Chat['time']) . '</span>
- <span class="chat-by">' . (string)$child3Chat['by'] . '</span>
- <span class="chat-text">' . (string)$child3Chat->Text . '</span>
- </p>';
- $chatCounter++;
- }
- //echo '------------<pre>' . print_r($ChatBody, 1) . "</pre>----------chat " . "<br />";
- $ChatBody = join('', $ChatBody);
- //echo '------------<pre>' . $ChatBody . "</pre>----------chat " . "<br />";
- $xmlMessageData[$ticketId][$messageDate]['body'] = $ChatBody;
- }
- if($child3->getName() == 'address')
- {
- //foreach($child3->attributes() as $index => $value)
- //{
- //$xmlMessageData[$ticketId][$messageDate][] = $child3;
- //}
- $emailType = $emailTypes[(string)$child3['type']];
- if(!isset($xmlMessageData[$ticketId][$messageDate][$emailType]))
- $xmlMessageData[$ticketId][$messageDate][$emailType] = (string)$child3['email'];
- else
- $xmlMessageData[$ticketId][$messageDate][$emailType] .= '|' . (string)$child3['email'];
- if($emailType == 'from_email')
- $xmlMessageData[$ticketId][$messageDate]['from_name'] = (string)$child3['identifier'];
- }
- if($child3->getName() == 'varValue' && (string)$child3['name'] == "X-Triger-Mailbox")
- {
- $xtrigerDate = sqlDateFormat((string)$child3['time']);
- if(!isset($xmlTicketData[$ticketId]['first_XTrigerMailbox']))
- $xmlTicketData[$ticketId]['first_XTrigerMailbox'] = $xtrigerDate;
- $xmlMessageData[$ticketId][$messageDate]['XTrigerMailbox'] = $xtrigerDate;;
- }
- if($child3->getName() == 'VarValues')
- {
- foreach($child3->children() as $child3VarValues)
- {
- if($child3VarValues['source'] == 'PreChat')
- {
- //echo '------------>>>' . (string)$child3VarValues . "<br />";
- $xmlMessageData[$ticketId][$messageDate]['to_email'] = (string)$child3VarValues;
- }
- if($child3VarValues['name'] == 'skill')
- {
- //echo '------------>>>' . (string)$child3VarValues . "<br />";
- $xmlMessageData[$ticketId][$messageDate]['from_email'] = (string)$child3VarValues;
- }
- //foreach($child3VarValues->attributes() as $a => $b)
- //echo '------------>>>' . $a,'="',$b,"\"<br />";
- }
- }
- //foreach($child3->attributes() as $a => $b)
- //echo '------------>>>' . $a,'="',$b,"\"<br />";
- }
- }
- }
- if($ticketId)
- {
- //if(!isset($xmlTicketChangeData[$ticketId]['datetime']) || ( isset($xmlTicketChangeData[$ticketId]['datetime']) && strtotime($xmlTicketData[$ticketId]['first_datetime']) > strtotime($xmlTicketChangeData[$ticketId]['datetime']) ))
- if(!isset($xmlTicketChangeDataHelp[$ticketId]['datetime']) )
- $xmlTicketChangeDataHelp[$ticketId]['datetime'] = $xmlTicketData[$ticketId]['first_datetime'];
- if(isset($xmlTicketChangeDataHelp[$ticketId]['XTicketReleased']) )
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['XTicketReleased'] = $xmlTicketChangeDataHelp[$ticketId]['XTicketReleased'];
- if(isset($xmlTicketChangeDataHelp[$ticketId]['XTicketResolved']) )
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['XTicketResolved'] = $xmlTicketChangeDataHelp[$ticketId]['XTicketResolved'];
- if(isset($xmlTicketChangeDataHelp[$ticketId]['XTicketPending']) && $xmlTicketChangeDataHelp[$ticketId]['XTicketPending'])
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['XTicketPending'] = $xmlTicketChangeDataHelp[$ticketId]['XTicketPending'];
- else
- if(isset($xmlTicketChangeDataHelp[$ticketId]['XTicketTrashed']) )
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['XTicketTrashed'] = $xmlTicketChangeDataHelp[$ticketId]['XTicketTrashed'];
- if(isset($xmlTicketChangeDataHelp[$ticketId]['state']) )
- $xmlTicketChangeData[$ticketId][$ticketChangeDate]['state'] = $xmlTicketChangeDataHelp[$ticketId]['state'];
- }
- }
- $totalTicketsToInsert = count($xmlTicketData);
- $totalTicketsCounter = 1;
- foreach($xmlTicketData as $ticketId => $ticketArray)
- {
- $checkTicket = new Data;
- $checkTicket->selectData("
- SELECT ltk FROM lp_data_ticket WHERE ltk = '" . $ticketId . "'
- ");
- echo '<pre>';
- var_dump($ticketId . '-ticket - ' . $totalTicketsCounter . '/' . $totalTicketsToInsert . ' - ' . round((($totalTicketsCounter / $totalTicketsToInsert) * 100),0) . '%');
- echo '</pre>';
- if(!$checkTicket->hasData())
- {
- if(!isset($ticketArray['first_XTrigerMailbox']))
- $ticketArray['first_XTrigerMailbox'] = 'NULL';
- $data = array();
- $addData = new Data;
- //$addData->columnRules = array('body' => array('html' => true));
- $addData->selectTable('lp_data_ticket');
- $data = array(
- 'ltk' => $ticketId,
- 'first_datetime' => $ticketArray['first_datetime'],
- 'first_XTrigerMailbox' => $ticketArray['first_XTrigerMailbox'],
- 'account' => $ticketArray['account']
- );
- echo '<pre>';
- var_dump('INSERT');
- echo '</pre>';
- $addData->setData($data);
- //if(1 == 1)
- if (!$addData->insertData())
- echo 'ERROR!!!!!!!!!!!!';
- }
- $totalTicketsCounter++;
- }
- $totalTicketsToInsert = count($xmlTicketChangeData);
- $totalTicketsCounter = 1;
- foreach($xmlTicketChangeData as $ticketId => $ticketArray)
- {
- foreach($ticketArray as $date => $changeArray)
- {
- $explodeDate = explode('||', $date);
- $date = $explodeDate[0];
- $dateCheck = $date;
- $checkTicket = new Data;
- $checkTicket->selectData("
- SELECT ltk, datetime
- FROM lp_data_ticket_event
- WHERE ltk = '" . $ticketId . "'
- AND [datetime] = '" . $dateCheck . "'
- AND [type] = '" . $changeArray['type'] . "'
- ");
- //echo '<pre>';
- //var_dump($checkTicket->query);
- //echo '</pre>';
- echo '<pre>';
- var_dump($ticketId . '-ticketchange - ' . $totalTicketsCounter . '/' . $totalTicketsToInsert . ' - ' . round((($totalTicketsCounter / $totalTicketsToInsert) * 100),0) . '%');
- echo '</pre>';
- if(!$checkTicket->hasData())
- {
- $data = array();
- $addData = new Data;
- $addData->columnRules = array('event' => array('html' => true));
- $addData->selectTable('lp_data_ticket_event');
- if(!isset($changeArray['XTicketReleased']))
- $changeArray['XTicketReleased'] = 'NULL';
- if(!isset($changeArray['XTicketResolved']))
- $changeArray['XTicketResolved'] = 'NULL';
- if(!isset($changeArray['XTicketPending']))
- $changeArray['XTicketPending'] = 'NULL';
- if(!isset($changeArray['XTicketTrashed']))
- $changeArray['XTicketTrashed'] = 'NULL';
- if(!isset($changeArray['message_id']))
- $changeArray['message_id'] = '0';
- if(!isset($changeArray['skill']))
- $changeArray['skill'] = '';
- //if(!isset($changeArray['state']))
- //$changeArray['state'] = '';
- $data = array(
- 'ltk' => $ticketId,
- 'datetime' => $date,
- 'message_id' => $changeArray['message_id'],
- 'event' => $changeArray['event'],
- 'info' => Database::escape_string($changeArray['info']),
- 'skill' => Database::escape_string($changeArray['skill']),
- 'type' => $changeArray['type'],
- //'agent' => $changeArray['agent'],
- //'state' => $changeArray['state'],
- 'custom_type' => $changeArray['custom_type'],
- 'XTicketReleased' => $changeArray['XTicketReleased'],
- 'XTicketResolved' => $changeArray['XTicketResolved'],
- 'XTicketPending' => $changeArray['XTicketPending'],
- 'XTicketTrashed' => $changeArray['XTicketTrashed']
- );
- if(!isset($changeArray['XTicketPending']))
- Dump::object($data, __FILE__ . " - " . __LINE__ . " - " . 'LP XML generating BBB dump X-ticket-returnedfrompending - ' . $ticketId, true, 'tomislav.cipric@tango.hr');
- echo '<pre>';
- //var_dump($data);
- var_dump('INSERT');
- echo '</pre>';
- $addData->setData($data);
- //if(1 == 1)
- if (!$addData->insertData())
- echo 'ERROR!!!!!!!!!!!!';
- }
- }
- $totalTicketsCounter++;
- }
- $totalTicketsToInsert = count($xmlMessageData);
- $totalTicketsCounter = 1;
- foreach($xmlMessageData as $ticketId => $ticketArray)
- {
- echo '<pre>';
- var_dump($ticketId . '-tmessages - ' . $totalTicketsCounter . '/' . $totalTicketsToInsert . ' - ' . round((($totalTicketsCounter / $totalTicketsToInsert) * 100),0) . '%');
- echo '</pre>';
- foreach($ticketArray as $date => $messageArray)
- {
- if(!$date)
- {
- echo '<pre>';
- var_dump($ticketId . '--------------------------ERRRORRRRRRRRRRR------------------------------');
- echo '</pre>';
- }
- $checkTicketMessages = new Data;
- $checkTicketMessages->selectData("
- SELECT ltk, createDate FROM lp_data_message WHERE ltk = '" . $ticketId . "' AND message_id = '" . $messageArray['message_id'] . "'
- ");
- if(!$checkTicketMessages->hasData())
- {
- echo '<pre>';
- var_dump($date);
- echo '</pre>';
- if(!isset($messageArray['XTrigerMailbox']))
- $messageArray['XTrigerMailbox'] = 'NULL';
- if(!isset($messageArray['to_email']))
- $messageArray['to_email'] = '';
- if(!isset($messageArray['cc_email']))
- $messageArray['cc_email'] = '';
- if(!isset($messageArray['bcc_email']))
- $messageArray['bcc_email'] = '';
- if(!isset($messageArray['from_email']))
- $messageArray['from_email'] = '';
- if(!isset($messageArray['from_name']))
- $messageArray['from_name'] = '';
- if(!isset($messageArray['reply_email']))
- $messageArray['reply_email'] = '';
- if(!isset($messageArray['subject']))
- $messageArray['subject'] = '';
- if(!isset($messageArray['body']))
- {
- $messageArray['body'] = '';
- }
- $data = array();
- $addData = new Data;
- $addData->columnRules = array(
- 'body' => array('html' => true),
- 'body_v' => array('html' => true),
- 'numbers' => array('html' => true),
- 'numbers_reference' => array('html' => true),
- 'subject' => array('html' => true)
- );
- $addData->selectTable('lp_data_message');
- //$bodyVar = strip_tags(str_replace("<br />", "\n", $messageArray['body']));
- //$bodyText = str_replace(array("<br>","<BR>","</br>","</BR>","</ br>","</ BR>"), "\n", html_entity_decode($messageArray['subject']) . "\n" . html_entity_decode(htmlspecialchars_decode($bodyVar)));
- $messageArray['body'] = Data::sanitizeString4database($messageArray['body']);
- $messageArray['subject'] = Data::sanitizeString4database($messageArray['subject']);
- $bodyVar = htmlspecialchars_decode(strip_tags(str_replace("<br />", "\n", $messageArray['body'])));
- //$bodyText = str_replace(array("<br>","<BR>","</br>","</BR>","</ br>","</ BR>"), "\n", html_entity_decode($cacheBody['subject']) . "\n" . html_entity_decode(htmlspecialchars_decode($bodyVar)));
- $bodyText = str_replace(array("<br>","<BR>","</br>","</BR>","</ br>","</ BR>", "2016"), "\n", $messageArray['subject']. "\n" . $messageArray['from_email']. "\n" . html_entity_decode($bodyVar));
- $bodyText = preg_replace("/\&\#[0-9]+\;/", 'a', $bodyText);
- $bodyText = preg_replace("/LTK[0-9]+X/", '', $bodyText);
- $bodyText = preg_replace("/[a-zA-Z][ ][a-zA-Z]/", "a", $bodyText);
- $bodyText = preg_replace("/[a-zA-Z]+/", "\n", $bodyText);
- $bodyText = preg_replace("/[^0-9\n]/", '', $bodyText);
- $bodyTextArray = explode("\n", $bodyText);
- $bodyTextArray = array_filter($bodyTextArray, function($string) {return isset($string[5]);});
- $bodyTextArray = array_filter($bodyTextArray);
- $bodyTextArray = array_unique($bodyTextArray);
- $bodyTextArray = array_values($bodyTextArray);
- $realReferences = $bodyTextArray;
- $idCountry = Ticketing::getIdCountry($ticketId);
- if($idCountry && $idCountry != '0')
- {
- $mobilePrefixes = Ticketing::getMobilePrefixes($idCountry);
- if($mobilePrefixes)
- {
- //$realReferences = array_filter($realReferences, function($string, $mobilePrefixes) {Dump::liveDump('/' . $mobilePrefixes . '/'); Dump::liveDump('' . $string . ''); return preg_match('/' . $mobilePrefixes . '/', $string);});
- foreach($realReferences as $index => $string)
- {
- if(!preg_match('/' . $mobilePrefixes . '/', $string))
- unset($realReferences[$index]);
- }
- }
- else
- $realReferences = array();
- }
- else
- $realReferences = array();
- if(empty($bodyTextArray))
- $bodyTextArray = "NULL";
- else
- $bodyTextArray = json_encode($bodyTextArray);
- if(empty($realReferences))
- $realReferences = "NULL";
- else
- $realReferences = json_encode($realReferences);
- $data = array(
- 'ltk' => $ticketId,
- 'createDate' => $date,
- 'type' => $messageArray['type'],
- 'message_id' => $messageArray['message_id'],
- 'to_email' => $messageArray['to_email'],
- 'cc_email' => $messageArray['cc_email'],
- 'bcc_email' => $messageArray['bcc_email'],
- 'from_email' => $messageArray['from_email'],
- 'from_name' => $messageArray['from_name'],
- 'reply_email' => $messageArray['reply_email'],
- 'subject' => $messageArray['subject'],
- 'body' => Database::escape_string($messageArray['body']),
- 'body_v' => Database::escape_string($bodyVar),
- 'numbers' => $bodyTextArray,
- 'numbers_reference' => $realReferences,
- 'XTrigerMailbox' => $messageArray['XTrigerMailbox']
- );
- $addData->setData($data);
- //if(1 == 1)
- if (!$addData->insertData())
- echo 'ERROR!!!!!!!!!!!!';
- }
- }
- $totalTicketsCounter++;
- }
- }
- //Dump::object('FILE CREATED ' . $startDate . ' - ' . $endDate . '<br />' . 'Total number of tickets: ' . count($xmlTicketData) . '<br /><br />Deleted tickets<br />' . join('<br />', $exisitngTickets), __FILE__ . " - " . __LINE__ . " - " . 'LP XML file created', true, 'tomislav.cipric@tango.hr');
- //require_once('lp_newticket.php');
- }
- require_once $_SERVER['DOCUMENT_ROOT'] . '/include/script.end.php';
- ?>
Add Comment
Please, Sign In to add comment