1320 lines
55 KiB
PHP
1320 lines
55 KiB
PHP
<?php
|
|
|
|
ini_set('display_errors', 0); // disable error display
|
|
ini_set('log_errors', 0); // disable error logging
|
|
ini_set('max_execution_time', 6000);
|
|
ini_set('memory_limit', '1024M');
|
|
ini_set('upload_max_filesize', '256M');
|
|
|
|
require 'Staff/vendor/autoload.php';
|
|
|
|
|
|
use GuzzleHttp\Client as GuzzleHttpClient;
|
|
use Krizalys\Onedrive\Client;
|
|
use Microsoft\Graph\Graph;
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
use Kunnu\Dropbox\DropboxApp;
|
|
use Kunnu\Dropbox\DropboxFile;
|
|
use Kunnu\Dropbox\Dropbox;
|
|
use RingCentral\SDK\SDK;
|
|
|
|
|
|
function pr($data){
|
|
echo "<pre>";print_r($data);exit;
|
|
}
|
|
|
|
|
|
|
|
function processAjaxRequest($conn, $inputData) {
|
|
//echo "<pre>";print_r();exit;
|
|
$is_processed = false;
|
|
if(isset($inputData['save_letter']) && $inputData['save_letter'] == 1){
|
|
$is_processed = true;
|
|
}else {
|
|
$messages = getAutomations($conn, $inputData);
|
|
if($messages['status']){
|
|
$is_processed = true;
|
|
}
|
|
}
|
|
//pr($messages['all_file_info']);exit;
|
|
if($is_processed){
|
|
if(isset($inputData['onload_form_id']) && !empty($inputData['onload_form_id'])){
|
|
$rtg_letters_id = updateRTGLetters($conn, $inputData['onload_form_id'], $inputData);
|
|
}else{
|
|
$rtg_letters_id = saveRTGLetters($conn, $inputData);
|
|
}
|
|
|
|
if(isset($inputData['set_automation']) && $inputData['set_automation'] == 1){
|
|
|
|
$inputData['sertg_id'] = $rtg_letters_id;
|
|
$all_file_info = $messages['all_file_info'];
|
|
|
|
if(!empty($all_file_info)){
|
|
foreach($all_file_info as $finfo){
|
|
$isInserted = setAutomation($conn, $inputData);
|
|
if($isInserted){
|
|
if($finfo['category_id'] == LETTER_STREAM_TYPE){
|
|
$inputData['ls_data'] = [];
|
|
$inputData['ls_data'][] = $messages['data'];
|
|
copyPdfToAnotherDir($inputData['file_path'],"/rtg_letters/letterstream/",$rtg_letters_id,$inputData);
|
|
|
|
}else if($finfo['category_id'] == RINGCENTRAL_EXPORT_TYPE){
|
|
|
|
$sent_pdf_file = $finfo['data'];
|
|
$file_info_for_json['status'] = 1;
|
|
$file_info_for_json['pdf'] = $inputData['file_path'];
|
|
$file_info_for_json['fax_number'] = $sent_pdf_file['destination_0'];
|
|
$file_info_for_json['db_key'] = 'destination_0';
|
|
$file_info_for_json['sequence'] = 0;
|
|
$inputData['ls_data'] = [];
|
|
$inputData['ls_data'][] = $file_info_for_json;
|
|
copyPdfToAnotherDir($inputData['file_path'],"/rtg_letters/ringcentral/",$rtg_letters_id,$inputData);
|
|
|
|
} else if($finfo['category_id'] == EMAIL_EXPORT_TYPE){
|
|
copyPdfToAnotherDir($inputData['file_path'],"/rtg_letters/email/",$rtg_letters_id,$inputData);
|
|
} else if($finfo['category_id'] == DROPBOX_EXPORT_TYPE){
|
|
copyPdfToAnotherDir($inputData['file_path'],"/rtg_letters/dropbox/",$rtg_letters_id,$inputData);
|
|
} else if($finfo['category_id'] == GOOGLE_DRIVE_EXPORT_TYPE){
|
|
copyPdfToAnotherDir($inputData['file_path'],"/rtg_letters/google_drive/",$rtg_letters_id,$inputData);
|
|
} else if($finfo['category_id'] == ZAPIER_EXPORT_TYPE){
|
|
copyPdfToAnotherDir($inputData['file_path'],"/rtg_letters/zapier/",$rtg_letters_id,$inputData);
|
|
} else if($finfo['category_id'] == ONE_DRIVE_TYPE){
|
|
copyPdfToAnotherDir($inputData['file_path'],"/rtg_letters/onedrive/",$rtg_letters_id,$inputData);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
letterEmailSendToClient($conn, $inputData);
|
|
insertSttPILetterSet($conn,$rtg_letters_id);
|
|
storePdfLetters($_POST['client_id'],$rtg_letters_id,3,$inputData['file_path']);
|
|
}
|
|
return $messages;
|
|
}
|
|
|
|
|
|
|
|
function getAutomations($conn, $inputData) {
|
|
|
|
$destAssocAddress = $inputData['destAssocAddress'];
|
|
$destAssocReturnAddress = $inputData['destAssocReturnAddress'];
|
|
$lettertypes = json_decode($inputData['lettertypes'],true);
|
|
|
|
$dropdown_category_id = implode(",", $inputData['download_category']);
|
|
$credit_bureau_name_address = $inputData['credit_bureau_name_address'];
|
|
$total_pdf_pages = $inputData['total_pdf_pages'];
|
|
$client_name = $inputData['client_name'];
|
|
$client_id = $inputData['client_id'];
|
|
|
|
$sql = "SELECT * FROM automations where id IN (" . $dropdown_category_id . ")";
|
|
|
|
$result = $conn->query($sql);
|
|
$all_file_info = [];
|
|
if ($result->num_rows > 0) {
|
|
|
|
$errorArray = [];
|
|
$messages = "";
|
|
$errorMessages = setErrorMessage();
|
|
|
|
while ($row = $result->fetch_assoc()) {
|
|
|
|
$category_id = $row['export_id'];
|
|
$obj = json_decode($row['input_json']);
|
|
|
|
$data = [];
|
|
if (!empty($obj)) {
|
|
$data['access_key'] = !empty($obj->access_key) ? $obj->access_key : '';
|
|
$data['dropbox_token'] = !empty($obj->dropbox_token) ? $obj->dropbox_token : '';
|
|
$data['dropbox_client_id'] = !empty($obj->user_name) ? $obj->user_name : '';
|
|
$data['dropbox_client_secret'] = !empty($obj->password) ? $obj->password : '';
|
|
$data['dropbox_refresh_token'] = !empty($obj->dropbox_refresh_token) ? $obj->dropbox_refresh_token : '';
|
|
$data['email'] = !empty($obj->email) ? $obj->email : '';
|
|
$data['email_subject'] = !empty($obj->email_subject) ? $obj->email_subject : '';
|
|
$data['email_body'] = !empty($obj->email_body) ? $obj->email_body : '';
|
|
$data['google_token'] = !empty($obj->google_token) ? $obj->google_token : '';
|
|
$data['google_client_id'] = !empty($obj->google_client_id) ? $obj->google_client_id : '';
|
|
$data['google_client_secret'] = !empty($obj->google_client_secret) ? $obj->google_client_secret : '';
|
|
$data['google_refresh_token'] = !empty($obj->google_refresh_token) ? $obj->google_refresh_token : '';
|
|
$data['ring_client_id'] = !empty($obj->ring_client_id) ? $obj->ring_client_id : '';
|
|
$data['ring_client_secret'] = !empty($obj->ring_client_secret) ? $obj->ring_client_secret : '';
|
|
$data['ring_account'] = !empty($obj->ring_account) ? $obj->ring_account : '';
|
|
$data['ring_password'] = !empty($obj->ring_password) ? $obj->ring_password : '';
|
|
$data['ring_extension'] = !empty($obj->ring_extension) ? $obj->ring_extension : '';
|
|
$data['ring_isEmailReceived'] = isset($obj->ring_isEmailReceived) ? $obj->ring_isEmailReceived : 0;
|
|
$data['ring_server'] = !empty($obj->ring_server) ? $obj->ring_server : '';
|
|
$data['destination_2'] = !empty($obj->ring_fax_equifax_number) ? $obj->ring_fax_equifax_number : '';
|
|
$data['destination_3'] = !empty($obj->ring_fax_trans_number) ? $obj->ring_fax_trans_number : '';
|
|
$data['destination_1'] = !empty($obj->ring_fax_experian_number) ? $obj->ring_fax_experian_number : '';
|
|
$data['destination_0'] = !empty($obj->ring_fax_default_number) ? $obj->ring_fax_default_number : '';
|
|
$data['destination_4'] = !empty($obj->ring_fax_innovis_number) ? $obj->ring_fax_innovis_number : '';
|
|
$data['destination_5'] = !empty($obj->ring_fax_lexisnexis_number) ? $obj->ring_fax_lexisnexis_number : '';
|
|
$data['destination_6'] = !empty($obj->ring_fax_sagestream_number) ? $obj->ring_fax_sagestream_number : '';
|
|
$data['destination_7'] = !empty($obj->ring_fax_chex_systems_number) ? $obj->ring_fax_chex_systems_number : '';
|
|
$data['destination_8'] = !empty($obj->ring_fax_mib_inc_number) ? $obj->ring_fax_mib_inc_number : '';
|
|
$data['destination_9'] = !empty($obj->ring_factor_inc_number) ? $obj->ring_factor_inc_number : '';
|
|
$data['destination_10'] = !empty($obj->ring_data_furnishers_number) ? $obj->ring_data_furnishers_number : '';
|
|
$data['destination_11'] = !empty($obj->ring_other_number) ? $obj->ring_other_number : '';
|
|
$data['letter_stream_api_key'] = !empty($obj->letter_stream_api_key) ? $obj->letter_stream_api_key : "";
|
|
$data['letter_stream_api_id'] = !empty($obj->letter_stream_api_id) ? $obj->letter_stream_api_id : "";
|
|
$data['letter_stream_token'] = !empty($obj->letter_stream_token) ? $obj->letter_stream_token : "";
|
|
$data['letter_stream_name_1'] = !empty($obj->letter_stream_name_1) ? $obj->letter_stream_name_1 : "";
|
|
$data['letter_stream_name_2'] = !empty($obj->letter_stream_name_2) ? $obj->letter_stream_name_2 : "";
|
|
$data['letter_stream_address_1'] = !empty($obj->letter_stream_address_1) ? $obj->letter_stream_address_1 : "";
|
|
$data['letter_stream_address_2'] = !empty($obj->letter_stream_address_2) ? $obj->letter_stream_address_2 : "";
|
|
$data['letter_stream_city'] = !empty($obj->letter_stream_city) ? $obj->letter_stream_city : "";
|
|
$data['letter_stream_state'] = !empty($obj->letter_stream_state) ? $obj->letter_stream_state : "";
|
|
$data['letter_stream_zip'] = !empty($obj->letter_stream_zip) ? $obj->letter_stream_zip : "";
|
|
|
|
$data['one_drive_client_id'] = !empty($obj->one_drive_client_id) ? $obj->one_drive_client_id : "";
|
|
$data['one_drive_client_secret'] = !empty($obj->one_drive_client_secret) ? $obj->one_drive_client_secret : "";
|
|
$data['one_drive_code'] = !empty($obj->one_drive_code) ? $obj->one_drive_code : "";
|
|
}
|
|
|
|
$zip_file = $inputData['file_path'];
|
|
$file_name = $zip_file;
|
|
|
|
if ($category_id == EMAIL_EXPORT_TYPE) {
|
|
$status = sendEmail($data, $zip_file);
|
|
if ($status) {
|
|
$all_file_info[] = [
|
|
'file_path'=>$file_name,
|
|
'category_id' =>$category_id,
|
|
'data'=>array_filter($data)
|
|
];
|
|
$errors = 6;
|
|
} else {
|
|
$errors = 5;
|
|
}
|
|
|
|
if (!empty($errorString)) {
|
|
$errorString .= "\n" . $row['name'] . " " . $errorMessages[$errors];
|
|
} else {
|
|
$errorString = $row['name'] . " " . $errorMessages[$errors];
|
|
}
|
|
} elseif ($category_id == DROPBOX_EXPORT_TYPE) {
|
|
$_POST['export_type_id'] = 2;
|
|
if(getAutomationsForDropbox($inputData['download_category'],$file_name)){
|
|
|
|
}else{
|
|
$status = sendDropbox($data, $file_name);
|
|
if ($status) {
|
|
$all_file_info[] = [
|
|
'file_path'=>$file_name,
|
|
'category_id' =>$category_id,
|
|
'data'=>array_filter($data)
|
|
];
|
|
$errors = 2;
|
|
} else {
|
|
$errors = 1;
|
|
}
|
|
}
|
|
|
|
|
|
if (!empty($errorString)) {
|
|
$errorString .= "\n" . $row['name'] . " " . $errorMessages[$errors];
|
|
} else {
|
|
$errorString = $row['name'] . " " . $errorMessages[$errors];
|
|
}
|
|
} elseif ($category_id == GOOGLE_DRIVE_EXPORT_TYPE) {
|
|
$status = sendGoogleDrive($data, $zip_file);
|
|
if ($status) {
|
|
$all_file_info[] = [
|
|
'file_path'=>$file_name,
|
|
'category_id' =>$category_id,
|
|
'data'=>array_filter($data)
|
|
];
|
|
$errors = 8;
|
|
} else {
|
|
$errors = 7;
|
|
}
|
|
|
|
if (!empty($errorString)) {
|
|
$errorString .= "\n" . $row['name'] . " " . $errorMessages[$errors];
|
|
} else {
|
|
$errorString = $row['name'] . " " . $errorMessages[$errors];
|
|
}
|
|
} elseif ($category_id == ZAPIER_EXPORT_TYPE) {
|
|
if (!empty($data['access_key'])) {
|
|
$status = sendZapier($data['access_key'], $zip_file);
|
|
if ($status) {
|
|
$all_file_info[] = [
|
|
'file_path'=>$file_name,
|
|
'category_id' =>$category_id,
|
|
'data'=>array_filter($data)
|
|
];
|
|
$errors = 4;
|
|
} else {
|
|
$errors = 3;
|
|
}
|
|
}
|
|
|
|
if (!empty($errorString)) {
|
|
$errorString .= "\n" . $row['name'] . " " . $errorMessages[$errors];
|
|
} else {
|
|
$errorString = $row['name'] . " " . $errorMessages[$errors];
|
|
}
|
|
} elseif ($category_id == RINGCENTRAL_EXPORT_TYPE) {
|
|
|
|
$equfax_number = $data['ring_fax_equifax_number'];
|
|
$trans_number = $data['ring_fax_trans_number'];
|
|
$experian_number = $data['ring_fax_experian_number'];
|
|
$fax_number = $data['destination_0'];
|
|
|
|
if(!empty($data['destination_6']) && $inputData['form_id'] == 63){
|
|
$fax_number = $data['destination_6'];
|
|
}
|
|
|
|
if(!empty($fax_number)){
|
|
$fax_number = str_replace([" ", "-", ")", "("], "", $fax_number);
|
|
}
|
|
|
|
|
|
$fax_number_assoc_fax_content = [];
|
|
$fax_error_status_array = [];
|
|
|
|
$allPdfAndNumbers = [];
|
|
|
|
$selectedDestination = true;
|
|
|
|
if ($selectedDestination) {
|
|
|
|
$allPdfAndNumbers[] = [
|
|
'fax_number'=>$fax_number,
|
|
'pdf'=>$file_name
|
|
];
|
|
|
|
$response = sendFaxByringcentral($allPdfAndNumbers, $data);
|
|
|
|
$fax_number_assoc_fax_content = $response['faxinfo'];
|
|
$errors = 10;
|
|
if (!empty($fax_number_assoc_fax_content)) {
|
|
foreach ($fax_number_assoc_fax_content as $res) {
|
|
if (!$res['status']) {
|
|
$errors = 9;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// $file = fopen("sertg_export_error.txt","a");
|
|
// fwrite($file, json_encode($fax_number_assoc_fax_content));// replace will be by $fax_number_assoc_fax_content
|
|
// fclose($file);
|
|
//Send email to member if has checked for this member
|
|
if ($data['ring_isEmailReceived'] == 1 && !empty($fax_number_assoc_fax_content)) {
|
|
$member_email = $_POST['member_email'];
|
|
//global $client_name;
|
|
sendEmailToMember($member_email, $fax_number_assoc_fax_content, $zip_file, $client_name);
|
|
}
|
|
}
|
|
|
|
if($errors == 10){
|
|
$all_file_info[] = [
|
|
'file_path'=>$file_name,
|
|
'category_id' =>$category_id,
|
|
'data'=>array_filter($data)
|
|
];
|
|
}
|
|
|
|
if (!empty($errorString)) {
|
|
$errorString .= "\n" .$row['name']." ".$errorMessages[$errors];
|
|
} else {
|
|
$errorString = $row['name']." ".$errorMessages[$errors];
|
|
}
|
|
} elseif ($category_id == LETTER_STREAM_TYPE) {
|
|
$succesfully_sent_pdf_info = [];
|
|
$api_key = $data['letter_stream_api_key'];
|
|
$api_id = $data['letter_stream_api_id'];
|
|
//$credit_bureau_name_address = str_replace(" ", " ", $credit_bureau_name_address);
|
|
$info['return_address'] = letterStreamRetunAddressGenerate($data);
|
|
//$info['from_address'] = getFormatedDFAddress(RemoveBS($credit_bureau_name_address));
|
|
$info['from_address'] = $info['return_address'];
|
|
$db_return_address = $info['return_address'];
|
|
|
|
$info['letter_stream_name_1'] = $data['letter_stream_name_1'];
|
|
$info['letter_stream_name_2'] = $data['letter_stream_name_2'];
|
|
$info['client_name'] = $client_name;
|
|
|
|
if($client_id > 0){
|
|
|
|
$info['client_id'] = $client_id;
|
|
|
|
$clientInfoFromDB = getClientIforLS($conn, $client_id);
|
|
|
|
if(!empty($clientInfoFromDB['from'])){
|
|
$info['from_address'] = $clientInfoFromDB['from'];
|
|
}
|
|
|
|
if(!empty($clientInfoFromDB['return_address_db'])){
|
|
$db_return_address = $clientInfoFromDB['return_address_db'];
|
|
}
|
|
|
|
if(!empty($clientInfoFromDB['letter_stream_name_1'])){
|
|
$info['letter_stream_name_1'] = $clientInfoFromDB['letter_stream_name_1'];
|
|
$info['client_name'] = $info['letter_stream_name_1'];
|
|
}
|
|
|
|
if(!empty($clientInfoFromDB['letter_stream_name_2'])){
|
|
$info['letter_stream_name_2'] = $clientInfoFromDB['letter_stream_name_2'];
|
|
if(!empty($info['client_name']) && !empty($info['letter_stream_name_2'])){
|
|
$info['client_name'] .= " ".$info['letter_stream_name_2'];
|
|
}else{
|
|
$info['client_name'] = $info['letter_stream_name_2'];
|
|
}
|
|
}
|
|
|
|
if(!empty($clientInfoFromDB['db_client_count'])){
|
|
$info['db_client_count'] = $clientInfoFromDB['db_client_count'];
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
$info['total_pdf_pages'] = $total_pdf_pages;
|
|
$info['file_path'] = $inputData['file_path'];
|
|
$info['duplex'] = $inputData['is_letterstream_duplex'];
|
|
$info['lettertypes'] = $lettertypes;
|
|
//pr($destAssocAddress);
|
|
if(!empty($destAssocAddress)){
|
|
foreach ($destAssocAddress as $dest_id => $address_list){
|
|
$formated_address_list = getDestinationAddressLetterStreamForFormAddress($dest_id);
|
|
|
|
|
|
if(!empty($address_list)){
|
|
foreach ($address_list as $address_id){
|
|
|
|
if($dest_id == 11){
|
|
|
|
$formated_to_address = RemoveBS($address_id);
|
|
$formated_to_address = getFormatedDFAddress($formated_to_address);
|
|
//$formated_to_address = $formated_from_address;
|
|
|
|
}else{
|
|
|
|
$formated_from_address = $formated_address_list[current($destAssocReturnAddress[$dest_id])];
|
|
$formated_to_address = $formated_address_list[$address_id];
|
|
}
|
|
|
|
if(!empty($formated_from_address)){
|
|
$info['from_address'] = $info['letter_stream_name_1'].":".$info['letter_stream_name_2'].":".$formated_from_address;
|
|
}else{
|
|
$info['from_address'] = $db_return_address;
|
|
}
|
|
|
|
if(!empty($formated_to_address)){
|
|
$info['return_address'] = $info['letter_stream_name_1']." ".$info['letter_stream_name_2'].":".":".$formated_to_address;
|
|
}
|
|
|
|
$letterStreamResponse = sendToLetterStream($conn, $api_key, $api_id, $info);
|
|
|
|
if(!$letterStreamResponse['status']){
|
|
break 2;
|
|
}
|
|
$succesfully_sent_pdf_info[] = $letterStreamResponse['letter_stream_data'];
|
|
if($info['db_client_count'] > 0 || $info['db_client_count'] == 0){
|
|
$info['db_client_count']++;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// echo "<pre>";print_r($letterStreamResponse);
|
|
// exit;
|
|
//
|
|
extract($letterStreamResponse);
|
|
|
|
if ($status) {
|
|
$all_file_info[] = [
|
|
'file_path'=>$file_name,
|
|
'category_id' =>$category_id,
|
|
'data'=>array_filter($data)
|
|
];
|
|
$errors = 13;
|
|
} else {
|
|
$errors = 14;
|
|
}
|
|
|
|
if (!empty($errorString)) {
|
|
$errorString .= "\n" . letterStreamErrorString($errors,$messages);;
|
|
} else {
|
|
$errorString = letterStreamErrorString($errors,$messages);;
|
|
}
|
|
|
|
} elseif ($category_id == ONE_DRIVE_TYPE) {
|
|
|
|
$clientId = $data['one_drive_client_id'];
|
|
$clientSec = $data['one_drive_client_secret'];
|
|
$token = $data['one_drive_code'];
|
|
$attachment = $zip_file;
|
|
$response = sendToOneDrive($clientId, $clientSec, $token, $attachment);
|
|
if ($response['status']) {
|
|
$all_file_info[] = [
|
|
'file_path'=>$file_name,
|
|
'category_id' =>$category_id,
|
|
'data'=>array_filter($data)
|
|
];
|
|
$errors = 11;
|
|
} else {
|
|
$errors = 12;
|
|
}
|
|
if (!empty($errorString)) {
|
|
$errorString .= "\n" . "The file has been sent to your one drive.";
|
|
} else {
|
|
$errorString = "The file has been sent to your one drive.";
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
return ['message'=>$errorString,'status'=>$status,'data'=>$succesfully_sent_pdf_info,'all_file_info'=>$all_file_info];
|
|
}
|
|
|
|
|
|
|
|
function sendToOneDrive($clientId, $clientSec, $token, $attachment) {
|
|
require 'vendor_onedrive/autoload.php';
|
|
global $global_member_id;
|
|
$result = false;
|
|
$values = [
|
|
'client_id' => $clientId,
|
|
'client_secret' => $clientSec,
|
|
'grant_type' => 'refresh_token',
|
|
'refresh_token' => $token,
|
|
];
|
|
$redirect_url = 'https://readytogoletters.com/one_drive_key_generator.php';
|
|
//$redirect_url = 'http://localhost/rtgv4/one_drive_key_generator.php';
|
|
// $ch = curl_init();
|
|
// curl_setopt($ch, CURLOPT_URL, Client::TOKEN_URL);
|
|
// curl_setopt($ch, CURLOPT_POST, 1);
|
|
// curl_setopt($ch, CURLOPT_POSTFIELDS, $values);
|
|
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
// $server_output = curl_exec($ch);
|
|
// curl_close($ch);
|
|
|
|
$server_output = makeCurlRequest($values,Client::TOKEN_URL,[]);
|
|
$res = json_decode($server_output);
|
|
// if($global_member_id == 51){
|
|
// echo "<pre>";print_r($res);exit;
|
|
// }
|
|
|
|
|
|
$graph = new Graph();
|
|
$graph->setAccessToken($res->access_token);
|
|
|
|
$client = new Client(
|
|
$clientId, $graph, new GuzzleHttpClient(), [
|
|
'state' => (object) [
|
|
'redirect_uri' => $redirect_url,
|
|
'token' => (object) [
|
|
'obtained' => time(),
|
|
'data' => $res
|
|
]
|
|
]]
|
|
);
|
|
|
|
$state = $client->getState();
|
|
$generated_refresh_token = $state->token->data->refresh_token;
|
|
//$attachment
|
|
$myfile = file_get_contents($attachment);
|
|
|
|
// Past this point, you can start using file/folder functions from the SDK, eg:
|
|
$file_name = basename($attachment);
|
|
$file = $client->getRoot()->upload($file_name, $myfile);
|
|
//$children = $file
|
|
if ($token != $generated_refresh_token) {
|
|
$result = true;
|
|
}
|
|
|
|
return $result;
|
|
/// one drive api code here
|
|
}
|
|
|
|
function sendZapier($zapier_url, $fileuri) {
|
|
|
|
$result = true;
|
|
|
|
//Initialise the cURL var
|
|
// $ch = curl_init();
|
|
// converts the file into binary for sending
|
|
$fileuri = curl_file_create(realpath($fileuri), '', '');
|
|
|
|
|
|
// Get the response from cURL
|
|
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
|
|
|
//Set the Url
|
|
// curl_setopt($ch, CURLOPT_URL, $zapier_url);
|
|
|
|
//Create a POST array with the file in it
|
|
$postData = array(
|
|
'file' => $fileuri,
|
|
);
|
|
// curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
|
|
|
|
// Receive server response ...
|
|
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
// Execute the request
|
|
// $response = curl_exec($ch);
|
|
//$server_output = curl_exec($ch);
|
|
// echo $zapier_url;exit;
|
|
$server_output = makeCurlRequest($postData,$zapier_url,[]);
|
|
|
|
if ($server_output == false) {
|
|
$result = false;
|
|
}
|
|
|
|
|
|
// curl_close($ch);
|
|
return $result;
|
|
}
|
|
|
|
function sendGoogleDrive($data, $zip_file) {
|
|
$result = true;
|
|
$clientId = $data['google_client_id']; //'1069879966426-fuv8et5l7abndhtttqhpofc636e3kkn3.apps.googleusercontent.com';
|
|
$clientSec = $data['google_client_secret']; //'nfcvOzisrBkN4xYXBAhQtlkg';
|
|
|
|
$accessToken = $data['google_token']; //'ya29.GlvvBtJrYayeGo9gsWSx622trc-kwj73uB9KVoZundmCbqrDtZ3nFkhmkcXFhluIkKsC6gc3I-z_q_NGBOcPBi_bjvlJoNhpETcvzxkOQNQwKTjH_lNfXs4fXGe1';
|
|
$refreshToken = $data['google_refresh_token']; //'1/pG_de-9RBo4L2HvyCPgjYhVljKPZwQ2TNBgyMGIQKLHykhtDjg_uMtFc1a1HY9pf';
|
|
//$clientId = "asdasdasd";
|
|
$redirectUrl = 'urn:ietf:wg:oauth:2.0:oob';
|
|
$tokenObj = '{"access_token":"' . $accessToken . '","expires_in":3600,"scope":"https:\/\/www.googleapis.com\/auth\/drive.file","token_type":"Bearer","created":1555475349,"refresh_token":"' . $refreshToken . '"}';
|
|
$tokenPath = 'token.json';
|
|
$file_path = realpath($zip_file);
|
|
$file_name = basename($file_path);
|
|
|
|
// Get the API client and construct the service object.
|
|
$client = getGoogleClient($clientId, $clientSec, $redirectUrl, $tokenObj, $tokenPath);
|
|
|
|
$service = new Google_Service_Drive($client);
|
|
|
|
if ($service) {
|
|
$mime_type = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $file_path);
|
|
|
|
$fileMetadata = new Google_Service_Drive_DriveFile(array(
|
|
'name' => $file_name, 'mimeType' => $mime_type));
|
|
|
|
$content = file_get_contents($file_path);
|
|
try {
|
|
$file = $service->files->create($fileMetadata, array(
|
|
'data' => $content,
|
|
'mimeType' => $mime_type,
|
|
'uploadType' => 'multipart',
|
|
'fields' => 'id'));
|
|
|
|
//printf("Upload Success. File ID: %s\n", $file->id);
|
|
} catch (\Exception $e) {
|
|
if (!empty($e->getMessage())) {
|
|
errorLog("Google drive error", $e->getMessage());
|
|
}
|
|
|
|
$result = false;
|
|
}
|
|
}
|
|
return $result;
|
|
}
|
|
|
|
/*function sendDropbox($data, $zip_file_name) {
|
|
|
|
$result = true;
|
|
$token = $data['dropbox_token'];
|
|
$clientId = $data['dropbox_client_id'];
|
|
$clientSecret = $data['dropbox_client_secret'];
|
|
try {
|
|
$app = new DropboxApp($clientId, $clientSecret, $token);
|
|
$dropbox = new Dropbox($app);
|
|
|
|
if ($dropbox) {
|
|
$projectFolder = "testfolder";
|
|
$src_file = $zip_file_name;
|
|
$src_path = realpath($zip_file_name);
|
|
$f_name = basename($src_path);
|
|
$dpx_src_path = "/" . $f_name;
|
|
$dropboxFile = new DropboxFile($src_path);
|
|
|
|
$file = $dropbox->upload($dropboxFile, $dpx_src_path, ['autorename' => false]);
|
|
}
|
|
} catch (\Exception $e) {
|
|
|
|
$result = false;
|
|
if (!empty($e->getMessage())) {
|
|
errorLog("Dropbox error", $e->getMessage());
|
|
}
|
|
}
|
|
return $result;
|
|
}*/
|
|
|
|
|
|
|
|
function sendEmailToMember($memberEmail, $contents, $zip_file, $client_name) {
|
|
|
|
$current_date = date('F m,y');
|
|
$emailSubject = "Fax Sent at: " . $current_date;
|
|
if (!empty($client_name)) {
|
|
$emailSubject = "Fax Sent To: " . str_replace(" ", "_", $client_name) . "_" . $current_date;
|
|
}
|
|
$data['email'] = $memberEmail;
|
|
$data['email_subject'] = $emailSubject;
|
|
$contentString = "";
|
|
/* $file = fopen("fax_error.txt","w");
|
|
fwrite($file,json_encode($contents));
|
|
fclose($file); */
|
|
if (!empty($contents)) {
|
|
foreach ($contents as $key => $faxinfo) {
|
|
if ($faxinfo['status']) {
|
|
if (!empty($contentString)) {
|
|
$contentString .= "<p>" . $faxinfo['pdf'] . " has been <span style = 'color:green'>successfully</span> sent to " . $faxinfo['fax_number'] . "</p>";
|
|
} else {
|
|
$contentString = "<p>" . $faxinfo['pdf'] . " has been <span style = 'color:green'>successfully</span> sent to " . $faxinfo['fax_number'] . "</p>";
|
|
}
|
|
} else {
|
|
if (!empty($contentString)) {
|
|
$contentString .= "<p>" . $faxinfo['pdf'] . " has been <span style = 'color:red'>failed</span> to sent on " . $faxinfo['fax_number'] . "</p>";
|
|
} else {
|
|
$contentString = "<p>" . $faxinfo['pdf'] . " has been <span style = 'color:red'>failed</span> to sent on " . $faxinfo['fax_number'] . "</p>";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (!empty($client_name)) {
|
|
$contentString .= "<p>Client name : " . $client_name . "</p>";
|
|
}
|
|
|
|
$data['email_body'] = $contentString;
|
|
|
|
if (!empty($data['email'])) {
|
|
sendEmail($data, $zip_file);
|
|
}
|
|
}
|
|
|
|
function pdfInfoToJson($info,$file_path){
|
|
$json = "";
|
|
global $global_member_id;
|
|
global $global_sertg_id;
|
|
$client_id = 0;
|
|
if(isset($_POST['client_id']) && $_POST['client_id'] > 0){
|
|
$client_id = $_POST['client_id'];
|
|
}
|
|
|
|
if(!empty($file_path)){
|
|
$file_path = __DIR__.$file_path."/".$global_member_id."/".$client_id."/".$global_sertg_id;
|
|
if(!is_dir($file_path)){
|
|
mkdir($file_path,0777,true);
|
|
}
|
|
|
|
$file_path = $file_path."/".$global_sertg_id.".json";
|
|
if(file_exists($file_path)){
|
|
@unlink($file_path);
|
|
}
|
|
if(!empty($info)){
|
|
$json = json_encode($info);
|
|
file_put_contents($file_path, $json);
|
|
filePermissionSet($file_path);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
function removeDirFilesFromDir($dir){
|
|
$dir = __DIR__.$dir;
|
|
$files = glob($dir.'/*'); // get all file names
|
|
if(!empty($files)){
|
|
foreach ($files as $nfile) {
|
|
if (file_exists($nfile)){
|
|
@unlink($nfile);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function sendFaxByringcentral($fileAndNumber, $data) {
|
|
|
|
$result = ['status' => false, 'faxinfo' => []];
|
|
global $member_ID;
|
|
|
|
|
|
$resultArray = [];
|
|
$rcsdk = new SDK($data['ring_client_id'], $data['ring_client_secret'], $data['ring_server'], 'Fax|SMS|MMS', '1.0.0');
|
|
$platform = $rcsdk->platform();
|
|
|
|
// Authorize
|
|
|
|
try {
|
|
|
|
|
|
$platform->login($data['ring_account'], $data['ring_extension'], $data['ring_password']);
|
|
if ($rcsdk->platform()->loggedIn()) {
|
|
// echo "Yes authenticated";exit;
|
|
}
|
|
//$request = $rcsdk->createMultipartBuilder();
|
|
// Send Fax
|
|
|
|
$faxStatusArray = [];
|
|
if (!empty($fileAndNumber)) {
|
|
foreach ($fileAndNumber as $faxInfo) {
|
|
$request = $rcsdk->createMultipartBuilder()->setBody(array(
|
|
'to' => array(
|
|
array('phoneNumber' => $faxInfo['fax_number']),
|
|
),
|
|
'faxResolution' => 'High',
|
|
'coverIndex' => 0
|
|
))->add(fopen($faxInfo['pdf'], 'r'), basename($faxInfo['pdf']))
|
|
->request('/account/~/extension/~/fax');
|
|
|
|
$response = $platform->sendRequest($request);
|
|
$status = $response->response()->getStatusCode();
|
|
if ($status == 200) {
|
|
$faxStatusArray[] = ['status' => true, 'pdf' => basename($faxInfo['pdf']), 'fax_number' => $faxInfo['fax_number'],'file_full_path'=>$faxInfo['pdf'],'db_key'=>$faxInfo['db_key'],'sequence'=>$faxInfo['sequence']];
|
|
} else {
|
|
$faxStatusArray[] = ['status' => false, 'pdf' => basename($faxInfo['pdf']), 'fax_number' => $faxInfo['fax_number'],'file_full_path'=>$faxInfo['pdf'],'db_key'=>$faxInfo['db_key'],'sequence'=>$faxInfo['sequence']];
|
|
}
|
|
}
|
|
}
|
|
|
|
// if($_POST['member_id'] == 533){
|
|
// //echo "<pre>";print_r($fileAndNumber);exit;
|
|
// }else{
|
|
|
|
// }
|
|
|
|
$result = ['status' => true, 'faxinfo' => $faxStatusArray];
|
|
} catch (\Exception $e) {
|
|
if (!empty($e->getMessage())) {
|
|
global $global_member_id;
|
|
$error_string = "Member ID: ".$global_member_id." Error message : ".$e->getMessage();
|
|
errorLog("RingCentral Fax error", $error_string);
|
|
}
|
|
$result = ['status' => false, 'faxinfo' => $fileAndNumber];
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
function checkDestinationNameExist($pdf_name) {
|
|
$result = 0;
|
|
if (!empty(DESTINATIONS_NAME)) {
|
|
foreach (DESTINATIONS_NAME as $key => $dname) {
|
|
if (strpos($pdf_name, $dname) !== false) {
|
|
$result = $key;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
|
|
function get_destination_name() {
|
|
$destination = ['', 'EXPERIAN DESTINATIONS', 'EQUIFAX DESTINATIONS', 'TRANS UNION DESTINATIONS',
|
|
'INNOVIS DESTINATIONS', 'LEXISNEXIS DESTINATIONS', 'SAGESTREAM LLC DESTINATIONS',
|
|
'CHEX SYSTEMS DESTINATIONS', 'MIB INC DESTINATIONS', 'FACTOR TRUST DESTINATIONS', 'OTHER', 'DATA FURNISHERS'];
|
|
|
|
return $destination;
|
|
}
|
|
|
|
function getClientIforLS($conn, $client_id){
|
|
$info = [];
|
|
if ($client_id > 0) {
|
|
$client_sql = "select clients.*,contacts.*"
|
|
. " from clients INNER JOIN contacts ON contacts.client_id = clients.id "
|
|
. "where contacts.is_primary_contact = 1 AND clients.id = $client_id";
|
|
//echo $client_sql;exit;
|
|
$client_sql_result = $conn->query($client_sql);
|
|
$contact_info = [];
|
|
if ($client_sql_result->num_rows > 0) {
|
|
while ($row = $client_sql_result->fetch_assoc()) {
|
|
|
|
$db_client_count = $row['count_letterstream'];
|
|
|
|
if($db_client_count > 0){
|
|
$info['db_client_count'] = $db_client_count;
|
|
}
|
|
|
|
if ($row['is_letterstream_return_address'] == 1) {
|
|
$contact_info['letter_stream_name_1'] = $row['first_name'];
|
|
$contact_info['letter_stream_name_2'] = $row['last_name'];
|
|
$contact_info['letter_stream_address_1'] = $row['address'];
|
|
$contact_info['letter_stream_address_2'] = "";
|
|
$contact_info['letter_stream_city'] = $row['city'];
|
|
$contact_info['letter_stream_state'] = $row['state'];
|
|
$contact_info['letter_stream_zip'] = $row['zip_code'];
|
|
$info['from'] = letterStreamRetunAddressGenerate($contact_info);
|
|
$info['return_address_db'] = $info['from'];
|
|
$info['letter_stream_name_1'] = $contact_info['letter_stream_name_1'];
|
|
$info['letter_stream_name_2'] = $contact_info['letter_stream_name_2'];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return $info;
|
|
}
|
|
|
|
|
|
|
|
function sendToLetterStream($conn, $api_key, $api_id, $info) {
|
|
|
|
$db_client_count = time();
|
|
|
|
if($info['db_client_count'] > 0){
|
|
$db_client_count = $info['db_client_count'];
|
|
}
|
|
|
|
$client_id = $info['client_id'];
|
|
|
|
$mailType = "firstclass";
|
|
if(isset($_POST['mailType']) && $_POST['mailType'] == 'certified'){
|
|
$mailType = "certified";
|
|
}
|
|
|
|
|
|
|
|
$unique_id = uniqueIdGenerateForLetterStream($client_id,$db_client_count); //this will only be accepted by our system one time
|
|
$string_to_hash = substr($unique_id, -6) . $api_key . substr($unique_id, 0, 6);
|
|
$hash = md5(base64_encode($string_to_hash));
|
|
$data = array('a' => $api_id, 'h' => $hash, 't' => $unique_id);
|
|
|
|
$new_return_address = $info['return_address'];
|
|
$from_address = $info['from_address'];
|
|
$pdf_path = $info['file_path'];
|
|
$is_letterstream_duplex = $info['duplex'];
|
|
|
|
|
|
$no_of_jobs = 1;
|
|
|
|
$pi_di_str = $info['lettertypes'];
|
|
|
|
|
|
//$db_client_count++;
|
|
// $job_name = $info['client_name'] . strtotime(date('m/d/y H:i:s'));
|
|
//echo $info['client_name']."====".$db_client_count."=====".$no_of_jobs."======".$client_id."=====".$pi_di_str;exit;
|
|
$job_name = getJobName($info['client_name'], $db_client_count, $no_of_jobs, $client_id, $pi_di_str);
|
|
|
|
// Update By 1 before sending to letter stream
|
|
updateLetterStreamCount($conn,$db_client_count,$no_of_jobs,$client_id);
|
|
|
|
$data['job'] = $job_name;
|
|
$data['from'] = $from_address;
|
|
$data['responseformat'] = 'json';
|
|
$data['to[]'] = $unique_id . ':' . $new_return_address;
|
|
$data['debug'] = 3;
|
|
$data['coversheet'] = 'Y';
|
|
$data['duplex'] = $is_letterstream_duplex;
|
|
$data['mailtype'] = $mailType;
|
|
$data['single_file'] = curl_file_create(realpath($pdf_path));
|
|
$data['pages'] = $info['total_pdf_pages'];
|
|
//return $data;
|
|
$URL = LETTER_STREAM_API;
|
|
$response = makeCurlRequest($data, $URL, []);
|
|
$response = json_decode($response);
|
|
|
|
$authOk = false;
|
|
$isUploaded = false;
|
|
$authSuccess = $response->message[0]->code; // Auth success code -199
|
|
$uploadSuccess = $response->message[1]->code; // Upload success code -105
|
|
$authSuccess = trim($authSuccess);
|
|
$uploadSuccess = trim($uploadSuccess);
|
|
|
|
//pr($data);
|
|
if ($authSuccess == -199 && ($uploadSuccess == -105 || $uploadSuccess == -100 )) {
|
|
$successfully_sent_pdf = [
|
|
'file_path'=>$pdf_path,
|
|
'from_address'=>$data['from'],
|
|
'return_address'=>$new_return_address,
|
|
'duplex'=> $data['duplex'],
|
|
'mailType'=>$data['mailtype']
|
|
];
|
|
$finalresponse = ['status' => true, 'errorcode' => "",'letter_stream_data'=>$successfully_sent_pdf];
|
|
} else {
|
|
$isBureaus = false;
|
|
$finalresponse = ['status' => false, 'errorcode' => $uploadSuccess];
|
|
$letter_stream_info_for_log = json_encode($data);
|
|
$letter_stream_info_for_log .= " #Client name : " . $client_name;
|
|
$errorString = "#AuthStatus:" . $authSuccess . "#UploadStatus:" . $uploadSuccess .
|
|
"#From Address:" . $info['from'] . "#To:" . $unique_id . ':' . $addressesByDestinationId[$address_id] . "#File Path:" . $pdf_path;
|
|
errorLog("LetterStream rtg letters", $errorString . $letter_stream_info_for_log);
|
|
}
|
|
|
|
return $finalresponse;
|
|
}
|
|
|
|
|
|
function rtgerrorLog($data){
|
|
$file = fopen(__DIR__."/rtg_letter_errors.txt","a");
|
|
fwrite($file,json_encode($data));
|
|
fclose($file);
|
|
}
|
|
|
|
function setAutomation($conn, $data,$velocity_type = 3) {
|
|
//pr($data);
|
|
$data['day_value'] = $data['day_value'];
|
|
$data['automation_type'] = $data['automation_type'];
|
|
$sql = "SELECT * FROM automation_schedules WHERE sertg_id = " . $data['sertg_id'];
|
|
$process_count = 0;
|
|
$current_date_time = date('Y-m-d H:i:s');
|
|
if($data['automation_type'] == 4){
|
|
$process_count = 1;
|
|
}
|
|
$result = $conn->query($sql);
|
|
if ($result->num_rows > 0) {
|
|
$row = $result->fetch_assoc();
|
|
if (isset($data['set_automation']) && $data['set_automation'] == 1) {
|
|
$sql2 = "update automation_schedules set sertg_id = " . $data['sertg_id'] . ", "
|
|
. "member_id = " . $data['member_id'] . ", client_id ="
|
|
. " " . $data['client_id'] . ", type = " . $data['automation_type'] . ", velocity_type = ".$velocity_type.","
|
|
."process_count = {$process_count},"
|
|
. "day_value = " . $data['day_value'] . ", modified_on = '" . $current_date_time . "',is_process = 0,last_process_datetime ='".$current_date_time."' where id = " . $row['id'];
|
|
} else {
|
|
$sql2 = "Delete from automation_schedules where id = " . $row['id'];
|
|
}
|
|
} else {
|
|
$sql2 = "Insert into automation_schedules "
|
|
. "(sertg_id,member_id,client_id,velocity_type,type,day_value,created_on,last_process_datetime,process_count) values (" .
|
|
$data['sertg_id'] . "," . $data['member_id'] . ","
|
|
. "" . $data['client_id'] . ", ".$velocity_type.", " . $data['automation_type'] . ", " . $data['day_value'] . ", '" . $current_date_time . "','".$current_date_time."',{$process_count})";
|
|
}
|
|
|
|
$final_result = $conn->query($sql2);
|
|
|
|
if (isset($data['download_category']) && !empty($data['download_category'])) {
|
|
$automationData['automation_id_list'] = $data['download_category'];
|
|
$automation_schedule_id = $row['id'];
|
|
if (!empty($automation_schedule_id) && $automation_schedule_id > 0) {
|
|
deleteAutomationScheduleExportByAutomationScheduleId($conn, $automation_schedule_id);
|
|
}
|
|
if ($conn->insert_id > 0) {
|
|
$automation_schedule_id = $conn->insert_id;
|
|
}
|
|
insertAutomationScheduleExport($conn, $automation_schedule_id, $automationData);
|
|
}
|
|
|
|
return $final_result;
|
|
}
|
|
|
|
function deleteAutomationScheduleExportByAutomationScheduleId($conn, $automation_schedule_id) {
|
|
$sql = "DELETE FROM `automation_schedule_exports` WHERE `automation_schedule_id` = " . $automation_schedule_id;
|
|
$result = $conn->query($sql);
|
|
}
|
|
|
|
function insertAutomationScheduleExport($conn, $automation_schedule_id, $data) {
|
|
$current_date_time = date('Y-m-d H:i:s');
|
|
$sql = "INSERT INTO automation_schedule_exports (automation_schedule_id,automation_id,created_on,modified_on) VALUES ";
|
|
|
|
$insert_string = "";
|
|
if (!empty($data['automation_id_list']) && $automation_schedule_id > 0) {
|
|
foreach ($data['automation_id_list'] as $automation_id) {
|
|
if (!empty($insert_string)) {
|
|
$insert_string .= ",(" . $automation_schedule_id . "," . $automation_id . ",'" . $current_date_time . "','" . $current_date_time . "')";
|
|
} else {
|
|
$insert_string = "(" . $automation_schedule_id . "," . $automation_id . ",'" . $current_date_time . "','" . $current_date_time . "')";
|
|
}
|
|
}
|
|
$sql .= $insert_string;
|
|
}
|
|
|
|
$result = $conn->query($sql);
|
|
}
|
|
|
|
function isInconsistentClientId($conn, $inputData){
|
|
$result = true;
|
|
$sql = "SELECT * FROM clients where id = ".$inputData['client_id']." and cmsuser_id = ".$inputData['member_id'];
|
|
//echo $sql;exit;
|
|
$result = $conn->query($sql);
|
|
//echo "<pre>";print_r($result);exit;
|
|
if($result->num_rows == 0){
|
|
$result = false;
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
|
|
function saveRTGLetters($conn, $inputData){
|
|
$auth_user = getAuthUser();
|
|
$user_type_name = getCurrentUserInfo();
|
|
$employee_id = 0;
|
|
if($user_type_name == "EMPLOYEE"){
|
|
$employee_id = $auth_user['user_id'];
|
|
}
|
|
//isInconsistentClientId($conn, $inputData);
|
|
$rtg_letters_id = "";
|
|
$next_action_date = null;
|
|
if(!empty($inputData['next_action_date'])){
|
|
$next_action_date = $inputData['next_action_date'];
|
|
}
|
|
|
|
//if($_SESSION['userType'] )
|
|
$dob = $inputData['dob'];
|
|
$ssn = $inputData['ssn'];
|
|
$member_id = $inputData['member_id'];
|
|
$client_id = $inputData['client_id'];
|
|
$report_type = $inputData['report_type'];
|
|
$form_id = $inputData['form_id'];
|
|
$form_data = $inputData['form_data'];
|
|
$form_data = $conn->real_escape_string($form_data);
|
|
$current_date_time = date('Y-m-d H:i:s');
|
|
$lettertypes = implode(",", $inputData['lettertypes']);
|
|
|
|
if(empty($report_type)){
|
|
$report_type = 0;
|
|
}
|
|
|
|
$sql = 'insert into rtg_letters (employee_id, member_id, client_id,form_id, report_type,dob,ssn,lettertypes, data,next_action_date, created_at,updated_at) values(';
|
|
$sql .= $employee_id.",";
|
|
$sql .= $member_id.",".$client_id.",".$form_id.",".$report_type.",'".$dob."','".$ssn."','".$lettertypes."','".$form_data."','".$next_action_date."','".$current_date_time."','".$current_date_time."')";
|
|
|
|
if ($conn->query($sql) === TRUE) {
|
|
$rtg_letters_id = mysqli_insert_id($conn);
|
|
}
|
|
|
|
|
|
return $rtg_letters_id;
|
|
}
|
|
|
|
function updateRTGLetters($conn, $id, $inputData){
|
|
//pr($inputData);exit;
|
|
//isInconsistentClientId($conn, $inputData);
|
|
$rtg_letters_id = 0;
|
|
$next_action_date = null;
|
|
if(!empty($inputData['next_action_date'])){
|
|
$next_action_date = $inputData['next_action_date'];
|
|
}
|
|
$dob = $inputData['dob'];
|
|
$ssn = $inputData['ssn'];
|
|
$member_id = $inputData['member_id'];
|
|
$client_id = $inputData['client_id'];
|
|
$report_type = $inputData['report_type'];
|
|
$form_id = $inputData['form_id'];
|
|
$form_data = $inputData['form_data'];
|
|
//$form_data = addslashes($form_data);
|
|
$form_data = $conn->real_escape_string($form_data);
|
|
|
|
$current_date_time = date('Y-m-d H:i:s');
|
|
$lettertypes = implode(",", $inputData['lettertypes']);
|
|
|
|
$sql = "UPDATE rtg_letters SET "
|
|
. "dob='$dob', "
|
|
. "ssn='$ssn', "
|
|
. "member_id=$member_id, "
|
|
. "client_id=$client_id, "
|
|
. "report_type=$report_type, "
|
|
. "lettertypes='$lettertypes', "
|
|
. "data='$form_data', "
|
|
. "next_action_date='$next_action_date', "
|
|
. "updated_at='$current_date_time' "
|
|
. "WHERE id = ".$id;
|
|
// $sql = 'insert into rtg_letters (member_id, client_id,form_id, report_type,lettertypes, data,next_action_date, created_at) values(';
|
|
// $sql .= $member_id.",".$client_id.",".$form_id.",".$report_type.",'".$lettertypes."','".$form_data."','".$next_action_date."','".$current_date_time."')";
|
|
|
|
// echo $sql;exit;
|
|
if ($conn->query($sql) === TRUE) {
|
|
$rtg_letters_id = $id;
|
|
}
|
|
|
|
return $rtg_letters_id;
|
|
}
|
|
|
|
|
|
function letterEmailSendToClient($conn, $inputData) {
|
|
|
|
$client_name = $inputData['client_name'];
|
|
$client_email = $inputData['client_email'];
|
|
$next_sending_email_date = $inputData['next_sending_email_date'];
|
|
$selected_letter_type = $inputData['letter_type'];
|
|
$letter_send_date_tmezone = $inputData['letter_send_date_tmezone'];
|
|
$member_id = $inputData['member_id'];
|
|
|
|
if (isset($inputData['set_schedule']) && $inputData['set_schedule'] == 1) {
|
|
$member_sql = "select * from cmsusers where id = ".$member_id;
|
|
$sel = $conn->query($member_sql);
|
|
while($row1 = $sel->fetch_assoc()) {
|
|
$letter_email_signature = $row1['letter_email_signature'];
|
|
}
|
|
|
|
|
|
|
|
if ($selected_letter_type > 0 && !empty($next_sending_email_date) && !empty($next_sending_email_date)) {
|
|
$sql = "INSERT INTO letter_email_schedules (member_id, client_email,client_name, datetime,letter_set, gmt,letter_email_signature) VALUES ($member_id,'$client_email','$client_name', '$next_sending_email_date',$selected_letter_type, '$letter_send_date_tmezone','$letter_email_signature')";
|
|
$conn->query($sql);
|
|
}
|
|
} else {
|
|
if ($selected_letter_type > 0) {
|
|
//LETTER_TYPE_FOR_MAIL
|
|
$data['email'] = $client_email;
|
|
$data['email_subject'] = "Great News! We Have Started Your " . LETTER_TYPE_FOR_MAIL[$selected_letter_type] . " Set Of Letters";
|
|
$email_body = "Hello " . $client_name . ",<br/>We have just started your " . LETTER_TYPE_FOR_MAIL[$selected_letter_type] .
|
|
" Set of Letters. We are notifying you to let you know."
|
|
. "<br/>We will keep you updated on all updates and Wins as they come in. "
|
|
. "Thank you For choosing Us We look forward to helping you through this Journey.<br/></br><br/></br>";
|
|
$email_body .= nl2br($letter_email_signature);
|
|
|
|
$letter_info = getLetterSetEmailContent($conn,$_POST['member_id'],$selected_letter_type);
|
|
if(!empty($letter_info['email_subject'])){
|
|
$data['email_subject'] = $letter_info['email_subject'];
|
|
}
|
|
|
|
if(!empty($letter_info['email_body'])){
|
|
$email_body = nl2br($letter_info['email_body']);
|
|
$email_body = str_replace('[client_name]', $client_name, $email_body);
|
|
}
|
|
|
|
$data['email_body'] = $email_body;
|
|
sendRTGEmail($data, "", "DO NOT REPLY");
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
function copyPdfToAnotherDir($file,$destination = "/../rtg_letters/letterstream/",$rtg_letter_id,$inputData){
|
|
$client_id = 0;
|
|
$destination .= $inputData['member_id'];
|
|
if(isset($inputData['client_id']) && $inputData['client_id'] > 0){
|
|
$client_id = $inputData['client_id'];
|
|
}
|
|
if(!empty($destination)){
|
|
$destination = __DIR__.$destination."/".$client_id."/";
|
|
}
|
|
|
|
$file_path = "";
|
|
if(!empty($destination) && !empty($rtg_letter_id)){
|
|
$file_path = $destination.$rtg_letter_id;
|
|
}
|
|
|
|
|
|
|
|
if(!is_dir($file_path)){
|
|
mkdir($file_path,0777,true);
|
|
}
|
|
|
|
$files = glob($file_path."/*"); // get all file names
|
|
foreach($files as $mfile){ // iterate files
|
|
if(is_file($mfile))
|
|
@unlink($mfile); // delete file
|
|
}
|
|
|
|
$file_name = basename($file);
|
|
if(!empty($file_path) && !empty($file_name)){
|
|
copy($file,$file_path."/".$file_name);
|
|
}
|
|
|
|
if(!empty($inputData['ls_data'])){
|
|
$json = json_encode($inputData['ls_data']);
|
|
$json_file_path = $file_path."/".$rtg_letter_id.".json";
|
|
if(file_exists($json_file_path)){
|
|
@unlink($json_file_path);
|
|
}
|
|
file_put_contents($json_file_path, $json);
|
|
}
|
|
|
|
//ls_data
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getGoogleClient($clientId, $clientSec, $redirectUrl, $tokenObj = '', $tokenPath = '') {
|
|
|
|
$client = new Google_Client();
|
|
$client->setApplicationName('RTG Google Drive API Quickstart');
|
|
$client->setScopes(Google_Service_Drive::DRIVE_FILE);
|
|
$client->setClientId($clientId);
|
|
$client->setClientSecret($clientSec);
|
|
$client->setRedirectUri($redirectUrl);
|
|
$client->setAccessType('offline');
|
|
$client->setApprovalPrompt('auto');
|
|
|
|
// Load previously authorized token from a file, if it exists.
|
|
// The file token.json stores the user's access and refresh tokens, and is
|
|
// created automatically when the authorization flow completes for the first
|
|
// time.
|
|
|
|
if (file_exists($tokenPath) && is_file($tokenPath)) {
|
|
$accessTokenArray = json_decode(file_get_contents($tokenPath), true);
|
|
if ($accessTokenArray != null) {
|
|
$client->setAccessToken($accessTokenArray);
|
|
$accessToken = $accessTokenArray;
|
|
}
|
|
} else if (is_string($tokenObj) && $tokenObj != null && $tokenObj != '') {
|
|
$accessTokenArray = json_decode($tokenObj, true);
|
|
$client->setAccessToken($accessTokenArray);
|
|
// $accessToken = $accessTokenArray['access_token'];
|
|
}
|
|
|
|
// If there is no previous token or it's expired.
|
|
if ($client->isAccessTokenExpired()) {
|
|
// Refresh the token if possible, else fetch a new one.
|
|
if ($client->getRefreshToken()) {
|
|
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
|
|
} else {
|
|
|
|
// Request authorization from the user.
|
|
$authUrl = $client->createAuthUrl();
|
|
|
|
echo '
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
<title>Document</title>
|
|
</head>
|
|
<body>
|
|
<a href=' . $authUrl . ' id="link" target="_blank">Click to Generate Token</a>
|
|
<script>
|
|
// document.getElementById("link").click();
|
|
</script>
|
|
</body>
|
|
</html>
|
|
';
|
|
print '<form action="index.php" method="GET">
|
|
<input type="text" name="verify" placeholder="Enter verification code:">
|
|
<input type="submit" name="Submit" value="Submit">
|
|
</form>';
|
|
|
|
if (isset($_GET['verify']) && $_GET['verify'] != '') {
|
|
$authCode = $_GET['verify'];
|
|
|
|
// header('location: '. $authUrl);
|
|
// Exchange authorization code for an access token.
|
|
if (isset($authCode)) {
|
|
// $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
|
|
$accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
|
|
$client->setAccessToken($accessToken);
|
|
}
|
|
// Check to see if there was an error.
|
|
if (array_key_exists('error', $accessToken)) {
|
|
throw new Exception(join(', ', $accessToken));
|
|
}
|
|
}
|
|
}
|
|
// Save the token to a file.
|
|
// if (!file_exists(dirname($tokenPath))) {
|
|
// mkdir(dirname($tokenPath), 0700, true);
|
|
// }
|
|
// file_put_contents($tokenPath, json_encode($client->getAccessToken()));
|
|
}
|
|
return $client;
|
|
}
|
|
|
|
|
|
//function errorLog($type, $error) {
|
|
// $current_date = date('Y-m-d H:i:s');
|
|
// $file = fopen("rtg_letters_error.txt", "a");
|
|
// fwrite($file, "\n\n" . $current_date . " : " . $type . " : " . $error);
|
|
// fclose($file);
|
|
//}
|
|
|
|
|