diff --git a/app/Config/Routes.php b/app/Config/Routes.php index afca9dd..b6cff28 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -98,6 +98,7 @@ $routes->get("download_jobcard/(:any)", "Jobcard::download_jobcard/$1"); $routes->get("download_os", "Jobcard::download_os"); $routes->get("individual_download_os/(:any)", "Jobcard::individual_download_os/$1"); $routes->post("getServices", "Jobcard::getServices"); +$routes->post('deleteJobCardFile', 'Jobcard::deleteJobCardFile'); //End Job Card // //Client// diff --git a/app/Controllers/Jobcard.php b/app/Controllers/Jobcard.php index 96d9a04..acf8b8f 100755 --- a/app/Controllers/Jobcard.php +++ b/app/Controllers/Jobcard.php @@ -22,6 +22,7 @@ use App\Models\SalesOrderModel; use App\Models\SalesOrderProductModel; use App\Models\UsersModel; use App\Models\RoleModel; +use App\Models\JobcardFileModel; use Mpdf\Mpdf; use DateTime; @@ -396,6 +397,7 @@ class Jobcard extends BaseController if ($job_card_id === '0') { $data['page_name']="Create Job Card"; $data['jobs'] = []; + $data['jobcardfiles'] = []; $ClientModel = new ClientModel(); $client=$ClientModel ->where('isactive',1) @@ -443,6 +445,7 @@ class Jobcard extends BaseController $ComplaintModel = new ComplaintModel(); $OutsourceModel = new OutsourceModel(); $ServiceModel = new ServiceModel(); + $JobcardFileModel = new JobcardFileModel(); /*** SERVICE DATA ***/ $servicedata = $JobcardModel->service_data($job_card_id, $this->session->get('logged_user_branch_id')); @@ -522,6 +525,8 @@ class Jobcard extends BaseController $jobs=$JobcardModel->where('job_card_id', $job_card_id)->get()->getRowArray(); $data['jobs']=$jobs; + $jobcardfiles=$JobcardFileModel->where(['job_card_id'=>$job_card_id,'isactive'=>1])->findAll(); + $data['jobcardfiles'] = $jobcardfiles; $VehicleModel = new VehicleModel(); $vehicles = $VehicleModel->where('isactive',1)->where('vehicle_id',$jobs['vehicle_id']) @@ -816,6 +821,31 @@ class Jobcard extends BaseController if(isset($item->product)) { $this->product_data_insertion($job_card_id, $os_id, $JobcardOSModel, $item, $JobcardProductModel, $status, $rework); } } + // Get the files from the request + $path = ROOTPATH.'public/uploads/jobcardfiles/'; + if(!is_dir($path)) { mkdir($path, 0777, true); } + + $filesdetails = $this->request->getFiles(); + $manualfilename = $this->request->getPost('manual_file_name'); // Get user-entered file names + if(isset($filesdetails['file'])) + { + foreach ($filesdetails['file'] as $index => $file) { + if ($file->isValid() && !$file->hasMoved()) { + // Move the file to the desired directory + $filename = (!empty($file->getName())) ? $file->getName() : $manualfilename[$index] ; + $file->move($path, $filename); + // Store the file information in the database + $uploadFiles = array( + 'manual_file_name' => $manualfilename[$index], + 'file_name' => $filename, + 'job_card_id' => $job_card_id, + 'created_by' => $this->session->get('logged_user') + ); + $lastInsertFileId = $this->uploadAdditionalFile($uploadFiles); + $this->logger->info("last Insert File Id = ".$lastInsertFileId); + } + } + } return redirect()->to('job_card_index'); } @@ -1229,5 +1259,36 @@ class Jobcard extends BaseController } } // Check if service exists - + function uploadAdditionalFile($myfiles) + { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } + $model = new JobcardFileModel(); + $id = $model->insert($myfiles); + $aff = $model->affectedRows(); + return $aff > 0 ? $model->insertID() : 0; + } + public function deleteJobCardFile() + { + $file_id = $this->request->getPost('file_id'); + + $model = new JobcardFileModel(); + $where = ['file_id' => $file_id, 'isactive' => 1 ]; + $existingFile = $model->where($where)->first(); + + + if ($existingFile) { + $data['isactive'] = 0; + $data['updated_by'] = $this->session->has('logged_user'); + + + if ($model->update($file_id, $data)) { + // session()->setFlashdata('success', 'Deleted successfully.'); + return $this->response->setJSON(['success' => true, 'message' => 'File deleted successfully.','file_id'=>$file_id]); + $this->logger->info("job card file : has been deleted successfully. Inactivated ID = ".$file_id); + } + return $this->response->setJSON(['success' => false, 'message' => 'Failed to deleted.']); + } + } + + } diff --git a/app/Models/JobcardFileModel.php b/app/Models/JobcardFileModel.php new file mode 100755 index 0000000..40cc5aa --- /dev/null +++ b/app/Models/JobcardFileModel.php @@ -0,0 +1,10 @@ +