Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Namespace Use Use Use Use Use Use Use Use Use Class Extends
Namespace Use Use Use Use Use Use Use Use Use Class Extends
php
2
3 namespace App\Http\Controllers;
4
5 use App\Model\Derivar\Derivar;
6
7 use App\Model\Memorandum\Memorandum;
8 use App\Model\HojaRuta\HojaRuta;
9 use App\Model\Generico\Generico;
10 use App\Model\Contrato\Contrato;
11 use Illuminate\Http\Request;
12 use App\Model\Email\Email;
13 use Illuminate\Support\Facades\Auth;
14
15 use App\Model\TipoInstruccion\TipoInstruccion; //jng
16
17 class DerivarController extends Controller
18 {
19 /**
20 * Display a listing of the resource.
21 *
22 * @return \Illuminate\Http\Response
23 */
24 public function index()
25 {
26 //
27 }
28
29 /**
30 * Show the form for creating a new resource.
31 *
32 * @return \Illuminate\Http\Response
33 */
34 public function create(Request $request){
35
36 $tipo = \Crypt::decrypt($request->route('tipo'));
37 $numero = \Crypt::decrypt($request->route('numero'));
38 $periodo = \Crypt::decrypt($request->route('periodo'));
39
40 switch ($tipo)
41 {
42 case '1':
43 $documento = Memorandum::where([
44 'm_id' => $numero
45 , 'm_periodo' => $periodo
46 , 'm_activo' => true
47 ])->firstOrFail();
48 $vista = 'derivar.crear_memorandum';
49 break;
50 case '2':
51 $documento = HojaRuta::where([
52 'hr_id' => $numero
53 , 'hr_periodo' => $periodo
54 , 'hr_activo' => true
55 ])->firstOrFail();
56 $vista = 'derivar.crear_hojaruta';
57 break;
58 case '3':
59 $generico = new Generico();
60 $documento = $generico->where([
61 'ge_id' => $numero
62 , 'ge_periodo' => $periodo
63 , 'ge_activo' => true
64 ])->firstOrFail();
65 $vista = 'derivar.crear_generico';
66 break;
67 case '4':
68 $contrato = new Contrato();
69 $documento = $contrato->where([
70 'c_id' => $numero
71 , 'c_periodo' => $periodo
72 , 'c_activo' => true
73 ])->firstOrFail();
74 $vista = 'derivar.crear_contrato';
75 break;
76 default:
77 if (Auth::check()) {
78 abort(404);
79 }else{
80 abort(403);
81 }
82 break;
83 }
84 $documento->inicializador();
85 if (Auth::user()->derivar &&
!empty($documento->getPermiso()->getPermisoDocumento())) {
86 $usuarios = \App\User::where('unidad', Auth::user()->unidad)
87 ->where('activo', true)->get(['id', 'name', 'email']);
88 $instrucciones =
$documento->getMovimiento()->getArregloIdNombreInstrucciones();
89 return view($vista, compact('usuarios', 'documento', 'instrucciones'));
90 }else{
91 if (Auth::check()) {
92 abort(403);
93 }else{
94 abort(401);
95 }
96 }
97 }
98 //jng
99
100 public function usuarioDestino()
101 {
102 $usuariosArray [''] = 'Seleccion';
103
104 $usr = \App\User::where('unidad', Auth::user()->unidad)
105 ->where('activo', true)->get(['id', 'name', 'email']);
106 dump($usuarios);
107
108 foreach ($usr as $usu) {
109 $usuariosArray[$usu->id] = $usu->name;
110 }
111 return $usuariosArray;
112 }
113
114
115 public function derivarMasiva(Request $request)
116 {
117 dump('function derivarMasiva');
118 $val = ($request->arreglo);
119 dump($val);
120
121 foreach($request->arreglo as $key => $value)
122 {
123 $numero = $request->arreglo[$key]['numero'];
124 $periodo = $request->arreglo[$key]['periodo'];
125 $tipo = $request->arreglo[$key]['tipo'];
126 $instruccion = $request->arreglo[$key]['instruccion'];
127 $usuario = $request->arreglo[$key]['usuario'];
128 //$documento->getMovimiento()->setInstruccion(\Crypt::decrypt($instruccion));
129
130 dump($usuario);
131
132 switch ($tipo)
133 {
134 case '4':
135 $contrato = new Contrato();
136 $documento = $contrato->where([
137 'c_id' => $numero
138 , 'c_periodo' => $periodo
139 , 'c_activo' => true
140 ])->firstOrFail();
141
142 //$usuarios = \App\User::where('unidad', Auth::user()->unidad);
143
144 $vista = 'derivar.crear_contrato_masivo';
145 break;
146 default:
147 if (Auth::check()) {
148 abort(404);
149 }else{
150 abort(403);
151 }
152 break;
153 }
154
155 //$documento->inicializador(true);
156 //$usuarios = \App\User::where('unidad', Auth::user()->unidad)
157 //->where('activo', true)->get(['id', 'name', 'email']);
158 //$instrucciones = TipoInstruccion::where('ti_activo', true)
159 // ->get(['ti_id', 'ti_nombre'])
160 // ->toArray();
161
162 $documento->inicializador(true);
163 $acceso = $documento->getPermiso()->getPermisoDocumento();
164 $uM = $documento->getMovimiento()->getUltimoMovimiento();
165 //tiene permisos para acceder a tramite y se puede bloquear y
tramite existe
166
167 if (!empty($acceso))
168 {
169 //si tiene permisos
170 //el usuario actual es responsable o supervidor de la unidad y
la unidad destino es igual a la unidad del usuario actual
171 $usuario_destino = \App\User::find($usuario);
172
173 if ((($uM->m_usuario_responsable == Auth::id() &&
$uM->m_unidad_responsable == Auth::user()->unidad) ||
174 (in_array('s', $acceso) && Auth::user()->supervisor &&
$usuario_destino->unidad == Auth::user()->unidad)) &&
175 ($usuario_destino->unidad == Auth::user()->unidad))
176 {
177 //si la unidad del destino es igual a la unidad del usuario
actual
178
$documento->getPermiso()->setPermisoUsuario($usuario_destino)
;
179 //obtengo los permisos de archivos a los que tengo acceso
como usuario
180 $archivos =
$documento->getPermisoArchivo()->getArrayIdsArchivosPermitido
s();
181
182 foreach ($archivos as $key => $value)
183 {
184 $documento->getPermisoArchivo()->setNumeroArchivo($value);
185
$documento->getPermisoArchivo()->setPermisoUsuario($usuari
o_destino);
186 }
187
//$documento->getMovimiento()->setDetalle($request->input('m_
detalle'));
188
//$documento->getMovimiento()->setInstruccion(\Crypt::decrypt
($request->input('instruccion')));
189
$documento->getMovimiento()->setInstruccion(\Crypt::decrypt($
instruccion));
190
$documento->getMovimiento()->setUsuario($usuario_destino->id)
;
191 $documento->getMovimiento()->derivar();
192
193 return redirect()->route('home'
194 )->with('success', 'Trámite Contrato Derivado');
195
196 }
197 }else
198 {
199 //no tiene permisos para acceder a documento o trámite
200 if (Auth::check()) {
201 abort(401);
202 }else{
203 abort(403);
204 }
205 }
206
207 }
208 // dd('');
209 return ('vuelvo');
210 }
211 /**
212 * Store a newly created resource in storage.
213 *
214 * @param \Illuminate\Http\Request $request
215 * @return \Illuminate\Http\Response
216 */
217 public function store(Request $request)
218 {
219 $tipo = \Crypt::decrypt($request->route('tipo'));
220 $numero = \Crypt::decrypt($request->route('numero'));
221 $periodo = \Crypt::decrypt($request->route('periodo'));
222 switch ($tipo)
223 {
224 case '1':
225 $documento = Memorandum::where([
226 'm_id' => $numero
227 , 'm_periodo' => $periodo
228 , 'm_activo' => true
229 ])->firstOrFail();
230 $vista = 'derivar.crear_memorandum';
231 break;
232 case '2':
233 $documento = HojaRuta::where([
234 'hr_id' => $numero
235 , 'hr_periodo' => $periodo
236 , 'hr_activo' => true
237 ])->firstOrFail();
238 $vista = 'derivar.crear_hojaruta';
239 break;
240 case '3':
241 $generico = new Generico();
242 $documento = $generico->where([
243 'ge_id' => $numero
244 , 'ge_periodo' => $periodo
245 , 'ge_activo' => true
246 ])->firstOrFail();
247 $vista = 'derivar.crear_generico';
248 break;
249 case '4':
250 $contrato = new Contrato();
251 $documento = $contrato->where([
252 'c_id' => $numero
253 , 'c_periodo' => $periodo
254 , 'c_activo' => true
255 ])->firstOrFail();
256 $vista = 'derivar.crear_contrato';
257 break;
258 default:
259 if (Auth::check()) {
260 abort(404);
261 }else{
262 abort(403);
263 }
264 break;
265 }
266 $documento->inicializador(true);
267 $acceso = $documento->getPermiso()->getPermisoDocumento();
268 $uM = $documento->getMovimiento()->getUltimoMovimiento();
269 //tiene permisos para acceder a tramite y se puede bloquear y tramite existe
270 if (!empty($acceso))
271 {
272 //si tiene permisos
273 //el usuario actual es responsable o supervidor de la unidad y la unidad
destino es igual a la unidad del usuario actual
274 $usuario_destino =
\App\User::find($request->input('t_usuario_destinatario'));
275 if ((($uM->m_usuario_responsable == Auth::id() && $uM->m_unidad_responsable
== Auth::user()->unidad) ||
276 (in_array('s', $acceso) && Auth::user()->supervisor &&
$usuario_destino->unidad == Auth::user()->unidad)) &&
277 ($usuario_destino->unidad == Auth::user()->unidad))
278 {
279 //si la unidad del destino es igual a la unidad del usuario actual
280 $documento->getPermiso()->setPermisoUsuario($usuario_destino);
281 //obtengo los permisos de archivos a los que tengo acceso como usuario
282 $archivos =
$documento->getPermisoArchivo()->getArrayIdsArchivosPermitidos();
283 foreach ($archivos as $key => $value)
284 {
285 $documento->getPermisoArchivo()->setNumeroArchivo($value);
286 $documento->getPermisoArchivo()->setPermisoUsuario($usuario_destino);
287 }
288 $documento->getMovimiento()->setDetalle($request->input('m_detalle'));
289
$documento->getMovimiento()->setInstruccion(\Crypt::decrypt($request->inp
ut('instruccion')));
290 $documento->getMovimiento()->setUsuario($usuario_destino->id);
291 $documento->getMovimiento()->derivar();
292
293 if ($request->input('mail'))
294 {
295 $email = new Email();
296 $email->setDestinatario($usuario_destino->email);
297 $documento->setAttribute('nom_usuario_origen', Auth::user()->name);
298 $email->setDocumento($documento);
299 switch ($tipo)
300 {
301 case '1':
302 $email->derivarMemorandum();
303 break;
304 case '2':
305 $email->derivarCompra();
306 break;
307 case '3':
308 $email->derivarGenerico();
309 break;
310 case '4':
311 $email->derivarContrato();
312 break;
313 default:
314 break;
315 }
316 }
317
318 switch ($tipo)
319 {
320 case '1':
321 return redirect()->route('home'
322 )->with('success', 'Memorandum Derivado');
323 break;
324 case '2':
325 return redirect()->route('home'
326 )->with('success', 'Compra Derivada');
327 break;
328 case '3':
329 return redirect()->route('home'
330 )->with('success', 'Trámite Generico Derivado');
331 break;
332 case '4':
333 return redirect()->route('home'
334 )->with('success', 'Trámite Contrato Derivado');
335 break;
336 default:
337 return redirect()->route('home'
338 )->with('success', 'Derivado.');
339 break;
340 }
341 }
342 else
343 {
344 switch ($tipo)
345 {
346 case '1':
347 return redirect()->route('memorandum.show',
348 [
349 'numero' => $request->route('numero'),
350 'periodo' => $request->route('periodo')
351 ]
352 )->with('success', 'No puede Derivar el Memorandum.');
353 break;
354 case '2':
355 return redirect()->route('hojaruta.show',
356 [
357 'numero' => $request->route('numero'),
358 'periodo' => $request->route('periodo')
359 ]
360 )->with('success', 'No puede Derivar la Compra.');
361 break;
362 case '3':
363 return redirect()->route('generico.show',
364 [
365 'numero' => $request->route('numero'),
366 'periodo' => $request->route('periodo')
367 ]
368 )->with('success', 'No puede Derivar el Trámite Generico.');
369 break;
370 case '3':
371 return redirect()->route('contrato.show',
372 [
373 'numero' => $request->route('numero'),
374 'periodo' => $request->route('periodo')
375 ]
376 )->with('success', 'No puede Derivar el Trámite Contrato.');
377 break;
378 default:
379 return redirect()->route('home'
380 )->with('success', 'No puede Derivar.');
381 break;
382 }
383 }
384 }
385 else
386 {
387 //no tiene permisos para acceder a documento o trámite
388 if (Auth::check()) {
389 abort(401);
390 }else{
391 abort(403);
392 }
393 }
394 }
395
396 /**
397 * Display the specified resource.
398 *
399 * @param \App\Model\Derivar\Derivar $derivar
400 * @return \Illuminate\Http\Response
401 */
402 public function show(Derivar $derivar)
403 {
404 //
405 }
406
407 /**
408 * Show the form for editing the specified resource.
409 *
410 * @param \App\Model\Derivar\Derivar $derivar
411 * @return \Illuminate\Http\Response
412 */
413 public function edit(Derivar $derivar)
414 {
415 //
416 }
417
418 /**
419 * Update the specified resource in storage.
420 *
421 * @param \Illuminate\Http\Request $request
422 * @param \App\Model\Derivar\Derivar $derivar
423 * @return \Illuminate\Http\Response
424 */
425 public function update(Request $request, Derivar $derivar)
426 {
427 //
428 }
429
430 /**
431 * Remove the specified resource from storage.
432 *
433 * @param \App\Model\Derivar\Derivar $derivar
434 * @return \Illuminate\Http\Response
435 */
436 public function destroy(Derivar $derivar)
437 {
438 //
439 }
440 }