示例#1
0
 public static function asignar(array $values)
 {
     //se usa para los message bags
     $mensajes = new Solicitud();
     if (!isset($values['solicitudes'])) {
         $mensajes->addError('solicitudes', 'Debes seleccionar al menos una solicitud');
         return $mensajes;
     }
     $rules = ['departamento_id' => 'required_if:campo,departamento', 'usuario_asignacion_id' => 'required_if:campo,usuario', 'campo' => 'required'];
     $validator = Validator::make(Input::all(), $rules);
     $validator->setAttributeNames($mensajes->getPrettyFields());
     if ($validator->passes()) {
         $solicitudes = Solicitud::findMany($values['solicitudes']);
         if ($values['campo'] == "departamento") {
             $memo = \Memo::crear($values);
             $solicitudes->each(function ($solicitud) use($values, $mensajes, $memo) {
                 $solicitud->asignarDepartamento($values['departamento_id'], $memo);
                 //si salieron errores hacemos un merge
                 $mensajes->errors->merge($solicitud->errors);
             });
         } else {
             if ($values['campo'] == "usuario") {
                 $solicitudes->each(function ($solicitud) use($values, $mensajes) {
                     $solicitud->asignarAnalista($values['usuario_asignacion_id']);
                     //si salieron errores hacemos un merge
                     $mensajes->errors->merge($solicitud->errors);
                 });
             }
         }
     } else {
         foreach ($validator->getMessageBag()->getMessages() as $campo => $mensaje) {
             $mensajes->addError($campo, $mensaje);
         }
     }
     return $mensajes;
 }