message = 'Fail';
$this->code = config('constant.API_FAILED_CODE');
$this->data=[];
}
public function generatepdf(Request $req) {
$logData['action'] = 'GENERATE LETTER';
$time = config('constant.MAX_TIME_LIMIT') ?? 60;
set_time_limit($time);
$universal = array();
$pdf_layout_array = [
'1' => 'lg-pdf',
'2' => 'lg-pdf',
'3' => 'lg-pdf',
'4' => 'lg-pdf',
'5' => 'lg-pdf',
'6' => 'lg-pdf2',
'7' => 'lg-pdf2',
'8' => 'lg-pdf2',
'9' => 'lg-pdf2',
'10' => 'lg-pdf2',
'11' => 'lg-pdf2',
'12' => 'lg-pdf2',
'13' => 'lg-pdf2',
'14' => 'lg-pdf2',
'15' => 'lg-pdf2',
'16' => 'lg-pdf2',
'17' => 'lg-pdf2',
'18' => 'lg-pdf',
'19' => 'lg-pdf2',
'20' => 'lg-pdf2',
'21' => 'lg-pdf2',
'22' => 'lg-pdf2',
'23' => 'lg-pdf2',
'24' => 'lg-pdf2',
'26' => 'lg-pdf2',
'27' => 'lg-pdf2',
'28' => 'lg-pdf2',
'29' => 'lg-pdf2',
'30' => 'lg-pdf2',
'31' => 'lg-pdf2',
'32' => 'lg-pdf2',
'33' => 'lg-pdf2',
'34' => 'lg-pdf2',
'35' => 'lg-pdf2',
'36' => 'lg-pdf2',
'37' => 'lg-pdf2',
'38' => 'lg-pdf2',
'39' => 'lg-pdf2',
'40' => 'lg-pdf2',
'41' => 'lg-pdf2',
'42' => 'lg-pdf2',
'43' => 'lg-pdf2',
'44' => 'lg-pdf2',
'45' => 'lg-pdf2',
'46' => 'lg-pdf2',
'47' => 'lg-pdf2',
'48' => 'lg-pdf2',
'49' => 'lg-pdf2',
'50' => 'lg-pdf2',
'51' => 'lg-pdf2',
'52' => 'lg-pdf2',
'53' => 'lg-pdf2',
'54' => 'lg-pdf2',
'55' => 'lg-pdf2',
'56' => 'lg-pdf2',
'57' => 'lg-pdf2',
'58' => 'lg-pdf2',
'59' => 'lg-pdf2',
'60' => 'lg-pdf2',
'61' => 'lg-pdf2',
'62' => 'lg-pdf2',
'63' => 'lg-pdf2',
'64' => 'lg-pdf2',
'65' => 'lg-pdf2',
'66' => 'lg-pdf2',
'67' => 'lg-pdf2',
'68' => 'lg-pdf2',
'69' => 'lg-pdf2',
'70' => 'lg-pdf2',
'71' => 'lg-pdf2',
'72' => 'lg-pdf2',
];
$request = $req->all();
$auth_user = auth()->user();
$client_id = $auth_user->id;
$request['client_email'] = "";
$logData['email'] = $auth_user->email;
$type_name = '';
$current_html_content = $request['current_html_content'];
if (empty($id)) {
$id = isset($request['letter_id']) ? $request['letter_id'] : null;
}
$fileTypeString = "";
if (!empty($selectedLetterTypes)) {
foreach ($selectedLetterTypes as $type) {
if (!empty($fileTypeString) && $fileTypeString != "_") {
$fileTypeString .= "_" . $lettesTypes->{$type};
} else {
$fileTypeString = $lettesTypes->{$type};
}
}
}
$universal['today'] = $request['today'];
$universal['cr_resource'] = $request['cr_resource'];
$universal['name'] = $request['name'];
$universal['address'] = $request['address'];
$universal['dob'] = trim($request['dob']);
$ssn = $auth_user->ssn;
$universal['ssn'] = substr($ssn, -4); // get only last 4 digits of ssn.
$universal['p_tracking_number'] = $request['p_tracking_number'];
$destinations = array();
$additional_destionations1 = [];
$additional_destionations2 = [];
$EXP_1 = "EXPERIAN PO BOX 9701, ALLEN, TX 75013";
$EXP_2 = "EXPERIAN PO BOX 4500, ALLEN, TX 75013";
$EQF_1 = "EQUIFAX PO Box740256, ATLANTA,GA 30374-0256";
$EQF_2 = "EQUIFAX PO Box740241, ATLANTA,GA 30374-0241";
$TRANS_1 = "Trans Union PO Box 2000, CHESTER, PA 19016-2000";;
$TRANS_2 = "Trans Union PO Box 1000, CHESTER, PA 19022-1000";
$TRANS_3 = "Trans Union PO Box 2000, CHESTER, PA 19022-2000";
$destinations[] = $EXP_1;
$destinations[] = $EXP_2;
$destinations[] = $EQF_1;
$destinations[] = $EQF_2;
$destinations[] = $TRANS_1;
$destinations[] = $TRANS_2;
$destinations[] = $TRANS_3;
$additional_destionations1[$EXP_1] = "Attn Darryl Gibson,
Esq. (or acting/current Group General Counsel),
Experian Information Solutions, Inc.,
475 Anton Blvd.,
Costa Mesa, CA 92626";
$additional_destionations1[$EXP_2] = "Attn Darryl Gibson,
Esq. (or acting/current Group General Counsel),
Experian Information Solutions, Inc.,
475 Anton Blvd.,
Costa Mesa, CA 92626";
$additional_destionations2[$EXP_1] = "Experian POB 9701, ATTN Consumer Fraud Department, Allen, TX 75013";
$additional_destionations2[$EXP_2] = "Experian POB 9701, ATTN Consumer Fraud Department, Allen, TX 75013";
$additional_destionations1[$EQF_1] = "ATTN John J. Kelley, III,
Esq. (or acting/current CHIEF LEGAL OFFICER),
Equifax Information services LLC.
1550 Peachtree Street, N.W.,
ATLANTA, GA 30309";
$additional_destionations1[$EQF_2] = "ATTN John J. Kelley, III,
Esq. (or acting/current CHIEF LEGAL OFFICER),
Equifax Information services LLC.
1550 Peachtree Street, N.W.,
ATLANTA, GA 30309";
$additional_destionations2[$EQF_1] = "EQUIFAX , ATTN FRAUD DEPARTMENT,POB 740256, ATLANTA, GA 30374-0256";
$additional_destionations2[$EQF_2] = "EQUIFAX , ATTN FRAUD DEPARTMENT,POB 740256, ATLANTA, GA 30374-0256";
$additional_destionations1[$TRANS_1] = "Attn: john Blenke ,
Esq. (acting or current EVP and GENERAL COUNSEL),
Transunion LLC,
555 W. Adams Street,
CHICAGO, IL";
$additional_destionations1[$TRANS_2] = "Attn: john Blenke ,
Esq. (acting or current EVP and GENERAL COUNSEL),
Transunion LLC,
555 W. Adams Street,
CHICAGO, IL";
$additional_destionations1[$TRANS_3] = "Attn: john Blenke ,
Esq. (acting or current EVP and GENERAL COUNSEL),
Transunion LLC,
555 W. Adams Street,
CHICAGO, IL";
$additional_destionations2[$TRANS_1] = "Trans Union, Attn FRAUD DEPARTMENT, POB 2000, Chester , PA 19016-2000";
$additional_destionations2[$TRANS_2] = "Trans Union, Attn FRAUD DEPARTMENT, POB 2000, Chester , PA 19016-2000";
$additional_destionations2[$TRANS_3] = "Trans Union, Attn FRAUD DEPARTMENT, POB 2000, Chester , PA 19016-2000";
/*$destinations[] = "EXPERIAN PO BOX 9701, ALLEN, TX 75013";
$destinations[] = "EXPERIAN PO BOX 4500, ALLEN, TX 75013";
$destinations[] = "EQUIFAX PO Box740256, ATLANTA,GA 30374-0256";
$destinations[] = "EQUIFAX PO Box740241, ATLANTA,GA 30374-0241";
$destinations[] = "Trans Union PO Box 2000, CHESTER, PA 19016-2000";
$destinations[] = "Trans Union PO Box 1000, CHESTER, PA 19022-1000";
$destinations[] = "Trans Union PO Box 2000, CHESTER, PA 19022-2000";*/
$destinations[] = "INNOVIS PO Box 1640, Pittsburgh, PA 15230-1640";
$destinations[] = "Innovis Consumer Assistance PO Box 530088, Atlanta, GA 30353-0088";
$destinations[] = "LexisNexis PO Box 105108, Atlanta, GA 30348";
$destinations[] = "SageStream, LLC, LexisNexis Risk Solutions Consumer Center P. O. Box 105108. Atlanta, Georgia 30348-5108";
$destinations[] = "Chex Systems ATTN: Consumer Relations, 7805 Hudson Rd., Ste. 100, Woodbury, MN 55125";
$destinations[] = "(US RESIDENTS) MIB Inc 50 Braintree Hill Park, Suite 400, Braintree, MA 02184-8734";
$destinations[] = "(CANADIAN RESIDENTS) MIB Inc 330 university Avenue, Suite 501, Toronto, Canada M5G 1R7";
$destinations[] = "FactorTrust PO Box 3653,Alpharhetta, GA 30023";
$info_item = $request['info_item'];
$data = array(); //main data array
$files = array();
$excludes = array();
if (isset($request['info_item']['file']))
$files = $request['info_item']['file'];
if (isset($request['info_item']['exclude']))
$excludes = $request['info_item']['exclude'];
$univ_dest = $request['destination'];
$content_image = array();
$img_bottom = array();
$excluded_array_keys = [];
$letterImagesDirectory = "app/public/resources/epicvelocity/account";
$letterAttachmentDirectory = "/epicvelocity/letters/attachment";
$letterImagesDirectory = storage_path($letterImagesDirectory);
$letterAttachmentDirectory = storage_path($letterAttachmentDirectory);
if ($request['action'] == 'new') {
// for new upload file in account part
if (!empty($request['letter_image_file'])) {
$target_file = $letterImagesDirectory . '/' . $auth_user->id;
if (!is_dir($target_file)) {
mkdir($target_file, 0777, true);
}
cleanDirectory($target_file);
$image_count = 0;
foreach ($request['letter_image_file'] as $keyf => $image) {
if (!in_array($keyf, $excluded_array_keys)) {
if (!empty($image)) {
$image_count++;
$temp = $auth_user->id . "_" . $image_count . time() . ".jpg";
$dataImg = str_replace('data:image/jpeg;base64,', '', $image);
$dataImg = base64_decode($dataImg);
$targeted_file = $target_file . "/" . $temp;
file_put_contents($targeted_file, $dataImg);
$this->filePermissionSet($targeted_file);
$content_image[$keyf] = $auth_user->id . "/" . $temp;
}
}
}
}
//dd($request['attach_image_file']);
// for existing file in attachment part
if (!empty($request['attach_image_file'])) {
$target_file_attachment = ltrim($letterAttachmentDirectory,"/") . '/' . $auth_user->id;
if (!is_dir($target_file_attachment)) {
// mkdir($target_file_attachment, 0777, true);
}
$attach_count = 0;
//dd($request['attach_image_file'],count($request['attach_image_file']));
foreach ($request['attach_image_file'] as $keyf_attach => $attach) {
$isUploadMedia = $request['isUploadMedia'][$keyf_attach];
if (!in_array($keyf_attach, $excluded_array_keys)) {
if (!empty($attach)) {
$attach_count++;
$temp = $auth_user->id . "_" . $attach_count . time() . ".jpg";
$targeted_attach_file = $target_file_attachment . "/" . $temp;
//dd(getPublicFile($attach),$attach);
if ($isUploadMedia == 1) {
// copy(ltrim($attach,"/"), $targeted_attach_file);
//$img_bottom[$keyf_attach] = $attach;
// $image_src = getPublicFile($attach);
$image_src = getPublicImageFile($attach);
$img_bottom[$keyf_attach] = '';
//$img_bottom[$keyf_attach] = "";
} else {
/*dd($attach);
$dataImg = str_replace('data:image/jpeg;base64,', '', $attach);
$dataImg = base64_decode($dataImg);
file_put_contents($targeted_attach_file, $dataImg);
$this->filePermissionSet($targeted_attach_file);*/
$img_bottom[$keyf_attach] = '
';
}
//$img_bottom[$keyf_attach] = $this->Auth->user('id') . "/" . $temp;
//$img_bottom[$keyf_attach] = $this->Auth->user('id') . "/" . $temp;
}
}
}
}
}
else if ($request['action'] == 'edit' || $request['action'] == 'create_new') {
// for account part
if (!empty($request['isImageChange'])) {
$target_file = $letterImagesDirectory . '/' . $this->Auth->user('id');
if (!is_dir($target_file)) {
mkdir($target_file, 0777, true);
}
cleanDirectory($target_file);
$image_count = 0;
foreach ($request['isImageChange'] as $imageFileKey => $value) {
$image = $request['letter_image_file'][$imageFileKey];
$oldImage = $request['oldImage'][$imageFileKey];
if (!in_array($imageFileKey, $excluded_array_keys)) {
if ($value == 2) { // 2 for new upload Image
if (!empty($image)) {
unlink($letterImagesDirectory . '/' . $oldImage);
$image_count++;
$temp = $this->Auth->user('id') . "_" . $image_count . time() . ".jpg";
$dataImg = str_replace('data:image/jpeg;base64,', '', $image);
$dataImg = base64_decode($dataImg);
$targeted_file = $target_file . "/" . $temp;
file_put_contents($targeted_file, $dataImg);
$this->filePermissionSet($targeted_file);
$content_image[$imageFileKey] = $this->Auth->user('id') . "/" . $temp;
}
} else if ($value == 1) { // 1 for remove image
unlink($letterImagesDirectory . '/' . $oldImage);
} else if ($value == 0) {
$content_image[$imageFileKey] = $image;
}
}
}
}
// for attachment part
if (!empty($request['isAttImageChange'])) {
$target_file = $letterAttachmentDirectory . '/' . $this->Auth->user('id');
if (!is_dir($target_file)) {
mkdir($target_file, 0777, true);
}
$image_att_count = 0;
foreach ($request['isAttImageChange'] as $imageAttFileKey => $value_attach) {
$image_att = $request['attach_image_file'][$imageAttFileKey];
$oldImage_att = $request['oldAttImage'][$imageAttFileKey];
if (!in_array($imageAttFileKey, $excluded_array_keys)) {
if ($value_attach == 2) { // 2 for new upload Image
if (!empty($image_att)) {
unlink($letterAttachmentDirectory . '/' . $oldImage_att);
$image_att_count++;
$temp = $this->Auth->user('id') . "_" . $image_att_count . time() . ".jpg";
$dataImg = str_replace('data:image/jpeg;base64,', '', $image_att);
$dataImg = base64_decode($dataImg);
$targeted_file = $target_file . "/" . $temp;
file_put_contents($targeted_file, $dataImg);
$this->filePermissionSet($targeted_file);
$img_bottom[$imageAttFileKey] = $this->Auth->user('id') . "/" . $temp;
}
} else if ($value_attach == 1) { // 1 for remove image
unlink($letterAttachmentDirectory . '/' . $oldImage_att);
} else if ($value_attach == 0) {
$img_bottom[$imageAttFileKey] = $oldImage_att;
}
}
}
}
}
$db_content_image = $content_image;
//dd($db_content_image);
if (!isset($request['info_item'])) {
//flash('No Content Box added');
//return $this->redirect($this->referer());
return back()->with('error','No Content Box added');
}
$info_item['dest'] = array_values($info_item['dest']);
$final_content_image = [];
$new_dest_content_assoc = [];
if (!empty($info_item['dest'])) {
foreach ($info_item['dest'] as $dest_key => $dest) {
if (!empty($dest)) {
foreach ($dest as $current_dest) {
if (!empty($current_dest) && $current_dest != 1) {
$new_dest_content_assoc[$current_dest][] = $info_item['content'][$dest_key];
}
}
}
}
}
if (!isset($request['bureau_only']) && !isset($request['df_only'])){
$request['bureau_only'] = 1;
$request['df_only'] = 1;
}
if (isset($request['bureau_only'])) {
foreach ($info_item['template'] as $key => $value) {
if (array_key_exists($key, $excludes))
continue;
$data[$value]['type'] = 'bureau';
$data[$value]['template'][] = $value;
$data[$value]['wave'][] = $info_item['wave'][$key];
$data[$value]['letter_type'][] = $info_item['letter_type'][$key];
if(isset($info_item['content'][$key])) {
$data[$value]['content'][] = $info_item['content'][$key];
}
$a1 = array();
if (isset($info_item['dest'][$key])) {
foreach ($info_item['dest'][$key] as $key2 => $value2) {
if (in_array($value2, $destinations)) {
$a1[] = $value2;
}
}
}
if (isset($univ_dest)) {
$a1 = array_merge($a1, $univ_dest);
}
$data[$value]['dest'][] = array_filter(array_unique($a1));
if (array_key_exists($key, $files)) {
$data[$value]['file'][] = $files[$key];
$final_content_image[$value][] = $content_image[$key];
}
if (array_key_exists($key, $request['letter_image_file']))
$data[$value]['letter_image_file'][] = $request['letter_image_file'][$key];
}
}
$key_index = 400;
if (isset($request['df_only'])) {
foreach ($info_item['template_df'] as $key => $value) {
if (empty(trim($value)))
continue;
if (array_key_exists($key, $excludes)) {
continue;
}
$template_id = explode('_', $value);
$template_id = $template_id[1];
$data[$key_index]['type'] = 'creditor';
$data[$key_index]['template'][] = $value;
$data[$key_index]['wave'][] = $info_item['wave'][$key];
$data[$key_index]['letter_type'][] = $info_item['letter_type'][$key];
$data[$key_index]['content'][] = $info_item['content'][$key];
$a1 = array();
if (isset($info_item['dest'][$key])) {
foreach ($info_item['dest'][$key] as $key2 => $value2) {
if (empty(trim($value)))
continue;
if (!in_array($value2, $destinations)) {
$a1[] = $value2;
}
}
}
$data[$key_index]['dest'][] = array_filter($a1);
if (array_key_exists($key, $files)) {
$data[$key_index]['file'][] = $files[$key];
$final_content_image[$key_index][] = $content_image[$key];
}
if (array_key_exists($key, $request['letter_image_file']))
$data[$key_index]['letter_image_file'][] = $request['letter_image_file'][$key];
$key_index ++;
}
}
//dd($data);
$dest = array();
//$_SERVER['DOCUMENT_ROOT']
//$destinationPath = $_SERVER['DOCUMENT_ROOT']. "/webroot/epicvelocity/letters"; // for production server
$destinationPath = storage_path('app/public/resources/epicvelocity/letters'); // for localhost
if (!is_dir($destinationPath)) {
mkdir($destinationPath, 0777, true);
}
$folder_name = $destinationPath . '/' . $auth_user->id . "_" . time() . '-' . mt_rand(00000, 999999);
try {
if (!is_dir($folder_name)) {
mkdir($folder_name, 0777, true);
}
} catch (Exception $e) {
Log::error($e);
}
//array for bottom images.
$img_bottom_clients = array();
if (isset($request['identity_proof_file']) && !empty($request['identity_proof_file']))
$img_bottom_clients[] = $request['identity_proof_file'];
if (isset($reques['ssn_proof_file']) && !empty($reques['ssn_proof_file']))
$img_bottom_clients[] = $reques['ssn_proof_file'];
if (isset($request['address_proof_file']) && !empty($request['address_proof_file']))
$img_bottom_clients[] = $request['address_proof_file'];
if (isset($request['other_file']) && !empty($request['other_file']))
$img_bottom_clients[] = $request['other_file'];
$count = 1;
$cb_item_per_letter = 1;
$num_of_inquiry = 1;
if (isset($request['num_of_account']) && !empty($request['num_of_account'])) {
$cb_item_per_letter = $request['num_of_account'];
}
if (isset($request['num_of_inquiry']) && !empty($request['num_of_inquiry'])) {
$num_of_inquiry = $request['num_of_inquiry'];
}
$dfAddressAssocPDF = []; // Data Furnisher Address & file assoc initialization
// dd($data);
foreach ($data as $key => $value) {
// $data[$key]['dest'] = $this->array_flatten($data[$key]['dest']);
$temp_id = $data[$key]['template'][0];
$temp_name = explode('_', $data[$key]['template'][0]);
$template_type = explode('-', $temp_name[0]);
$template_type = $template_type[0];
if ($template_type == 'INQ') {
$cb_item_per_letter = $num_of_inquiry;
}
if ($temp_name[1] == '40') {
//continue;
}
$view_name = 'lg/pdf/' . $temp_name[1];
// image_content
$final_image_acc = [];
if (!empty($final_content_image[$key])) {
foreach ($final_content_image[$key] as $keyfile => $valuef) {
if (!empty($valuef)) {
$final_image_acc[] = $valuef;
}
}
}
$content_image = $final_image_acc;
// image_content
$header_content = '';
if ($temp_name[1] == 52) {
$header_content = "
Notice of Intent to Sue
(if you fail to act accordingly in response to this again applied CONSUMER DECLARATION of CHECK of CERTIFIED COMPLIANT and PHYSICALLY VERIFIABLE REPORTED INFORMATION with DEMAND to remove DEFICIENCIES!
"; } $total_destination_selected = count($data[$key]['dest']); // dd($data[$key]['dest'],$data[$key]['content']); $testData = []; if (count($data[$key]['content']) > $cb_item_per_letter){ $content = array_chunk($data[$key]['content'],$cb_item_per_letter); foreach ($content as $key3 => $value3) { foreach ($data[$key]['dest'][$key3] as $key2 => $value2) { $current_destination_name = $this->getDestinationByAddress($value2); if ($value2 == '' || $value2 == 1) { continue; } if (in_array($value2, $destinations)) { if (isset($request['include_bureau_image'])) { $fina_data = array('content' => $value3, 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => $img_bottom, 'img_bottom_clients' => $img_bottom_clients); } else { $fina_data = array('content' => $value3, 'destination' => $value2, 'universal' => $universal, 'content_image' => array(), 'img_bottom' => array(), 'img_bottom_clients' => array()); } } else { if (isset($request['include_creditor_image'])) { $fina_data = array('content' => $value3, 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => $img_bottom, 'img_bottom_clients' => $img_bottom_clients); } else { $fina_data = array('content' => $value3, 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => array(), 'img_bottom_clients' => array()); //$test_content[] = ['df-content' => $fina_data['content']]; } } $html = ''; $content = $fina_data['content']; $destination = $fina_data['destination']; $avail_content = $new_dest_content_assoc[$value2] ?? ""; $content_image = $fina_data['content_image']; $img_bottom = $fina_data['img_bottom']; // $img_bottom = []; $img_bottom_clients = $fina_data['img_bottom_clients']; $html = view($view_name, compact( 'universal', 'fina_data', 'content', 'header_content', 'additional_destionations1', 'additional_destionations2', 'destination', 'avail_content', 'content_image', 'img_bottom', 'img_bottom_clients' ) )->render(); //echo $html;exit; $html = $this->removeGreenText($html); //echo $html;exit; $test_content[$key] = ['content' => array_keys($content), 'pdf' => $view_name]; $name2 = (explode(' ', $value2)); $client_name = str_replace(" ", "-", $request['name']); if(!empty($client_name)){ $client_name = rtrim($client_name,","); } $date_time = time(); $file_name = $count . '_' . $client_name . '_' . $temp_name[0] . '_' . str_replace('/', '', $name2[0]) . '_' . $date_time . '.pdf'; //build name of pdf file $count++; $global_html[$value2] = ['html' => $html, 'destination_name' => $current_destination_name, 'file_name' => $file_name]; $global_destination_html[$current_destination_name] = $html; $this->generateCurrentPDF($html, $folder_name . '/' . $file_name,$file_name); if (!in_array($value2, $destinations)) { $dfAddressAssocPDF[$folder_name . '/' . $file_name] = $value2; } } } } else{ $data[$key]['dest'] = $this->array_flatten($data[$key]['dest']); foreach ($data[$key]['dest'] as $key2 => $value2) { $current_destination_name = $this->getDestinationByAddress($value2); if (in_array($value2, $destinations)) { if (isset($request['include_bureau_image'])) { $fina_data = array('content' => $data[$key]['content'], 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => $img_bottom, 'img_bottom_clients' => $img_bottom_clients); } else { $fina_data = array('content' => $data[$key]['content'], 'destination' => $value2, 'universal' => $universal, 'content_image' => array(), 'img_bottom' => array(), 'img_bottom_clients' => array()); } } else { if (isset($request['include_creditor_image'])) { $fina_data = array('content' => $data[$key]['content'], 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => $img_bottom, 'img_bottom_clients' => $img_bottom_clients); } else { $fina_data = array('content' => $data[$key]['content'], 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => array(), 'img_bottom_clients' => array()); } } $testData[] = $temp_name[1]; $html = ''; $content = $fina_data['content']; $destination = $fina_data['destination']; $avail_content = $new_dest_content_assoc[$value2] ?? ""; $content_image = $fina_data['content_image']; $img_bottom = $fina_data['img_bottom']; // $img_bottom = []; $img_bottom_clients = $fina_data['img_bottom_clients']; $html = view($view_name, compact( 'universal', 'fina_data', 'content', 'header_content', 'additional_destionations1', 'additional_destionations2', 'destination', 'avail_content', 'content_image', 'img_bottom', 'img_bottom_clients' ) )->render(); $html = $this->removeGreenText($html); //echo $html;exit; $test_content[$key] = ['content' => array_keys($content), 'pdf' => $view_name]; $name2 = (explode(' ', $value2)); $client_name = str_replace(" ", "-", $request['name']); if(!empty($client_name)){ $client_name = rtrim($client_name,","); } $date_time = time(); $file_name = $count . '_' . $client_name . '_' . $temp_name[0] . '_' . str_replace('/', '', $name2[0]) . '_' . $date_time . '.pdf'; //build name of pdf file $count++; $global_html[$value2] = ['html' => $html, 'destination_name' => $current_destination_name, 'file_name' => $file_name]; $global_destination_html[$current_destination_name] = $html; $this->generateCurrentPDF($html, $folder_name . '/' . $file_name,$file_name); if (!in_array($value2, $destinations)) { $dfAddressAssocPDF[$folder_name . '/' . $file_name] = $value2; //['address'=>$value2,'pdf'=> $file_name]; } } } } $zip_file_name = $auth_user->id . "_" . time() . 'evlg-pdf.zip'; $path = $folder_name; $zip_file = $destinationPath . '/' . $zip_file_name; $createZip = new createDirZip(); $createZip->testZip($path, $zip_file); if (!file_exists($zip_file)){ $this->Flash->error('No Letter generated.'); } if (file_exists($zip_file)) { File::deleteDirectory($path); $json_content_image = ""; $json_bottom_image = ""; $is_df_only = 0; $is_bureau_only = 0; $is_include_creditor_image = 0; $is_include_bureau_image = 0; $is_audit_only = 0; if (isset($request['df_only'])) { $is_df_only = $request['df_only']; } if (isset($request['bureau_only'])) { $is_bureau_only = $request['bureau_only']; } if (isset($request['include_bureau_image'])) { $is_include_bureau_image = $request['include_bureau_image']; } if (isset($request['include_creditor_image'])) { $is_include_creditor_image = $request['include_creditor_image']; } if (isset($request['audit_only'])) { $is_audit_only = $request['audit_only']; } $epic_personal_info['client_name'] = $request['name']; $epic_personal_info['address'] = $request['address']; $download_type= $request['download_type']; if($download_type==1) { $type_name = 'Download'; appLog($logData); PdfWriter::pdfDownload($zip_file); } else if ($download_type == 2) { $type_name = 'Email'; $data['email'] = $auth_user->email; $data['email_body'] = "Please find your generated letter"; $data['email_subject'] = "Credit Counsel Elite Letters"; $from = null; //$this->sendRTGEmail($data, $zip_file); $fileSize = filesize($zip_file)/1024/1024; if($fileSize < 25) { (new Email())->send($data, $data['email_subject'], $from, $zip_file, 'email.letter', $data['email']); //$this->pdfDownload($zip_file); $response['message'] = "Your Letters has been sent to your email."; }else{ $response['message'] = "Email can not sent for exceed maximum attachment file size."; } echo json_encode($response); exit; // $this->pdfDownload($zip_file); } else if($download_type == 3) { $request['folder_name'] = $folder_name; $this->storePdfLetters($request['client_id'],$letterExtraEntity->letter_id,2,$zip_file,$request); } else { $conn = $this->conn; if (isset($request['download_category']) && $request['download_category'] > 0) { $dropdown_category_id = $request['download_category']; $other_data['letter_stream_html'] = $global_html; $other_data['letter_stream_dest_html'] = $global_destination_html; $other_data['letters_directory_info'] = $folder_name; $other_data['client_id'] = $request['client_id']; $other_data['client_name'] = $request['name']; $other_data['DF'] = $dfAddressAssocPDF; $other_data['set_automation'] = $request['set_automation']; $other_data['sertg_id'] = $letterExtraEntity->letter_id; $response = "Your file will send with due time."; if($request['automation_type'] != 4){ $response = $this->sendToClient($conn, $dropdown_category_id, $zip_file, "", array(), $other_data); } } else if (isset($request['formaction']) && $request['formaction'] == 'ajax') { $response = ['status' => 1]; } $this->deleteGeneratedPdfWithDir($folder_name); @unlink($zip_file); echo json_encode($response); exit; } } else { if ($this->request->is('ajax')) { echo json_encode('There was no file generated to send.'); exit; } $this->Flash->error('No Letter generated.'); } $logData['type'] = $type_name; appLog($logData); $this->deleteGeneratedPdfWithDir($folder_name); //return $this->redirect($this->referer()); } public function getGeneratedPdf(Request $req) { $logData['action'] = 'TOTAL PDF COUNT'; $time = config('constant.MAX_TIME_LIMIT') ?? 60; set_time_limit($time); $response['message'] = "We apologize but you have reached your capacity of letters to challenge at one time. Please Review your accounts again and re process."; $response['status'] = false; $universal = array(); $pdf_layout_array = [ '1' => 'lg-pdf', '2' => 'lg-pdf', '3' => 'lg-pdf', '4' => 'lg-pdf', '5' => 'lg-pdf', '6' => 'lg-pdf2', '7' => 'lg-pdf2', '8' => 'lg-pdf2', '9' => 'lg-pdf2', '10' => 'lg-pdf2', '11' => 'lg-pdf2', '12' => 'lg-pdf2', '13' => 'lg-pdf2', '14' => 'lg-pdf2', '15' => 'lg-pdf2', '16' => 'lg-pdf2', '17' => 'lg-pdf2', '18' => 'lg-pdf', '19' => 'lg-pdf2', '20' => 'lg-pdf2', '21' => 'lg-pdf2', '22' => 'lg-pdf2', '23' => 'lg-pdf2', '24' => 'lg-pdf2', '26' => 'lg-pdf2', '27' => 'lg-pdf2', '28' => 'lg-pdf2', '29' => 'lg-pdf2', '30' => 'lg-pdf2', '31' => 'lg-pdf2', '32' => 'lg-pdf2', '33' => 'lg-pdf2', '34' => 'lg-pdf2', '35' => 'lg-pdf2', '36' => 'lg-pdf2', '37' => 'lg-pdf2', '38' => 'lg-pdf2', '39' => 'lg-pdf2', '40' => 'lg-pdf2', '41' => 'lg-pdf2', '42' => 'lg-pdf2', '43' => 'lg-pdf2', '44' => 'lg-pdf2', '45' => 'lg-pdf2', '46' => 'lg-pdf2', '47' => 'lg-pdf2', '48' => 'lg-pdf2', '49' => 'lg-pdf2', '50' => 'lg-pdf2', '51' => 'lg-pdf2', '52' => 'lg-pdf2', '53' => 'lg-pdf2', '54' => 'lg-pdf2', '55' => 'lg-pdf2', '56' => 'lg-pdf2', '57' => 'lg-pdf2', '58' => 'lg-pdf2', '59' => 'lg-pdf2', '60' => 'lg-pdf2', '61' => 'lg-pdf2', '62' => 'lg-pdf2', '63' => 'lg-pdf2', '64' => 'lg-pdf2', '65' => 'lg-pdf2', '66' => 'lg-pdf2', '67' => 'lg-pdf2', '68' => 'lg-pdf2', '69' => 'lg-pdf2', '70' => 'lg-pdf2', '71' => 'lg-pdf2', '72' => 'lg-pdf2', ]; $request = $req->all(); $auth_user = auth()->user(); $client_id = $auth_user->id; $request['client_email'] = ""; $logData['email'] = $auth_user->email; $download_type = $request['download_type']; if($download_type == 1) { $logData['type'] = 'Download'; }else if($download_type == 2){ $logData['type'] = 'Email'; } $current_html_content = $request['current_html_content']; if (empty($id)) { $id = isset($request['letter_id']) ? $request['letter_id'] : null; } $fileTypeString = ""; if (!empty($selectedLetterTypes)) { foreach ($selectedLetterTypes as $type) { if (!empty($fileTypeString) && $fileTypeString != "_") { $fileTypeString .= "_" . $lettesTypes->{$type}; } else { $fileTypeString = $lettesTypes->{$type}; } } } $universal['today'] = $request['today']; $universal['cr_resource'] = $request['cr_resource']; $universal['name'] = $request['name']; $universal['address'] = $request['address']; $universal['dob'] = trim($request['dob']); $ssn = $auth_user->ssn; $universal['ssn'] = substr($ssn, -4); // get only last 4 digits of ssn. $universal['p_tracking_number'] = $request['p_tracking_number']; $destinations = array(); $additional_destionations1 = []; $additional_destionations2 = []; $EXP_1 = "EXPERIAN PO BOX 9701, ALLEN, TX 75013"; $EXP_2 = "EXPERIAN PO BOX 4500, ALLEN, TX 75013"; $EQF_1 = "EQUIFAX PO Box740256, ATLANTA,GA 30374-0256"; $EQF_2 = "EQUIFAX PO Box740241, ATLANTA,GA 30374-0241"; $TRANS_1 = "Trans Union PO Box 2000, CHESTER, PA 19016-2000";; $TRANS_2 = "Trans Union PO Box 1000, CHESTER, PA 19022-1000"; $TRANS_3 = "Trans Union PO Box 2000, CHESTER, PA 19022-2000"; $destinations[] = $EXP_1; $destinations[] = $EXP_2; $destinations[] = $EQF_1; $destinations[] = $EQF_2; $destinations[] = $TRANS_1; $destinations[] = $TRANS_2; $destinations[] = $TRANS_3; $additional_destionations1[$EXP_1] = "Attn Darryl Gibson,Notice of Intent to Sue
(if you fail to act accordingly in response to this again applied CONSUMER DECLARATION of CHECK of CERTIFIED COMPLIANT and PHYSICALLY VERIFIABLE REPORTED INFORMATION with DEMAND to remove DEFICIENCIES!
"; } $total_destination_selected = count($data[$key]['dest']); $testData = []; foreach ($data[$key]['dest'] as $key2 => $value2) { $current_destination_name = $this->getDestinationByAddress($value2); if ($value2 == '' || $value2 == 1) { continue; } if (count($data[$key]['content']) > $cb_item_per_letter) { $content = array_chunk($data[$key]['content'], $cb_item_per_letter); foreach ($content as $key3 => $value3) { if (in_array($value2, $destinations)) { if (isset($request['include_bureau_image'])) { $fina_data = array('content' => $value3, 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => $img_bottom, 'img_bottom_clients' => $img_bottom_clients); } else { $fina_data = array('content' => $value3, 'destination' => $value2, 'universal' => $universal, 'content_image' => array(), 'img_bottom' => array(), 'img_bottom_clients' => array()); } } else { if (isset($request['include_creditor_image'])) { $fina_data = array('content' => $value3, 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => $img_bottom, 'img_bottom_clients' => $img_bottom_clients); } else { $fina_data = array('content' => $value3, 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => array(), 'img_bottom_clients' => array()); //$test_content[] = ['df-content' => $fina_data['content']]; } } $html = ''; $content = $fina_data['content']; $destination = $fina_data['destination']; $avail_content = $new_dest_content_assoc[$value2] ?? ""; $content_image = $fina_data['content_image']; $img_bottom = $fina_data['img_bottom']; $img_bottom_clients = $fina_data['img_bottom_clients']; $html = view($view_name, compact( 'universal', 'fina_data', 'content', 'header_content', 'additional_destionations1', 'additional_destionations2', 'destination', 'avail_content', 'content_image', 'img_bottom', 'img_bottom_clients' ) )->render(); $html = $this->removeGreenText($html); //echo $html;exit; $test_content[$key] = ['content' => array_keys($content), 'pdf' => $view_name]; $name2 = (explode(' ', $value2)); $client_name = str_replace(" ", "-", $request['name']); if(!empty($client_name)){ $client_name = rtrim($client_name,","); } $date_time = time(); $file_name = $count . '_' . $client_name . '_' . $temp_name[0] . '_' . str_replace('/', '', $name2[0]) . '_' . $date_time . '.pdf'; //build name of pdf file $count++; $global_html[$value2] = ['html' => $html, 'destination_name' => $current_destination_name, 'file_name' => $file_name]; $global_destination_html[$current_destination_name] = $html; // $this->generateCurrentPDF($html, $folder_name . '/' . $file_name,$file_name); $pdfCount++; // if (!in_array($value2, $destinations)) { // $dfAddressAssocPDF[$folder_name . '/' . $file_name] = $value2; // } } } else { if (in_array($value2, $destinations)) { if (isset($request['include_bureau_image'])) { $fina_data = array('content' => $data[$key]['content'], 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => $img_bottom, 'img_bottom_clients' => $img_bottom_clients); } else { $fina_data = array('content' => $data[$key]['content'], 'destination' => $value2, 'universal' => $universal, 'content_image' => array(), 'img_bottom' => array(), 'img_bottom_clients' => array()); } } else { if (isset($request['include_creditor_image'])) { $fina_data = array('content' => $data[$key]['content'], 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => $img_bottom, 'img_bottom_clients' => $img_bottom_clients); } else { $fina_data = array('content' => $data[$key]['content'], 'destination' => $value2, 'universal' => $universal, 'content_image' => $content_image, 'img_bottom' => array(), 'img_bottom_clients' => array()); } } $testData[] = $temp_name[1]; $html = ''; $content = $fina_data['content']; $destination = $fina_data['destination']; $avail_content = $new_dest_content_assoc[$value2] ?? ""; $content_image = $fina_data['content_image']; $img_bottom = $fina_data['img_bottom']; $img_bottom_clients = $fina_data['img_bottom_clients']; $html = view($view_name, compact( 'universal', 'fina_data', 'content', 'header_content', 'additional_destionations1', 'additional_destionations2', 'destination', 'avail_content', 'content_image', 'img_bottom', 'img_bottom_clients' ) )->render(); $html = $this->removeGreenText($html); //echo $html;exit; $test_content[$key] = ['content' => array_keys($content), 'pdf' => $view_name]; $name2 = (explode(' ', $value2)); $client_name = str_replace(" ", "-", $request['name']); if(!empty($client_name)){ $client_name = rtrim($client_name,","); } $date_time = time(); $file_name = $count . '_' . $client_name . '_' . $temp_name[0] . '_' . str_replace('/', '', $name2[0]) . '_' . $date_time . '.pdf'; //build name of pdf file $count++; $global_html[$value2] = ['html' => $html, 'destination_name' => $current_destination_name, 'file_name' => $file_name]; $global_destination_html[$current_destination_name] = $html; // $this->generateCurrentPDF($html, $folder_name . '/' . $file_name,$file_name); // if (!in_array($value2, $destinations)) { // $dfAddressAssocPDF[$folder_name . '/' . $file_name] = $value2; //['address'=>$value2,'pdf'=> $file_name]; // } $pdfCount++; } } } if($pdfCount <= config('constant.MAX_PDF_COUNT') ) { $response['isGreaterThanFifty'] = false; $message = ''; if($pdfCount > config('constant.MIN_PDF_COUNT_VALUE')) { $response['isGreaterThanFifty'] = true; $message = "Oops! Looks like you're trying to process more than 50 letters, Are you sure you need to challenge this many Items? Please Double Check The how-to video To Make Sure You Want To Move Forward To Challenge All Items Listed. If You Want to Continue To Process All The Letters Then Continue"; } $response['message'] = $message; $response['status'] = true; } $logData['pdf_file_count'] = $pdfCount; $logData['response'] = $response; appLog($logData); echo json_encode($response); exit; } private function deleteGeneratedPdfWithDir($folder_name) { // delete generated pdf with directory try { if (substr($folder_name, strlen($folder_name) - 1, 1) != '/') { $folder_name .= '/'; } $files = glob($folder_name . '*', GLOB_MARK); foreach ($files as $file) { @unlink($file); } rmdir($folder_name); } catch (\Exception $e) { } } private function array_flatten($array) { if (!is_array($array)) { return FALSE; } $result = array(); foreach ($array as $key => $value) { if (is_array($value)) { $result = array_merge($result, $this->array_flatten($value)); } else { $result[$key] = $value; } } return $result; } private function uploadMediaHTML($uploadmedias) { $count = 0; $html = ""; if (!empty($uploadmedias)) { foreach ($uploadmedias as $uploadmedia) { $file = config('constant.UPLOAD_MEDIA_PATH') . DIRECTORY_SEPARATOR.$uploadmedia->user_id . DIRECTORY_SEPARATOR . $uploadmedia->image_path; $count++; $html .= 'OBVIOUSLY PAY BILLS IN FULL ON TIME ALWAYS, DO NOT MISS , OR BE LATE OR HAVE INCOMPLETE PAYMENT IN ACCOUNT HISTORY
#', '', $html); return $html; } private function generateCurrentPDF($html, $file_path) { // $html = str_replace('/images/iq_report_img/legend-icon.gif',"",$html); // $link = ''; // $html = str_replace('https://www.identityiq.com/images/tu/legend-icon.gif', '', $html); // // $html = $link.$html; if($this->pdfObj instanceof PdfWriter){ $pdfWriter = $this->pdfObj; }else{ $pdfWriter = new PdfWriter(); } // echo $html; exit; $pdfWriter->write($html, $file_path); //$pdfWriter->mpdfWrite($html, $file_path,basename($file_path)); // $pdfWriter->snappyImage($html, $file_path); } private function generateWaves($user) { $userWave=$user['wave']; $waves=[]; for($i=1;$i<=$userWave;$i++) { $waves[$i]='Wave '.$i; } return $waves; } private function filePermissionSet($file_path, $code = 0664) { // chmod($file_path, $code); } }