File manager - Edit - /home/autoph/public_html/projects/Rating-AutoHub/app/Models/Questionnaire.php
Back
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\DB; class Questionnaire extends Model { use HasFactory; protected $fillable = ['s_id','t_id','q_id','status','active']; public function getQuestionnaireQuery(){ return " SELECT %s FROM `templates` `tmp` INNER JOIN `questionnaires` `qst` ON `tmp`.`id` = `qst`.`t_id` INNER JOIN `systems` `sys` ON `qst`.`s_id` = `sys`.`id` WHERE 1 AND `qst`.`status` = 1 -- GROUP BY `tmp`.`id` %s %s %s %s "; } public function getQuestionnaires($array_data){ // dd($array_data); $fields = " `qst`.`id` as `q_id`, `tmp`.`id` as `tmp_id`, `tmp`.`title` AS `title`, JSON_LENGTH(`tmp`.`q_id`) as `q_count`, `sys`.`id` as `sys_id`, `sys`.`system_name` as `system_name`, `qst`.`created_at` "; // ANY_VALUE(`tmp`.`id`) AS `tmp_id`, // ANY_VALUE(`tmp`.`title`) AS `title`, // ANY_VALUE(`qst`.`id`) AS `id`, // ANY_VALUE(`sys`.`id`) AS `sys_id`, // ANY_VALUE(`sys`.`system_name`) AS `system_name` "; $query = sprintf( $this->getQuestionnaireQuery(), $fields, $array_data['search'], $array_data['where'], $array_data['sort'], $array_data['offset_limit'] ); // dd($query); return DB::select($query); } public function getQuestionnairesCount($array_data){ // $fields = " tmp.id "; $fields = " COUNT(1) as Count "; $query = sprintf( $this->getQuestionnaireQuery(), $fields, '', $array_data['where'], '', '' ); //dd($query); // return DB::select("SELECT COUNT(1) as Count FROM (".$query.") foo"); return DB::select($query); } public function getQuestionnairesFilteredCount($array_data){ // $fields = " tmp.id "; $fields = " COUNT(1) as FilteredCount "; $query = sprintf( $this->getQuestionnaireQuery(), $fields, $array_data['search'], $array_data['where'], '', '' ); return DB::select($query); } public function getQuestionnairesReportQuery(){ return "SELECT %s FROM questionnaires INNER JOIN templates ON questionnaires.t_id = templates.id INNER JOIN systems ON questionnaires.s_id = systems.id INNER JOIN links ON templates.id = links.tmp_id AND systems.id = links.sys_id WHERE 1 AND `questionnaires`.`status` = 1 AND questionnaires.active = 1 %s "; } public function reports($array_data){ $fields = " CONCAT(templates.title,' (',JSON_LENGTH(templates.q_id),' question/s)') as title, systems.system_name,questionnaires.*,links.link "; $query = sprintf( $this->getQuestionnairesReportQuery(), $fields, $array_data['where'], ); // dd($query); return DB::select($query); } public function pdf($results, $type, $filter_data){ $data = []; $grpData = new \stdClass(); $grpData->list = $results; $grpData->total = sizeOf($results); array_push($data, $grpData); $report_title = "Survey Form Masterfile"; $reportData = [ 'data' => $data, 'date_from' => $filter_data[0], 'date_to' => $filter_data[1], 'webpage_title' => "Survey Form Report", 'report_title' => $report_title, 'table_headers' => ['No.','Template','System','Date Created','Link','Instruction'], 'table_body' => ['title','system_name','created_at','link','instruction'] ]; return $reportData; } public function csv($results){ $questionnaire = []; $questionnaire[] = ['No.','Template','System','Date Created','Link','Instruction']; $inc = 0; foreach($results as $row){ $questionnaire[] = [ $inc+=1, $row->title, $row->system_name, $row->created_at, $row->link, $row->instruction ]; } $filename = "SurveyForm_Masterfile"."-".date('Y-m-d').'.csv'; // $filename = "Questions_Masterfile"."-". date('Y-m-d').'.csv'; // dd($questions); header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="'.$filename.'"'); $f = fopen('php://output', 'wb'); if ($f === false) { die('Error opening the file ' .$filename); } if(empty($questionnaire[1])){ $arr = [ "No data to show" ]; fputcsv($f,$arr); } else { foreach($questionnaire as $row){ fputcsv($f, $row, ','); } } fclose($f); } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings