示例#1
0
 public function adminFuncionarios($id)
 {
     $vdt = new Validate\Validator();
     $vdt->addRule('id', new Validate\Rule\NumNatural())->addRule('entrantes', new Validate\Rule\Regex('/^\\[\\d*(?:,\\d+)*\\]$/'))->addRule('salientes', new Validate\Rule\Regex('/^\\[\\d*(?:,\\d+)*\\]$/'));
     $req = $this->request;
     $data = array_merge(array('id' => $id), $req->post());
     if (!$vdt->validate($data)) {
         throw new TurnbackException('Configuración inválida.');
     }
     $organismo = Organismo::findOrFail($id);
     $funcionarios = $organismo->funcionarios;
     $actuales = array();
     foreach ($funcionarios as $funcionario) {
         $actuales[] = (int) $funcionario->usuario_id;
     }
     $entrantes = json_decode($vdt->getData('entrantes'));
     $salientes = json_decode($vdt->getData('salientes'));
     if (array_intersect($actuales, $entrantes)) {
         throw new TurnbackException('Configuración inválida.');
     }
     if (array_diff($salientes, $actuales)) {
         throw new TurnbackException('Configuración inválida.');
     }
     if ($salientes) {
         Funcionario::whereIn('usuario_id', $salientes)->delete();
         Usuario::whereIn('id', $salientes)->update(array('es_funcionario' => false));
         AdminlogCtrl::createLog(implode(',', $salientes), 4, 'del', $this->session->user('id'), $organismo);
         foreach ($salientes as $saliente) {
             $log = UserlogCtrl::createLog('delFuncion', $saliente, $organismo);
             NotificacionCtrl::createNotif($saliente, $log);
         }
     }
     if ($entrantes) {
         Usuario::whereIn('id', $entrantes)->increment('puntos', 30);
         AdminlogCtrl::createLog(implode(',', $entrantes), 4, 'new', $this->session->user('id'), $organismo);
         foreach ($entrantes as $entrante) {
             $funcionario = new Funcionario();
             $funcionario->usuario_id = $entrante;
             $funcionario->organismo_id = $id;
             $funcionario->save();
             $log = UserlogCtrl::createLog('newFuncion', $entrante, $organismo);
             NotificacionCtrl::createNotif($entrante, $log);
         }
     }
     $this->flash('success', 'Se han modificado los funcionarios del organismo exitosamente.');
     $this->redirectTo('shwAdmOrganis');
 }
示例#2
0
 public function eliminar($idOrg)
 {
     $vdt = new Validate\QuickValidator(array($this, 'notFound'));
     $vdt->test($idOrg, new Validate\Rule\NumNatural());
     $organismo = Organismo::findOrFail($idOrg);
     if ($organismo->funcionarios_count > 0) {
         echo 'lala1';
         throw new TurnbackException('Para eliminar un organismo no debe haber funcionarios dentro de este.');
     }
     $organismo->delete();
     AdminlogCtrl::createLog('', 3, 'del', $this->session->user('id'), $organismo);
     $this->flash('success', 'El organismo fue eliminado exitosamente.');
     $this->redirectTo('shwAdmOrganis');
 }