-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFrameController.php
More file actions
129 lines (104 loc) · 3.88 KB
/
FrameController.php
File metadata and controls
129 lines (104 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?php
namespace App\Http\Controllers;
use DB;
use URL;
use App\Iep\Iep;
use App\Iep\User;
use Carbon\Carbon;
use App\Iep\Student;
use App\Jobs\PrintPdf;
use Illuminate\Http\Request;
class FrameController extends Controller {
public function index(Request $request) {
if ($request->has('frn') && $request->has('user')) {
$data = [
'frn' => $request->get('frn'),
'user' => User::where('dcid', $request->get('user'))->firstOrFail(),
'student' => Student::where('dcid', substr($request->get('frn'), 3))->firstOrFail(),
'ieps' => Iep::where('studentsdcid', substr($request->get('frn'), 3))->orderBy('start_date', 'desc')->get(),
'portal' => $request->get('portal'),
];
return view('frame.index', $data);
}
return 'IEP Printing!';
}
public function iep(Request $request) {
if ($request->has('iep')) {
$frn = $request->get('frn');
$iep = $request->get('iep');
$portal = $request->get('portal');
$data = Iep::getFormResponseData($iep);
return view('frame.fetch.iep', compact('data', 'iep', 'frn', 'portal'));
}
}
public function save(Request $request) {
$user = User::where('dcid', $request->json('user')['dcid'])->firstOrFail();
$student = Student::where('dcid', $request->json('student')['dcid'])->firstOrFail();
$iep = new Iep();
$iep->studentsdcid = $student->dcid;
$iep->case_manager = $user->lastfirst; //Should be replaced with actual case manager from CM class
$iep->is_active = false;
$iep->start_date = new Carbon($request->json('start_date'));
$iep->whocreated = $user->lastfirst;
$iep->whencreated = new Carbon();
$iep->save();
return view('frame.iep-snippet', ['iep' => $iep]);
}
public function print(Request $request) {
$responses = Iep::getFormData($request->json('selected'));
$student = Student::where('dcid', $request->json('student')['dcid'])->firstOrFail();
$fileOption = $request->json('fileOption');
$watermarkOption = $request->json('watermarkOption');
$info = $this->dispatch(new PrintPdf($student, $responses, $fileOption, $watermarkOption));
return $info;
}
public function printTest(Request $request) {
$studentsDcid = $request->get('studentsdcid');
$fileOption = $request->get('fileOption') ?: 'concat';
$watermarkOption = $request->get('watermarkOption') ?: 'final';
if ($studentsDcid) {
$student = Student::where('dcid', $studentsDcid)->firstOrFail();
} else {
$student = \Cache::remember('printTestStudent', 1440, function () {
return Student::orderByRaw('DBMS_RANDOM.RANDOM')->firstOrFail();
});
}
$form = [
(object)[
'formid' => $request->get('formid'),
'title' => $request->get('title'),
'responseid' => $request->get('responseid')
]
];
$cacheKey = 'printtestformdata' . $request->get('formid') . $request->get('responseid');
$responses = \Cache::remember($cacheKey, 1440, function() use($form) {
return Iep::getFormData($form);
});
$info = $this->dispatch(new PrintPdf($student, $responses, $fileOption, $watermarkOption));
if (isset($_GET['html'])) {
return $info;
}
if (!empty($info['file'])) {
return '<h2><a target="_blank" href="'.asset($info['file']).'">'.$info['file'].'</a></h2>';
}
return $info;
}
public function responseCount(Request $request) {
return Iep::find($request->get('iep'))->iepResponse->count();
}
public function delete(Request $request) {
$iep = Iep::find($request->json('iep'));
if ($iep->delete()) {
return 1; // true/success
}
return 0; // false/failure
}
public function activate(Request $request) {
$iep = Iep::find($request->json('iep'));
$student = Student::where('dcid', $request->json('student')['dcid'])->firstOrFail();
if ($iep->activate($student)) {
return 1;
}
return 0;
}
}