File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/AnnouncementController.php
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Announcement;
use App\Library\UserLib;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File;
use DB;
class AnnouncementController extends Controller
{
protected $userLib;
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
### All Announcement
public function allAnnouncement()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$AllAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->orderBy('tbl_announcement.id', 'desc')
->get();
$PublishedAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->where('tbl_announcement.Status', '=', '1')
->orderBy('tbl_announcement.id', 'desc')
->get();
$DraftAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->where('tbl_announcement.Status', '=', '0')
->orderBy('tbl_announcement.id', 'desc')
->get();
$TrashAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '1')
->orderBy('tbl_announcement.id', 'desc')
->get();
return view('admin.all-announcement', ['AllAnnouncement' => $AllAnnouncement, 'PublishedAnnouncement' => $PublishedAnnouncement, 'DraftAnnouncement' => $DraftAnnouncement, 'TrashAnnouncement' => $TrashAnnouncement]);
}
### Published Announcement
public function publishedAnnouncement()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$AllAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->orderBy('tbl_announcement.id', 'desc')
->get();
$PublishedAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->where('tbl_announcement.Status', '=', '1')
->orderBy('tbl_announcement.id', 'desc')
->get();
$DraftAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->where('tbl_announcement.Status', '=', '0')
->orderBy('tbl_announcement.id', 'desc')
->get();
$TrashAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '1')
->orderBy('tbl_announcement.id', 'desc')
->get();
return view('admin.published-announcement', ['AllAnnouncement' => $AllAnnouncement, 'PublishedAnnouncement' => $PublishedAnnouncement, 'DraftAnnouncement' => $DraftAnnouncement, 'TrashAnnouncement' => $TrashAnnouncement]);
}
### Draft Announcement
public function draftAnnouncement()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$AllAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->orderBy('tbl_announcement.id', 'desc')
->get();
$PublishedAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->where('tbl_announcement.Status', '=', '1')
->orderBy('tbl_announcement.id', 'desc')
->get();
$DraftAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->where('tbl_announcement.Status', '=', '0')
->orderBy('tbl_announcement.id', 'desc')
->get();
$TrashAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '1')
->orderBy('tbl_announcement.id', 'desc')
->get();
return view('admin.draft-announcement', ['AllAnnouncement' => $AllAnnouncement, 'PublishedAnnouncement' => $PublishedAnnouncement, 'DraftAnnouncement' => $DraftAnnouncement, 'TrashAnnouncement' => $TrashAnnouncement]);
}
### Trash Announcement
public function trashAnnouncement()
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$AllAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->orderBy('tbl_announcement.id', 'desc')
->get();
$PublishedAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->where('tbl_announcement.Status', '=', '1')
->orderBy('tbl_announcement.id', 'desc')
->get();
$DraftAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '0')
->where('tbl_announcement.Status', '=', '0')
->orderBy('tbl_announcement.id', 'desc')
->get();
$TrashAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.IsDeleted', '=', '1')
->orderBy('tbl_announcement.id', 'desc')
->get();
return view('admin.trash-announcement', ['AllAnnouncement' => $AllAnnouncement, 'PublishedAnnouncement' => $PublishedAnnouncement, 'DraftAnnouncement' => $DraftAnnouncement, 'TrashAnnouncement' => $TrashAnnouncement]);
}
### View Announcement
public function viewAnnouncement($AnnouncementId)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$ViewAnnouncement = Announcement::select('tbl_announcement.*', 'tbl_admin.FirstName as Updated_by', 'tbl_admin.FirstName as Created_by')
->leftJoin('tbl_admin', 'tbl_announcement.Updated_by', '=', 'tbl_admin.UserId')
->where('tbl_announcement.AnnouncementId', $AnnouncementId)
->get()
->first();
return view('admin.view-announcement', ['Announcement' => $ViewAnnouncement]);
}
### Store New Record
public function storeAnnouncement(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$input = $request->all();
$data = $input;
##Upload AnnouncementFile
// $path = '';
// $addAnnouncementFile = $request->file('addAnnouncementFile');
// $imageName = $this->userLib->useridGenrator();
// $path = '';
// $FileOriginalName ='';
// if ($request->hasFile('addAnnouncementFile')) {
// $file = $request->file('addAnnouncementFile');
// $FileOriginalName = $file->getClientOriginalName();
// $extension = $file->getClientOriginalExtension();
// $newFileName = $imageName . '-' . time() . '.' . $extension;
// // Storage::putFileAs(
// // 'public/announcement',
// // $file,
// // $newFileName
// // );
// // $path = Storage::url('announcement/' . $newFileName);
// $destinationPath = 'storage/announcement';
// $isUploaded = $file->move($destinationPath,$newFileName);
// if($isUploaded)
// {
// $path = 'storage/announcement/' . $newFileName;
// }
// }
// if ($addAnnouncementFile) {
// $data['AnnouncementFile'] = $path;
// $data['FileOriginalName'] = $FileOriginalName;
// }
$imageName = $this->userLib->useridGenrator();
if ($request->hasFile('addAnnouncementFile'))
{
$path = '';
$file = $request->file('addAnnouncementFile');
$FileOriginalName = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$newFileName = $imageName . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/announcement',
$file,
$newFileName
);
$destinationPath = 'announcement';
$isUploaded = $file->move($destinationPath,$newFileName);
$uploadedFileURL='';
if($isUploaded)
{
$path = 'announcement/' . $newFileName;
$ThumbnailUrl = $path;
//File Upload Service
$sourceFileURL = env('APP_URL').'/'.$path;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://172.105.42.62/s3-file-server/api-upload.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file_url' => $sourceFileURL),
CURLOPT_HTTPHEADER => array(
'Cookie: private_content_version=3f7abce738dd8b52d0dcb8653bfe8e93; mage-messages=%5B%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%5D'
),
));
$response = curl_exec($curl);
curl_close($curl);
$uploadedFile = json_decode($response,true);
$uploadedFileURL = isset($uploadedFile['url']) ? $uploadedFile['url'] : '';
}
$data['AnnouncementFile'] = $uploadedFileURL;
$data['FileOriginalName'] = $FileOriginalName;
}
// Start Date
$SDate = '';
if ($input['addStartDate']) {
$SDate = str_replace('/', '-', $input['addStartDate']);
}
$StartDate = date('d-m-Y', strtotime($SDate));
// End Date
$EDate = '';
if ($input['addEndDate']) {
$EDate = str_replace('/', '-', $input['addEndDate']);
}
$EndDate = date('d-m-Y', strtotime($EDate));
$data['AnnouncementNo'] = "ANC-" . time() . '-' . rand();
$data['StartDate'] = $StartDate;
$data['EndDate'] = $EndDate;
$g_AnnouncementId = $this->userLib->useridGenrator();
$data['AnnouncementId'] = $g_AnnouncementId;
$data['IsDeleted'] = 0;
$data['Created_by'] = session('UserId');
$data['Created_at'] = date('Y-m-d H:i:s', time());
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$data['DeviceName'] = 'Web';
unset($data['_token']);
unset($data['addAnnouncementFile']);
unset($data['addStartDate']);
unset($data['addEndDate']);
unset($data['addStartTime']);
unset($data['addEndTime']);
$insert_announcement = Announcement::insert($data);
$AnnouncementId = $g_AnnouncementId;
$AnnouncementTitle = $input['AnnouncementTitle'];
$AnnouncementNo = "ANC-" . time() . '-' . rand();
$StartDate_sf = $StartDate;
$EndDate_sf = $EndDate;
if ($input['StartTime']) {
$StartTime = $input['StartTime'];
}
else{
$StartTime = '';
}
if ($input['EndTime']) {
$EndTime = $input['EndTime'];
}
else{
$EndTime = '';
}
$AnnouncementMessage = $input['AnnouncementMessage'];
$IsDeleted = 0;
$Status = 1;
DB::connection('pgsql')->insert("insert into salesforce.Announcement__c (Announcement_Id__c,Announcement_Title__c,Announcement_No__c,Start_Date__c,End_Date__c,Start_Time__c,End_Time__c,Announcement_Message__c,IsDeleted,Status__c) values ('$AnnouncementId','$AnnouncementTitle','$AnnouncementNo','$StartDate_sf','$EndDate_sf','$StartTime','$EndTime','$AnnouncementMessage','$IsDeleted','$Status')");
if ($insert_announcement) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Change Status
public function statusUpdateAnnouncement($AnnouncementId)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$data = Announcement::select('tbl_announcement.*')
->where('AnnouncementId', $AnnouncementId)
->get()
->first();
$get_status = $data['Status'];
if ($get_status == '1') {
$value['Status'] = '0';
} else {
$value['Status'] = '1';
}
$value['Updated_by'] = session('UserId');
$value['Updated_at'] = date('Y-m-d H:i:s', time());
Announcement::where('AnnouncementId', $AnnouncementId)->update($value);
return response()->json('status_update');
}
#### Delete Temporary
public function deleteAnnouncement($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['Updated_at'] = $CreatedDate;
$data['Updated_by'] = session('UserId');
$data['IsDeleted'] = '1';
$data['Status'] = '0';
$announcement_delete = Announcement::where('AnnouncementId', $id)->update($data);
DB::connection('pgsql')->update("update salesforce.Announcement__c set IsDeleted='1',Status__c='0' where Announcement_Id__c = '$id'");
if ($announcement_delete) {
echo '1';
} else {
echo '0';
}
}
#### Delete Selected Announcement
public function deleteSelectedAnnouncement(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$id = $request->input('SelectedAnnouncement');
if ($id) {
foreach ($id as $announcement) {
$checkData = Announcement::select()
->find($announcement);
if ($checkData->IsDeleted == '0') {
$CreatedDate = date(
'Y-m-d H:i:s',
time()
);
$data = array();
$data['Updated_at'] = $CreatedDate;
$data['IsDeleted'] = '1';
$data['Status'] = '0';
$selected_announcement = Announcement::where('id', $announcement)->update($data);
if ($selected_announcement) {
echo '1';
} else {
echo '0';
}
} else {
$selected_announcement = Announcement::find($announcement);
$selected_announcement->delete();
}
}
}
return redirect()->back()->with('status_success');
}
#### Restore Announcement
public function restoreAnnouncement($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$CreatedDate = date('Y-m-d H:i:s', time());
$data = array();
$data['Updated_at'] = $CreatedDate;
$data['Updated_by'] = session('UserId');
$data['IsDeleted'] = '0';
$announcement_restore = Announcement::where('AnnouncementId', $id)->update($data);
DB::connection('pgsql')->update("update salesforce.Announcement__c set IsDeleted='0',Status__c='1' where Announcement_Id__c = '$id'");
if ($announcement_restore) {
return response()->json('status_success');
} else {
return response()->json('status_failed');
}
}
#### Delete Permanent
public function destroyAnnouncement($id)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$destroyData = Announcement::where('AnnouncementId', $id);
$destroyData->delete();
}
### Edit Records
public function editAnnouncement($AnnouncementId)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$Announcement = Announcement::select('tbl_announcement.*')
->where('AnnouncementId', '=', $AnnouncementId)
->get()->first();
return response()->json([
'status' => 200,
'Announcement' => $Announcement,
]);
}
### Update Records
public function updateAnnouncement(Request $request)
{
if (empty(session('UserId'))) {
return redirect('/admin/logout');
}
$input = $request->all();
$data = $input;
$AnnouncementId = $input['AnnouncementId'];
##Annoucement UpdateFile
// $path = '';
// $editAnnouncementFile = $request->file('editAnnouncementFile');
// $imageName = $this->userLib->useridGenrator();
// $path = '';
// if ($request->hasFile('editAnnouncementFile')) {
// $file = $request->file('editAnnouncementFile');
// $FileOriginalName = $file->getClientOriginalName();
// $extension = $file->getClientOriginalExtension();
// $newFileName = $imageName . '-' . time() . '.' . $extension;
// Storage::putFileAs(
// 'public/announcement',
// $file,
// $newFileName
// );
// $path = Storage::url('announcement/' . $newFileName);
// $destinationPath = 'storage/announcement';
// $isUploaded = $file->move($destinationPath,$newFileName);
// if($isUploaded)
// {
// $path = 'storage/announcement/' . $newFileName;
// }
// }
// if ($editAnnouncementFile) {
// $data['FileOriginalName'] = $FileOriginalName;
// $data['AnnouncementFile'] = $path;
// }
$imageName = $this->userLib->useridGenrator();
if ($request->hasFile('editAnnouncementFile'))
{
$path = '';
$file = $request->file('editAnnouncementFile');
$FileOriginalName = $file->getClientOriginalName();
$extension = $file->getClientOriginalExtension();
$newFileName = $imageName . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/announcement',
$file,
$newFileName
);
$destinationPath = 'announcement';
$isUploaded = $file->move($destinationPath,$newFileName);
$uploadedFileURL='';
if($isUploaded)
{
$path = 'announcement/' . $newFileName;
$ThumbnailUrl = $path;
//File Upload Service
$sourceFileURL = env('APP_URL').'/'.$path;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://172.105.42.62/s3-file-server/api-upload.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file_url' => $sourceFileURL),
CURLOPT_HTTPHEADER => array(
'Cookie: private_content_version=3f7abce738dd8b52d0dcb8653bfe8e93; mage-messages=%5B%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%5D'
),
));
$response = curl_exec($curl);
curl_close($curl);
$uploadedFile = json_decode($response,true);
$uploadedFileURL = isset($uploadedFile['url']) ? $uploadedFile['url'] : '';
}
$data['AnnouncementFile'] = $uploadedFileURL;
$data['FileOriginalName'] = $FileOriginalName;
}
// Start Date
$SDate = '';
if ($input['editStartDate']) {
$SDate = str_replace('/', '-', $input['editStartDate']);
}
$StartDate = date('d-m-Y', strtotime($SDate));
// End Date
$EDate = '';
if ($input['editEndDate']) {
$EDate = str_replace('/', '-', $input['editEndDate']);
}
$EndDate = date('d-m-Y', strtotime($EDate));
$data['StartDate'] = $StartDate;
$data['EndDate'] = $EndDate;
$data['Updated_by'] = session('UserId');
$data['Updated_at'] = date('Y-m-d H:i:s', time());
$data['DeviceName'] = 'Web';
unset($data['_token']);
unset($data['editAnnouncementFile']);
unset($data['editStartDate']);
unset($data['editEndDate']);
unset($data['editStartTime']);
unset($data['editEndTime']);
unset($data['AnnouncementId']);
$update_announcement = Announcement::where('AnnouncementId', $AnnouncementId)->update($data);
$Announcement_Id = $AnnouncementId;
$AnnouncementTitle = $input['AnnouncementTitle'];
$StartDate_sf = $input['editStartDate'];
$EndDate_sf = $input['editEndDate'];
$StartTime = $input['StartTime'];
$EndTime = $input['EndTime'];
$AnnouncementMessage = $input['AnnouncementMessage'];
DB::connection('pgsql')->update("update salesforce.Announcement__c set Announcement_Title__c='$AnnouncementTitle',Start_Date__c='$StartDate_sf',End_Date__c='$EndDate_sf',Start_Time__c='$StartTime',End_Time__c='$EndTime',Announcement_Message__c='$AnnouncementMessage' where Announcement_Id__c='$Announcement_Id'");
if ($update_announcement) {
return response()->json('status_success');
} else {
return response()->json('failed');
}
}
}