0% found this document useful (0 votes)
4 views142 pages

Source Code Grading System

The document contains PHP code for an Admin controller in a web application, which manages functionalities such as listing, adding, editing, and deleting teachers and admins. It includes methods for handling user authentication, form validation, and session management. The code utilizes models to interact with the database for CRUD operations on user data based on their roles.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views142 pages

Source Code Grading System

The document contains PHP code for an Admin controller in a web application, which manages functionalities such as listing, adding, editing, and deleting teachers and admins. It includes methods for handling user authentication, form validation, and session management. The code utilizes models to interact with the database for CRUD operations on user data based on their roles.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

73

SOURCE CODE
74

<?php

namespace App\Controllers;

class Admin extends BaseController


{
public function index()
{
$data['title'] = 'Admin';
$data['title_f'] = 'List of teachers';
$data['menu'] = 'Menu';

$TeacherModel = new \App\Models\TeacherModel();


// $data['Users']=$TeacherModel->findAll();
$data['Users'] = $TeacherModel->where('role', 'registrar')->findAll();
return view('admin/index',$data);
}

public function dashboard()


{
$data['title'] = 'Dashboard';
$data['title_f'] = 'List of teachers';
$data['menu'] = 'Menu';

// Load the TeacherModel


$TeacherModel = new \App\Models\TeacherModel();
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$UserModel = new \App\Models\UserModel();
$StudentModel = new \App\Models\StudentModel();
75

// Fetch all users with role 'registrar'


$data['Users'] = $TeacherModel->where('role', 'registrar')->findAll();

// Get the total number of 'registrar' users


$data['ta'] = $TeacherModel->where('role', 'registrar')->countAllResults();
$data['tf'] = $TeacherModel->where('role', 'teacher')->countAllResults();
$data['ts'] = $SubjectModel->countAllResults();
$data['tst'] = $StudentModel->countAllResults();
$data['tsc'] = $SectionModel->countAllResults();

// Pass the total count to the view


return view('admin/dashboard', $data);
}

public function add()


{
helper('form');
$TeacherModel = new \App\Models\TeacherModel();
$data=[];

$data['title'] = 'Admin / Add';


$data['title_f'] = 'Add Admin';
// $data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){
76

$rules = [

'lastname' => ['label'=>"Last Name",'rules'=>'required'],


'firstname' => ['label'=>"First Name",'rules'=>'required'],
'middlename' => ['label'=>"Middle Name",'rules'=>'permit_empty'],
// 'semester_id' => ['label'=>"username",'rules'=>'required'],
'role' => ['label'=>"role",'rules'=>'required'],
'username' => ['label'=>"User Name",'rules'=>'required|
is_unique[[Link]]'],
'password' => ['label'=>"Password",'rules'=>'required'],
'confirmpassword' => ['label'=>"Confirm
Password",'rules'=>'matches[password]'],
// 'status' => ['label'=>"status",'rules'=>'required'],

];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{
$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$_POST['password']=$password;
$result=$TeacherModel->insert($_POST);
if($result){
session()->setFlashdata('success', "Teacher successfully added.");
return redirect()->to('admin');
}else{
session()->setFlashdata('error', "teacher failed to add.");

}
}
}
77

return view('admin/add',$data);
}

public function edit($id)


{
helper('form');
$TeacherModel = new \App\Models\TeacherModel();
$data=[];

$data['title'] = 'Admin / Edit';


$data['title_f'] = 'Edit teacher';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'id' => ['label'=>"User ID",'rules'=>'required'],
'lastname' => ['label'=>"Last Name",'rules'=>'required'],
'firstname' => ['label'=>"First Name",'rules'=>'required'],
'middlename' => ['label'=>"Middle Name",'rules'=>'permit_empty'],
'username' => ['label'=>"username",'rules'=>'required|
is_unique[[Link],id,{id}]'],
'semester_id' => ['label'=>"username",'rules'=>'required'],
// 'role' => ['label'=>"role",'rules'=>'required'],
'password' => ['label'=>"Password",'rules'=>'permit_empty'],
'confirmpassword' => ['label'=>"Confirm
Password",'rules'=>'matches[password]'],
'status' => ['label'=>"status",'rules'=>'required'],

];

if(!$this->validate($rules)){
// dd($this->validator);
78

$data['validation']=$this->validator;
}else{
$_POST['role']='registrar';
$update_data['lastname']=$_POST['lastname'];
$update_data['firstname']=$_POST['firstname'];
$update_data['middlename']=$_POST['middlename'];

$update_data['semester_id']=$_POST['semester_id'];
$update_data['role']=$_POST['role'];
$update_data['username']=$_POST['username'];
$update_data['status']=$_POST['status'];

if ($_POST['password']!=""){
$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$update_data['password']=$password;
}

$result=$TeacherModel->update($_POST['id'],$update_data);

if($result){
session()->setFlashdata('success', "User successfully updated.");
return redirect()->to('admin');
}else{
session()->setFlashdata('error', "User failed to update.");

}
}
}

$teacherDetails=$TeacherModel
->where("md5(concat('edit',id))",$id)
79

->first();

if($teacherDetails){
$_POST['id']=$teacherDetails->id;
$_POST['lastname']=$teacherDetails->lastname;
$_POST['firstname']=$teacherDetails->firstname;
$_POST['middlename']=$teacherDetails->middlename;
$_POST['username']=$teacherDetails->username;

$_POST['semester_id']=$teacherDetails->semester_id;
$_POST['role']=$teacherDetails->role;
$_POST['status']=$teacherDetails->status;

return view('admin/edit',$data);

}
session()->setFlashdata('error', "Faculty not found.");
return redirect()->to('admin');
}

public function delete($id)


{
helper('form');
$TeacherModel = new \App\Models\TeacherModel();
$data=[];

$data['title'] = 'Admin / Delete';


$data['title_f'] = 'Delete Admin';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){
80

$rules = [
'id' => ['label'=>"User ID",'rules'=>'required'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{

$result=$TeacherModel->delete([$_POST['id']]);

if($result){
session()->setFlashdata('success', "Faculty successfully deleted.");
return redirect()->to('admin');
}else{
session()->setFlashdata('error', "Faculty failed to delete.");

}
}
}

$teacherDetails=$TeacherModel
->where("md5(concat('delete',id))",$id)
->first();
// $teacherDetails=$TeacherModels
// ->where('id',$id)
// ->first();
if($teacherDetails){
$_POST['id']=$teacherDetails->id;
$_POST['lastname']=$teacherDetails->lastname;
$_POST['firstname']=$teacherDetails->firstname;
$_POST['middlename']=$teacherDetails->middlename;
81

$_POST['username']=$teacherDetails->username;

return view('admin/delete',$data);

}
session()->setFlashdata('error', "Faculty not found.");
return redirect()->to('admin');
}

public function login()


{
helper('form');
$AdminModel = new \App\Models\AdminModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();
$data=[];

if($this->request->getMethod() == 'POST'){

$rules = [
'username' => ['label' => "Admin Name", 'rules' => 'required'],
'password' => ['label' => "Password", 'rules' => 'required'],
];

if(!$this->validate($rules)){
$data['validation'] = $this->validator;
} else {

$role=$_POST['utype'];
// dd($role);
82

if($role=="registrar"){
$result = $TeacherModel
->where('username', $_POST['username'])
->where('role', 'registrar')
->first();

if($result){

if(password_verify($_POST['password'], $result->password)){
// Store multiple data in session
session()->set('isLoggedIn', true);
session()->set('firstname', $result->firstname);
session()->set('username', $result->username); // Store username
session()->set('loginid', $result->id); // Store username
// session()->set('email', $result->email); // Store email
session()->set('role', $result->role); // Store role, if applicable
session()->set('menu', 'dashboard'); //

return redirect()->to('dashboard'); // Redirect to admin after login


} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

} else {
session()->setFlashdata('error', "Invalid Credentials.");
}
}else if($role=="teacher"){
// dd("not admin");
// return;
$result = $TeacherModel
->where('username', $_POST['username'])
83

->first();

if($result){

if(password_verify($_POST['password'], $result->password)){
// Store multiple data in session
session()->set('isLoggedIn', true);
session()->set('firstname', $result->firstname);
session()->set('username', $result->username); // Store username
session()->set('loginid', $result->id); // Store username
// session()->set('email', $result->email); // Store email
session()->set('role', $result->role); // Store role, if applicable
session()->set('menu', 'dashboard'); //

return redirect()->to('dashboard'); // Redirect to admin after login


} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

}else if($role=="student"){
// dd("not admin");
// return;
$result = $StudentModel
->where('username', $_POST['username'])
->first();

if($result){
84

if(password_verify($_POST['password'], $result->password)){
// Store multiple data in session
session()->set('isLoggedIn', true);
session()->set('firstname', $result->firstname);
session()->set('username', $result->username); // Store username
session()->set('loginid', $result->userid); // Store username
// session()->set('email', $result->email); // Store email
session()->set('role', $result->role); // Store role, if applicable
session()->set('menu', 'enrolled'); //

return redirect()->to('dashboard'); // Redirect to admin after login


} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

}
}

return view('admin/login', $data);


}

public function logout()


{
session()->destroy();
85

return redirect()->to('login');
}

<?php

namespace App\Controllers;

class Admin extends BaseController


{
private $access=1;

public function index()


{

$data['title'] = 'Admin';
$data['title_f'] = 'Admin';
// $data['menu'] = $_SESSION['menu'];

$AdminModel = new \App\Models\AdminModel();


$data['datas']=$AdminModel->findAll();
return view('admin/index',$data);

public function dashboard()


{
86

$data['title'] = 'Dashboard';
$data['title_f'] = 'Dashboard';
$data['menu'] = $_SESSION['menu'];

$AdminModel = new \App\Models\AdminModel();


$data['datas']=$AdminModel->findAll();
// return view('admin/reg',$data);
return view('admin/index',$data);

public function reg2()


{
$data['title'] = 'Dashboard';
$data['title_f'] = 'Dashboard';
// $data['menu'] = 'Menu';

$AdminModel = new \App\Models\AdminModel();


$data['datas']=$AdminModel->findAll();
return view('admin/reg2',$data);

public function add()


{

helper('form');
$AdminModel = new \App\Models\AdminModel();
$data=[];

$data['title'] = 'Admin / Add';


$data['title_f'] = 'Admin';
87

// $data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'lastname' => ['label'=>"Last Name",'rules'=>'required'],
'firstname' => ['label'=>"First Name",'rules'=>'required'],
'middlename' => ['label'=>"Middle Name",'rules'=>'permit_empty'],
'username' => ['label'=>"Admin Name",'rules'=>'required|
is_unique[[Link]]'],
'password' => ['label'=>"Password",'rules'=>'required'],
'confirmpassword' => ['label'=>"Confirm
Password",'rules'=>'matches[password]'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{
$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$_POST['password']=$password;
$result=$AdminModel->insert($_POST);
if($result){
session()->setFlashdata('success', "Admin successfully added.");
return redirect()->to('admin');
}else{
session()->setFlashdata('error', "Admin failed to add.");

}
}
}
return view('admin/add',$data);
}
88

public function edit($id)


{
helper('form');
$AdminModel = new \App\Models\AdminModel();
$data=[];

$data['title'] = 'Admin / Edit';


$data['title_f'] = 'Admin';
$data['menu'] = 'Menu';

// dd($id);
if($this->request->getMethod()=='POST'){

$rules = [
'adminid' => ['label'=>"Admin ID",'rules'=>'required'],
'lastname' => ['label'=>"Last Name",'rules'=>'required'],
'firstname' => ['label'=>"First Name",'rules'=>'required'],
'middlename' => ['label'=>"Middle Name",'rules'=>'permit_empty'],
'username' => ['label'=>"Admin Name",'rules'=>'required|
is_unique[[Link],adminid,{adminid}]'],
'password' => ['label'=>"Password",'rules'=>'permit_empty'],
'confirmpassword' => ['label'=>"Confirm
Password",'rules'=>'matches[password]'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{
$update_data['lastname']=$_POST['lastname'];
$update_data['firstname']=$_POST['firstname'];
$update_data['middlename']=$_POST['middlename'];
89

$update_data['username']=$_POST['username'];

if ($_POST['password']!=""){
$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$update_data['password']=$password;
}

$result=$AdminModel->update($_POST['adminid'],$update_data);

if($result){
session()->setFlashdata('success', "Admin successfully updated.");
return redirect()->to('admin');
}else{
session()->setFlashdata('error', "Admin failed to update.");

}
}
}
$AdminDetails=$AdminModel
->where("md5(concat('edit',adminid))",$id)
->first();

if($AdminDetails){
$_POST['adminid']=$AdminDetails->adminid;
$_POST['lastname']=$AdminDetails->lastname;
$_POST['firstname']=$AdminDetails->firstname;
$_POST['middlename']=$AdminDetails->middlename;
$_POST['username']=$AdminDetails->username;

return view('admin/edit',$data);

}
90

session()->setFlashdata('error', "Admin not found.");


return redirect()->to('admin');
}

public function delete($id)


{
helper('form');
$AdminModel = new \App\Models\AdminModel();
$data=[];

$data['title'] = 'Admin / Delete';


$data['title_f'] = 'Admin';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'adminid' => ['label'=>"Admin ID",'rules'=>'required'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{

$result=$AdminModel->delete([$_POST['adminid']]);

if($result){
session()->setFlashdata('success', "Admin successfully deleted.");
return redirect()->to('admin');
}else{
session()->setFlashdata('error', "Admin failed to delete.");
91

}
}
}

$AdminDetails=$AdminModel
->where("md5(concat('delete',adminid))",$id)
->first();
if($AdminDetails){
$_POST['adminid']=$AdminDetails->adminid;
$_POST['lastname']=$AdminDetails->lastname;
$_POST['firstname']=$AdminDetails->firstname;
$_POST['middlename']=$AdminDetails->middlename;
$_POST['username']=$AdminDetails->username;

return view('admin/delete',$data);

}
session()->setFlashdata('error', "Admin not found.");
return redirect()->to('admin');
}

public function login()


{
helper('form');
$AdminModel = new \App\Models\AdminModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();
$data=[];
92

if($this->request->getMethod() == 'POST'){

$rules = [
'username' => ['label' => "Admin Name", 'rules' => 'required'],
'password' => ['label' => "Password", 'rules' => 'required'],
];

if(!$this->validate($rules)){
$data['validation'] = $this->validator;
} else {

$role=$_POST['utype'];
// dd($role);

if($role=="registrar"){
$result = $TeacherModel
->where('username', $_POST['username'])
->first();

if($result){

if(password_verify($_POST['password'], $result->password)){
// Store multiple data in session
session()->set('isLoggedIn', true);
session()->set('firstname', $result->firstname);
session()->set('username', $result->username); // Store username
session()->set('loginid', $result->id); // Store username
// session()->set('email', $result->email); // Store email
session()->set('role', $result->role); // Store role, if applicable
session()->set('menu', 'dashboard'); //

return redirect()->to('dashboard'); // Redirect to admin after login


93

} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

} else {
session()->setFlashdata('error', "Invalid Credentials.");
}
}else if($role=="teacher"){
// dd("not admin");
// return;
$result = $TeacherModel
->where('username', $_POST['username'])
->first();

if($result){

if(password_verify($_POST['password'], $result->password)){
// Store multiple data in session
session()->set('isLoggedIn', true);
session()->set('firstname', $result->firstname);
session()->set('username', $result->username); // Store username
session()->set('loginid', $result->id); // Store username
// session()->set('email', $result->email); // Store email
session()->set('role', $result->role); // Store role, if applicable
session()->set('menu', 'dashboard'); //

return redirect()->to('dashboard'); // Redirect to admin after login


} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

} else {
94

session()->setFlashdata('error', "Invalid Credentials.");


}

}else if($role=="student"){
// dd("not admin");
// return;
$result = $StudentModel
->where('username', $_POST['username'])
->first();

if($result){

if(password_verify($_POST['password'], $result->password)){
// Store multiple data in session
session()->set('isLoggedIn', true);
session()->set('firstname', $result->firstname);
session()->set('username', $result->username); // Store username
session()->set('loginid', $result->id); // Store username
// session()->set('email', $result->email); // Store email
session()->set('role', $result->role); // Store role, if applicable
session()->set('menu', 'dashboard'); //

return redirect()->to('dashboard'); // Redirect to admin after login


} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

} else {
session()->setFlashdata('error', "Invalid Credentials.");
}

}
95

}
}

return view('admin/login', $data);


}

public function logout()


{
session()->destroy();
return redirect()->to('login');
}

<?php

namespace App\Controllers;

use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;

/**
96

* Class BaseController
*
* BaseController provides a convenient place for loading components
* and performing functions that are needed by all your controllers.
* Extend this class in any new controllers:
* class Home extends BaseController
*
* For security be sure to declare any new methods as protected or private.
*/
abstract class BaseController extends Controller
{
/**
* Instance of the main Request object.
*
* @var CLIRequest|IncomingRequest
*/
protected $request;

/**
* An array of helpers to be loaded automatically upon
* class instantiation. These helpers will be available
* to all other controllers that extend BaseController.
*
* @var list<string>
*/
protected $helpers = [];

/**
* Be sure to declare properties for any property fetch you initialized.
* The creation of dynamic property is deprecated in PHP 8.2.
*/
// protected $session;
97

/**
* @return void
*/
public function initController(RequestInterface $request, ResponseInterface
$response, LoggerInterface $logger)
{
// Do Not Edit This Line
parent::initController($request, $response, $logger);

// Preload any models, libraries, etc, here.

// E.g.: $this->session = \Config\Services::session();


}

public function __construct() {


helper('url');
$segments = explode("/", uri_string());
$lastSegment = end($segments);

$_SESSION['menu'] = $lastSegment;

<?php

namespace App\Controllers;

use App\Models\DepartmentModel;
98

class Department extends BaseController


{
public function index()
{
$data['title'] = 'Department';
$DepartmentModel = new DepartmentModel();
$data['datas'] = $DepartmentModel->findAll();
return view('department/index', $data);
}

public function add()


{
helper('form');
$DepartmentModel = new DepartmentModel();
$data = [];
$data['title'] = 'Department / Add';

if ($this->request->getMethod() == 'POST') {
$rules = [
'department' => ['label' => 'Department Name', 'rules' => 'required'],
'descr' => ['label' => 'School Year', 'rules' => 'required'],
'status' => ['label' => 'status', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {
$result = $DepartmentModel->insert($this->request->getPost());
if ($result) {
session()->setFlashdata('success', 'Department added successfully.');
return redirect()->to('department');
} else {
99

session()->setFlashdata('error', 'Failed to add department.');


}
}
}
return view('department/add', $data);
}

public function edit($id)


{
helper('form');
$DepartmentModel = new DepartmentModel();
$data = [];
$data['title'] = 'Department / Edit';

if ($this->request->getMethod() == 'POST') {
$rules = [
'id' => ['label' => 'Department ID', 'rules' => 'required'],
'department' => ['label' => 'Department Name', 'rules' => 'required'],
'descr' => ['label' => 'descr', 'rules' => 'required'],
'status' => ['label' => 'status', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {

$update_data['department']=$_POST['department'];
$update_data['descr']=$_POST['descr'];
$update_data['status']=$_POST['status'];

$result=$DepartmentModel->update($_POST['id'],$update_data);
100

if($result){
session()->setFlashdata('success', "Department successfully updated.");
return redirect()->to('department');
}else{
session()->setFlashdata('error', "Department failed to update.");

}
}
}

$DepartmentDetails=$DepartmentModel
->where("md5(concat('edit',id))",$id)
->first();

if($DepartmentDetails){
$_POST['id']=$DepartmentDetails->id;
$_POST['department']=$DepartmentDetails->department;
$_POST['descr']=$DepartmentDetails->descr;
$_POST['status']=$DepartmentDetails->status;

return view('department/edit',$data);

}
session()->setFlashdata('error', 'Department not found.');
return redirect()->to('department');

public function delete($id)


101

{
helper('form');
$DepartmentModel = new DepartmentModel();
$data=[];

$data['title'] = 'Department / Delete';


$data['title_f'] = 'Department';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'id' => ['label'=>"Department ID",'rules'=>'required'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{

$result=$DepartmentModel->delete([$_POST['id']]);

if($result){
session()->setFlashdata('success', "Department successfully deleted.");
return redirect()->to('department');
}else{
session()->setFlashdata('error', "Department failed to delete.");

}
}
}
102

$DepartmentDetails=$DepartmentModel
->where("md5(concat('delete',id))",$id)
->first();
if($DepartmentDetails){
$_POST['id']=$DepartmentDetails->id;
$_POST['department']=$DepartmentDetails->department;
$_POST['descr']=$DepartmentDetails->descr;
$_POST['status']=$DepartmentDetails->status;

return view('department/delete',$data);

session()->setFlashdata('error', "Department not found.");


return redirect()->to('department');
}
}

<?php

namespace App\Controllers;

use App\Models\SubjectModel;

class Enroll extends BaseController


{

public function index()


{
$data['title'] = 'List of Students';
$data['title_f'] = 'List of Students';
$data['menu'] = 'Menu';
103

$StudentModel = new \App\Models\StudentModel();

$id = session()->get('loginid');

$data['Users'] = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
[Link] as course,
grade_level.name as level,
[Link] as stat,
[Link],
[Link],
[Link],
[Link],
[Link] as stat')
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = student.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = student.grade_level', 'left') // Correct join
condition for grade_level
// ->where('[Link]', $id) // Directly match teacher_id

->groupBy('[Link]') // Group by subject id


->findAll(); // Retrieve all results

// $data['students'] = $StudentModel->findAll();
104

// $data['Users']=$StudentModel->findAll();
return view('enroll/index',$data);
}

public function enrolled2()


{
helper('form');

// dd($id );
$data = [];

$data['title'] = 'Student Subjects';


$data['title_f'] = 'Join Subject';
$data['menu'] = 'Student';
$StudentModel = new \App\Models\StudentModel();

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
$EnrollModel = new \App\Models\EnrollModel();

$data = [];
$id = session()->get('loginid');

$data['title'] = 'Student Subjects';


$data['sections'] = $SectionModel->findAll();
$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();
$data['teachers'] = $TeacherModel->findAll();
105

$data['semesters'] = $SemesterModel->findAll();
$data['datas'] = $SubjectModel->select('subject.*,
[Link],
[Link] as enrollment_id,
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link],
[Link] as semester_name,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('enrollment', '[Link] = enrollment.subject_id', 'left') // Correct join
condition for grade_level
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for grade_level
->where("[Link]", $id)
->where('[Link] IS NULL') // Exclude soft-deleted subjects

->groupBy('[Link], [Link], grade_level.name, [Link],


[Link], [Link]')
->findAll();

$data['total_units'] = $SubjectModel->select('SUM([Link]) as total_units') //


Calculate total units
->join('enrollment', '[Link] = enrollment.subject_id', 'left') // Correct join condition
for enrollment
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
106

->join('section', '[Link] = [Link]', 'left') // Join with section


->join('strand', '[Link] = subject.strand_id', 'left') // Join with strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Join with
grade_level
->join('semester', '[Link] = subject.semester_id', 'left') // Join with semester
->where("[Link]", $id) // Filter by the current user's ID
->where('[Link] IS NULL') // Exclude soft-deleted subjects
->first(); // Get the first result, which contains the total

// To access the total units:


$totalUnits = $data['total_units'] ? $data['total_units']->total_units : 0; // Use 0 if
there are no results

$data['subjects'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link] as semester_name,
[Link] as semester_sy,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for grade_level
->groupBy('[Link]') // Group by subject id
107

->findAll(); // Retrieve all results

$SDetails = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
[Link],
[Link],
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->where("userid", $id)
->groupBy('[Link]')
->first();

if ($SDetails) {
$_POST['id'] = $SDetails->userid;
$_POST['userid'] = $SDetails->userid;
$_POST['name'] = $SDetails->firstname . ' ' . $SDetails->middlename . ' ' .
$SDetails->lastname;
$_POST['descr'] = $SDetails->grade_section;
$_POST['strand'] = $SDetails->course;
$_POST['section'] = $SDetails->grade_section;
$_POST['grade_level'] = $SDetails->level;
$_POST['total_unit'] = $totalUnits;
}
108

$data['user_id'] = $id;
// If the form is submitted
if ($this->request->getMethod() == 'POST') {

$rules = [
'userid' => ['label' => 'User', 'rules' => 'required'],
'subject_id' => ['label' => 'Subject', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
// Validation failed
$data['validation'] = $this->validator;
} else {
// Check if the subject is already in the list for the student
$existingSubject = $EnrollModel->where('userid', $SDetails->userid)
->where('subject_id', $this->request->getPost('subject_id'))
->first();

if ($existingSubject) {
// Subject already exists, show an error message
session()->setFlashdata('error', "You have already joined this subject.");
} else {
// Subject is not in the list, proceed to insert
$result = $EnrollModel->insert($_POST);

if ($result) {
session()->setFlashdata('success', "Subject successfully added.");
return redirect()->to('enroll/add/'.$id);
} else {
session()->setFlashdata('error', "Subject failed to add.");
109

}
}
}
}

return view('enroll/added', $data);


}

public function enrolled()


{
$data['title'] = 'Student';
$data['title_f'] = 'List of Students';
$data['menu'] = 'Menu';

$StudentModel = new \App\Models\StudentModel();

$id = session()->get('loginid');

$data['Users'] = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
[Link] AS subj,
[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
[Link],
[Link],
[Link],
[Link],
CONCAT([Link], " ", [Link], " ",
[Link]) AS teacher_name') // Remove MAX for correct grouping
->join('enrollment', '[Link] = [Link]', 'left') // Join with enrollment
table first
110

->join('subject', '[Link] = enrollment.subject_id', 'left') // Join with subject table


->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Join with section table
->join('strand', '[Link] = student.strand_id', 'left') // Join with strand table
->join('grade_level', 'grade_level.id = student.grade_level', 'left') // Join with
grade_level table
->where('[Link]', $id) // Filter by the current user's ID
->where('[Link] IS NULL') // Exclude soft-deleted subjects
->groupBy('[Link], [Link]') // Group by student ID and enrollment ID
->findAll(); // Retrieve all results

return view('enroll/enrolled',$data);
}

public function subject()


{
$data['title'] = 'Subject';
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TrackModel = new \App\Models\TrackModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();

$data['datas'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
111

grade_level.name as level,
[Link] as track,
[Link] as stat,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('track', '[Link] = [Link]', 'left') // Correct join condition for track
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results

$data['students'] = $StudentModel->findAll();
return view('enroll/index', $data);
}

public function addstud()


{

helper('form');
$subject_id = $this->request->getPost('subject_id');
$user_id = $this->request->getPost('user_id');

dd($subject_id);
112

// Example: Save data to database


$data = [
'subject_id' => $subject_id,
'user_id' => $user_id,
];
$this->db->table('subject_user')->insert($data);

return redirect()->back()->with('success', 'User added to the subject!');


}

public function addsubject($id)


{
helper('form');

// dd($id );
$data = [];

$data['title'] = 'Subject / Add';


$data['title_f'] = 'Join Subject';
$data['menu'] = 'Student';
$StudentModel = new \App\Models\StudentModel();

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();

$data = [];
// $data['title'] = 'Subject / Edit';
$data['sections'] = $SectionModel->findAll();
113

$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();
$data['teachers'] = $TeacherModel->findAll();
$data['semesters'] = $SemesterModel->findAll();

$data['Users']=$StudentModel->findAll();

$SubjectDetails=$SubjectModel
->where("md5(concat('edit',id))",$id)
->first();

if($SubjectDetails) {
$_POST['id'] = $SubjectDetails->id;
$_POST['name'] = $SubjectDetails->name;
$_POST['descr'] = $SubjectDetails->descr;
$_POST['strand'] = $SubjectDetails->grade_level;
$_POST['section'] = $SubjectDetails->teacher_id;
$_POST['grade_level'] = $SubjectDetails->strand_id;
$_POST['semester_id'] = $SubjectDetails->section;
$_POST['unit'] = $SubjectDetails->unit;
$_POST['semester_id'] = $SubjectDetails->semester_id;

return view('enroll/add', $data);


}
}

public function delete($mid,$id)


{
// dd($id);
$EnrollModel = new \App\Models\EnrollModel();
$result=$EnrollModel->delete($id);
if ($result) {
114

session()->setFlashdata('success', "Subject successfully added.");


return redirect()->to('enroll/add/'.$mid);
} else {
session()->setFlashdata('error', "Subject failed to add.");
}
}

public function add($id)


{
helper('form');

// dd($id );
$data = [];

$data['title'] = 'Student Subjects';


$data['title_f'] = 'Join Subject';
$data['menu'] = 'Student';
$StudentModel = new \App\Models\StudentModel();

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
$EnrollModel = new \App\Models\EnrollModel();

$data = [];
$data['md_id'] = $id;

$data['title'] = 'Student Subjects';


$data['sections'] = $SectionModel->findAll();
115

$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();
$data['teachers'] = $TeacherModel->findAll();
$data['semesters'] = $SemesterModel->findAll();
$data['datas'] = $SubjectModel->select('subject.*,
[Link],
[Link] as enrollment_id,
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link],
[Link] as semester_name,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('enrollment', '[Link] = enrollment.subject_id', 'left') // Correct join
condition for grade_level
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for grade_level
->where("md5(concat('add', [Link]))", $id)
->where('[Link] IS NULL') // Exclude soft-deleted subjects

->groupBy('[Link], [Link], grade_level.name, [Link],


[Link], [Link]')
->findAll();

$data['total_units'] = $SubjectModel->select('SUM([Link]) as total_units') //


Calculate total units
116

->join('enrollment', '[Link] = enrollment.subject_id', 'left') // Correct join condition


for enrollment
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Join with section
->join('strand', '[Link] = subject.strand_id', 'left') // Join with strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Join with
grade_level
->join('semester', '[Link] = subject.semester_id', 'left') // Join with semester
->where("md5(concat('add', [Link]))", $id)
->where('[Link] IS NULL') // Exclude soft-deleted subjects
->first(); // Get the first result, which contains the total

// To access the total units:


$totalUnits = $data['total_units'] ? $data['total_units']->total_units : 0; // Use 0 if
there are no results

$data['subjects'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link] as semester_name,
[Link] as semester_sy,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
117

->join('semester', '[Link] = subject.semester_id', 'left') // Correct join


condition for grade_level
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results

$SDetails = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
[Link],
[Link],
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->where("md5(concat('add', userid))", $id)
->groupBy('[Link]')
->first();

if ($SDetails) {
$_POST['id'] = $SDetails->userid;
$_POST['userid'] = $SDetails->userid;
$_POST['name'] = $SDetails->firstname . ' ' . $SDetails->middlename . ' ' .
$SDetails->lastname;
$_POST['descr'] = $SDetails->grade_section;
$_POST['strand'] = $SDetails->course;
$_POST['grade_section'] = $SDetails->grade_section;
118

$_POST['grade_level'] = $SDetails->level;
$_POST['total_unit'] = $totalUnits;
}

$data['user_id'] = $id;
// If the form is submitted
if ($this->request->getMethod() == 'POST') {

$rules = [
'userid' => ['label' => 'User', 'rules' => 'required'],
'subject_id' => ['label' => 'Subject', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
// Validation failed
$data['validation'] = $this->validator;
} else {
// Check if the subject is already in the list for the student
$existingSubject = $EnrollModel->where('userid', $SDetails->userid)
->where('subject_id', $this->request->getPost('subject_id'))
->first();

if ($existingSubject) {
// Subject already exists, show an error message
session()->setFlashdata('error', "You have already joined this subject.");
return redirect()->to('enroll/add/'.$id);
} else {
// Subject is not in the list, proceed to insert
$result = $EnrollModel->insert($_POST);

if ($result) {
session()->setFlashdata('success', "Subject successfully added.");
119

return redirect()->to('enroll/add/'.$id);
} else {
session()->setFlashdata('error', "Subject failed to add.");
}
}
}
}

// if ($this->request->getMethod() == 'GET') {

if(isset($_GET['remove'])){

$enroll_id=$_GET['remove'];

$SubjectDetails=$EnrollModel
->where("(id)",$enroll_id)
->first();
// dd($SubjectDetails->id);

$result=$EnrollModel->delete($SubjectDetails->id);

if($result){
session()->setFlashdata('success', "Subject successfully removed.");
return redirect()->to('enroll/add/'.$id);
}else{
session()->setFlashdata('error', "Subject failed to delete.");

}
}

return view('enroll/add', $data);


120

// }
}
public function edit($id)
{
helper('form');
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();

$data = [];
$data['title'] = 'Subject / Edit';
$data['sections'] = $SectionModel->findAll();
$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();
$data['teachers'] = $TeacherModel->findAll();
$data['semesters'] = $SemesterModel->findAll();

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Subject Name', 'rules' => 'required'],
'descr' => ['label' => 'School Year', 'rules' => 'required'],
'teacher_id' => ['label' => 'Teacher', 'rules' => 'required'],
'grade_level' => ['label' => 'Grade Level', 'rules' => 'required'],
'strand_id' => ['label' => 'Strand', 'rules' => 'required'],
'section' => ['label' => 'Section', 'rules' => 'required'],
'unit' => ['label' => 'Unit', 'rules' => 'required'],
'track' => ['label' => 'Track', 'rules' => 'required'],
'semester_id' => ['label' => 'Semester', 'rules' => 'required'],
'status' => ['label' => 'status', 'rules' => 'required'],
121

];

if (!$this->validate($rules)) {

$data['validation'] = $this->validator;
} else {

$update_data['name']=$_POST['name'];
$update_data['descr']=$_POST['descr'];
$update_data['teacher_id']=$_POST['teacher_id'];
$update_data['grade_level']=$_POST['grade_level'];
$update_data['strand_id']=$_POST['strand_id'];
$update_data['section']=$_POST['section'];
$update_data['unit']=$_POST['unit'];
$update_data['track']=$_POST['track'];
$update_data['semester_id']=$_POST['semester_id'];
$update_data['status']=$_POST['status'];

$result=$SubjectModel->update($_POST['id'],$update_data);

if($result){
session()->setFlashdata('success', "Subject successfully updated.");
return redirect()->to('subject');
}else{
session()->setFlashdata('error', "Subject failed to update.");

}
}
}
122

$SubjectDetails=$SubjectModel
->where("md5(concat('edit',id))",$id)
->first();

if($SubjectDetails){
$_POST['id']=$SubjectDetails->id;
$_POST['name']=$SubjectDetails->name;
$_POST['descr']=$SubjectDetails->descr;
$_POST['grade_level']=$SubjectDetails->grade_level;
$_POST['teacher_id']=$SubjectDetails->teacher_id;
$_POST['strand_id']=$SubjectDetails->strand_id;
$_POST['section']=$SubjectDetails->section;
$_POST['unit']=$SubjectDetails->unit;
$_POST['track']=$SubjectDetails->track;
$_POST['semester_id']=$SubjectDetails->semester_id;
$_POST['status']=$SubjectDetails->status;

return view('subject/edit',$data);

}
session()->setFlashdata('error', 'subject not found.');
return redirect()->to('subject');

// public function delete($id,$md_id)


// {
//
// helper('form');
// $EnrollModel = new \App\Models\SubjectModel();
//
// $EnrollDetails=$EnrollModel
123

// ->where("md5(concat('delete',id))",$id)
// ->first();
// if($EnrollDetails){
// $enroll_id=$EnrollDetails->id;
// $user_id=$EnrollDetails->userid;
//
//
// $result=$EnrollDetails->delete([$enroll_id]);
//
// if($result){
// session()->setFlashdata('success', "Subject successfully deleted.");
// return redirect()->to('enroll/add/'.$md_id);
// }else{
// session()->setFlashdata('error', "Subject failed to delete.");
//
// }
// }
//
// session()->setFlashdata('error', "Subject not found.");
// return redirect()->to('enroll/add/'.$md_id);
// }

public function added($id)


{
helper('form');

// dd($id );
$data = [];

$data['title'] = 'Student Subjects';


$data['title_f'] = 'Join Subject';
$data['menu'] = 'Student';
124

$StudentModel = new \App\Models\StudentModel();

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
$EnrollModel = new \App\Models\EnrollModel();

$data = [];
$data['md_id'] = $id;

$data['title'] = 'Student Subjects';


$data['sections'] = $SectionModel->findAll();
$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();
$data['teachers'] = $TeacherModel->findAll();
$data['semesters'] = $SemesterModel->findAll();
$data['datas'] = $SubjectModel->select('subject.*,
[Link],
[Link] as enrollment_id,
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link] as semester_name,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('enrollment', '[Link] = enrollment.subject_id', 'left') // Correct join
condition for grade_level
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
125

->join('section', '[Link] = [Link]', 'left') // Correct join condition for


section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for grade_level
->where("md5(concat('add', [Link]))", $id)
->groupBy('[Link], [Link], grade_level.name, [Link],
[Link], [Link]')
->findAll();

$data['subjects'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link] as semester_name,
[Link] as semester_sy,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for grade_level
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results
126

$SDetails = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
[Link],
[Link],
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->where("md5(concat('add', userid))", $id)
->groupBy('[Link]')
->first();

if ($SDetails) {
$_POST['id'] = $SDetails->userid;
$_POST['userid'] = $SDetails->userid;
$_POST['name'] = $SDetails->firstname . ' ' . $SDetails->middlename . ' ' .
$SDetails->lastname;
$_POST['descr'] = $SDetails->grade_section;
$_POST['strand'] = $SDetails->course;
$_POST['section'] = $SDetails->grade_section;
$_POST['grade_level'] = $SDetails->level;
}

$data['user_id'] = $id;
// If the form is submitted
127

if ($this->request->getMethod() == 'POST') {

// if( $_POST['act']=="delete_enroll"){
//// dd($_POST['delete_enrollid']);
// $EnrollModel = new \App\Models\EnrollModel(); // Use the correct model for
the 'enrollment' table
//
//
//
// $EnrollDetails = $EnrollModel
// ->where('id', $this->request->getPost('delete_enrollid'))
// ->first();
//
// if($EnrollDetails) {
// $k = $EnrollDetails->id;
// }
//
//
//// Check if 'delete_enrollid' is provided in POST
// if (!empty($_POST['delete_enrollid'])) {
// $deleteId = $_POST['delete_enrollid'];
//
// // Attempt to delete the record
// $result = $EnrollDetails->delete($deleteId);
//
// if ($result) {
// session()->setFlashdata('success', "Subject successfully deleted.");
// } else {
// session()->setFlashdata('error', "Subject failed to delete.");
// }
// } else {
// session()->setFlashdata('error', "Invalid ID provided for deletion.");
128

// }
//
//// Redirect to the appropriate page
// return redirect()->to('enroll/add/' . ($id ?? 'default_id')); // Ensure $id is
defined or use a default value
//
//
// }

$rules = [
'userid' => ['label' => 'User', 'rules' => 'required'],
'subject_id' => ['label' => 'Subject', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
// Validation failed
$data['validation'] = $this->validator;
} else {
// Check if the subject is already in the list for the student
$existingSubject = $EnrollModel->where('userid', $SDetails->userid)
->where('subject_id', $this->request->getPost('subject_id'))
->first();

if ($existingSubject) {
// Subject already exists, show an error message
session()->setFlashdata('error', "You have already joined this subject.");
} else {
// Subject is not in the list, proceed to insert
$result = $EnrollModel->insert($_POST);

if ($result) {
129

session()->setFlashdata('success', "Subject successfully added.");


return redirect()->to('enroll/add/'.$id);
} else {
session()->setFlashdata('error', "Subject failed to add.");
}
}
}
}

return view('enroll/added', $data);


// }
}

<?php

namespace App\Controllers;

use App\Models\SubjectModel;

class Grade extends BaseController


{

public function index()


{
$data['title'] = 'Subject';
$SubjectModel = new \App\Models\SubjectModel();
130

$SectionModel = new \App\Models\SectionModel();


$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();

$id = session()->get('loginid');

$data['datas'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->where('subject.teacher_id', $id) // Directly match teacher_id
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results

$data['students'] = $StudentModel->findAll();
return view('grade/index', $data);
}
public function mygrade()
131

{
$data['title'] = 'Subject';
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();

$id = session()->get('loginid');

$data['datas'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->join('enrollment', 'enrollment.subject_id = [Link]', 'left') // Correct join
condition for grade_level
->where('[Link]', $id) // Directly match teacher_id
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results
132

$data['students'] = $StudentModel->findAll();
return view('grade/mygrade', $data);
}

public function add($id)


{
helper('form');

$data = [];
$data['title'] = 'Student/ Grades ';
$data['title_f'] = 'Grades';
$data['menu'] = 'Grades';

$StudentModel = new \App\Models\StudentModel();


$SubjectModel = new \App\Models\SubjectModel();
$GradeModel = new \App\Models\GradeModel();
$TeacherModel = new \App\Models\TeacherModel();

$data['md_id'] = $id;

$myid = session()->get('loginid');

$TeacherDetails = $TeacherModel->where("id", $myid)->first();

$data['role'] = $TeacherDetails->role;

// Retrieve student grades


$data['Users'] = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
CONCAT([Link], " - ", grade_level.name) AS coursename,
[Link] AS course,
grade_level.name AS level,
133

[Link] AS stat,
[Link],
enrollment.subject_id,
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
grades.grade_id,
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->join('enrollment', '[Link] = [Link]', 'left')
->join('grades', 'grades.subject_id = enrollment.subject_id AND [Link] =
[Link]', 'left')
->join('subject', '[Link] = enrollment.subject_id', 'left')
->where("md5(concat('add', enrollment.subject_id))", $id)
->groupBy('[Link], grades.grade_id')
->findAll();

// Retrieve subject details


$data['subject'] = $SubjectModel->select('subject.*,
CONCAT([Link], " - ", [Link]) AS semester_name,
[Link],
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
134

[Link],
CONCAT(MAX([Link]), " ", MAX([Link]), " ",
MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = subject.strand_id', 'left')
->join('semester', '[Link] = subject.semester_id', 'left')
->join('grade_level', 'grade_level.id = subject.grade_level', 'left')
->where("md5(concat('add', [Link]))", $id)
->first();

// Check if final grade is being submitted


if (isset($_GET['final'])) {
$userid = $_GET['userid'];
$midterm = $_GET['midterm'];
$final = $_GET['final'];
$average = $_GET['average'];
$grade = $_GET['grade'];

// Check if the grade record already exists


$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $userid)
->first();

if ($gradeDetails) {
// Update existing grade
$update_data = [
'grade_id' => $gradeDetails->grade_id,
'subject_id' => $gradeDetails->subject_id,
'userid' => $userid,
'midterm' => $midterm,
135

'final' => $final,


'average' => $average,
'grade' => $grade,
];

$result = $GradeModel->update($update_data['grade_id'], $update_data);

if ($result) {
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/add/' . $id);
} else {
session()->setFlashdata('error', "Student Grade failed to update.");
}
} else {
// Insert new grade
$gradeDetails2 = $SubjectModel->where("md5(concat('add', id))", $id)->first();

$add_data = [
'grade_id' => "",
'userid' => $userid,
'subject_id' => $gradeDetails2->id,
'midterm' => $midterm,
'final' => $final,
'average' => $final, // Assuming average is based on final for now
'grade' => $grade,
];

$result = $GradeModel->insert($add_data);

if ($result) {
session()->setFlashdata('success', "Student Grade successfully added.");
return redirect()->to('grade/add/' . $id);
136

} else {
session()->setFlashdata('error', "Student Grade failed to add.");
}
}
} else {
// Initialize empty fields for the form
$add_data['midterm'] = "";
$add_data['final'] = "";
}

// Check if records exist for each user


foreach ($data['Users'] as &$user) {
// Check if the record exists for this user and subject
$user->recordExists = $GradeModel->recordExists($user->userid,
$data['subject']->id); // Pass the subject ID
}

return view('grade/add', $data);


}

public function edit($id)


{
helper('form');

// dd($id );
$data = [];

$data['title'] = 'Student/ Grades ';


$data['title_f'] = 'Grades';
$data['menu'] = 'Grades';
$StudentModel = new \App\Models\StudentModel();
137

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
$EnrollModel = new \App\Models\EnrollModel();
$GradeModel = new \App\Models\GradeModel();

// $data = [];
$data['md_id'] = $id;

// $data['Users'] = $StudentModel->findAll();

$data['Users'] = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
CONCAT([Link], " - ", grade_level.name) AS coursename,
[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
[Link],
enrollment.subject_id,
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
grades.grade_id,
[Link],
138

[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->join('enrollment', '[Link] = [Link]', 'left')
->join('grades', 'grades.subject_id = enrollment.subject_id AND [Link] =
[Link]', 'left')
->join('subject', '[Link] = enrollment.subject_id', 'left')

->where("md5(concat('add',enrollment.subject_id))",$id)
->groupBy('[Link],grades.grade_id')
->findAll();

// dd($data['Users'] );

$data['subject'] = $SubjectModel->select('subject.*,
CONCAT([Link], " - ", [Link]) AS semester_name,
[Link],
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link],
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for strand
139

->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join


condition for grade_level
->where("md5(concat('add',[Link]))",$id)
->first();

if(isset($_GET['premid'])){
// dd($_GET['premid']);
$userid=$_GET['userid'];
// $subject_id=$_GET['subject_id'];
$premid=$_GET['premid'];
$midterm=$_GET['midterm'];
$prefinal=$_GET['prefinal'];
$final=$_GET['final'];
$average=$_GET['average'];
$grade=$_GET['grade'];

// dd($premid);

$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $_GET['userid'])
->first();

$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $userid)
->first();
// dd($average);
if ($gradeDetails) {
// dd($gradeDetails->grade_id);
// dd("meron");
140

$update_data['grade_id']=$gradeDetails->grade_id;
$update_data['subject_id']=$gradeDetails->subject_id;
$update_data['userid']=$userid;
$update_data['premid']=$premid;
$update_data['midterm']=$midterm;
$update_data['prefinal']=$prefinal;
$update_data['final']=$final;
$update_data['average']=$average;
$update_data['grade']=$grade;

// dd($update_data['grade_id']);
$result=$GradeModel->update($update_data['grade_id'],$update_data);

if($result){
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/add/'.$id);
}else{
session()->setFlashdata('error', "Student Grade failed to update.");

}else{

// dd($_GET['userid']);
// dd("wala");

$user=$_GET['userid'];
// $gradeDetails = $GradeModel
//// ->where("md5(concat('add', subject_id))", $id)
// ->where("md5(concat('add', userid))", $user)
// ->first();
//
141

$gradeDetails2 = $SubjectModel
->where("md5(concat('add', id))", $id)
->first();

// dd($average);

$add_data['grade_id']="";
$add_data['userid']=$userid;
$add_data['subject_id']=$gradeDetails2->id;
$add_data['userid']=$userid;
$add_data['premid']=$premid;
$add_data['midterm']=$midterm;
$add_data['prefinal']=$prefinal;
$add_data['final']=$final;
$add_data['average']=$final;
$add_data['grade']=$grade;

// dd($userid);

$result=$GradeModel->insert($add_data);

if($result){
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/add/'.$id);
}else{
session()->setFlashdata('error', "Student Grade failed to update.");

}
}
142

}else{
$add_data['premid']="";
$add_data['midterm']="";
$add_data['prefinal']="";
$add_data['final']="";

// dd($add_data);
}

return view('grade/add', $data);


// }
}
public function addmy($id)
{
helper('form');

// dd($id );
$data = [];

$data['title'] = 'Student/ Grades ';


$data['title_f'] = 'Grades';
$data['menu'] = 'Grades';
$StudentModel = new \App\Models\StudentModel();

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
$EnrollModel = new \App\Models\EnrollModel();
$GradeModel = new \App\Models\GradeModel();
143

$myid = session()->get('loginid');

$data['md_id'] = $id;

// $data['Users'] = $StudentModel->findAll();

$data['Users'] = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
CONCAT([Link], " - ", grade_level.name) AS coursename,

[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
[Link],
enrollment.subject_id,
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
grades.grade_id,
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->join('enrollment', '[Link] = [Link]', 'left')
144

->join('grades', 'grades.subject_id = enrollment.subject_id AND [Link] =


[Link]', 'left')
->join('subject', '[Link] = enrollment.subject_id', 'left')

->where("md5(concat('add',enrollment.subject_id))",$id)
->where("[Link]",$myid)
->groupBy('[Link],grades.grade_id')
->findAll();

// dd($data['Users'] );

$data['subject'] = $SubjectModel->select('subject.*,
CONCAT([Link], " - ", [Link]) AS semester_name,
[Link],
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link],
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->where("md5(concat('add',[Link]))",$id)
->first();
145

if(isset($_GET['premid'])){
// dd($_GET['premid']);
$userid=$_GET['userid'];
$subject_id=$_GET['subject_id'];
$premid=$_GET['premid'];
$midterm=$_GET['midterm'];
$prefinal=$_GET['prefinal'];
$final=$_GET['final'];
$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $_GET['userid'])
->first();

$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $userid)
->first();

if ($gradeDetails) {
// dd($gradeDetails->grade_id);
// dd("meron");
$update_data['grade_id']=$gradeDetails->grade_id;
$update_data['subject_id']=$gradeDetails->subject_id;
$update_data['userid']=$userid;
$update_data['premid']=$premid;
$update_data['midterm']=$midterm;
$update_data['prefinal']=$prefinal;
$update_data['final']=$final;
146

// dd($update_data['grade_id']);
$result=$GradeModel->update($update_data['grade_id'],$update_data);

if($result){
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/addmy/'.$id);
}else{
session()->setFlashdata('error', "Student Grade failed to update.");

}else{

// dd($_GET['userid']);
// dd("wala");

$user=$_GET['userid'];
// $gradeDetails = $GradeModel
//// ->where("md5(concat('add', subject_id))", $id)
// ->where("md5(concat('add', userid))", $user)
// ->first();
//
// dd($gradeDetails);

$add_data['grade_id']="";
$add_data['userid']=$userid;
$add_data['subject_id']=$subject_id;
$add_data['userid']=$userid;
$add_data['premid']=$premid;
$add_data['midterm']=$midterm;
$add_data['prefinal']=$prefinal;
$add_data['final']=$final;
147

// dd($userid);

$result=$GradeModel->insert($add_data);

if($result){
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/addmy/'.$id);
}else{
session()->setFlashdata('error', "Student Grade failed to update.");

}
}

}else{
$add_data['premid']="";
$add_data['midterm']="";
$add_data['prefinal']="";
$add_data['final']="";

// dd($add_data);
}

return view('grade/addmy', $data);


// }
}

public function print_grade($id)


{
// dd("print grade");
helper('form');
148

// dd($id );
$data = [];

$data['title'] = 'Student/ Grades ';


$data['title_f'] = 'Grades';
$data['menu'] = 'Grades';
$StudentModel = new \App\Models\StudentModel();

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
$EnrollModel = new \App\Models\EnrollModel();
$GradeModel = new \App\Models\GradeModel();

$myid = session()->get('loginid');

$data['md_id'] = $id;

// $data['Users'] = $StudentModel->findAll();

$data['Users'] = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
CONCAT([Link], " - ",
grade_level.name) AS coursename,

[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
149

[Link],
enrollment.subject_id,
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
grades.grade_id,
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->join('enrollment', '[Link] = [Link]', 'left')
->join('grades', 'grades.subject_id = enrollment.subject_id AND [Link] =
[Link]', 'left')
->join('subject', '[Link] = enrollment.subject_id', 'left')

->where("md5(concat('add',enrollment.subject_id))",$id)
// ->where("[Link]",$myid)
->groupBy('[Link],grades.grade_id')
->findAll();

// dd($data['Users'] );

$data['subject'] = $SubjectModel->select('subject.*,
CONCAT([Link], " - ", [Link]) AS semester_name,
150

[Link],
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link],
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->where("md5(concat('add',[Link]))",$id)
->first();

return view('grade/print', $data);


}

}
<?php

namespace App\Controllers;

use App\Models\GradeLevelModel;
151

class GradeLevel extends BaseController


{
public function index()
{
$data['title'] = 'grade_level';
$GradeLevelModel = new GradeLevelModel();
$data['datas'] = $GradeLevelModel->findAll();
return view('grade_level/index', $data);
}

public function add()


{
helper('form');
$GradeLevelModel = new GradeLevelModel();
$data = [];
$data['title'] = 'Grade Level / Add';

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Grade Level Name', 'rules' => 'required'],
'descr' => ['label' => 'Description', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {
$result = $GradeLevelModel->insert($this->request->getPost());
if ($result) {
session()->setFlashdata('success', 'Grade Level added successfully.');
return redirect()->to('grade_level');
} else {
152

session()->setFlashdata('error', 'Failed to add grade_level.');


}
}
}
return view('grade_level/add', $data);
}

public function edit($id)


{
helper('form');
$GradeLevelModel = new GradeLevelModel();
$data = [];
$data['title'] = 'Grade Level / Edit';

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Grade Level Name', 'rules' => 'required'],
'descr' => ['label' => 'School Year', 'rules' => 'required'],

'status' => ['label' => 'status', 'rules' => 'required'],


];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {

$update_data['name']=$_POST['name'];
$update_data['descr']=$_POST['descr'];

$update_data['status']=$_POST['status'];

$result=$GradeLevelModel->update($_POST['id'],$update_data);
153

if($result){
session()->setFlashdata('success', "Grade Level successfully updated.");
return redirect()->to('grade_level');
}else{
session()->setFlashdata('error', "Grade Level failed to update.");

}
}
}

$grade_levelDetails=$GradeLevelModel
->where("md5(concat('edit',id))",$id)
->first();

if($grade_levelDetails){
$_POST['id']=$grade_levelDetails->id;
$_POST['name']=$grade_levelDetails->name;
$_POST['descr']=$grade_levelDetails->descr;

$_POST['status']=$grade_levelDetails->status;

return view('grade_level/edit',$data);

}
session()->setFlashdata('error', 'Grade Level not found.');
return redirect()->to('grade_level');

}
154

public function delete($id)


{
helper('form');
$GradeLevelModel = new GradeLevelModel();
$data=[];

$data['title'] = 'Grade Level / Delete';


$data['title_f'] = 'grade_level';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'id' => ['label'=>"Grade Level ID",'rules'=>'required'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{

$result=$GradeLevelModel->delete([$_POST['id']]);

if($result){
session()->setFlashdata('success', "Grade Level successfully deleted.");
return redirect()->to('grade_level');
}else{
session()->setFlashdata('error', "Grade Level failed to delete.");

}
}
}
155

$grade_levelDetails=$GradeLevelModel
->where("md5(concat('delete',id))",$id)
->first();
if($grade_levelDetails){
$_POST['id']=$grade_levelDetails->id;
$_POST['name']=$grade_levelDetails->name;
$_POST['descr']=$grade_levelDetails->descr;

return view('grade_level/delete',$data);

session()->setFlashdata('error', "Grade Level not found.");


return redirect()->to('grade_level');
}

<?php

namespace App\Controllers;

use App\Models\SubjectModel;

class Grades extends BaseController


{

public function index()


156

{
$data['title'] = 'Subject';
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();

$id = session()->get('loginid');

$data['datas'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
// ->where('subject.teacher_id', $id) // Directly match teacher_id
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results

$data['students'] = $StudentModel->findAll();
157

return view('grade/index', $data);


}
public function mygrade()
{
$data['title'] = 'Subject';
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();

$id = session()->get('loginid');

$data['datas'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->join('enrollment', 'enrollment.subject_id = [Link]', 'left') // Correct join
condition for grade_level
->where('[Link]', $id) // Directly match teacher_id
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results
158

$data['students'] = $StudentModel->findAll();
return view('grade/mygrade', $data);
}

public function add($id)


{
helper('form');

// dd($id );
$data = [];

$data['title'] = 'Student/ Grades ';


$data['title_f'] = 'Grades';
$data['menu'] = 'Grades';
$StudentModel = new \App\Models\StudentModel();

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
$EnrollModel = new \App\Models\EnrollModel();
$GradeModel = new \App\Models\GradeModel();

$data = [];
$data['md_id'] = $id;

// $data['Users'] = $StudentModel->findAll();
159

$data['Users'] = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
[Link],
enrollment.subject_id,
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
grades.grade_id,
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->join('enrollment', '[Link] = [Link]', 'left')
->join('grades', 'grades.subject_id = enrollment.subject_id AND [Link] =
[Link]', 'left')
->join('subject', '[Link] = enrollment.subject_id', 'left')

->where("md5(concat('add',enrollment.subject_id))",$id)
->groupBy('[Link],grades.grade_id')
->findAll();

// dd($data['Users'] );
160

$data['subject'] = $SubjectModel->select('subject.*,
CONCAT([Link], " - ", [Link]) AS semester_name,
[Link],
[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link],
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->where("md5(concat('add',[Link]))",$id)
->first();

if(isset($_GET['premid'])){
// dd($_GET['premid']);
$userid=$_GET['userid'];
// $subject_id=$_GET['subject_id'];
$premid=$_GET['premid'];
$midterm=$_GET['midterm'];
$prefinal=$_GET['prefinal'];
$final=$_GET['final'];
161

$average=$_GET['average'];
$grade=$_GET['grade'];

// dd($premid);

$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $_GET['userid'])
->first();

$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $userid)
->first();
// dd($average);
if ($gradeDetails) {
// dd($gradeDetails->grade_id);
// dd("meron");
$update_data['grade_id']=$gradeDetails->grade_id;
$update_data['subject_id']=$gradeDetails->subject_id;
$update_data['userid']=$userid;
$update_data['premid']=$premid;
$update_data['midterm']=$midterm;
$update_data['prefinal']=$prefinal;
$update_data['final']=$final;
$update_data['average']=$average;
$update_data['grade']=$grade;

// dd($update_data['grade_id']);
$result=$GradeModel->update($update_data['grade_id'],$update_data);
162

if($result){
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/add/'.$id);
}else{
session()->setFlashdata('error', "Student Grade failed to update.");

}else{

// dd($_GET['userid']);
// dd("wala");

$user=$_GET['userid'];
// $gradeDetails = $GradeModel
//// ->where("md5(concat('add', subject_id))", $id)
// ->where("md5(concat('add', userid))", $user)
// ->first();
//

$gradeDetails2 = $SubjectModel
->where("md5(concat('add', id))", $id)
->first();

// dd($average);

$add_data['grade_id']="";
$add_data['userid']=$userid;
$add_data['subject_id']=$gradeDetails2->id;
$add_data['userid']=$userid;
$add_data['premid']=$premid;
$add_data['midterm']=$midterm;
163

$add_data['prefinal']=$prefinal;
$add_data['final']=$final;
$add_data['average']=$final;
$add_data['grade']=$grade;

// dd($userid);

$result=$GradeModel->insert($add_data);

if($result){
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/add/'.$id);
}else{
session()->setFlashdata('error', "Student Grade failed to update.");

}
}

}else{
$add_data['premid']="";
$add_data['midterm']="";
$add_data['prefinal']="";
$add_data['final']="";

// dd($add_data);
}

return view('grade/add', $data);


// }
}
public function addmy($id)
164

{
helper('form');

// dd($id );
$data = [];

$data['title'] = 'Student/ Grades ';


$data['title_f'] = 'Grades';
$data['menu'] = 'Grades';
$StudentModel = new \App\Models\StudentModel();

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
$EnrollModel = new \App\Models\EnrollModel();
$GradeModel = new \App\Models\GradeModel();

$myid = session()->get('loginid');

$data = [];
$data['md_id'] = $id;

// $data['Users'] = $StudentModel->findAll();

$data['Users'] = $StudentModel->select('student.*,
CONCAT([Link]) AS grade_section,
[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
165

[Link],
enrollment.subject_id,
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
[Link],
grades.grade_id,
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->join('enrollment', '[Link] = [Link]', 'left')
->join('grades', 'grades.subject_id = enrollment.subject_id AND [Link] =
[Link]', 'left')
->join('subject', '[Link] = enrollment.subject_id', 'left')

->where("md5(concat('add',enrollment.subject_id))",$id)
->where("[Link]",$myid)
->groupBy('[Link],grades.grade_id')
->findAll();

// dd($data['Users'] );

$data['subject'] = $SubjectModel->select('subject.*,
CONCAT([Link], " - ", [Link]) AS semester_name,
[Link],
166

[Link],
CONCAT([Link]) AS grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
[Link],
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('semester', '[Link] = subject.semester_id', 'left') // Correct join
condition for strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->where("md5(concat('add',[Link]))",$id)
->first();

if(isset($_GET['premid'])){
// dd($_GET['premid']);
$userid=$_GET['userid'];
$subject_id=$_GET['subject_id'];
$premid=$_GET['premid'];
$midterm=$_GET['midterm'];
$prefinal=$_GET['prefinal'];
$final=$_GET['final'];
$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $_GET['userid'])
->first();
167

$gradeDetails = $GradeModel
->where("md5(concat('add', subject_id))", $id)
->where("userid", $userid)
->first();

if ($gradeDetails) {
// dd($gradeDetails->grade_id);
// dd("meron");
$update_data['grade_id']=$gradeDetails->grade_id;
$update_data['subject_id']=$gradeDetails->subject_id;
$update_data['userid']=$userid;
$update_data['premid']=$premid;
$update_data['midterm']=$midterm;
$update_data['prefinal']=$prefinal;
$update_data['final']=$final;

// dd($update_data['grade_id']);
$result=$GradeModel->update($update_data['grade_id'],$update_data);

if($result){
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/addmy/'.$id);
}else{
session()->setFlashdata('error', "Student Grade failed to update.");

}else{

// dd($_GET['userid']);
168

// dd("wala");

$user=$_GET['userid'];
// $gradeDetails = $GradeModel
//// ->where("md5(concat('add', subject_id))", $id)
// ->where("md5(concat('add', userid))", $user)
// ->first();
//
// dd($gradeDetails);

$add_data['grade_id']="";
$add_data['userid']=$userid;
$add_data['subject_id']=$subject_id;
$add_data['userid']=$userid;
$add_data['premid']=$premid;
$add_data['midterm']=$midterm;
$add_data['prefinal']=$prefinal;
$add_data['final']=$final;

// dd($userid);

$result=$GradeModel->insert($add_data);

if($result){
session()->setFlashdata('success', "Student Grade successfully updated.");
return redirect()->to('grade/addmy/'.$id);
}else{
session()->setFlashdata('error', "Student Grade failed to update.");

}
}
169

}else{
$add_data['premid']="";
$add_data['midterm']="";
$add_data['prefinal']="";
$add_data['final']="";

// dd($add_data);
}

return view('grade/addmy', $data);


// }
}

}
<?php

namespace App\Controllers;

class Index extends BaseController


{
public function categories()
{
$data['title'] = 'Admin';
$data['title_f'] = 'List of teachers';
$data['menu'] = 'Menu';

$TeacherModel = new \App\Models\TeacherModel();


// $data['Users']=$TeacherModel->findAll();
$data['Users'] = $TeacherModel->where('role', 'registrar')->findAll();
return view('admin/index',$data);
}
170

<?php

namespace App\Controllers;

use App\Models\SectionModel;

class Section extends BaseController


{
public function index()
{
$data['title'] = 'Schedule';
$SectionModel = new SectionModel();
$data['datas'] = $SectionModel->findAll();
return view('section/index', $data);
}

public function add()


{
helper('form');
$SectionModel = new SectionModel();
$data = [];
$data['title'] = 'Section / Add';

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Schedule', 'rules' => 'required'],
171

'descr' => ['label' => 'Description', 'rules' => 'required'],


];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {
$result = $SectionModel->insert($this->request->getPost());
if ($result) {
session()->setFlashdata('success', 'Schedule added successfully.');
return redirect()->to('section');
} else {
session()->setFlashdata('error', 'Failed to add section.');
}
}
}
return view('section/add', $data);
}

public function edit($id)


{
helper('form');
$SectionModel = new SectionModel();
$data = [];
$data['title'] = 'Schedule / Edit';

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Schedule', 'rules' => 'required'],
'descr' => ['label' => 'Description', 'rules' => 'required'],

'status' => ['label' => 'status', 'rules' => 'required'],


];
172

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {

$update_data['name']=$_POST['name'];
$update_data['descr']=$_POST['descr'];

$update_data['status']=$_POST['status'];

$result=$SectionModel->update($_POST['id'],$update_data);

if($result){
session()->setFlashdata('success', "Schedule successfully updated.");
return redirect()->to('section');
}else{
session()->setFlashdata('error', "Schedule failed to update.");

}
}
}

$sectionDetails=$SectionModel
->where("md5(concat('edit',id))",$id)
->first();

if($sectionDetails){
$_POST['id']=$sectionDetails->id;
$_POST['name']=$sectionDetails->name;
$_POST['descr']=$sectionDetails->descr;
173

$_POST['status']=$sectionDetails->status;

return view('section/edit',$data);

}
session()->setFlashdata('error', 'Schedule not found.');
return redirect()->to('section');

public function delete($id)


{
helper('form');
$SectionModel = new SectionModel();
$data=[];

$data['title'] = 'Schedule / Delete';


$data['title_f'] = 'Schedule';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'id' => ['label'=>"Schedule ID",'rules'=>'required'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{
174

$result=$SectionModel->delete([$_POST['id']]);

if($result){
session()->setFlashdata('success', "Schedule successfully deleted.");
return redirect()->to('section');
}else{
session()->setFlashdata('error', "Schedule failed to delete.");

}
}
}

$sectionDetails=$SectionModel
->where("md5(concat('delete',id))",$id)
->first();
if($sectionDetails){
$_POST['id']=$sectionDetails->id;
$_POST['name']=$sectionDetails->name;
$_POST['descr']=$sectionDetails->descr;

return view('section/delete',$data);

session()->setFlashdata('error', "Schedule not found.");


return redirect()->to('section');
}

<?php
175

namespace App\Controllers;

use App\Models\SemesterModel;

class Semester extends BaseController


{
public function index()
{
$data['title'] = 'Semester';
$SemesterModel = new SemesterModel();
$data['datas'] = $SemesterModel->findAll();
return view('semester/index', $data);
}

public function add()


{
helper('form');
$SemesterModel = new SemesterModel();
$data = [];
$data['title'] = 'Semester / Add';

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Semester Name', 'rules' => 'required'],
'sy' => ['label' => 'School Year', 'rules' => 'required'],
'region' => ['label' => 'Region', 'rules' => 'required'],
'division' => ['label' => 'Division', 'rules' => 'required'],
'school_name' => ['label' => 'School Name', 'rules' => 'required'],
'school_id' => ['label' => 'School ID', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
176

$data['validation'] = $this->validator;
} else {
$result = $SemesterModel->insert($this->request->getPost());
if ($result) {
session()->setFlashdata('success', 'Semester added successfully.');
return redirect()->to('semester');
} else {
session()->setFlashdata('error', 'Failed to add semester.');
}
}
}
return view('semester/add', $data);
}

public function edit($id)


{
helper('form');
$SemesterModel = new SemesterModel();
$data = [];
$data['title'] = 'Semester / Edit';

if ($this->request->getMethod() == 'POST') {
$rules = [
'id' => ['label' => 'Semester ID', 'rules' => 'required'],
'name' => ['label' => 'Semester Name', 'rules' => 'required'],
'sy' => ['label' => 'School Year', 'rules' => 'required'],
'region' => ['label' => 'Region', 'rules' => 'required'],
'division' => ['label' => 'Division', 'rules' => 'required'],
'school_name' => ['label' => 'School Name', 'rules' => 'required'],
'school_id' => ['label' => 'School ID', 'rules' => 'required'],
'status' => ['label' => 'status', 'rules' => 'required'],
];
177

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {

$update_data['name']=$_POST['name'];
$update_data['sy']=$_POST['sy'];
$update_data['region']=$_POST['region'];
$update_data['division']=$_POST['division'];
$update_data['school_name']=$_POST['school_name'];
$update_data['school_id']=$_POST['school_id'];
$update_data['status']=$_POST['status'];

$result=$SemesterModel->update($_POST['id'],$update_data);

if($result){
session()->setFlashdata('success', "Semester successfully updated.");
return redirect()->to('semester');
}else{
session()->setFlashdata('error', "Semester failed to update.");

}
}
}

$SemesterDetails=$SemesterModel
->where("md5(concat('edit',id))",$id)
->first();

if($SemesterDetails){
178

$_POST['id']=$SemesterDetails->id;
$_POST['name']=$SemesterDetails->name;
$_POST['sy']=$SemesterDetails->sy;
$_POST['region']=$SemesterDetails->region;
$_POST['division']=$SemesterDetails->division;
$_POST['school_name']=$SemesterDetails->school_name;
$_POST['school_id']=$SemesterDetails->school_id;
$_POST['status']=$SemesterDetails->status;

return view('semester/edit',$data);

}
session()->setFlashdata('error', 'Semester not found.');
return redirect()->to('semester');

public function delete($id)


{
helper('form');
$SemesterModel = new SemesterModel();
$data=[];

$data['title'] = 'Semester / Delete';


$data['title_f'] = 'Semester';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'id' => ['label'=>"Semester ID",'rules'=>'required'],
];
179

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{

$result=$SemesterModel->delete([$_POST['id']]);

if($result){
session()->setFlashdata('success', "Semester successfully deleted.");
return redirect()->to('semester');
}else{
session()->setFlashdata('error', "Semester failed to delete.");

}
}
}

$SemesterDetails=$SemesterModel
->where("md5(concat('delete',id))",$id)
->first();
if($SemesterDetails){
$_POST['id']=$SemesterDetails->id;
$_POST['name']=$SemesterDetails->name;
$_POST['sy']=$SemesterDetails->sy;
$_POST['region']=$SemesterDetails->region;
$_POST['division']=$SemesterDetails->division;
$_POST['school_name']=$SemesterDetails->school_name;
$_POST['school_id']=$SemesterDetails->school_id;
$_POST['status']=$SemesterDetails->status;

return view('semester/delete',$data);
180

session()->setFlashdata('error', "Semester not found.");


return redirect()->to('admin');
}
}

<?php

namespace App\Controllers;

use App\Models\StrandModel;

class Strand extends BaseController


{
public function index()
{
$data['title'] = 'Strand';
$StrandModel = new StrandModel();
$data['datas'] = $StrandModel->findAll();
return view('strand/index', $data);
}

public function add()


{
helper('form');
$StrandModel = new StrandModel();
$data = [];
$data['title'] = 'Strand / Add';

if ($this->request->getMethod() == 'POST') {
181

$rules = [
'name' => ['label' => 'Strand Name', 'rules' => 'required'],
'descr' => ['label' => 'Description', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {
$result = $StrandModel->insert($this->request->getPost());
if ($result) {
session()->setFlashdata('success', 'Strand added successfully.');
return redirect()->to('strand');
} else {
session()->setFlashdata('error', 'Failed to add strand.');
}
}
}
return view('strand/add', $data);
}

public function edit($id)


{
helper('form');
$StrandModel = new StrandModel();
$data = [];
$data['title'] = 'Strand / Edit';

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Strand Name', 'rules' => 'required'],
'descr' => ['label' => 'School Year', 'rules' => 'required'],
182

'status' => ['label' => 'status', 'rules' => 'required'],


];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {

$update_data['name']=$_POST['name'];
$update_data['descr']=$_POST['descr'];

$update_data['status']=$_POST['status'];

$result=$StrandModel->update($_POST['id'],$update_data);

if($result){
session()->setFlashdata('success', "Strand successfully updated.");
return redirect()->to('strand');
}else{
session()->setFlashdata('error', "Strand failed to update.");

}
}
}

$StrandDetails=$StrandModel
->where("md5(concat('edit',id))",$id)
->first();

if($StrandDetails){
$_POST['id']=$StrandDetails->id;
183

$_POST['name']=$StrandDetails->name;
$_POST['descr']=$StrandDetails->descr;

$_POST['status']=$StrandDetails->status;

return view('strand/edit',$data);

}
session()->setFlashdata('error', 'Strand not found.');
return redirect()->to('strand');

public function delete($id)


{
helper('form');
$StrandModel = new StrandModel();
$data=[];

$data['title'] = 'Strand / Delete';


$data['title_f'] = 'Strand';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'id' => ['label'=>"strand ID",'rules'=>'required'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
184

}else{

$result=$StrandModel->delete([$_POST['id']]);

if($result){
session()->setFlashdata('success', "Strand successfully deleted.");
return redirect()->to('strand');
}else{
session()->setFlashdata('error', "Strand failed to delete.");

}
}
}

$strandDetails=$StrandModel
->where("md5(concat('delete',id))",$id)
->first();
if($strandDetails){
$_POST['id']=$strandDetails->id;
$_POST['name']=$strandDetails->name;
$_POST['descr']=$strandDetails->descr;

return view('strand/delete',$data);

session()->setFlashdata('error', "Strand not found.");


return redirect()->to('strand');
}

}
185

<?php

namespace App\Controllers;

class Student extends BaseController


{
public function index()
{
$data['title'] = 'Student';
$data['title_f'] = 'List of Students';
$data['menu'] = 'Menu';

$StudentModel = new \App\Models\StudentModel();

// Fetch all users with joined data


$query = $StudentModel->select('student.*,
CONCAT(grade_level.name, " - ", [Link]) AS grade_section,
CONCAT([Link], " - ", grade_level.name) AS coursename,
[Link] AS course,
grade_level.name AS level,
[Link] AS stat,
[Link],
[Link],
[Link],
[Link],
[Link]')
->join('section', '[Link] = [Link]', 'left')
->join('strand', '[Link] = student.strand_id', 'left')
->join('grade_level', 'grade_level.id = student.grade_level', 'left')
->orderBy('[Link]', 'ASC');

// Retrieve search query


186

$searchQuery = $this->request->getGet('q');

if (!empty($searchQuery)) {
// Apply search filters to the underlying columns
$query = $query->groupStart() // Start grouping the conditions
->like('grade_level.name', $searchQuery) // Match against the grade level name
->orLike('[Link]', $searchQuery) // Match against the section name
->orLike('[Link]', $searchQuery) // Match against the strand name
->orLike('[Link]', $searchQuery) // Match against last name
->orLike('[Link]', $searchQuery) // Match against middle name
->orLike('[Link]', $searchQuery) // Match against first name
->groupEnd(); // End grouping the conditions
}

// Paginate results
$data['Users'] = $query->paginate(10); // 10 items per page
$data['pager'] = $StudentModel->pager; // Get the pager for pagination
$data['searchQuery'] = $searchQuery;

return view('student/index', $data);

public function login()


{
dd("33");
return;
helper('form');
$StudentModel = new \App\Models\StudentModel();
$data=[];

if($this->request->getMethod()=='POST'){
187

$rules = [
'username' => ['label'=>"username",'rules'=>'required'],
'password' => ['label'=>"Password",'rules'=>'required'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{
$result=$StudentModel
->where('username',$_POST['username'])
->first();

if($result){

if(password_verify($_POST['password'],$result->password)){
session()->set('isLoggedIn', true);
session()->set('firstname', $result->firstname);
return redirect()->to('user');
}else{
session()->setFlashdata('error', "Invalid Credentials.");
}

}else{
session()->setFlashdata('error', "Invalid Credentials.");
}
}
}
return view('student/login',$data);
}
188

public function logout()


{
session()->destroy();
return redirect()->to('login');
}

public function add()


{
helper('form');
$StudentModel = new \App\Models\StudentModel();

$SectionModel = new \App\Models\SectionModel();


$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();

$data=[];

$data['title'] = 'Student / Add';


$data['title_f'] = 'Add Student';
$data['menu'] = 'Menu';

$data['sections'] = $SectionModel->findAll();
$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();
189

if($this->request->getMethod()=='POST'){

$rules = [
'gender' => ['label'=>"Gender",'rules'=>'required'],
'birthdate' => ['label'=>"Birthdate",'rules'=>'required'],
'strand_id' => ['label'=>"Strand",'rules'=>'required'],
'grade_level' => ['label'=>"Grade Level",'rules'=>'required'],
'section' => ['label'=>"Section",'rules'=>'required'],
'status' => ['label'=>"Status",'rules'=>'required'],
'role' => ['label'=>"Role",'rules'=>'required'],
'lastname' => ['label'=>"Last Name",'rules'=>'required'],
'firstname' => ['label'=>"First Name",'rules'=>'required'],
'middlename' => ['label'=>"Middle Name",'rules'=>'permit_empty'],
'username' => ['label'=>"username",'rules'=>'required|
is_unique[[Link],userid,{userid}]'],
'password' => ['label'=>"Password",'rules'=>'permit_empty'],
'confirmpassword' => ['label'=>"Confirm
Password",'rules'=>'matches[password]'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{

// dd($_POST['strand']);

$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$_POST['password']=$password;
$result=$StudentModel->insert($_POST);
if($result){
190

session()->setFlashdata('success', "Student successfully added.");


return redirect()->to('student');
}else{
session()->setFlashdata('error', "Student failed to add.");

}
}
}
return view('student/add',$data);
}

public function edit($id)


{
helper('form');
$StudentModel = new \App\Models\StudentModel();

$SectionModel = new \App\Models\SectionModel();


$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();

$data=[];

$data['title'] = 'Student / Edit';


$data['title_f'] = 'Edit Student';
$data['menu'] = 'Menu';
$data['sections'] = $SectionModel->findAll();
$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();

if($this->request->getMethod()=='POST'){

$rules = [
191

'userid' => ['label'=>"User ID",'rules'=>'required'],


'gender' => ['label'=>"Gender",'rules'=>'required'],
'role' => ['label'=>"Role",'rules'=>'required'],
'birthdate' => ['label'=>"Birthdate",'rules'=>'required'],
'strand' => ['label'=>"Strand",'rules'=>'required'],
'grade_level' => ['label'=>"Grade Level",'rules'=>'required'],
'section' => ['label'=>"Section",'rules'=>'required'],
'status' => ['label'=>"Status",'rules'=>'required'],
'lastname' => ['label'=>"Last Name",'rules'=>'required'],
'firstname' => ['label'=>"First Name",'rules'=>'required'],
'middlename' => ['label'=>"Middle Name",'rules'=>'permit_empty'],
'username' => ['label'=>"username",'rules'=>'required|
is_unique[[Link],userid,{userid}]'],
'password' => ['label'=>"Password",'rules'=>'permit_empty'],
'confirmpassword' => ['label'=>"Confirm
Password",'rules'=>'matches[password]'],
];

if(!$this->validate($rules)){

$data['validation']=$this->validator;
}else{
$update_data['lastname']=$_POST['lastname'];
$update_data['firstname']=$_POST['firstname'];
$update_data['middlename']=$_POST['middlename'];
$update_data['username']=$_POST['username'];
$update_data['gender']=$_POST['gender'];
$update_data['birthdate']=$_POST['birthdate'];
$update_data['strand_id']=$_POST['strand'];
$update_data['grade_level']=$_POST['grade_level'];
$update_data['section']=$_POST['section'];
$update_data['status']=$_POST['status'];
$update_data['role']=$_POST['role'];
192

if ($_POST['password']!=""){
$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$update_data['password']=$password;
}

$result=$StudentModel->update($_POST['userid'],$update_data);

if($result){
session()->setFlashdata('success', "User successfully updated.");
return redirect()->to('student');
}else{
session()->setFlashdata('error', "User failed to update.");

}
}
}

$UserDetails=$StudentModel
->where("md5(concat('edit',userid))",$id)
->first();

if($UserDetails){
$_POST['userid']=$UserDetails->userid;
$_POST['lastname']=$UserDetails->lastname;
$_POST['firstname']=$UserDetails->firstname;
$_POST['middlename']=$UserDetails->middlename;
$_POST['username']=$UserDetails->username;
$_POST['gender']=$UserDetails->gender;
$_POST['birthdate']=$UserDetails->birthdate;
$_POST['strand']=$UserDetails->strand_id;
193

$_POST['grade_level']=$UserDetails->grade_level;
$_POST['section']=$UserDetails->section;
$_POST['status']=$UserDetails->status;

return view('student/edit',$data);

}
session()->setFlashdata('error', "User not found.");
return redirect()->to('student');
}

public function delete($id)


{
helper('form');
$StudentModel = new \App\Models\StudentModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();

$data=[];

$data['title'] = 'Student / Delete';


$data['title_f'] = 'Delete Student';
$data['menu'] = 'Menu';
$data['sections'] = $SectionModel->findAll();
$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();

if($this->request->getMethod()=='POST'){

$rules = [
'userid' => ['label'=>"User ID",'rules'=>'required'],
194

];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{

$result=$StudentModel->delete([$_POST['userid']]);

if($result){
session()->setFlashdata('success', "User successfully deleted.");
return redirect()->to('student');
}else{
session()->setFlashdata('error', "User failed to delete.");

}
}
}

$UserDetails=$StudentModel
->where("md5(concat('delete',userid))",$id)
->first();
// $UserDetails=$StudentModels
// ->where('userid',$id)
// ->first();
if($UserDetails){
$_POST['userid']=$UserDetails->userid;
$_POST['lastname']=$UserDetails->lastname;
$_POST['firstname']=$UserDetails->firstname;
$_POST['middlename']=$UserDetails->middlename;
$_POST['username']=$UserDetails->username;
$_POST['gender']=$UserDetails->gender;
195

$_POST['birthdate']=$UserDetails->birthdate;
$_POST['strand']=$UserDetails->strand_id;
$_POST['grade_level']=$UserDetails->grade_level;
$_POST['section']=$UserDetails->section;
$_POST['status']=$UserDetails->status;

return view('student/delete',$data);

}
session()->setFlashdata('error', "User not found.");
return redirect()->to('student');
}

<?php

namespace App\Controllers;

use App\Models\SubjectModel;

class Subject extends BaseController


{
public function index()
{
$data['title'] = 'Subject';
196

$SubjectModel = new \App\Models\SubjectModel();


$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();

$myid = session()->get('loginid');

$TeacherDetails = $TeacherModel->where("id", $myid)->first();

$data['roles'] = $TeacherDetails->role;
$data['role'] = $TeacherDetails->role;

// Check the role and adjust the query accordingly


if ($data['roles'] === 'registrar') {
// If the user is a registrar, fetch all subjects
$data['datas'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
[Link] AS strand,
grade_level.name as year,
grade_level.name AS level,
[Link] AS stat,
[Link],
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher
table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
197

->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join


condition for grade_level
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results
} else if ($data['roles'] === 'teacher') {
// If the user is a teacher, fetch only subjects associated with them
$data['datas'] = $SubjectModel->select('subject.*,
[Link],
CONCAT([Link]) AS grade_section,
grade_level.name as year,
[Link] AS strand,
grade_level.name AS level,
[Link] AS stat,
[Link],
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher
table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->where('subject.teacher_id', $myid) // Only get subjects taught by the logged-
in teacher
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve results associated with the teacher
}

// Retrieve all students (if needed)


$data['students'] = $StudentModel->findAll();

return view('subject/index', $data);


198

public function enroll()


{
$data['title'] = 'Subject';
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$StudentModel = new \App\Models\StudentModel();

$data['datas'] = $SubjectModel->select('subject.*,
[Link],
CONCAT(grade_level.name, " - ", [Link]) AS
grade_section,
[Link] as strand,
grade_level.name as level,
[Link] as stat,
CONCAT(MAX([Link]), " ",
MAX([Link]), " ", MAX([Link])) AS teacher_name')
->join('teacher', '[Link] = subject.teacher_id', 'left') // Join with teacher table
->join('section', '[Link] = [Link]', 'left') // Correct join condition for
section
->join('strand', '[Link] = subject.strand_id', 'left') // Correct join condition for
strand
->join('grade_level', 'grade_level.id = subject.grade_level', 'left') // Correct join
condition for grade_level
->groupBy('[Link]') // Group by subject id
->findAll(); // Retrieve all results
199

$data['students'] = $StudentModel->findAll();
return view('subject/enroll', $data);
}

public function add()


{
helper('form');
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();

$data = [];
$data['title'] = 'Subject / Add';
$data['sections'] = $SectionModel->findAll();
$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();
$data['teachers'] = $TeacherModel->findAll();
$data['semesters'] = $SemesterModel->findAll();

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Subject Name', 'rules' => 'required'],
'descr' => ['label' => 'School Year', 'rules' => 'required'],
'teacher_id' => ['label' => 'Teacher', 'rules' => 'required'],
'grade_level' => ['label' => 'Grade Level', 'rules' => 'required'],
200

'strand_id' => ['label' => 'Strand', 'rules' => 'required'],


'section' => ['label' => 'Section', 'rules' => 'required'],
'unit' => ['label' => 'Unit', 'rules' => 'required'],
'semester_id' => ['label' => 'Semester', 'rules' => 'required'],
'status' => ['label' => 'status', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
// dd( $this->validator);
$data['validation'] = $this->validator;
} else {
$result = $SubjectModel->insert($_POST);
if ($result) {
session()->setFlashdata('success', 'Subject added successfully.');
return redirect()->to('subject');
} else {
session()->setFlashdata('error', 'Failed to add subject.');
}
}
}
return view('subject/add', $data);
}

public function edit($id)


{
helper('form');
$SubjectModel = new \App\Models\SubjectModel();
$SectionModel = new \App\Models\SectionModel();
$GradeLevelModel = new \App\Models\GradeLevelModel();
$StrandModel = new \App\Models\StrandModel();
$TeacherModel = new \App\Models\TeacherModel();
$SemesterModel = new \App\Models\SemesterModel();
201

$data = [];
$data['title'] = 'Subject / Edit';
$data['sections'] = $SectionModel->findAll();
$data['strands'] = $StrandModel->findAll();
$data['gradelevels'] = $GradeLevelModel->findAll();
$data['teachers'] = $TeacherModel->findAll();
$data['semesters'] = $SemesterModel->findAll();

$myid = session()->get('loginid');

$TeacherDetails = $TeacherModel->where("id", $myid)->first();

$data['role'] = $TeacherDetails->role;
$data['teacherowner_fullname'] = $TeacherDetails->firstname.' '.$TeacherDetails-
>middlename.' '.$TeacherDetails->lastname;
$data['teacherowner_id'] = $TeacherDetails->id;
// dd( $data['role'] );

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'Subject Name', 'rules' => 'required'],
'descr' => ['label' => 'School Year', 'rules' => 'required'],
'teacher_id' => ['label' => 'Teacher', 'rules' => 'required'],
'grade_level' => ['label' => 'Grade Level', 'rules' => 'required'],
'strand_id' => ['label' => 'Strand', 'rules' => 'required'],
'section' => ['label' => 'Section', 'rules' => 'required'],
'unit' => ['label' => 'Unit', 'rules' => 'required'],
'semester_id' => ['label' => 'Semester', 'rules' => 'required'],
'status' => ['label' => 'status', 'rules' => 'required'],
];
202

if (!$this->validate($rules)) {

$data['validation'] = $this->validator;
} else {

$update_data['name']=$_POST['name'];
$update_data['descr']=$_POST['descr'];
$update_data['teacher_id']=$_POST['teacher_id'];
$update_data['grade_level']=$_POST['grade_level'];
$update_data['strand_id']=$_POST['strand_id'];
$update_data['section']=$_POST['section'];
$update_data['unit']=$_POST['unit'];
$update_data['semester_id']=$_POST['semester_id'];
$update_data['status']=$_POST['status'];

$result=$SubjectModel->update($_POST['id'],$update_data);

if($result){
session()->setFlashdata('success', "Subject successfully updated.");
return redirect()->to('subject');
}else{
session()->setFlashdata('error', "Subject failed to update.");

}
}
}

$SubjectDetails=$SubjectModel
->where("md5(concat('edit',id))",$id)
->first();
203

if($SubjectDetails){
$_POST['id']=$SubjectDetails->id;
$_POST['name']=$SubjectDetails->name;
$_POST['descr']=$SubjectDetails->descr;
$_POST['grade_level']=$SubjectDetails->grade_level;
$_POST['teacher_id']=$SubjectDetails->teacher_id;
$_POST['strand_id']=$SubjectDetails->strand_id;
$_POST['section']=$SubjectDetails->section;
$_POST['unit']=$SubjectDetails->unit;
$_POST['semester_id']=$SubjectDetails->semester_id;
$_POST['status']=$SubjectDetails->status;

return view('subject/edit',$data);

}
<?php

namespace App\Controllers;

class Teacher extends BaseController


{
public function index()
{
$data['title'] = 'teacher';
$data['title_f'] = 'List of teachers';
$data['menu'] = 'Menu';

$TeacherModel = new \App\Models\TeacherModel();

// Start the query to get teachers


$query = $TeacherModel->where('role', 'teacher')
204

->orderBy('lastname', 'ASC');

// Retrieve search query


$searchQuery = $this->request->getGet('q');

if (!empty($searchQuery)) {
// Apply search filters to the teacher's underlying columns
$query = $query->groupStart() // Start grouping the conditions
->like('lastname', $searchQuery) // Match against the last name
->orLike('firstname', $searchQuery) // Match against the first name
->orLike('middlename', $searchQuery) // Match against the middle name
->orLike('username', $searchQuery) // Match against username (if applicable)
->groupEnd(); // End grouping the conditions
}

// Paginate results
$data['Users'] = $query->paginate(10); // 10 items per page
$data['pager'] = $TeacherModel->pager; // Get the pager for pagination
$data['searchQuery'] = $searchQuery;

return view('teacher/index', $data);

public function login()


{
dd("33");
return;
helper('form');
$TeacherModel = new \App\Models\TeacherModel();
$data=[];
205

if($this->request->getMethod()=='POST'){

$rules = [
'username' => ['label'=>"username",'rules'=>'required'],
'password' => ['label'=>"Password",'rules'=>'required'],

];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{
$result=$TeacherModel
->where('username',$_POST['username'])
->first();

if($result){

if(password_verify($_POST['password'],$result->password)){
session()->set('isLoggedIn', true);
session()->set('firstname', $result->firstname);
return redirect()->to('user');
}else{
session()->setFlashdata('error', "Invalid Credentials.");
}

}else{
session()->setFlashdata('error', "Invalid Credentials.");
}
}
}
return view('teacher/login',$data);
206

public function logout()


{
session()->destroy();
return redirect()->to('login');
}

public function add()


{
helper('form');
$TeacherModel = new \App\Models\TeacherModel();
$data=[];

$data['title'] = 'teacher / Add';


$data['title_f'] = 'Add teacher';
// $data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [

'lastname' => ['label'=>"Last Name",'rules'=>'required'],


'firstname' => ['label'=>"First Name",'rules'=>'required'],
207

'middlename' => ['label'=>"Middle Name",'rules'=>'permit_empty'],


// 'semester_id' => ['label'=>"username",'rules'=>'required'],
'role' => ['label'=>"role",'rules'=>'required'],
'username' => ['label'=>"User Name",'rules'=>'required|
is_unique[[Link]]'],
'password' => ['label'=>"Password",'rules'=>'required'],
'confirmpassword' => ['label'=>"Confirm
Password",'rules'=>'matches[password]'],
// 'status' => ['label'=>"status",'rules'=>'required'],

];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{
$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$_POST['password']=$password;
$result=$TeacherModel->insert($_POST);
if($result){
session()->setFlashdata('success', "Teacher successfully added.");
return redirect()->to('teacher');
}else{
session()->setFlashdata('error', "teacher failed to add.");

}
}
}
return view('teacher/add',$data);
}

public function edit($id)


{
208

helper('form');
$TeacherModel = new \App\Models\TeacherModel();
$data=[];

$data['title'] = 'teacher / Edit';


$data['title_f'] = 'Edit teacher';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'id' => ['label'=>"User ID",'rules'=>'required'],
'lastname' => ['label'=>"Last Name",'rules'=>'required'],
'firstname' => ['label'=>"First Name",'rules'=>'required'],
'middlename' => ['label'=>"Middle Name",'rules'=>'permit_empty'],
'username' => ['label'=>"username",'rules'=>'required|
is_unique[[Link],id,{id}]'],
'semester_id' => ['label'=>"username",'rules'=>'required'],
'role' => ['label'=>"role",'rules'=>'required'],
'password' => ['label'=>"Password",'rules'=>'permit_empty'],
'confirmpassword' => ['label'=>"Confirm
Password",'rules'=>'matches[password]'],
'status' => ['label'=>"status",'rules'=>'required'],

];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{
$update_data['lastname']=$_POST['lastname'];
$update_data['firstname']=$_POST['firstname'];
$update_data['middlename']=$_POST['middlename'];
209

$update_data['semester_id']=$_POST['semester_id'];
$update_data['role']=$_POST['role'];
$update_data['username']=$_POST['username'];
$update_data['status']=$_POST['status'];

if ($_POST['password']!=""){
$password=password_hash($_POST['password'],PASSWORD_DEFAULT);
$update_data['password']=$password;
}

$result=$TeacherModel->update($_POST['id'],$update_data);

if($result){
session()->setFlashdata('success', "User successfully updated.");
return redirect()->to('teacher');
}else{
session()->setFlashdata('error', "User failed to update.");

}
}
}
<?php

namespace App\Controllers;

use App\Models\TrackModel;

class Track extends BaseController

{
210

public function index()


{
$data['title'] = 'track';
$TrackModel = new TrackModel();
$data['datas'] = $TrackModel->findAll();
return view('track/index', $data);
}

public function add()


{
helper('form');
$TrackModel = new TrackModel();
$data = [];
$data['title'] = 'track / Add';

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'track Name', 'rules' => 'required'],
'descr' => ['label' => 'Description', 'rules' => 'required'],
];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {
$result = $TrackModel->insert($this->request->getPost());
if ($result) {
session()->setFlashdata('success', 'track added successfully.');
return redirect()->to('track');
} else {
session()->setFlashdata('error', 'Failed to add track.');
}
}
211

}
return view('track/add', $data);
}

public function edit($id)


{
helper('form');
$TrackModel = new TrackModel();
$data = [];
$data['title'] = 'Track / Edit';

if ($this->request->getMethod() == 'POST') {
$rules = [
'name' => ['label' => 'track Name', 'rules' => 'required'],
'descr' => ['label' => 'School Year', 'rules' => 'required'],

'status' => ['label' => 'status', 'rules' => 'required'],


];

if (!$this->validate($rules)) {
$data['validation'] = $this->validator;
} else {

$update_data['name']=$_POST['name'];
$update_data['descr']=$_POST['descr'];

$update_data['status']=$_POST['status'];

$result=$TrackModel->update($_POST['id'],$update_data);
212

if($result){
session()->setFlashdata('success', "track successfully updated.");
return redirect()->to('track');
}else{
session()->setFlashdata('error', "track failed to update.");

}
}
}

$trackDetails=$TrackModel
->where("md5(concat('edit',id))",$id)
->first();

if($trackDetails){
$_POST['id']=$trackDetails->id;
$_POST['name']=$trackDetails->name;
$_POST['descr']=$trackDetails->descr;

$_POST['status']=$trackDetails->status;

return view('track/edit',$data);

}
session()->setFlashdata('error', 'track not found.');
return redirect()->to('track');

public function delete($id)


{
helper('form');
213

$TrackModel = new TrackModel();


$data=[];

$data['title'] = 'track / Delete';


$data['title_f'] = 'track';
$data['menu'] = 'Menu';

if($this->request->getMethod()=='POST'){

$rules = [
'id' => ['label'=>"track ID",'rules'=>'required'],
];

if(!$this->validate($rules)){
// dd($this->validator);
$data['validation']=$this->validator;
}else{

$result=$TrackModel->delete([$_POST['id']]);

if($result){
session()->setFlashdata('success', "track successfully deleted.");
return redirect()->to('track');
}else{
session()->setFlashdata('error', "track failed to delete.");

}
}
}

$trackDetails=$TrackModel
->where("md5(concat('delete',id))",$id)
214

->first();
if($trackDetails){
$_POST['id']=$trackDetails->id;
$_POST['name']=$trackDetails->name;
$_POST['descr']=$trackDetails->descr;

return view('track/delete',$data);

session()->setFlashdata('error', "track not found.");


return redirect()->to('track');
}

You might also like