Code Program
[Link] $all_data_suratmasuk = $this-
>Suratmasukmodel->findAll();
<?php
$years = $this-
namespace App\Controllers; >Suratmasukmodel->getAllYears();
use CodeIgniter\Controller; $selectedYear = $this->request-
use App\Models\Suratmasukmodel; >getGet('tahun')?? '';
$isAdmin = true;
class Suratmasuk extends Controller return view('view_suratmasuk',
{ ['all_data_suratmasuk' =>
$suratmasuk, 'years' => $years,
protected $Suratmasukmodel; 'selectedYear' => $selectedYear,
'isAdmin' => $isAdmin]);
public function initController(\ }
CodeIgniter\HTTP\RequestInterface public function index1() {
$request, \CodeIgniter\HTTP\
ResponseInterface $response, \Psr\ $builder = $this->db-
Log\LoggerInterface $logger) { >table('surat_masuk');
parent::initController($request, $builder-
$response, $logger); >select('surat_masuk.*, instansi.*');
$this->db = db_connect(); $builder->join('instansi',
'surat_masuk.instansi_id =
$this->Suratmasukmodel = new instansi.id_instansi');
Suratmasukmodel();
$suratmasuk = $builder->get()-
} >getResult();
$all_data_suratmasuk = $this-
public function index() { >Suratmasukmodel->findAll();
$builder = $this->db- $years = $this-
>table('surat_masuk'); >Suratmasukmodel->getAllYears();
$builder- $selectedYear = $this->request-
>select('surat_masuk.*, instansi.*'); >getGet('tahun')?? '';
$builder->join('instansi', $isAdmin = true;
'surat_masuk.instansi_id = return view('view_suratmasuk1',
instansi.id_instansi'); ['all_data_suratmasuk' =>
$suratmasuk = $builder->get()- $suratmasuk, 'years' => $years,
>getResult();
'selectedYear' => $selectedYear, $instansi = $this-
'isAdmin' => $isAdmin]); >Suratmasukmodel->get_instansi();
} return view('add_suratmasuk',
['level' => $level, 'instansi' =>
$instansi]);
public function filter() { }
$tahun = $this->request- public function
>getPost('tahun'); proses_add_suratmasuk() {
$isAdmin = $this->session- $postData = $this->request-
>get('role') === 'admin'; >getPost();
if ($isAdmin) { if ($file = $this->request-
$data['data_suratmasuk'] = >getFile('file_surat')) {
$this->Suratmasukmodel- $newName = $file-
>getAllData(); >getRandomName();
$view = 'view_suratmasuk'; $file->move(WRITEPATH.
} else { 'uploads', $newName);
if (!empty($tahun)) { $postData['file_surat'] =
$newName;
$data['data_suratmasuk'] =
$this->Suratmasukmodel- }
>getDataFilteredByTahun($tahun); try {
} else { $this->Suratmasukmodel-
$data['data_suratmasuk'] = >insert($postData);
$this->Suratmasukmodel- session()-
>getAllData(); >setFlashdata('success', 'Data
} berhasil ditambahkan!');
$view = return redirect()-
'user/view_suratmasuk2'; >to(site_url('view_suratmasuk'));
} } catch (\Exception $e) {
return view($view, $data); session()-
>setFlashdata('error', 'Gagal
} menambahkan data: '. $e-
>getMessage());
public function add_suratmasuk() return redirect()-
{ >to(site_url('view_suratmasuk'));
$level = session()->get('level'); }
}
$file = $this->request-
>getFile('file_surat');
public function
edit_suratmasuk($id_sm) { if ($file && $file->isValid()
&& !$file->hasMoved()) {
$suratmasuk = $this-
>Suratmasukmodel->find($id_sm); $newName = $file-
>getRandomName();
$instansi = $this-
>Suratmasukmodel->get_instansi(); $file->move(WRITEPATH
. 'uploads', $newName);
return view('edit_suratmasuk',
['suratmasuk' => $suratmasuk, $data['file_surat'] =
'instansi' => $instansi]); $newName;
} }
$this->Suratmasukmodel-
>update($id_sm, $data);
public function
proses_edit_suratmasuk() { session()-
>setFlashdata('success', 'Data Surat
try { Masuk berhasil diupdate!');
$postData = $this->request- return redirect()-
>getPost(); >to(site_url('view_suratmasuk'));
$id_sm = $postData['id_sm']; } catch (\Exception $e) {
$suratmasuk = $this- session()-
>Suratmasukmodel->find($id_sm); >setFlashdata('error', 'Gagal
$data = [ mengupdate data: '. $e-
>getMessage());
'tanggal_diterima' =>
$postData['tanggal_diterima'], return redirect()-
>to(site_url('view_suratmasuk'));
'instansi' =>
$postData['instansi_id'], }
'nomor_surat' => }
$postData['nomor_surat'],
'tanggal_surat' => public function
$postData['tanggal_surat'], delete_suratmasuk($id_sm) {
'sifat' => $postData['sifat'], $suratmasuk = $this-
'perihal' => >Suratmasukmodel->find($id_sm);
$postData['perihal'], if ($suratmasuk) {
'keterangan' => $file_path = WRITEPATH.
$postData['keterangan'], 'uploads/'. $suratmasuk->file_surat;
];
if (file_exists($file_path)) { return $this->response-
>setStatusCode(404)->setBody("File
unlink($file_path); not found");
} }
$this->Suratmasukmodel- }
>delete($id_sm);
session()-
>setFlashdata('success', 'Data Surat public function printsm() {
Masuk berhasil dihapus!');
$tahun = $this->request-
return redirect()- >getGet('tahun');
>to(site_url('view_suratmasuk'));
$bulan = $this->request-
} else { >getGet('bulan');
session()- $tanggal_awal = $this->request-
>setFlashdata('error', 'Data Surat >getGet('tanggal_awal');
Masuk tidak ditemukan!');
$tanggal_akhir = $this-
return redirect()- >request->getGet('tanggal_akhir');
>to(site_url('view_suratmasuk'));
$suratmasuk_model = new
} SuratmasukModel();
} if ($tahun) {
$suratmasuk_model-
>where('YEAR(tanggal_diterima)',
public function $tahun);
viewFile($fileName) {
}
$filePath = WRITEPATH .
'uploads/' . $fileName; if ($bulan) {
if (file_exists($filePath)) { $suratmasuk_model-
>where('MONTH(tanggal_diterima)',
$fileContent = $bulan);
file_get_contents($filePath);
}
$contentType =
mime_content_type($filePath); if ($tanggal_awal &&
$tanggal_akhir) {
$this->response-
>setStatusCode(200)- $suratmasuk_model-
>setContentType($contentType)- >where('tanggal_diterima >=',
>setBody($fileContent); $tanggal_awal);
return $this->response; $suratmasuk_model-
>where('tanggal_diterima <=',
} else { $tanggal_akhir);
} $suratmasuk_model-
>where('tanggal_diterima >=',
$data_suratmasuk = $tanggal_awal);
$suratmasuk_model->findAll();
$suratmasuk_model-
$print_view = >where('tanggal_diterima <=',
view('suratmasuk/print_suratmasuk', $tanggal_akhir);
['data_suratmasuk' =>
$data_suratmasuk]); }
echo $print_view; $data_suratmasuk =
$suratmasuk_model->findAll();
}
return
view('suratmasuk/view_suratmasuk',
public function view_suratmasuk() [
{ 'data_suratmasuk' =>
$tahun = $this->request- $data_suratmasuk,
>getGet('tahun'); 'tahun' => $tahun,
$bulan = $this->request- 'bulan' => $bulan,
>getGet('bulan');
'tanggal_awal' =>
$tanggal_awal = $this->request- $tanggal_awal,
>getGet('tanggal_awal');
'tanggal_akhir' =>
$tanggal_akhir = $this- $tanggal_akhir,
>request->getGet('tanggal_akhir');
]);
$suratmasuk_model = new
SuratmasukModel(); }
if ($tahun) { }
$suratmasuk_model- [Link]
>where('YEAR(tanggal_diterima)',
$tahun); <?php
}
if ($bulan) { namespace App\Controllers;
$suratmasuk_model-
>where('MONTH(tanggal_diterima)', use CodeIgniter\Controller;
$bulan);
use App\Models\Suratkeluarmodel;
}
if ($tanggal_awal &&
$tanggal_akhir) { class Suratkeluar extends Controller
{
public function filter() {
protected $Suratkeluarmodel; $tahun = $this->request-
>getPost('tahun');
$isAdmin = $this->session-
public function initController(\ >get('role') === 'admin';
CodeIgniter\HTTP\RequestInterface
$request, \CodeIgniter\HTTP\
ResponseInterface $response, \Psr\
Log\LoggerInterface $logger) { if ($isAdmin) {
parent::initController($request, $data['data_suratkeluar'] =
$response, $logger); $this->Suratkeluarmodel-
>getAllData();
$this->Suratkeluarmodel = new
Suratkeluarmodel(); $view = 'view_suratkeluar';
} } else {
$data['data_suratkeluar'] = !
empty($tahun)
public function index() {
? $this->Suratkeluarmodel-
$all_data_suratkeluar = $this- >getDataFilteredByTahun($tahun)
>Suratkeluarmodel->findAll();
: $this->Suratkeluarmodel-
$years = $this- >getAllData();
>Suratkeluarmodel->getAllYears();
$view =
$selectedYear = $this->request- 'user/view_suratkeluar2';
>getGet('tahun') ?? '';
}
$isAdmin = true;
return view($view, $data);
return view('view_Suratkeluar',
[ }
'all_data_suratkeluar' =>
$all_data_suratkeluar, public function add_suratkeluar()
'years' => $years, {
'selectedYear' => $level = session()->get('level');
$selectedYear, return view('add_suratkeluar',
'isAdmin' => $isAdmin, ['level' => $level]);
]); }
}
public function $suratkeluar = $this-
proses_add_suratkeluar() { >Suratkeluarmodel->find($id_sk);
$postData = $this->request- return view('edit_suratkeluar',
>getPost(); ['suratkeluar' => $suratkeluar]);
}
if ($file = $this->request-
>getFile('file_surat')) {
public function
$newName = $file- proses_edit_suratkeluar() {
>getRandomName();
try {
$file->move(WRITEPATH .
'uploads', $newName); $postData = $this->request-
>getPost();
$postData['file_surat'] =
$newName; $id_sk = $postData['id_sk'];
}
$data = [
try { 'tanggal' =>
$postData['tanggal'],
$this->Suratkeluarmodel-
>insert($postData); 'nomor_surat' =>
$postData['nomor_surat'],
session()-
>setFlashdata('success', 'Data 'dikirim_kepada' =>
berhasil ditambahkan!'); $postData['dikirim_kepada'],
return redirect()- 'perihal' =>
>to(site_url('view_suratkeluar')); $postData['perihal'],
} catch (\Exception $e) { 'sifat' => $postData['sifat'],
session()- 'lampiran' =>
>setFlashdata('error', 'Gagal $postData['lampiran'],
menambahkan data: ' . $e- 'keterangan' =>
>getMessage()); $postData['keterangan'],
return redirect()- ];
>to(site_url('view_suratkeluar'));
}
if ($file = $this->request-
} >getFile('file_surat')) {
if ($file->isValid() && !
public function $file->hasMoved()) {
edit_suratkeluar($id_sk) {
$newName = $file- unlink($file_path);
>getRandomName();
}
$file-
>move(WRITEPATH . 'uploads', $this->Suratkeluarmodel-
$newName); >delete($id_sk);
$data['file_surat'] = session()-
$newName; >setFlashdata('success', 'Data Surat
Keluar berhasil dihapus!');
}
} else {
}
session()-
>setFlashdata('error', 'Data Surat
Keluar tidak ditemukan!');
$this->Suratkeluarmodel-
>update($id_sk, $data); }
session()- return redirect()-
>setFlashdata('success', 'Data Surat >to(site_url('view_suratkeluar'));
Keluar berhasil diupdate!');
}
return redirect()-
>to(site_url('view_suratkeluar'));
} catch (\Exception $e) { public function
viewFile($fileName) {
session()-
>setFlashdata('error', 'Gagal $filePath = WRITEPATH .
mengupdate data: ' . $e- 'uploads/' . $fileName;
>getMessage());
return redirect()- if (file_exists($filePath)) {
>to(site_url('view_suratkeluar'));
return $this->response
}
->setStatusCode(200)
}
-
>setContentType(mime_content_typ
public function e($filePath))
delete_suratkeluar($id_sk) { -
$suratkeluar = $this- >setBody(file_get_contents($filePa
>Suratkeluarmodel->find($id_sk); th));
if ($suratkeluar) { } else {
$file_path = WRITEPATH . return $this->response-
'uploads/' . $suratkeluar->file_surat; >setStatusCode(404)-
>setBody("File not found");
if (file_exists($file_path)) {
} }
}
public function create($id_surat)
public function printsk() { {
$all_data_suratkeluar = $this- $suratModel = new
>Suratkeluarmodel->findAll(); SuratMasukModel();
$userModel = new
return view('print_sk',
UserModel();
['all_data_suratkeluar' =>
$all_data_suratkeluar]); $instansiModel = new
InstansiModel();
}
}
// Ambil data surat masuk
[Link] berdasarkan ID
<?php $surat = $suratModel-
>find($id_surat);
namespace App\Controllers;
if (!$surat) {
return redirect()->back()-
use App\Models\SuratMasukModel;
>with('error', 'Surat tidak
use App\Models\UserModel; ditemukan.');
use App\Models\DisposisiModel; }
use App\Models\InstansiModel;
use CodeIgniter\Controller; // Ambil semua data instansi
dan user
$instansi = $instansiModel-
class DisposisiController extends >findAll();
Controller
$users = $userModel-
{ >findAll();
protected $DisposisiModel;
return view('disposisi_sm', [
public function __construct() 'surat' => $surat,
{ 'users' => $users,
$this->DisposisiModel = new 'instansi' => $instansi,
DisposisiModel();
]); 'instansi' => $instansi,
} ]);
}
public function create1($id_surat)
{ public function store()
$suratModel = new {
SuratMasukModel();
$data = [
$userModel = new
UserModel(); 'id_sm' => $this->request-
>getPost('id_sm'),
$instansiModel = new
InstansiModel(); 'tanggal_diterima' => $this-
>request-
>getPost('tanggal_diterima'),
// Ambil data surat masuk 'instansi_id' => $this-
berdasarkan ID >request->getPost('instansi_id'),
$surat = $suratModel- 'nomor_surat' => $this-
>find($id_surat); >request->getPost('nomor_surat'),
'tanggal_surat' => $this-
>request->getPost('tanggal_surat'),
if (!$surat) {
'sifat' => $this->request-
return redirect()->back()- >getPost('sifat'),
>with('error', 'Surat tidak
ditemukan.'); 'perihal' => $this->request-
>getPost('perihal'),
}
'keterangan' => $this-
>request->getPost('keterangan'),
// Ambil semua data instansi 'file_surat' => $this->request-
dan user >getPost('file_surat'),
$instansi = $instansiModel- 'id_user' => $this->request-
>findAll(); >getPost('user_penerima'),
$users = $userModel- 'isi_disposisi' => $this-
>findAll(); >request->getPost('isi_disposisi'),
'status' => $this->request-
return view('disposisi_sm1', [ >getPost('status'),
'surat' => $surat, ];
'users' => $users,
$this->DisposisiModel- 'status' => $this->request-
>save($data); >getPost('status'),
];
return
redirect()->to('/view_suratmasuk')-
>with('success', 'Disposisi berhasil $this->DisposisiModel-
dibuat.'); >save($data);
}
return
redirect()->to('/view_suratmasuk1')-
public function store1() >with('success', 'Disposisi berhasil
dibuat.');
{
}
$data = [
'id_sm' => $this->request-
>getPost('id_sm'), public function index()
'tanggal_diterima' => $this- {
>request-
>getPost('tanggal_diterima'), $data['disposisi'] = $this-
>DisposisiModel-
'instansi_id' => $this- >getDisposisiWithUser();
>request->getPost('instansi_id'),
$isAdmin = true;
'nomor_surat' => $this-
>request->getPost('nomor_surat'),
'tanggal_surat' => $this- return view('view_disposisi', [
>request->getPost('tanggal_surat'), 'all_data_suratmasuk' =>
'sifat' => $this->request- $data['disposisi'],
>getPost('sifat'), 'isAdmin' => $isAdmin,
'perihal' => $this->request- ]);
>getPost('perihal'),
}
'keterangan' => $this-
>request->getPost('keterangan'),
'file_surat' => $this->request- public function index1()
>getPost('file_surat'), {
'id_user' => $this->request- $data['disposisi'] = $this-
>getPost('user_penerima'), >DisposisiModel-
'isi_disposisi' => $this- >getDisposisiWithUser();
>request->getPost('isi_disposisi'), $isAdmin = true;
return view('view_disposisi1', [ if (file_exists($file_path))
{
'all_data_suratmasuk' =>
$data['disposisi'], if (!unlink($file_path)) {
'isAdmin' => $isAdmin, throw new \
Exception('Failed to delete the file.');
]);
}
}
}
public function index2()
if (!$this->DisposisiModel-
{ >delete($id)) {
$data['disposisi'] = $this- throw new \
>DisposisiModel- Exception('Failed to delete the record
>getDisposisiWithUser(); from the database.');
$isAdmin = true; }
return view('view_disposisi2', [ session()-
'all_data_suratmasuk' => >setFlashdata('success', 'Data
$data['disposisi'], Disposisi berhasil dihapus!');
'isAdmin' => $isAdmin, } else {
]); session()-
>setFlashdata('error', 'Data Disposisi
} tidak ditemukan!');
}
public function } catch (\Exception $e) {
delete_disposisi($id)
session()-
{ >setFlashdata('error', 'Terjadi
try { kesalahan: ' . $e->getMessage());
$disposisi = $this- }
>DisposisiModel->find($id);
return
if ($disposisi) { redirect()->to('/disposisi');
$file_path = WRITEPATH }
. 'uploads/' . $disposisi->file_surat;
public function verifikasi($id) }
{
$disposisiModel = new public function hapus($id)
DisposisiModel();
{
$disposisiModel-
>update_status($id, 'Sudah $model = new
Ditindaklanjuti'); DisposisiModel();
return if ($model->find($id)) {
redirect()->to('/view_disposisi'); $model->delete($id);
} return
redirect()->to('/view_disposisi')-
>with('success', 'Data berhasil
public function verifikasi1($id) dihapus.');
{ } else {
$disposisiModel = new return
DisposisiModel(); redirect()->to('/view_disposisi')-
>with('error', 'Data tidak
$disposisiModel- ditemukan.');
>update_status($id, 'Sudah
Ditindaklanjuti'); }
}
return }
redirect()->to('/view_disposisi1');
}
public function verifikasi2($id)
{
$disposisiModel = new
DisposisiModel();
$disposisiModel-
>update_status($id, 'Sudah
Ditindaklanjuti');
return
redirect()->to('/view_disposisi2');