public function obtenerMemoPorSerial(Serial $serial)
 {
     try {
         $memos = DB::table('pEntregaexp')->join('tHistorico', function ($join) {
             $join->on('tHistorico.curp', '=', 'pEntregaexp.curp')->on('tHistorico.idevaluacion', '=', 'pEntregaexp.idevaluacion');
         })->join('tElementosint', 'tElementosint.curp', '=', 'tHistorico.curp')->where('pEntregaexp.cmemo', $serial->getSerialBase())->orderBy('tHistorico.SerialElement')->get();
         $totalEvaluaciones = count($memos);
         if ($totalEvaluaciones > 0) {
             $memoEntrega = new MemoEntrega($memos[0]->cmemo);
             $memoEntrega->setSerial($serial);
             foreach ($memos as $memos) {
                 is_null($memos->fidtox) ? $entrega = false : ($entrega = true);
                 $evaluacion = new Evaluacion($memos->idhistorico);
                 $evaluacion->setElemento(new Elemento($memos->nombre, $memos->paterno, $memos->materno, $memos->curp, $memos->rfc));
                 $evaluacion->setNumeroEvaluacion($memos->idevaluacion);
                 $evaluacion->setDiferenciada($memos->evaldiferenciada);
                 $evaluacion->setSerial(new SerialExpediente($memos->SerialElement . $memoEntrega->getSerial()->getArea()->getId()));
                 $evaluacion->setEntregaMedicoToxicologica($entrega);
                 $this->obtenerEvaluacionesPoligraficasdeEvaluacion($evaluacion);
                 $evaluacion->verificarEntregaDePoligrafia();
                 if (is_null($memos->idArchivoEstatus)) {
                     // en integración
                     $evaluacion->setArchivoEstatus(new ArchivoEstatus(1));
                 }
                 $memoEntrega->agregarEvaluacion($evaluacion);
             }
             return $memoEntrega;
         }
         return null;
     } catch (\PDOException $e) {
         echo $e->getMessage();
         return null;
     }
 }
 /**
  * devolver la vista indicada dependiendo del área que entrega
  * 4 = Poligrafía, se da trato especial por que puede tener más de una reeexaminación
  * @param MemoEntrega $memoEntrega
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public static function crear(MemoEntrega $memoEntrega)
 {
     $nombreVista = '';
     switch ($memoEntrega->getSerial()->getArea()->getId()) {
         case 1:
         case 2:
         case 3:
         case 5:
             $nombreVista = 'custodia.archivo.archivo_entregas_lista';
             break;
         case 4:
             $nombreVista = 'custodia.archivo.archivo_entregas_lista_poligrafia';
             break;
     }
     return view($nombreVista, compact('memoEntrega'))->render();
 }