Ngiler SH3LL 360
Home
Information
Create File
Create Folder
:
/
home
/
tbf
/
duplicat_sala_palatului
/
app
/
Helpers
/
Information Server
MySQL :
OFF
Perl :
OFF
CURL :
ON
WGET :
OFF
PKEXEC :
OFF
Directive
Local Value
IP Address
89.40.16.97
System
Linux server.atelieruldeit.ro 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64
User
tbf
PHP Version
7.3.33
Software
Apache
Doc root
Writable
close
Edit File :
general.php
| Size :
15.74
KB
Copy
<?php use Illuminate\Support\Facades\Mail; use App\Mail\QuizResultsMail; use App\Mail\QuizResultsMailToClient; use App\Mail\NotificationReferralMail; use App\Mail\QuizErrorMail; use App\Mail\ReminderEmailToClient; use App\Mail\ReminderTwoEmailToClient; use App\Mail\ReminderEmailNumarLocuriMail; use App\Mail\SignContractToClient; use App\Mail\QuizStepErrorMail; use DrewM\MailChimp\MailChimp; use App\CrmQuestion; use Spatie\Newsletter\Newsletter; function convert_title($quiz_obj, $json_titles){ foreach($json_titles as $title){ if($title['condition']){ if($title['condition'] == true){ return $title['title']; } $condition = eval('return '.$title['condition'].';'); if($condition == true){ return $title['title']; } }else{ return $title['title']; } } } function quiz_results_mail($json,$final_price,$applicant_email){ $subject = $applicant_email . " a completat quiz-ul " . config('app.name'); $data = [ 'entity_json' => $json, 'price' => $final_price, ]; try{ Mail::to(config('app.mail_hr'))->queue(New QuizResultsMail($subject, $data)); }catch(Exception $e){ $data = [ 'error' => $e->getMessage(), ]; Mail::to('logs@sincronizator.ro')->queue(New QuizErrorMail($subject, $data)); } } function quiz_results_mail_to_client($variable_list,$applicant_email){ if($variable_list['qualified_for'] == 'sala_palatului'){ $subject = "[Sala Palatului] Locul tau a fost rezervat"; }else{ $subject = "[Fundamental] Te-ai inscris cu succes"; } $data = $variable_list; try{ Mail::to($applicant_email)->queue(New QuizResultsMailToClient($subject, $data)); }catch(Exception $e){ $data = [ 'error' => $e->getMessage(), ]; Log::critical('Nu s-a trimis email la: '.$applicant_email); // Mail::to('logs@sincronizator.ro')->queue(New QuizErrorMail($subject, $data)); } } function reminderToClient($variable_list,$applicant_email){ $subject = "IMPORTANT: Eveniment Sala Palatului"; try{ Mail::to($applicant_email)->queue(New ReminderEmailToClient($subject, $variable_list)); }catch(Exception $e){ $data = [ 'error' => $e->getMessage(), ]; Log::critical('Nu s-a trimis reminder email la: '.$applicant_email); // Mail::to('logs@sincronizator.ro')->queue(New QuizErrorMail($subject, $data)); } } function reminderNumarDeLocuriToClient($variable_list){ $subject = "Locuri rezervate la Sala Palatului: ".$variable_list['extra_people']; try{ Mail::to($variable_list['email'])->queue(New ReminderEmailNumarLocuriMail($subject, $variable_list)); }catch(Exception $e){ $data = [ 'error' => $e->getMessage(), ]; Log::critical('Nu s-a trimis mail cu numar de locuri la: '.$variable_list['email']); Log::critical($data); Log::critical('------------------------------------------------------------------'); } } function accessTokenSms() { //string before encoding $string = config('app.routee_app_id').':'.config('app.routee_app_secret'); //string after encode $stringEncode = base64_encode($string); $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://auth.routee.net/oauth/token", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "grant_type=client_credentials", CURLOPT_HTTPHEADER => array( "authorization: Basic ".$stringEncode, "content-type: application/x-www-form-urlencoded" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); return $response; } function sendSmsToClient($phone, $body, $accessToken){ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://connect.routee.net/sms", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{ \"body\": \"".$body."\",\"to\" : \"".$phone."\",\"from\": \"0758577968\"}", CURLOPT_HTTPHEADER => array( "authorization: Bearer ".$accessToken, "content-type: application/json" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); return $response; } function reminderTwoToClient($variable_list,$applicant_email){ $subject = "[Sala Palatului] Te putem ajuta?"; try{ Mail::to($applicant_email)->queue(New ReminderTwoEmailToClient($subject, $variable_list)); }catch(Exception $e){ $data = [ 'error' => $e->getMessage(), ]; Log::critical('Nu s-a trimis reminder email la: '.$applicant_email); // Mail::to('logs@sincronizator.ro')->queue(New QuizErrorMail($subject, $data)); } } function signContract($variable_list,$applicant_email){ $subject = "[Sala Palatului] Vrei sa participi?"; try{ Mail::to($applicant_email)->queue(New SignContractToClient($subject, $variable_list)); }catch(Exception $e){ $data = [ 'error' => $e->getMessage(), ]; Log::critical('Nu s-a trimis reminder email la: '.$applicant_email); // Mail::to('logs@sincronizator.ro')->queue(New QuizErrorMail($subject, $data)); } } function notification_referral_mail($referred_by,$referral_email){ $subject = "Ai primit o invitatie la quiz-ul " . config('app.name'); $data = [ 'referred_by' => $referred_by, 'link' => config('app.url'), ]; try{ Mail::to($referral_email)->queue(New NotificationReferralMail($subject, $data)); }catch(Exception $e){ $data = [ 'error' => $e->getMessage(), ]; Mail::to('logs@sincronizator.ro')->queue(New QuizErrorMail($subject, $data)); } } function sync_contacts_with_crm($applicant,$json,$tags){ $data = [ 'first_name' => $applicant['first_name'], // 'last_name' => $applicant['last_name'], 'email' => $applicant['email'], 'phone' => $applicant['phone'], 'tags' => $tags, 'field[39]' => 'Accept ca numele, numarul de telefon si adresa de email furnizate de mine sa fie folosite pentru a primi date si informatii din partea tbf.ro', 'field[67]' => $applicant['cui'], 'field[61]' => $applicant['company_name'], ]; try { $url = env('ACTIVE_CAMPAIGN_HOST') . "/admin/api.php?api_action=contact_sync&api_key=" . env('ACTIVE_CAMPAIGN_KEY') . "&api_output=json"; $cURLConnection = curl_init($url); curl_setopt($cURLConnection, CURLOPT_POSTFIELDS, $data); curl_setopt($cURLConnection, CURLOPT_RETURNTRANSFER, true); $apiResponse = curl_exec($cURLConnection); curl_close($cURLConnection); // $apiResponse - available data from the API request $jsonArrayResponse = json_decode($apiResponse, true); } catch (Exception $e) { Log::critical('Eroare din AC'); Log::critical($e->getMessage()); } } function sync_contacts_with_mailchimp($applicant,$json,$crm_user){ $mailchimp = new MailChimp($crm_user->mailchimp_api_key); $crm_tags = CrmQuestion::all(); $tags = []; foreach($crm_tags as $crm_tag){ if(isset($json[$crm_tag->question_key])){ if(isset($json[$crm_tag->question_key]['answers'][0]['value'])){ $tags[] = $json[$crm_tag->question_key]['answers'][0]['value']; }elseif(isset($json[$crm_tag->question_key]['answers'][0]['fields'][0]['value'])){ $tags[] = $json[$crm_tag->question_key]['answers'][0]['fields'][0]['value']; } } } $result = $mailchimp->post("lists/".$crm_user->mailchimp_listing_id."/members", [ 'email_address' => $applicant['email'], 'status' => 'subscribed', 'merge_fields' => ['FNAME'=>$applicant['first_name'], 'LNAME'=>$applicant['last_name'], 'PHONE' => $applicant['phone']], 'tags' => $tags ]); } function quiz_step_error($data, $session_id){ $subject = "Eroare quiz SessionID: " . $session_id; $email = env('ERROR_EMAIL_ADDRESS'); try{ Mail::to($email)->queue(New QuizStepErrorMail($subject, $data)); }catch(Exception $e){ $data = [ 'error' => $e->getMessage(), ]; Mail::to($email)->queue(New QuizErrorMail($subject, $data)); } } function get_lists_crm($crm_user){ // list_list $client = new \GuzzleHttp\Client(); $url = $crm_user->crm_host . "/admin/api.php?api_action=list_list&api_key=" . $crm_user->crm_api_key . "&api_output=json&ids=all"; try{ $response = $client->get($url,[ "headers" =>[ "Content-Type" => "application/x-www-form-urlencoded", ] ]); $response = (array) json_decode($response->getBody()); if($response['result_code'] == 1){ $filtred_response = Arr::except($response, ['result_code','result_message','result_output']); $list = []; foreach($filtred_response as $value){ $list[] = [ 'id' => $value->id, 'name' => $value->name, ]; } return $list; }else{ return null; } }catch(\Exception $e){ $e->getMessage(); } } function getForExtraPeopleNumber($json) { $json = json_decode($json, true); $number = 0; if(array_key_exists(91,$json)){ $number = $json[91]['answers'][0]['value']; } if(array_key_exists(92,$json)){ $number = $json[92]['answers'][0]['value']; } if(array_key_exists(93,$json)){ $number = $json[93]['answers'][0]['value']; } return $number; } function setStatusForLead($json, $qualified_for, $feedback){ $status = 'new'; // Companie din strainatate cu o cifra de peste 1 mil euro if(array_key_exists(5,$json) && $json[5]['answers'][0]['value'] == 'in_afara_romaniei' && array_key_exists(4, $json) && $json[4]['answers'][0]['value'] != 'sub_1_mil_euro'){ $status = 'de_sunat'; } // La cei care sunt calificati pentru Sala Palatului dar nu au dat niciun feedback if($qualified_for == 'sala_palatului'){ $status = 'call_clarificare'; } // Pentru cei care sunt calificati la Sala Palatului pentru ca sunt clienti TBF // de_verificat if($feedback != null){ $status = 'confirmat'; if($feedback == 'Îmi pare rău, nu pot să îmi asum'){ $status = 'confirmati_dar_nu_is_asuma_fb_2'; } } return $status; } function checkQualificationStatus($json) { $qualifiedFor = 'sala_palatului'; $email = $json[29]['answers'][0]['fields'][2]['value']; $blacklisted = [ 'cui' => ['10061498', '24230589', '22098768', '18643343'], 'emails' => ['ruben.marian@gmail.com', 'liviu.z@darch.ro', 'zarnoveanu@gmail.com', 'ingrid.z@darch.ro', 'bogdan.happyphone@gmail.com'], 'emails_containg' => ['utilben', 'upriserz', 'edukiwi', 'nusco', 'pinum', 'simigeriapetru', 'unitedcom.org'] ]; // if(array_key_exists(1,$json) && $json[1]['answers'][0]['value'] == 'nu' && (array_key_exists(2, $json) && $json[2]['answers'][0]['value'] != 'ceo')){ // $qualifiedFor = 'online'; // return $qualifiedFor; // } // if(array_key_exists(4,$json) && $json[4]['answers'][0]['value'] == 'sub_1_mil_euro'){ // $qualifiedFor = 'online'; // return $qualifiedFor; // }elseif(array_key_exists(5, $json) && $json[5]['answers'][0]['value'] == 'in_afara_romaniei'){ // $qualifiedFor = null; // return $qualifiedFor; // } if(in_array($email, $blacklisted['emails'])){ $qualifiedFor = 'online'; return $qualifiedFor; } foreach ($blacklisted['emails_containg'] as $value) { if(strpos($email, $value) !== false){ $qualifiedFor = 'online'; return $qualifiedFor; } } if( Str::contains($json[29]['answers'][0]['fields'][1]['value'], ['ro', 'RO', 'Ro', 'rO', 'ro ', 'RO ', 'Ro ', 'rO ']) ){ $replace = [ 'RO'=>'', 'ro'=>'', 'Ro'=>'', 'rO'=>'', 'RO '=>'', 'ro '=>'', 'Ro '=>'', 'rO '=>'' ]; $cui = strtr( $json[29]['answers'][0]['fields'][1]['value'], $replace ); if(in_array($cui, $blacklisted['cui'])){ $qualifiedFor = 'online'; return $qualifiedFor; } } return $qualifiedFor; } function getNrRegAndAddress($cui) { // remove the RO from cui, because this idiot api call won`t recognize it if( Str::contains($cui, ['ro', 'RO', 'Ro', 'rO', 'ro ', 'RO ', 'Ro ', 'rO ']) ){ $replace = [ 'RO'=>'', 'ro'=>'', 'Ro'=>'', 'rO'=>'', 'RO '=>'', 'ro '=>'', 'Ro '=>'', 'rO '=>'' ]; $cui = strtr( $cui, $replace ); } // get from https://termene.ro/documentatie-api some company informations $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://termene.ro/api/dateFirmaSumar.php?cui='.$cui, CURLOPT_RETURNTRANSFER => true, CURLOPT_USERPWD => config('app.termene_user').':'.config('app.termene_password'), CURLOPT_HTTPHEADER => array( "accept: */*", "content-type: application/json", ), )); $response = curl_exec($curl); curl_close($curl); // get an array of cUrl response $response = json_decode($response, true); if(isset($response['info_companie']) && $response['info_companie'] != false){ $infoCompany = $response['info_companie']; $adresa = $infoCompany['adresa_anaf']; if($adresa){ $replace = [ 'Ş'=>'S', 'Ț'=>'T', 'Ă'=>'A', 'Â'=>'A', ]; $adresa = strtr( $adresa, $replace ); } // Verificam daca firma este activa if($infoCompany['activa_fiscal'] == 'ACTIVA' || $infoCompany['activa_fiscal'] == 'REACTIVATA'){ return [ 'status' => 'success', 'nr_reg' => $infoCompany['j'] ?? null, 'nume' => $infoCompany['nume'], 'address' => $adresa ?? null, 'cui' => $cui ]; }else{ Log::critical("-----------------------------"); Log::critical("-----------------------------"); Log::critical("Aceasta companie este radiata"); Log::critical($infoCompany); Log::critical("-----------------------------"); Log::critical("-----------------------------"); } } Log::critical("-----------------------------"); Log::critical("-----------------------------"); Log::critical($response); Log::critical("-----------------------------"); Log::critical("-----------------------------"); return [ 'status' => 'error', 'message' => 'CUI Invalid', 'cui' => $cui ]; }
Back