EVOLUTION-NINJA
Edit File: Master.php
<?php namespace App\Controllers; use App\Models\Gss_model; use App\Models\Branch_model; use CodeIgniter\I18n\Time; class Master extends BaseController { public function index() { return view('admin/login'); } public function access_id() { $gss_model = new Gss_model(); $id=session()->get('admin_id'); $table='gss_login'; $where=array('user_id'=>$id); $d=$gss_model->get_where_row($table,$where); return $d->user_type_id; } public function access_details() { $gss_model = new Gss_model(); $id=session()->get('admin_id'); $table='gss_login'; $where=array('user_id'=>$id); $d=$gss_model->get_where_row($table,$where); $data['user_type_id']=$d->user_type_id; $table='gss_access_controls'; $where=array('department_id'=>$data['user_type_id']); return $gss_model->get_where_result($table,$where); } public function branches() { $admin_id = session()->get('admin_id'); if($admin_id) { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/branches',$data); } else { redirect('/'); } } public function add_branch() { $branches=new Branch_model(); $branch = $this->request->getpost('branch'); $created_at = Time::now('Asia/Kolkata')->format('Y-m-d H:i:s'); // $table = 'gss_branches'; $data = [ 'branch' => ucfirst($branch), 'delete_status' => 'ACTIVE', 'created_at' => $created_at ]; $branches_exit= $branches->check_branch_exists($branch); if($branches_exit) { echo json_encode(array('result'=>2,'message'=>"Branch already exists")); } else { $result = $branches->insert($data); if($result) { echo json_encode(array('result'=>1,'message'=>"Branch added successfully")); } else { echo json_encode(array('result'=>0,'message'=>"Something went wrong.. try again")); } } } public function get_branches_master() { $db = \Config\Database::connect(); $result = $db->table('gss_branches') ->where('delete_status', 'ACTIVE') ->get() ->getResult(); // Fetch results return $this->response->setJSON($result ?: ['result' => 0]); // Return JSON } public function departments() { $admin_id = session()->get('admin_id'); if($admin_id) { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/departments',$data); } else { redirect('/'); } } public function department_list() { $db = \Config\Database::connect(); // Connect to DB $result = $db->table('gss_user_type') ->where('delete_status', 'ACTIVE') ->where('user_type_id !=', '1') ->get() ->getResult(); // Fetch results if ($result) { return $this->response->setJSON($result); } else { return $this->response->setJSON(['result' => 0]); } } public function web_portals() { $admin_id = session()->get('admin_id'); if($admin_id) { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/webportal_form',$data); } else { redirect('/'); } } public function web_portal_list() { $db = \Config\Database::connect(); $result = $db->table('gss_webportals') ->where('delete_status', 'ACTIVE') ->orderBy('webportal', 'ASC') ->get() ->getResult(); return $this->response->setJSON($result ?: ['result' => 0]); } public function database_list() { $db = \Config\Database::connect(); $result = $db->table('gss_database') ->where('delete_status', 'ACTIVE') ->orderBy('database_name', 'ASC') ->get() ->getResult(); return $this->response->setJSON($result ?: ['result' => 0]); } public function completed_projects() { $session = session(); $admin_id = $session->get('admin_id'); if (!$admin_id) { return redirect()->to('/'); // Redirect if not logged in } $db = \Config\Database::connect(); // Connect to Database $data['owners'] = $db->table('gss_new_projects') ->where('delete_status', 'ACTIVE') ->get() ->getResult(); // Fetch projects $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/completed_project_form', $data); // Load the view } public function completed_projects_list() { $db = \Config\Database::connect(); // Connect to Database // Fetch Completed Projects $projects = $db->table('gss_new_projects A') ->select('A.*, A.project_name as land_project') ->where('A.delete_status', 'ACTIVE') ->where('A.project_status', 'COMPLETED') ->orderBy('A.project_id', 'DESC') ->get() ->getResult(); $array = []; foreach ($projects as $val) { $data = [ 'project_id' => $val->project_id, 'land_project' => $val->land_project, 'land_owner_id' => $val->land_owner_id, 'marketing' => $val->marketing, 'project_status' => $val->project_status, 'site_type' => $val->site_type, 'conversion_image' => $val->conversion_image, 'approval_image' => $val->approval_image, 'owner' => "" ]; // Fetch Owner Name If land_owner_id > 0 if ($val->land_owner_id != 0) { $owner = $db->table('gss_land_owners B') ->select('B.name as owner') ->where('B.delete_status', 'ACTIVE') ->where('B.owner_id', $val->land_owner_id) ->get() ->getRow(); $data['owner'] = $owner ? $owner->owner : ""; } $array[] = $data; } return $this->response->setJSON($array ?: ['result' => 0]); } public function site_availabilities() { $admin_id = session()->get('admin_id'); $db = \Config\Database::connect(); if($admin_id) { $data['projects']=$db->table('gss_new_projects') ->where('delete_status','Active') ->where('project_status','ONGOING') ->orderBy('project_name','ASC') ->get() ->getResult(); $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/site_available_form',$data); } else { redirect('/'); } } public function get_approved_plan() { $db = \Config\Database::connect(); // Connect to Database $project_id = $this->request->getPost('project_id'); // Get POST data if (!$project_id) { return $this->response->setJSON(['result' => 0, 'message' => 'Project ID is required']); } // Fetch approved plan data $result = $db->table('gss_new_projects') ->where('project_id', $project_id) ->where('delete_status', 'ACTIVE') ->where('project_status', 'ONGOING') ->get() ->getRow(); if ($result) { return $this->response->setJSON(['approved_plan' => $result, 'result' => 1]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Approved plan not found']); } } public function single_project_sites() { $db = \Config\Database::connect(); // Connect to Database $project_id = $this->request->getPost('project_id'); // Get POST data if (!$project_id) { return $this->response->setJSON(['result' => 0, 'message' => 'Project ID is required']); } // Fetch sites related to the project $result = $db->table('gss_new_sites') ->where('project_id', $project_id) ->orderBy('site_number', 'ASC') ->get() ->getResult(); if ($result) { return $this->response->setJSON(['result' => 1, 'sites' => $result]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No sites found']); } } public function vendor_details() { $admin_id = session()->get('admin_id'); if($admin_id) { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/add_vendor',$data); } else { redirect('/'); } } public function vendor_list() { $db = \Config\Database::connect(); $result = $db->table('gss_vendor_details') ->where('delete_status', 'ACTIVE') ->orderBy('id', 'DESC') // Change to 'DESC' if needed ->get() ->getResult(); return $this->response->setJSON($result ?: ['result' => 0]); } public function bank_details() { $admin_id = session()->get('admin_id'); // print_r($admin_id); // die(); if($admin_id) { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/add_bankdetails',$data); } else { redirect('/'); } } public function bank_list() { $db = \Config\Database::connect(); $result = $db->table('gss_bank_details') ->where('delete_status', 'ACTIVE') ->orderBy('id', 'DESC') // Change to 'DESC' if needed ->get() ->getResult(); return $this->response->setJSON($result ?: ['result' => 0]); } public function product_details() { $admin_id = session()->get('admin_id'); if($admin_id) { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/add_product_details',$data); } else { redirect('/'); } } public function product_list() { $db = \Config\Database::connect(); $result = $db->table('gss_product_details') ->where('delete_status', 'ACTIVE') ->orderBy('id', 'DESC') // Change to 'DESC' if needed ->get() ->getResult(); return $this->response->setJSON($result ?: ['result' => 0]); } public function service_details() { $admin_id = session()->get('admin_id'); if($admin_id) { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/add_services',$data); } else { redirect('/'); } } public function service_list() { $db = \Config\Database::connect(); $result = $db->table('gss_service_details') ->where('delete_status', 'ACTIVE') ->orderBy('id', 'DESC') ->get() ->getResult(); return $this->response->setJSON($result ?: ['result' => 0]); } public function project_master() { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/add_project_master',$data); } public function other_project_list() { $db = \Config\Database::connect(); $result = $db->table('gss_project_master') ->where('delete_status', 'ACTIVE') ->orderBy('id', 'DESC') ->get() ->getResult(); return $this->response->setJSON($result ?: ['result' => 0]); } public function ownership_master() { $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/add_ownership_master',$data); } public function other_ownership_list() { $db = \Config\Database::connect(); $result = $db->table('gss_project_ownership') ->where('delete_status', 'ACTIVE') ->orderBy('id', 'DESC') ->get() ->getResult(); return $this->response->setJSON($result ?: ['result' => 0]); } public function delete_branch() { $table = 'gss_branches'; $branch_id = $this->request->getPost('branch_id'); if (!$branch_id) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid branch ID']); } $db = \Config\Database::connect(); $builder = $db->table($table); $branch = $builder->select('delete_status')->where('branch_id', $branch_id)->get()->getRow(); if (!$branch) { return $this->response->setJSON(['result' => 0, 'message' => 'Branch ID does not exist']); } if ($branch->delete_status == 'INACTIVE') { return $this->response->setJSON(['result' => 0, 'message' => 'Already deleted']); } $builder->set('delete_status', 'INACTIVE'); $builder->where('branch_id', $branch_id); $builder->update(); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made']); } } public function delete_usertype() { $user_type_id = $this->request->getPost('user_type_id'); if (!$user_type_id) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid User Type ID']); } $db = \Config\Database::connect(); $builder = $db->table('gss_user_type'); $builder->where('user_type_id', $user_type_id)->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made']); } } public function add_department() { $department = $this->request->getPost('department'); if (!$department) { return $this->response->setJSON(['result' => 0, 'message' => 'Department name is required']); } $created_at = date('Y-m-d H:i:s'); // Get current timestamp $db = \Config\Database::connect(); $builder = $db->table('gss_user_type'); // Check if the department already exists $exists = $builder->where('user_type', ucfirst($department))->countAllResults(); if ($exists > 0) { return $this->response->setJSON(['result' => 2, 'message' => "Department already exists"]); } // Insert new department $data = [ 'user_type' => ucfirst($department), 'delete_status' => 'ACTIVE', 'created_at' => $created_at ]; $inserted = $builder->insert($data); if ($inserted) { return $this->response->setJSON(['result' => 1, 'message' => "Department added successfully"]); } else { return $this->response->setJSON(['result' => 0, 'message' => "Something went wrong.. try again"]); } } public function delete_access() { $user_id = $this->request->getPost('user_id'); if (!$user_id) { return $this->response->setJSON(['result' => 0, 'message' => 'User ID is required']); } $db = \Config\Database::connect(); $builder = $db->table('gss_login'); // Update delete_status to 'INACTIVE' $builder->where('user_id', $user_id)->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made or invalid user ID']); } } public function add_webportals() { $webportal = $this->request->getPost('webportal'); if (!$webportal) { return $this->response->setJSON(['result' => 0, 'message' => 'Webportal name is required']); } $db = \Config\Database::connect(); $builder = $db->table('gss_webportals'); // Check if webportal already exists $exists = $builder->where(['webportal' => $webportal, 'delete_status' => 'ACTIVE'])->countAllResults(); if ($exists > 0) { return $this->response->setJSON(['result' => 2, 'message' => 'Webportal already exists']); } // Insert new webportal $data = [ 'webportal' => ucfirst($webportal), 'delete_status' => 'ACTIVE', 'created_at' => date('Y-m-d H:i:s') ]; $insert = $builder->insert($data); if ($insert) { return $this->response->setJSON(['result' => 1, 'message' => 'Webportal added successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Something went wrong.. try again']); } } public function add_database() { $database_name = $this->request->getPost('database'); if (!$database_name) { return $this->response->setJSON(['result' => 0, 'message' => 'Database name is required']); } $db = \Config\Database::connect(); $builder = $db->table('gss_database'); // Check if database already exists $exists = $builder->where(['database_name' => $database_name, 'delete_status' => 'ACTIVE'])->countAllResults(); if ($exists > 0) { return $this->response->setJSON(['result' => 2, 'message' => 'Database already exists']); } // Insert new database record $data = [ 'database_name' => ucfirst($database_name), 'delete_status' => 'ACTIVE', 'created_at' => date('Y-m-d H:i:s') ]; $insert = $builder->insert($data); if ($insert) { return $this->response->setJSON(['result' => 1, 'message' => 'Database added successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Something went wrong.. try again']); } } public function delete_portal() { $portal_id = $this->request->getPost('portal_id'); // Get input safely if (empty($portal_id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid Portal ID']); } $db = \Config\Database::connect(); // Load database connection $builder = $db->table('gss_webportals'); $builder->where('portal_id', $portal_id) ->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made or portal not found']); } } public function delete_database() { $database_id = $this->request->getPost('database_id'); // Securely fetch input if (empty($database_id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid Database ID']); } $db = \Config\Database::connect(); // Load database connection $builder = $db->table('gss_database'); $builder->where('database_id', $database_id) ->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made or database not found']); } } public function delete_vendor_details() { $id = $this->request->getPost('id'); // Securely fetch input if (empty($id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid Vendor ID']); } $db = \Config\Database::connect(); // Load database connection $builder = $db->table('gss_vendor_details'); $builder->where('id', $id) ->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made or vendor not found']); } } public function add_vendor_details() { $db = \Config\Database::connect(); // Load database connection $builder = $db->table('gss_vendor_details'); $vendor_name = $this->request->getPost('vendor_name'); $company_name = $this->request->getPost('company_name'); $contact1 = $this->request->getPost('contact1'); $contact2 = $this->request->getPost('contact2'); $email = $this->request->getPost('email'); $company_address = $this->request->getPost('company_address'); $gstin = $this->request->getPost('gstin'); $bank_name = $this->request->getPost('bank_name'); $acc_no = $this->request->getPost('acc_no'); $ifsc = $this->request->getPost('ifsc'); $bank_address = $this->request->getPost('bank_address'); // File Upload Handling $uploadedFiles = $this->request->getFiles(); $filePaths = []; if (!empty($uploadedFiles['file_upload'])) { foreach ($uploadedFiles['file_upload'] as $file) { if ($file->isValid() && !$file->hasMoved()) { $newName = time() . '_' . $file->getRandomName(); $file->move('public/vendor_details_uploads/', $newName); $filePaths[] = $newName; } } } $file_doc = !empty($filePaths) ? json_encode($filePaths) : ''; $date = new \DateTime('now', new \DateTimeZone('Asia/Kolkata')); $created_at = $date->format('Y-m-d H:i:s'); $data = [ 'vendor_name' => $vendor_name, 'company_name' => $company_name, 'phone_one' => $contact1, 'phone_two' => $contact2, 'email' => $email, 'company_address' => $company_address, 'gstin' => $gstin, 'bank_name' => $bank_name, 'account_no' => $acc_no, 'ifsc_coce' => $ifsc, 'bank_address' => $bank_address, 'upload_files' => $file_doc, 'modified_at' => $created_at, 'created_at' => $created_at, 'delete_status' => 'ACTIVE' ]; // Check if record already exists $existingRecord = $builder->where([ 'vendor_name' => $vendor_name, 'company_name' => $company_name, 'phone_one' => $contact1, 'phone_two' => $contact2, 'email' => $email, 'company_address' => $company_address, 'gstin' => $gstin, 'bank_name' => $bank_name, 'account_no' => $acc_no, 'ifsc_coce' => $ifsc, 'bank_address' => $bank_address ])->get()->getRowArray(); if (empty($existingRecord)) { $builder->insert($data); return $this->response->setJSON(['result' => 1, 'message' => 'Added successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data Already Exists']); } } public function add_bank_details() { $db = \Config\Database::connect(); // Load database connection $builder = $db->table('gss_bank_details'); $acc_name_holder = $this->request->getPost('acc_name_holder'); $acc_holder = $this->request->getPost('acc_holder'); $acc_holder_address = $this->request->getPost('acc_holder_address'); $acc_no = $this->request->getPost('acc_no'); $pan_no = $this->request->getPost('pan_no'); $gst_no = $this->request->getPost('gst_no'); $ifsc = $this->request->getPost('ifsc'); $branch_name = $this->request->getPost('branch_name'); $address = $this->request->getPost('address'); $created_at = date('Y-m-d H:i:s'); $data = [ 'holder_name' => $acc_holder, 'holder_address' => $acc_holder_address, 'bank_name' => $acc_name_holder, 'acc_no' => $acc_no, 'pan_no' => $pan_no, 'gst_no' => $gst_no, 'ifsc' => $ifsc, 'bank_branch' => $branch_name, 'bank_address' => $address, 'modified_at' => $created_at, 'created_at' => $created_at, 'delete_status' => 'ACTIVE' ]; // Check if record already exists $existingRecord = $builder->where([ 'bank_name' => $acc_name_holder, 'acc_no' => $acc_no, 'delete_status' => 'ACTIVE' ])->get()->getRowArray(); if (empty($existingRecord)) { $builder->insert($data); return $this->response->setJSON(['result' => 1, 'message' => 'Added successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data Already Exists']); } } public function delete_bank_details() { $id = $this->request->getPost('id'); if (!$id) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $db = \Config\Database::connect(); $builder = $db->table('gss_bank_details'); $builder->where('id', $id) ->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made']); } } public function get_bank_details() { $id = $this->request->getPost('id'); if (!$id) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $db = \Config\Database::connect(); $builder = $db->table('gss_bank_details'); $result = $builder->where('id', $id)->get()->getRowArray(); if ($result) { return $this->response->setJSON(['result' => 1, 'message' => $result]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data not found']); } } public function add_product_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_product_details'); $pro_name = $this->request->getPost('pro_name'); $pro_description = $this->request->getPost('pro_description'); $pro_dept = $this->request->getPost('pro_dept'); $pro_currency = $this->request->getPost('pro_currency'); $date = new \DateTime('now', new \DateTimeZone('Asia/Kolkata')); $created_at = $date->format('Y-m-d H:i:s'); $data = [ 'product_name' => $pro_name, 'description' => $pro_description, 'deptartment' => $pro_dept, 'currency' => $pro_currency, 'modified_at' => $created_at, 'created_at' => $created_at, 'delete_status'=> 'ACTIVE' ]; $existingProduct = $builder->where([ 'product_name' => $pro_name, 'description' => $pro_description, 'deptartment' => $pro_dept ])->get()->getRowArray(); if (empty($existingProduct)) { $builder->insert($data); return $this->response->setJSON(['result' => 1, 'message' => 'Added successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data Already Exists']); } } public function delete_product_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_product_details'); $id = $this->request->getPost('id'); // Update delete_status to INACTIVE $builder->where('id', $id)->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Failed to delete']); } } public function add_service_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_service_details'); $pro_name = $this->request->getPost('pro_name'); $pro_description = $this->request->getPost('pro_description'); $pro_dept = $this->request->getPost('pro_dept'); $pro_currency = $this->request->getPost('pro_currency'); $created_at = date('Y-m-d H:i:s', time()); $data = [ 'product_name' => $pro_name, 'description' => $pro_description, 'deptartment' => $pro_dept, 'currency' => $pro_currency, 'modified_at' => $created_at, 'created_at' => $created_at, 'delete_status' => 'ACTIVE' ]; // Check if the service already exists $condition = [ 'product_name' => $pro_name, 'description' => $pro_description, 'deptartment' => $pro_dept ]; $existingData = $builder->where($condition)->get()->getRowArray(); if (empty($existingData)) { $builder->insert($data); return $this->response->setJSON(['result' => 1, 'message' => 'Added successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data Already Exists']); } } public function delete_service_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_service_details'); $id = $this->request->getPost('id'); if (!$id) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $builder->where('id', $id)->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Deletion failed']); } } public function add_project_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_project_master'); $pro_name = $this->request->getPost('pro_name'); $pro_description = $this->request->getPost('pro_description'); $no_of_years = $this->request->getPost('no_of_years'); $per_sq_ft = $this->request->getPost('per_sq_ft'); if (empty($pro_name) || empty($pro_description) || empty($no_of_years) || empty($per_sq_ft)) { return $this->response->setJSON(['result' => 0, 'message' => 'All fields are required']); } $existingProject = $builder->where([ 'project_name' => $pro_name, 'description' => $pro_description, 'no_of_years' => $no_of_years, 'per_sq_ft' => $per_sq_ft, 'delete_status' => 'ACTIVE' ])->get()->getRow(); if ($existingProject) { return $this->response->setJSON(['result' => 0, 'message' => 'Data Already Exists']); } $data = [ 'project_name' => $pro_name, 'description' => $pro_description, 'no_of_years' => $no_of_years, 'per_sq_ft' => $per_sq_ft, 'delete_status' => 'ACTIVE' ]; $builder->insert($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Added successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Insertion failed']); } } public function delete_project_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_project_master'); $id = $this->request->getPost('id'); if (empty($id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $builder->where('id', $id)->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Deletion failed or ID not found']); } } public function add_ownership_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_project_ownership'); $ownership_name = $this->request->getPost('ownership_name'); // Validate input if (empty($ownership_name)) { return $this->response->setJSON(['result' => 0, 'message' => 'Ownership name is required']); } // Check if the record already exists $existing = $builder->where(['project_ownership' => $ownership_name, 'delete_status' => 'ACTIVE'])->get()->getRow(); if ($existing) { return $this->response->setJSON(['result' => 0, 'message' => 'Data Already Exists']); } // Insert data $data = [ 'project_ownership' => $ownership_name, 'delete_status' => 'ACTIVE' ]; $builder->insert($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Added successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Failed to add data']); } } public function delete_ownership_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_project_ownership'); $id = $this->request->getPost('id'); if (empty($id) || !is_numeric($id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $builder->where('id', $id)->update(['delete_status' => 'INACTIVE']); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Deleted successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Delete failed or record not found']); } } public function update_branch() { $db = \Config\Database::connect(); $request = service('request'); $branch_id = $request->getPost('branch_id'); $branch = $request->getPost('branch'); $updated_at = date('Y-m-d H:i:s', time()); $data = [ 'branch' => $branch, 'updated_at' => $updated_at ]; $builder = $db->table('gss_branches'); $builder->where('branch_id', $branch_id); $builder->update($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => "Updated successfully"]); } else { return $this->response->setJSON(['result' => 0, 'message' => "Failed to update. Try again"]); } } public function update_department() { $db = \Config\Database::connect(); $request = service('request'); $user_type_id = $request->getPost('user_type_id'); $department = $request->getPost('department'); $updated_at = date('Y-m-d H:i:s', time()); $data = [ 'user_type' => $department, 'updated_at' => $updated_at ]; $builder = $db->table('gss_user_type'); $builder->where('user_type_id', $user_type_id); $builder->update($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => "Updated successfully"]); } else { return $this->response->setJSON(['result' => 0, 'message' => "Failed to update. Try again"]); } } public function update_webportal() { $db = \Config\Database::connect(); $portal_id = $this->request->getPost('portal_id'); $webportal = $this->request->getPost('webportal'); $updated_at = date('Y-m-d H:i:s'); // Set timezone $builder = $db->table('gss_webportals'); $builder->where('portal_id', $portal_id) ->update(['webportal' => $webportal, 'updated_at' => $updated_at]); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => "Updated successfully"]); } else { return $this->response->setJSON(['result' => 0, 'message' => "Failed to update. Try again"]); } } public function update_database() { $db = \Config\Database::connect(); $request = service('request'); $database_id = $request->getPost('database_id'); $database_name = $request->getPost('database'); $updated_at = date('Y-m-d H:i:s'); // Set timezone $builder = $db->table('gss_database'); $builder->where('database_id', $database_id) ->update(['database_name' => $database_name, 'update_at' => $updated_at]); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => "Updated successfully"]); } else { return $this->response->setJSON(['result' => 0, 'message' => "Failed to update. Try again"]); } } public function get_vendor_details() { $db = \Config\Database::connect(); $id = $this->request->getPost('id'); $builder = $db->table('gss_vendor_details'); $result = $builder->where('id', $id)->get()->getRowArray(); if ($result) { return $this->response->setJSON(['result' => 1, 'message' => $result]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data not found']); } } public function update_bank_details() { $db = \Config\Database::connect(); $request = service('request'); $id = $request->getPost('edit_id'); $data = [ 'holder_name' => $request->getPost('acc_holder_update'), 'holder_address' => $request->getPost('acc_holder_address_update'), 'bank_name' => $request->getPost('acc_name_holder_update'), 'acc_no' => $request->getPost('acc_no_update'), 'pan_no' => $request->getPost('pan_no_update'), 'gst_no' => $request->getPost('gst_no_update'), 'ifsc' => $request->getPost('ifsc_update'), 'bank_branch' => $request->getPost('branch_name_update'), 'bank_address' => $request->getPost('address_update'), 'modified_at' => date('Y-m-d H:i:s', time()), // CI4 recommended format 'delete_status' => 'ACTIVE' ]; $builder = $db->table('gss_bank_details'); $builder->where('id', $id); $builder->update($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Updated successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made or update failed']); } } public function get_product_details() { $db = \Config\Database::connect(); // $request = service('request'); $id = $this->request->getPost('id'); $builder = $db->table('gss_product_details'); $builder->where('id', $id); $query = $builder->get(); $result = $query->getRowArray(); // Fetch a single row as an associative array if ($result) { return $this->response->setJSON(['result' => 1, 'message' => $result]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data not found']); } } public function update_product_details() { $db = \Config\Database::connect(); $id = $this->request->getPost('edit_id'); $pro_name = $this->request->getPost('pro_name'); $pro_description = $this->request->getPost('pro_description'); $pro_dept = $this->request->getPost('pro_dept'); $pro_currency = $this->request->getPost('pro_currency'); $modified_at = date('Y-m-d H:i:s'); $data = [ 'product_name' => $pro_name, 'description' => $pro_description, 'deptartment' => $pro_dept, 'currency' => $pro_currency, 'modified_at' => $modified_at, 'delete_status' => 'ACTIVE' ]; $builder = $db->table('gss_product_details'); $builder->where('id', $id); $builder->update($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Updated successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made or update failed']); } } public function get_service_details() { $db = \Config\Database::connect(); $id = $this->request->getPost('id'); if (empty($id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $builder = $db->table('gss_service_details'); $query = $builder->getWhere(['id' => $id]); $result = $query->getRowArray(); if ($result) { return $this->response->setJSON(['result' => 1, 'message' => $result]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data not found']); } } public function update_service_details() { $db = \Config\Database::connect(); $id = $this->request->getPost('edit_id'); $pro_name = $this->request->getPost('pro_name'); $pro_description = $this->request->getPost('pro_description'); $pro_dept = $this->request->getPost('pro_dept'); $pro_currency = $this->request->getPost('pro_currency'); if (empty($id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $modified_at = date('Y-m-d H:i:s'); $data = [ 'product_name' => $pro_name, 'description' => $pro_description, 'deptartment' => $pro_dept, 'currency' => $pro_currency, 'modified_at' => $modified_at, 'delete_status' => 'ACTIVE' ]; $builder = $db->table('gss_service_details'); $builder->where('id', $id); $builder->update($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Updated successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made or update failed']); } } public function get_other_project() { $db = \Config\Database::connect(); $request = service('request'); $id = $request->getPost('id'); if (empty($id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $builder = $db->table('gss_project_master'); $result = $builder->where('id', $id)->get()->getRowArray(); if ($result) { return $this->response->setJSON(['result' => 1, 'message' => $result]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data not found']); } } public function update_project_details() { $db = \Config\Database::connect(); $request = service('request'); $id = $request->getPost('edit_id'); $pro_name = $request->getPost('pro_name'); $pro_description = $request->getPost('pro_description'); $no_of_years = $request->getPost('no_of_years'); $per_sq_ft = $request->getPost('per_sq_ft'); if (empty($id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $data = [ 'project_name' => $pro_name, 'description' => $pro_description, 'no_of_years' => $no_of_years, 'per_sq_ft' => $per_sq_ft, 'delete_status' => 'ACTIVE' ]; $builder = $db->table('gss_project_master'); $builder->where('id', $id)->update($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Updated successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made']); } } public function get_ownership_details() { $db = \Config\Database::connect(); $id = $this->request->getPost('id'); if (empty($id)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid ID']); } $builder = $db->table('gss_project_ownership'); $result = $builder->where('id', $id)->get()->getRowArray(); if ($result) { return $this->response->setJSON(['result' => 1, 'message' => $result]); } else { return $this->response->setJSON(['result' => 0, 'message' => 'Data not found']); } } public function update_ownership_details() { $db = \Config\Database::connect(); $id = $this->request->getPost('edit_id'); $ownership_name = $this->request->getPost('ownership_name'); if (empty($id) || empty($ownership_name)) { return $this->response->setJSON(['result' => 0, 'message' => 'Invalid input']); } $data = [ 'project_ownership' => $ownership_name, 'delete_status' => 'ACTIVE' ]; $builder = $db->table('gss_project_ownership'); $builder->where('id', $id)->update($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Updated successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes made or update failed']); } } public function sites_status_list() { $project_id = $this->request->getPost('project_id'); // Use getPost() in CI4 $db = \Config\Database::connect(); // Get the database instance // Fetch sites with ACTIVE delete_status $builder = $db->table('gss_new_sites'); $builder->select('*'); $builder->where('delete_status', 'ACTIVE'); $builder->where('project_id', $project_id); $query = $builder->get(); $result = $query->getResult(); $array = []; foreach ($result as $val) { $data = [ 'site_id' => $val->site_id, 'site_number' => $val->site_number, 'rel_status' => $val->status ]; // Fetch related booking status $bookingBuilder = $db->table('gss_bookings A'); $bookingBuilder->select('A.*, B.*, C.*'); $bookingBuilder->join('gss_new_projects B', 'B.project_id = A.project_id'); $bookingBuilder->join('gss_booking_details C', 'C.booking_id = A.booking_id'); $bookingBuilder->where('A.delete_status', 'ACTIVE'); $bookingBuilder->where('B.delete_status', 'ACTIVE'); $bookingBuilder->where('C.delete_status', 'ACTIVE'); $bookingBuilder->where('C.site_number', $val->site_number); $bookingBuilder->where('C.project_id', $project_id); $bookingBuilder->whereNotIn('A.booking_status', ['CANCELLED', 'REFUNDED']); $site_result = $bookingBuilder->get()->getRow(); $data['site_status'] = $site_result ? $site_result->booking_status : $val->status; $array[] = $data; } // Return JSON response return $this->response->setJSON([ 'site_status_list' => $array, 'result' => !empty($array) ? 1 : 0 ]); } public function project_details($site_number, $project_id) { $db = \Config\Database::connect(); $query = $db->table('gss_new_sites A') ->select('A.*, B.*') ->join('gss_new_projects B', 'B.project_id = A.project_id') ->where('A.delete_status', 'ACTIVE') ->where('B.delete_status', 'ACTIVE') ->where('A.site_number', $site_number) ->where('A.project_id', $project_id) ->get(); return $query->getRow(); // Fetch single row } public function test($project_id, $site_number) { $db = \Config\Database::connect();// Connect to database $query = $db->table('gss_booking_details A') ->select('A.*, A.detail_id as d_id, B.*, B.booking_id as b_id, C.*, C.booking_id as c_bid, A.confirming_party1 as confirming_party, D.status as d_status') ->join('gss_bookings B', 'B.booking_id = A.booking_id') ->join('gss_plot_payments C', 'C.booking_id = A.booking_id', 'left') ->join('gss_new_sites D', 'D.project_id = A.project_id AND D.site_number = A.site_number') ->where('A.delete_status', 'ACTIVE') ->where('B.delete_status', 'ACTIVE') ->where('B.booking_status', 'BOOKED') ->where('A.site_number', $site_number) ->where('A.project_id', $project_id) ->get(); return $query->getRow(); // Return single row object } public function new_site_details() { $gss_model= New Gss_Model(); $session = session(); // Load session $admin_id = $session->get('admin_id'); // Get session data if (!$admin_id) { return redirect()->to('/'); } $uri = service('uri'); // Get URI service $project_id = $uri->getSegment(2); $site_number = $uri->getSegment(3); $data['site_number'] = $site_number; $data['project'] = $this->project_details($site_number, $project_id); $project_result = $data['project']; if ($project_result) { $check_site = $this->test($project_result->project_id, $site_number); if ($check_site) { $site_result = $gss_model->get_where_row('gss_bookings', [ 'delete_status' => 'ACTIVE', 'booking_id' => $check_site->booking_id ]); if ($site_result) { $data['booking_status'] = $site_result->booking_status; } } } $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/new_site_details', $data); } public function project_all_site_details($project_id) { $db = \Config\Database::connect(); $query = $db->table('gss_new_sites A') ->select('A.*, B.*') ->join('gss_new_projects B', 'B.project_id = A.project_id') ->where('A.delete_status', 'ACTIVE') ->where('B.delete_status', 'ACTIVE') ->where('A.project_id', $project_id) ->orderBy('ABS(A.site_number)', 'ASC') ->get(); return $query->getResult(); // Return multiple rows } public function get_project_based_all_sites($project_id) { $session = session(); $admin_id = $session->get('admin_id'); if ($admin_id) { $data['project'] = $this->project_all_site_details($project_id); $data['user_type_id'] = $this->access_id(); $data['access'] = $this->access_details(); return view('admin/download_all_sites_page', $data); } else { return redirect()->to('/'); } } public function update_vendor_details() { $db = \Config\Database::connect(); $builder = $db->table('gss_vendor_details'); $id = $this->request->getPost('edit_id'); if (!$id) { echo json_encode(['result' => 0, 'message' => 'Invalid ID']); return; } // Fetch existing record $existingRecord = $builder->where('id', $id)->get()->getRow(); // Handle existing file uploads $existingFiles = []; if ($existingRecord && !empty($existingRecord->upload_files)) { $existingFiles = json_decode($existingRecord->upload_files, true); } // Handle new file uploads $uploadedFiles = []; if ($this->request->getFileMultiple('file_upload_update')) { foreach ($this->request->getFileMultiple('file_upload_update') as $file) { if ($file->isValid() && !$file->hasMoved()) { $newFileName = time() . '_' . $file->getClientName(); $file->move('public/vendor_details_uploads', $newFileName); $uploadedFiles[] = $newFileName; } } } // Merge old and new files $finalFiles = array_merge($existingFiles, $uploadedFiles); $allDocs = json_encode($finalFiles); // Update data $data = [ 'vendor_name' => $this->request->getPost('vendor_name_update'), 'company_name' => $this->request->getPost('company_name_update'), 'phone_one' => $this->request->getPost('contact1_update'), 'phone_two' => $this->request->getPost('contact2_update'), 'email' => $this->request->getPost('email_update'), 'company_address' => $this->request->getPost('company_address_update'), 'gstin' => $this->request->getPost('gstin_update'), 'bank_name' => $this->request->getPost('bank_name_update'), 'account_no' => $this->request->getPost('acc_no_update'), 'ifsc_coce' => $this->request->getPost('ifsc_update'), 'bank_address' => $this->request->getPost('bank_address_update'), 'modified_at' => date('Y-m-d H:i:s'), 'delete_status' => 'ACTIVE', 'upload_files' => $allDocs ]; // Perform update $builder->where('id', $id)->update($data); if ($db->affectedRows() > 0) { return $this->response->setJSON(['result' => 1, 'message' => 'Updated successfully']); } else { return $this->response->setJSON(['result' => 0, 'message' => 'No changes detected']); } } }?>