diff --git a/app/Controllers/Notifications.php b/app/Controllers/Notifications.php index b113ebba..2fb1c78a 100755 --- a/app/Controllers/Notifications.php +++ b/app/Controllers/Notifications.php @@ -625,124 +625,247 @@ class Notifications extends BaseController } echo ($inx+1).") #".$customerId." - Person Name : ".$fullName." ----- ( Expiry on ". date('d-m-Y', strtotime($expirydate)).")
"; if ($status === 'Approved') { - # EXPIRY NOTIFY TEMPLATE EMAIL - $emailTemplateName = $NotificationModel->getTempName('EXPIRY NOTIFY TEMPLATE EMAIL'); - if(empty($row['email'])){ - echo ($inx+1).") Email Not Available
"; - continue; - } + # EXPIRY NOTIFY TEMPLATE EMAIL + $emailTemplateName = $NotificationModel->getTempName('EXPIRY NOTIFY TEMPLATE EMAIL'); + if(empty($row['email'])){ + echo ($inx+1).") Email Not Available
"; + continue; + } - $existingcheck = $NotificationModel->checkEmailAlreadyExisting($row['email'],$customerId); - $check_existing = 0; - $check_date = ""; - $check_diff_days = ""; + $existingcheck = $NotificationModel->checkEmailAlreadyExisting($row['email'],$customerId); + $check_existing = 0; + $check_date = ""; + $check_diff_days = ""; - if(!empty($existingcheck)){ + if(!empty($existingcheck)){ - foreach ($existingcheck as $i => $r) { - if($r['receiving_status'] == 1){ - $check_existing = 1; - $check_date = $r['sent_time']; - $sentTimestamp = strtotime($r['sent_time']); - $provedTimestamp = strtotime($providedDate); + foreach ($existingcheck as $i => $r) { + if($r['receiving_status'] == 1){ + $check_existing = 1; + $check_date = $r['sent_time']; + $sentTimestamp = strtotime($r['sent_time']); + $provedTimestamp = strtotime($providedDate); - - $diffInSeconds = abs($provedTimestamp - $sentTimestamp); - $diffInDays = $diffInSeconds / (60 * 60 * 24); + + $diffInSeconds = abs($provedTimestamp - $sentTimestamp); + $diffInDays = $diffInSeconds / (60 * 60 * 24); - $check_diff_days = $diffInDays; + $check_diff_days = $diffInDays; + } } } - } - if($check_existing){ - echo ($inx+1).") Email already send on - ".date('d-m-Y h:i A', strtotime($check_date))."
"; - continue; - } - - if (count($emailTemplateName) && !empty($emailTemplateName)) { - $campaign_id = 1; - # Insertion on History Email Means Campaign ID 1 Hardcoded - $history_parents_data = ['campaign_id' => $campaign_id,'status' => 0]; - $history_parent_id = $NotificationModel->save_notification_history_parents($history_parents_data); - - # Step 4: Prepare email content based on the template - $emailContent = $emailTemplateName[0]['message']; - if (isset($fullName)) { - $emailContent = str_replace("{USER_NAME}", $fullName, $emailContent); + if($check_existing){ + echo ($inx+1).") Email already send on - ".date('d-m-Y h:i A', strtotime($check_date))."
"; + continue; } - if (isset($schemename)) { - $emailContent = str_replace("{SCHEME_NAME}", $schemename, $emailContent); - } - if (isset($expirydate)) { - $expiryon = $expirydate ? date('d-m-Y', strtotime($expirydate)) : ''; - $emailContent = str_replace("{EXPIRY_DATE}", $expiryon, $emailContent); - $replaceContent = (int)$countdays == 0 ? 'expires today, ' : 'expiring on '; - $emailContent = str_replace("expiring on", $replaceContent, $emailContent); - } - if (isset($membership_id)) { - $link = base_url() . 'subscription_renewal/' . $membership_id; - $emailContent = str_replace("{RENEWAL_LINK}", ''.$link.'', $emailContent); - } - - - $emailData = [ - 'template_name' => 'EXPIRY NOTIFY TEMPLATE EMAIL', - 'recipient_email' => $row['email'], - 'subject' => 'Your Subscription Expiry Notification', - 'description' => $emailContent, - ]; - + if (count($emailTemplateName) && !empty($emailTemplateName)) { + $campaign_id = 1; + # Insertion on History Email Means Campaign ID 1 Hardcoded + $history_parents_data = ['campaign_id' => $campaign_id,'status' => 0]; + $history_parent_id = $NotificationModel->save_notification_history_parents($history_parents_data); - $history_child_data = [ 'fkid' => $history_parent_id, - 'customer_id' => $customerId, - 'receiving_entity' => $row['email'], - 'receiving_status' => 0, - 'message' => $emailContent]; - # Step 5: Insertion on History Child - $history_child_id = $NotificationModel->save_notification_history_child($history_child_data); + # Step 4: Prepare email content based on the template + $emailContent = $emailTemplateName[0]['message']; + if (isset($fullName)) { + $emailContent = str_replace("{USER_NAME}", $fullName, $emailContent); + } + if (isset($schemename)) { + $emailContent = str_replace("{SCHEME_NAME}", $schemename, $emailContent); + } + if (isset($expirydate)) { + $expiryon = $expirydate ? date('d-m-Y', strtotime($expirydate)) : ''; + $emailContent = str_replace("{EXPIRY_DATE}", $expiryon, $emailContent); + $replaceContent = (int)$countdays == 0 ? 'expires today, ' : 'expiring on '; + $emailContent = str_replace("expiring on", $replaceContent, $emailContent); + } + if (isset($membership_id)) { + $link = base_url() . 'subscription_renewal/' . $membership_id; + $emailContent = str_replace("{RENEWAL_LINK}", ''.$link.'', $emailContent); + } + - # Step 6:Send email using NotificationHelper - $emailResult = $notification->sendEmail($emailData); - $this->logger->error("EXPIRAY NOTIFY TEMPLATE EMAIL Email CID = ".$customerId." ".json_encode($emailResult)); - - if (isset($emailResult['success'])) { - $history_msg = 'Email sent successfully'; - $history_child_updatedata = ['receiving_status'=>1,'result'=>$history_msg]; - $history_child_where = ['fkid' => $history_parent_id,'id' => (int)$history_child_id]; - $history_child_statement = $NotificationModel->update_notification_history_child($history_child_updatedata,$history_child_where); - $this->logger->error($history_child_statement); + $emailData = [ + 'template_name' => 'EXPIRY NOTIFY TEMPLATE EMAIL', + 'recipient_email' => $row['email'], + 'subject' => 'Your Subscription Expiry Notification', + 'description' => $emailContent, + ]; + - $history_parent_statement = $NotificationModel->update_notification_history_parent_status(['status' => 1],$history_parent_id,$campaign_id); - $this->logger->error($history_parent_statement); - echo ($inx+1).") ".$history_msg."
"; + $history_child_data = [ 'fkid' => $history_parent_id, + 'customer_id' => $customerId, + 'receiving_entity' => $row['email'], + 'receiving_status' => 0, + 'message' => $emailContent]; + # Step 5: Insertion on History Child + $history_child_id = $NotificationModel->save_notification_history_child($history_child_data); + + # Step 6:Send email using NotificationHelper + $emailResult = $notification->sendEmail($emailData); + + $this->logger->error("EXPIRAY NOTIFY TEMPLATE EMAIL Email CID = ".$customerId." ".json_encode($emailResult)); + + if (isset($emailResult['success'])) { + $history_msg = 'Email sent successfully'; + $history_child_updatedata = ['receiving_status'=>1,'result'=>$history_msg]; + $history_child_where = ['fkid' => $history_parent_id,'id' => (int)$history_child_id]; + $history_child_statement = $NotificationModel->update_notification_history_child($history_child_updatedata,$history_child_where); + $this->logger->error($history_child_statement); + + $history_parent_statement = $NotificationModel->update_notification_history_parent_status(['status' => 1],$history_parent_id,$campaign_id); + $this->logger->error($history_parent_statement); + echo ($inx+1).") ".$history_msg."
"; + } else { + $history_msg = (strtolower(gettype($emailResult)) == "string" ? $emailResult : json_encode($emailResult)) ; + $history_child_updatedata = ['receiving_status'=>0,'result'=>$history_msg]; + $history_child_where = ['fkid' => $history_parent_id,'id' => (int)$history_child_id]; + $history_child_statement = $NotificationModel->update_notification_history_child($history_child_updatedata,$history_child_where); + $this->logger->error($history_child_statement); + + $history_parent_statement = $NotificationModel->update_notification_history_parent_status(['status' => 1],$history_parent_id,$campaign_id); + $this->logger->error($history_parent_statement); + echo ($inx+1).") Failed to send email
"; + } } else { - $history_msg = (strtolower(gettype($emailResult)) == "string" ? $emailResult : json_encode($emailResult)) ; - $history_child_updatedata = ['receiving_status'=>0,'result'=>$history_msg]; - $history_child_where = ['fkid' => $history_parent_id,'id' => (int)$history_child_id]; - $history_child_statement = $NotificationModel->update_notification_history_child($history_child_updatedata,$history_child_where); - $this->logger->error($history_child_statement); - - $history_parent_statement = $NotificationModel->update_notification_history_parent_status(['status' => 1],$history_parent_id,$campaign_id); - $this->logger->error($history_parent_statement); - echo ($inx+1).") Failed to send email
"; + $history_msg = 'There is no email template found by the name of EXPIRY NOTIFY TEMPLATE EMAIL'; + // $receiving_status = 0 ; + $this->logger->error($history_msg); + echo $history_msg."
"; + continue; } - } else { - $history_msg = 'There is no email template found by the name of EXPIRY NOTIFY TEMPLATE EMAIL'; - // $receiving_status = 0 ; - $this->logger->error($history_msg); - echo $history_msg."
"; - continue; - } - } else{ echo ($inx+1).") Staus = ".$status."
"; $this->logger->error("status is Draft"); } # EXPIRY NOTIFY TEMPLATE EMAIL Closed + if ($status === 'Approved') { + $existingcheck2 = $NotificationModel->checkEmailAlreadyExisting($userMobileNumber,$customerId); + $check_existing2 = 0; + $check_date2 = ""; + $check_diff_days2 = ""; + if(!empty($existingcheck2)){ + + foreach ($existingcheck2 as $i2 => $r2) { + if($r2['receiving_status'] == 1){ + $check_existing2 = 1; + $check_date2 = $r2['sent_time']; + $sentTimestamp2 = strtotime($r2['sent_time']); + $provedTimestamp2 = strtotime($providedDate); + + + $diffInSeconds2 = abs($provedTimestamp2 - $sentTimestamp2); + $diffInDays2 = $diffInSeconds2 / (60 * 60 * 24); + + $check_diff_days2 = $diffInDays2; + } + } + } + if($check_existing2){ + echo ($inx+1).") whatsapp already send ".$check_date2."
"; + continue; + } + # EXPIRY NOTIFY TEMPLATE WHATSAPP + $whatsappTemplateName = $NotificationModel->getTempName('EXPIRY NOTIFY TEMPLATE WHATSAPP'); + // print_r($whatsappTemplateName);die; + if ((count($whatsappTemplateName) > 0) && !empty($whatsappTemplateName)) { + $campaign_id = 2; // hardcoded because static Template. + $history_parents_data = ['campaign_id' => 2,'status' => 0]; + $history_parent_id = $NotificationModel->save_notification_history_parents($history_parents_data); + if (empty($userMobileNumber)) { + $history_msg = 'There is no subscriber mobile number'; + $history_child_updatedata = ['receiving_status'=>0,'result'=>$history_msg]; + $history_child_where = ['fkid' => $history_parent_id,'id' => (int)$history_child_id]; + $history_child_statement = $NotificationModel->update_notification_history_child($history_child_updatedata,$history_child_where); + $this->logger->error($history_child_statement); + + $history_parent_statement = $NotificationModel->update_notification_history_parent_status(['status' => 1],$history_parent_id,$campaign_id); + $this->logger->error($history_parent_statement); + $this->logger->error($history_msg); + echo ($inx+1).") ".$history_msg."
"; + continue; + } + # Insertion on History Whatsapp Means Campaign ID 2 Hardcoded + $history_parents_data = ['campaign_id' => 2,'status' => 0]; + $history_parent_id = $NotificationModel->save_notification_history_parents($history_parents_data); + + # Step 7: Prepare whatsapp content based on the template + $whatsappContent = $whatsappTemplateName[0]['message']; + if (isset($fullName)) { + $whatsappContent = str_replace("{USER_NAME}", $fullName, $whatsappContent); + } + if (isset($schemename)) { + $whatsappContent = str_replace("{SCHEME_NAME}", $schemename, $whatsappContent); + } + if (isset($expirydate)) { + $expiryon = $expirydate ? date('d-m-Y', strtotime($expirydate)) : ''; + $whatsappContent = str_replace("{EXPIRY_DATE}", $expiryon, $whatsappContent); + } + if (isset($customerId)) { + $whatsappContent = str_replace("{RENEWAL_LINK}", base_url() . 'subscription_renewal/' . $customerId, $whatsappContent); + } + # Step 8: Insertion on History Child for whatsapp + $history_child_data = [ 'fkid' => $history_parent_id, + 'customer_id' => $customerId, + 'receiving_entity' => $userMobileNumber, + 'receiving_status' => 0, + 'message' => strip_tags(ltrim($whatsappContent))]; + $history_child_id = $NotificationModel->save_notification_history_child($history_child_data); + + + # Step 8: Send Whatsapp using NotificationHelper + $params = (object) Null; + $url = SEND_WAAI_URL; + $params->number = (int)'91' . $userMobileNumber; + $params->type = "text"; + $params->message = strip_tags(ltrim($whatsappContent)); + $params->instance_id = $_ENV['WAAI_INSTANCE']; + $params->access_token = $_ENV['WAAI_TOKEN']; + $this->logger->error("EXPIRAY NOTIFY TEMPLATE WHATSAPP Request = " . json_encode($params)); + $this->logger->error("EXPIRAY NOTIFY TEMPLATE WHATSAPP Request type b4 = " . gettype($params)); + $whatsapp_result = $notification->sendWhatsAppMessage($url, "POST", $params); + $receiving_status = $whatsapp_result['receiving_status']; + $history_msg = strtolower(gettype($whatsapp_result)) == "string" ? $whatsapp_result : json_encode($whatsapp_result['reponse']); + $history_child_updatedata = ['receiving_status'=>$receiving_status,'result'=>$history_msg]; + $history_child_where = ['fkid' => $history_parent_id,'id' => (int)$history_child_id]; + $history_child_statement = $NotificationModel->update_notification_history_child($history_child_updatedata,$history_child_where); + $this->logger->error($history_child_statement); + + $history_parent_statement = $NotificationModel->update_notification_history_parent_status(['status' => 1],$history_parent_id,$campaign_id); + $this->logger->error($history_parent_statement); + $this->logger->error("EXPIRAY NOTIFY TEMPLATE WHATSAPP Reponse = " . $history_msg); + + if(strtolower(gettype($whatsapp_result)) == "string"){ + echo ($inx+1).") ".$whatsapp_result."
"; + } + else{ + $result = json_encode($whatsapp_result['reponse']); + $decodedResult = json_decode($result, true); + if ($decodedResult && isset($decodedResult['message']['key']['remoteJid'])) { + $remoteJid = $decodedResult['message']['key']['remoteJid']; + $this->logger->error("EXPIRAY NOTIFY TEMPLATE WHATSAPP Remote Jid = " . $remoteJid); + echo ($inx+1).") Whatsapp sent successfully
"; + } else { + // echo "Failed to extract remoteJid"; + $this->logger->error("EXPIRAY NOTIFY TEMPLATE WHATSAPP Failed to extract remoteJid "); + echo ($inx+1).") Failed to send Whatsapp
"; + } + } + } else { + // $receiving_status = 0; + $history_msg = 'There is no Whatsapp template found by the name of EXPIRAY NOTIFY TEMPLATE WHATSAPP '; + $this->logger->error($history_msg); + echo "There is no Whatsapp template
"; + continue; + } + # EXPIRY NOTIFY TEMPLATE WHATSAPP Closed + } + else{ + $this->logger->error("status is draft"); + } # Loop Closed echo "Process Completed
"; }