Merge branch 'dev' into US-42-EliminarInquilino
This commit is contained in:
		
						commit
						04a9a2edfe
					
				| 
						 | 
				
			
			@ -65,6 +65,7 @@ export class AppController {
 | 
			
		|||
    @Body('status') status: string,
 | 
			
		||||
    @Body('date_entry') date_entry: Date,
 | 
			
		||||
    @Body('community_id') community_id: string,
 | 
			
		||||
    @Body('number_house') number_house: string,
 | 
			
		||||
  ) {
 | 
			
		||||
    return this.appService.createUser(
 | 
			
		||||
      dni,
 | 
			
		||||
| 
						 | 
				
			
			@ -77,11 +78,42 @@ export class AppController {
 | 
			
		|||
      status,
 | 
			
		||||
      date_entry,
 | 
			
		||||
      community_id,
 | 
			
		||||
      number_house,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Put('user/updateGuard/:id')
 | 
			
		||||
  updateGuard(
 | 
			
		||||
    @Param('id') id: string,
 | 
			
		||||
    @Body('dni') dni: string,
 | 
			
		||||
    @Body('name') name: string,
 | 
			
		||||
    @Body('last_name') last_name: string,
 | 
			
		||||
    @Body('email') email: string,
 | 
			
		||||
    @Body('phone') phone: number,
 | 
			
		||||
    @Body('password') password: string,
 | 
			
		||||
    @Body('user_type') user_type: string,
 | 
			
		||||
    @Body('status') status: string,
 | 
			
		||||
    @Body('date_entry') date_entry: Date,
 | 
			
		||||
    @Body('community_id') community_id: string,
 | 
			
		||||
  ) {
 | 
			
		||||
    return this.appService.updateGuard(
 | 
			
		||||
      id,
 | 
			
		||||
      dni,
 | 
			
		||||
      name,
 | 
			
		||||
      last_name,
 | 
			
		||||
      email,
 | 
			
		||||
      phone,
 | 
			
		||||
      password,
 | 
			
		||||
      user_type,
 | 
			
		||||
      status,
 | 
			
		||||
      date_entry,
 | 
			
		||||
      community_id,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @Put('user/updateUser')
 | 
			
		||||
  @Put('user/updateUser/:id')
 | 
			
		||||
  updateUser(
 | 
			
		||||
    @Param('id') id: string,
 | 
			
		||||
    @Body('dni') dni: string,
 | 
			
		||||
    @Body('name') name: string,
 | 
			
		||||
    @Body('last_name') last_name: string,
 | 
			
		||||
| 
						 | 
				
			
			@ -92,8 +124,10 @@ export class AppController {
 | 
			
		|||
    @Body('status') status: string,
 | 
			
		||||
    @Body('date_entry') date_entry: Date,
 | 
			
		||||
    @Body('community_id') community_id: string,
 | 
			
		||||
    @Body('number_house') number_house: string,
 | 
			
		||||
  ) {
 | 
			
		||||
    return this.appService.updateUser(
 | 
			
		||||
      id,
 | 
			
		||||
      dni,
 | 
			
		||||
      name,
 | 
			
		||||
      last_name,
 | 
			
		||||
| 
						 | 
				
			
			@ -104,6 +138,7 @@ export class AppController {
 | 
			
		|||
      status,
 | 
			
		||||
      date_entry,
 | 
			
		||||
      community_id,
 | 
			
		||||
      number_house,
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,7 @@ export class AppService {
 | 
			
		|||
    status: string,
 | 
			
		||||
    date_entry: Date,
 | 
			
		||||
    community_id: string,
 | 
			
		||||
    number_house: string,
 | 
			
		||||
  ) {
 | 
			
		||||
    const pattern = { cmd: 'createUser' };
 | 
			
		||||
    const payload = {
 | 
			
		||||
| 
						 | 
				
			
			@ -47,6 +48,7 @@ export class AppService {
 | 
			
		|||
      status: status,
 | 
			
		||||
      date_entry: date_entry,
 | 
			
		||||
      community_id: community_id,
 | 
			
		||||
      number_house: number_house,
 | 
			
		||||
    };
 | 
			
		||||
    return this.clientUserApp
 | 
			
		||||
      .send<string>(pattern, payload)
 | 
			
		||||
| 
						 | 
				
			
			@ -54,6 +56,41 @@ export class AppService {
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  updateUser(
 | 
			
		||||
    _id: string,
 | 
			
		||||
    dni: string,
 | 
			
		||||
    name: string,
 | 
			
		||||
    last_name: string,
 | 
			
		||||
    email: string,
 | 
			
		||||
    phone: number,
 | 
			
		||||
    password: string,
 | 
			
		||||
    user_type: string,
 | 
			
		||||
    status: string,
 | 
			
		||||
    date_entry: Date,
 | 
			
		||||
    community_id: string,
 | 
			
		||||
    number_house: string,
 | 
			
		||||
  ) {
 | 
			
		||||
    const pattern = { cmd: 'updateUser' };
 | 
			
		||||
    const payload = {
 | 
			
		||||
      id: _id,
 | 
			
		||||
      dni: dni,
 | 
			
		||||
      name: name,
 | 
			
		||||
      last_name: last_name,
 | 
			
		||||
      email: email,
 | 
			
		||||
      phone: phone,
 | 
			
		||||
      password: password,
 | 
			
		||||
      user_type: user_type,
 | 
			
		||||
      status: status,
 | 
			
		||||
      date_entry: date_entry,
 | 
			
		||||
      community_id: community_id,
 | 
			
		||||
      number_house: number_house,
 | 
			
		||||
    };
 | 
			
		||||
    return this.clientUserApp
 | 
			
		||||
      .send<string>(pattern, payload)
 | 
			
		||||
      .pipe(map((message: string) => ({ message })));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  updateGuard(
 | 
			
		||||
    _id: string,
 | 
			
		||||
    dni: string,
 | 
			
		||||
    name: string,
 | 
			
		||||
    last_name: string,
 | 
			
		||||
| 
						 | 
				
			
			@ -65,8 +102,9 @@ export class AppService {
 | 
			
		|||
    date_entry: Date,
 | 
			
		||||
    community_id: string,
 | 
			
		||||
  ) {
 | 
			
		||||
    const pattern = { cmd: 'updateUser' };
 | 
			
		||||
    const pattern = { cmd: 'updateGuard' };
 | 
			
		||||
    const payload = {
 | 
			
		||||
      id: _id,
 | 
			
		||||
      dni: dni,
 | 
			
		||||
      name: name,
 | 
			
		||||
      last_name: last_name,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,3 +6,8 @@ help = "Per project developer environments"
 | 
			
		|||
[[commands]]
 | 
			
		||||
package = "nodejs"
 | 
			
		||||
help = "Node.js"
 | 
			
		||||
 | 
			
		||||
[[commands]]
 | 
			
		||||
package = "nodePackages.expo-cli"
 | 
			
		||||
help = "Expo CLI"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,6 +69,11 @@ export class UsersController {
 | 
			
		|||
    return this.userService.update(user.id, user);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @MessagePattern({ cmd: 'updateGuard' })
 | 
			
		||||
  updateGuard(@Payload() guard: UserDocument) {
 | 
			
		||||
    return this.userService.update(guard.id, guard);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  @MessagePattern({ cmd: 'removeUser' })
 | 
			
		||||
  remove(@Payload() id: string) {
 | 
			
		||||
    let dni = id['dni'];
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -143,19 +143,6 @@ export class UsersService {
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
    return await this.userModel.find({ community_id: pcommunity_id, user_type: 4 })
 | 
			
		||||
      .then(async (users) => {
 | 
			
		||||
        if (users) {
 | 
			
		||||
          await Promise.all(
 | 
			
		||||
            users.map(async (u) => {
 | 
			
		||||
              //buscar al usuario con el id de la comunidad anexado
 | 
			
		||||
              let number_house = await this.findNumHouseTenant(pcommunity_id, u['_id']);
 | 
			
		||||
              u['number_house'] = number_house;
 | 
			
		||||
              return u;
 | 
			
		||||
            }),
 | 
			
		||||
          )
 | 
			
		||||
        }
 | 
			
		||||
        return users;
 | 
			
		||||
      })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,7 @@ import { faAt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		|||
import { faIdCardAlt } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import { faCircleQuestion } from '@fortawesome/free-solid-svg-icons';
 | 
			
		||||
import { useCookies } from "react-cookie";
 | 
			
		||||
import classNames from 'classnames';
 | 
			
		||||
 | 
			
		||||
const GuardasSeguridad = () => {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -27,9 +28,10 @@ const GuardasSeguridad = () => {
 | 
			
		|||
    user_type: '1',
 | 
			
		||||
    status: '1',
 | 
			
		||||
    status_text: '',
 | 
			
		||||
    date_entry: Date.now(),
 | 
			
		||||
    community_id: '',
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  const [listaGuardas, setListaGuardas] = useState([]);
 | 
			
		||||
  const [urlFetch, setUrlFetch] = useState('http://localhost:4000/user/findGuards/');
 | 
			
		||||
  const [guarda, setGuarda] = useState(emptyGuarda);
 | 
			
		||||
| 
						 | 
				
			
			@ -37,12 +39,11 @@ const GuardasSeguridad = () => {
 | 
			
		|||
  const [globalFilter, setGlobalFilter] = useState(null);
 | 
			
		||||
  const [deleteGuardaDialog, setDeleteGuardaDialog] = useState(false);
 | 
			
		||||
  const [deleteGuardasDialog, setDeleteGuardasDialog] = useState(false);
 | 
			
		||||
  const [saveButtonTitle, setSaveButtonTitle] = useState("Registrar");
 | 
			
		||||
  const toast = useRef(null);
 | 
			
		||||
  const dt = useRef(null);
 | 
			
		||||
 | 
			
		||||
  const [cookies, setCookie] = useCookies();
 | 
			
		||||
  const [changeStatusGuardDialog, setChangeStatusGuardDialog] = useState(false);
 | 
			
		||||
 | 
			
		||||
  const [guardDialog, setGuardDialog] = useState(false);
 | 
			
		||||
  const [submitted, setSubmitted] = useState(false);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -69,27 +70,18 @@ const GuardasSeguridad = () => {
 | 
			
		|||
 | 
			
		||||
  function registrarGuarda() {
 | 
			
		||||
    var data = {
 | 
			
		||||
            dni: document.getElementById('identificacion').value,
 | 
			
		||||
            name: document.getElementById('nombre').value,
 | 
			
		||||
            last_name: document.getElementById('apellidos').value,
 | 
			
		||||
            email: document.getElementById('correo_electronico').value,
 | 
			
		||||
            phone: document.getElementById('telefono').value,
 | 
			
		||||
            password: document.getElementById('correo_electronico').value,
 | 
			
		||||
      dni: document.getElementById('dni').value,
 | 
			
		||||
      name: document.getElementById('name').value,
 | 
			
		||||
      last_name: document.getElementById('last_name').value,
 | 
			
		||||
      email: document.getElementById('email').value,
 | 
			
		||||
      phone: document.getElementById('phone').value,
 | 
			
		||||
      password: document.getElementById('email').value,
 | 
			
		||||
      user_type: "4", //4 es guarda
 | 
			
		||||
      status: "1",
 | 
			
		||||
      date_entry: Date.now(),
 | 
			
		||||
      community_id: cookies.community_id
 | 
			
		||||
    };
 | 
			
		||||
        var data2 = {
 | 
			
		||||
            dni: "11979037",
 | 
			
		||||
            name: "Jorge",
 | 
			
		||||
            last_name: "Soto",
 | 
			
		||||
            email: "jorgesoto@gmail.com",
 | 
			
		||||
            phone: 84664515,
 | 
			
		||||
            password: "1203",
 | 
			
		||||
            user_type: "2",
 | 
			
		||||
            status: "1",
 | 
			
		||||
            community_id: "62be68215692582bbfd77134"
 | 
			
		||||
        }
 | 
			
		||||
    if (guarda._id === null) {
 | 
			
		||||
      console.log('ssss');
 | 
			
		||||
      fetch('http://localhost:4000/user/createGuard', {
 | 
			
		||||
        cache: 'no-cache',
 | 
			
		||||
| 
						 | 
				
			
			@ -99,23 +91,41 @@ const GuardasSeguridad = () => {
 | 
			
		|||
        headers: {
 | 
			
		||||
          'Content-Type': 'application/json'
 | 
			
		||||
        }
 | 
			
		||||
        })
 | 
			
		||||
            .then(
 | 
			
		||||
                function (response) {
 | 
			
		||||
      }).then((response) => {
 | 
			
		||||
        if (response.status != 201)
 | 
			
		||||
                        console.log('Ocurrió un error con el servicio: ' + response.status);
 | 
			
		||||
          console.log(`Ocurrió un error con el servicio: ${response.status}`);
 | 
			
		||||
        else
 | 
			
		||||
          return response.json();
 | 
			
		||||
                }
 | 
			
		||||
            )
 | 
			
		||||
            .then(
 | 
			
		||||
                function (response) {
 | 
			
		||||
      }).then(() => {
 | 
			
		||||
        listaGuardasF();
 | 
			
		||||
                }
 | 
			
		||||
            )
 | 
			
		||||
            .catch(
 | 
			
		||||
      }).catch(
 | 
			
		||||
        err => console.log('Ocurrió un error con el fetch', err)
 | 
			
		||||
      );
 | 
			
		||||
    } else {
 | 
			
		||||
      data._id = guarda._id;
 | 
			
		||||
      console.log(`Actualizando guarda: ${data}`);
 | 
			
		||||
      fetch(`http://localhost:4000/user/updateGuard/${guarda._id}`, {
 | 
			
		||||
        cache: 'no-cache',
 | 
			
		||||
        method: 'PUT',
 | 
			
		||||
        body: JSON.stringify(data),
 | 
			
		||||
        headers: {
 | 
			
		||||
          'Content-Type': 'application/json',
 | 
			
		||||
        },
 | 
			
		||||
      }).then((response) => {
 | 
			
		||||
        if (response.status !== 200)
 | 
			
		||||
          console.log(`Ocurrió un error con el servicio: ${response.status}`);
 | 
			
		||||
        else return response.json();
 | 
			
		||||
      }).then(() => {
 | 
			
		||||
        toast.current.show({
 | 
			
		||||
          severity: 'success',
 | 
			
		||||
          summary: 'Guarda actualizada',
 | 
			
		||||
          detail: 'Guarda actualizado correctamente'
 | 
			
		||||
        });
 | 
			
		||||
        setGuarda(emptyGuarda);
 | 
			
		||||
        listaGuardasF();
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
    setSaveButtonTitle("Registrar");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const cambiarStatusUser = () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -138,17 +148,12 @@ const GuardasSeguridad = () => {
 | 
			
		|||
      headers: {
 | 
			
		||||
        'Content-Type': 'application/json'
 | 
			
		||||
      }
 | 
			
		||||
        })
 | 
			
		||||
            .then(
 | 
			
		||||
                function (response) {
 | 
			
		||||
    }).then((response) => {
 | 
			
		||||
      if (response.status != 201)
 | 
			
		||||
                        console.log('Ocurrió un error con el servicio: ' + response.status);
 | 
			
		||||
        console.log(`Ocurrió un error con el servicio: ${response.status}`);
 | 
			
		||||
      else
 | 
			
		||||
        return response.json();
 | 
			
		||||
                }
 | 
			
		||||
            )
 | 
			
		||||
            .then(
 | 
			
		||||
                function (response) {
 | 
			
		||||
    }).then(() => {
 | 
			
		||||
      setChangeStatusGuardDialog(false);
 | 
			
		||||
      toast.current.show({
 | 
			
		||||
        severity: 'success',
 | 
			
		||||
| 
						 | 
				
			
			@ -156,46 +161,34 @@ const GuardasSeguridad = () => {
 | 
			
		|||
        detail: 'Guarda de Seguridad Actualizado',
 | 
			
		||||
        life: 3000,
 | 
			
		||||
      });
 | 
			
		||||
                }
 | 
			
		||||
            )
 | 
			
		||||
            .catch(
 | 
			
		||||
    }).catch(
 | 
			
		||||
      err => console.log('Ocurrió un error con el fetch', err)
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  const deleteGuarda = () => {
 | 
			
		||||
 | 
			
		||||
        fetch('http://localhost:4000/user/deleteAdminSystem/' + guarda._id, {
 | 
			
		||||
    fetch(`http://localhost:4000/user/deleteAdminSystem/${guarda._id}`, {
 | 
			
		||||
      cache: 'no-cache',
 | 
			
		||||
      method: 'DELETE',
 | 
			
		||||
      headers: {
 | 
			
		||||
        'Content-Type': 'application/json'
 | 
			
		||||
      }
 | 
			
		||||
        })
 | 
			
		||||
            .then(
 | 
			
		||||
                function (response) {
 | 
			
		||||
    }).then((response) => {
 | 
			
		||||
      if (response.status != 201)
 | 
			
		||||
                        console.log('Ocurrió un error con el servicio: ' + response.status);
 | 
			
		||||
        console.log(`Ocurrió un error con el servicio: ${response.status}`);
 | 
			
		||||
      else
 | 
			
		||||
        return response.json();
 | 
			
		||||
                }
 | 
			
		||||
            )
 | 
			
		||||
            .then(
 | 
			
		||||
                function (response) {
 | 
			
		||||
    }).then(function() {
 | 
			
		||||
      let _guarda = listaGuardas.filter(val => val._id !== guarda._id);
 | 
			
		||||
      setListaGuardas(_guarda);
 | 
			
		||||
      setDeleteGuardaDialog(false);
 | 
			
		||||
      setGuarda(emptyGuarda);
 | 
			
		||||
      toast.current.show({ severity: 'success', summary: 'Éxito', detail: 'Administrador del Sistema Eliminado', life: 3000 });
 | 
			
		||||
                }
 | 
			
		||||
            )
 | 
			
		||||
            .catch(
 | 
			
		||||
                err => {
 | 
			
		||||
    }).catch(err => {
 | 
			
		||||
      console.log('Ocurrió un error con el fetch', err)
 | 
			
		||||
      toast.current.show({ severity: 'danger', summary: 'Error', detail: 'Administrador del Sistema no se pudo Eliminar', life: 3000 });
 | 
			
		||||
                }
 | 
			
		||||
            );
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const deleteSelectedGuardas = () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -212,7 +205,12 @@ const GuardasSeguridad = () => {
 | 
			
		|||
    setListaGuardas(_guardas);
 | 
			
		||||
    setDeleteGuardasDialog(false);
 | 
			
		||||
    setSelectedGuardas(null);
 | 
			
		||||
        toast.current.show({ severity: 'success', summary: 'Éxito', detail: 'Administradores del Sistema Eliminados', life: 3000 });
 | 
			
		||||
    toast.current.show({
 | 
			
		||||
      severity: 'success',
 | 
			
		||||
      summary: 'Éxito',
 | 
			
		||||
      detail: 'Administradores del Sistema Eliminados',
 | 
			
		||||
      life: 3000
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const hideDeleteGuardaDialog = () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -251,6 +249,16 @@ const GuardasSeguridad = () => {
 | 
			
		|||
    setGuardDialog(true);
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const editGuard = (guard) => {
 | 
			
		||||
    setGuarda(guard);
 | 
			
		||||
    console.log(guard);
 | 
			
		||||
    setSaveButtonTitle("Actualizar");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const cancelEdit = () => {
 | 
			
		||||
    setGuarda(emptyGuarda);
 | 
			
		||||
    setSaveButtonTitle("Registrar");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const actionsGuard = (rowData) => {
 | 
			
		||||
    let icono = '';
 | 
			
		||||
| 
						 | 
				
			
			@ -261,10 +269,15 @@ const GuardasSeguridad = () => {
 | 
			
		|||
    } else if (rowData.status == '1') {
 | 
			
		||||
      icono = "pi pi-eye-slash";
 | 
			
		||||
      text = "Inactivar Guarda de Seguridad"
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
    return (
 | 
			
		||||
      <div className="actions">
 | 
			
		||||
        <Button
 | 
			
		||||
          icon="pi pi-pencil"
 | 
			
		||||
          className="p-button-rounded p-button-success mt-2 mx-2"
 | 
			
		||||
          onClick={() => editGuard(rowData)}
 | 
			
		||||
          title="Editar"
 | 
			
		||||
        />
 | 
			
		||||
        <Button
 | 
			
		||||
          icon="pi pi-exclamation-circle"
 | 
			
		||||
          className="p-button-rounded p-button-info mt-2 mx-2"
 | 
			
		||||
| 
						 | 
				
			
			@ -356,7 +369,6 @@ const GuardasSeguridad = () => {
 | 
			
		|||
        className="p-button-text"
 | 
			
		||||
        onClick={hideGuardDialog}
 | 
			
		||||
      />
 | 
			
		||||
 | 
			
		||||
    </>
 | 
			
		||||
  );
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -427,6 +439,13 @@ const GuardasSeguridad = () => {
 | 
			
		|||
    );
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  const onInputChange = (e, name) => {
 | 
			
		||||
    const value = (e.target && e.target.value) || ''
 | 
			
		||||
    let _guarda = { ...guarda }
 | 
			
		||||
    _guarda[`${name}`] = value
 | 
			
		||||
    setGuarda(_guarda)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return (
 | 
			
		||||
    <div className="grid">
 | 
			
		||||
      <div className="col-12">
 | 
			
		||||
| 
						 | 
				
			
			@ -496,9 +515,6 @@ const GuardasSeguridad = () => {
 | 
			
		|||
                </div>
 | 
			
		||||
              </div>
 | 
			
		||||
              <div className='row my-5 justify-content-center'>
 | 
			
		||||
                                
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
              </div>
 | 
			
		||||
              <div className='row my-5 justify-content-center'>
 | 
			
		||||
                <div className=" col-4 md:col-4">
 | 
			
		||||
| 
						 | 
				
			
			@ -561,29 +577,86 @@ const GuardasSeguridad = () => {
 | 
			
		|||
      </div>
 | 
			
		||||
      <div className="col-12">
 | 
			
		||||
        <div className="card">
 | 
			
		||||
                    <h5>Registro de un guarda de seguridad</h5>
 | 
			
		||||
          <h5>Registro de un Guarda de Seguridad</h5>
 | 
			
		||||
          <div className="p-fluid formgrid grid">
 | 
			
		||||
            <div className="field col-12 md:col-6">
 | 
			
		||||
                            <label htmlFor="nombre">Nombre</label>
 | 
			
		||||
                            <InputText id="nombre" type="text" />
 | 
			
		||||
              <label htmlFor="name">Nombre</label>
 | 
			
		||||
              <div className="p-0 col-12 md:col-12">
 | 
			
		||||
                <div className="p-inputgroup">
 | 
			
		||||
                  <span className="p-inputgroup-addon p-button p-icon-input-khaki">
 | 
			
		||||
                    <i className="pi pi-home"></i>
 | 
			
		||||
                  </span>
 | 
			
		||||
                  <InputText type="text" id="name" value={guarda.name} onChange={(e) => onInputChange(e, 'name')} required autoFocus className={classNames({ 'p-invalid': submitted && guarda.name === '' })} />
 | 
			
		||||
                </div>
 | 
			
		||||
                {submitted && guarda.name === '' && <small className="p-invalid">Nombre es requerido.</small>}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div className="field col-12 md:col-6">
 | 
			
		||||
                            <label htmlFor="apellidos">Apellido(s)</label>
 | 
			
		||||
                            <InputText id="apellidos" type="text" />
 | 
			
		||||
              <label htmlFor="name">Apellido(s)</label>
 | 
			
		||||
              <div className="p-0 col-12 md:col-12">
 | 
			
		||||
                <div className="p-inputgroup">
 | 
			
		||||
                  <span className="p-inputgroup-addon p-button p-icon-input-khaki">
 | 
			
		||||
                    <i className="pi pi-home"></i>
 | 
			
		||||
                  </span>
 | 
			
		||||
                  <InputText type="text" id="last_name" value={guarda.last_name} onChange={(e) => onInputChange(e, 'last_name')} required autoFocus className={classNames({ 'p-invalid': submitted && guarda.last_name === '' })} />
 | 
			
		||||
                </div>
 | 
			
		||||
                {submitted && guarda.last_name === '' && <small className="p-invalid">Apellidos son requeridos.</small>}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div className="field col-12 md:col-6">
 | 
			
		||||
                            <label htmlFor="correo_electronico">Correo electrónico</label>
 | 
			
		||||
                            <InputText id="correo_electronico" type="email" />
 | 
			
		||||
              <label htmlFor="name">Correo Electrónico</label>
 | 
			
		||||
              <div className="p-0 col-12 md:col-12">
 | 
			
		||||
                <div className="p-inputgroup">
 | 
			
		||||
                  <span className="p-inputgroup-addon p-button p-icon-input-khaki">
 | 
			
		||||
                    <i className="pi pi-home"></i>
 | 
			
		||||
                  </span>
 | 
			
		||||
                  <InputText type='email' id="email" value={guarda.email} onChange={(e) => onInputChange(e, 'email')} required autoFocus className={classNames({ 'p-invalid': submitted && guarda.email === '' })} />
 | 
			
		||||
                </div>
 | 
			
		||||
                {submitted && guarda.email === '' && <small className="p-invalid">Correo electrónico es requerido.</small>}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div className="field col-12 md:col-6">
 | 
			
		||||
                            <label htmlFor="identificacion">Identificación</label>
 | 
			
		||||
                            <InputText id="identificacion" type="text" />
 | 
			
		||||
              <label htmlFor="dni">Identificación</label>
 | 
			
		||||
              <div className="p-0 col-12 md:col-12">
 | 
			
		||||
                <div className="p-inputgroup">
 | 
			
		||||
                  <span className="p-inputgroup-addon p-button p-icon-input-khaki">
 | 
			
		||||
                    <i className="pi pi-home"></i>
 | 
			
		||||
                  </span>
 | 
			
		||||
                  <InputText id="dni" value={guarda.dni} onChange={(e) => onInputChange(e, 'dni')} required autoFocus className={classNames({ 'p-invalid': submitted && guarda.dni === '' })} />
 | 
			
		||||
                </div>
 | 
			
		||||
                        <div className="field col-12">
 | 
			
		||||
                            <label htmlFor="telefono">Teléfono</label>
 | 
			
		||||
                            <InputText id="telefono" type="tel" rows="4" />
 | 
			
		||||
                {submitted && guarda.email === '' && <small className="p-invalid">Identificación es requerida.</small>}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div className="field col-12 md:col-6">
 | 
			
		||||
              <label htmlFor="phone">Número de teléfono</label>
 | 
			
		||||
              <div className="p-0 col-12 md:col-12">
 | 
			
		||||
                <div className="p-inputgroup">
 | 
			
		||||
                  <span className="p-inputgroup-addon p-button p-icon-input-khaki">
 | 
			
		||||
                    <i className="pi pi-phone"></i>
 | 
			
		||||
                  </span>
 | 
			
		||||
                  <InputText id="phone" value={guarda.phone} onChange={(e) => onInputChange(e, 'phone')} type='tel' required autoFocus className={classNames({ 'p-invalid': submitted && guarda.phone === '' })} />
 | 
			
		||||
                </div>
 | 
			
		||||
                {submitted
 | 
			
		||||
                  && guarda.phone === ''
 | 
			
		||||
                  && <small className="p-invalid">Número de teléfono es requerido.</small>}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <div style={{
 | 
			
		||||
              display: "flex",
 | 
			
		||||
              justifyContent: "center",
 | 
			
		||||
              gap: "10px",
 | 
			
		||||
              width: "100%"
 | 
			
		||||
            }}>
 | 
			
		||||
              <Button
 | 
			
		||||
                label={`${saveButtonTitle}`}
 | 
			
		||||
                onClick={registrarGuarda}
 | 
			
		||||
              />
 | 
			
		||||
              {saveButtonTitle === 'Actualizar' && (
 | 
			
		||||
                <Button
 | 
			
		||||
                  label="Cancel"
 | 
			
		||||
                  onClick={cancelEdit}
 | 
			
		||||
                  className="p-button-danger" />)}
 | 
			
		||||
            </div>
 | 
			
		||||
                        <Button label="Registrar" onClick={registrarGuarda}></Button>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,6 +42,7 @@ const Inquilinos = () => {
 | 
			
		|||
  const [deleteTenantDialog, setDeleteTenantDialog] = useState(false)
 | 
			
		||||
  const [deleteTenantsDialog, setDeleteTenantsDialog] = useState(false)
 | 
			
		||||
  const [community, setCommunity] = useState([])
 | 
			
		||||
  const [saveButtonTitle, setSaveButtonTitle] = useState("Registrar")
 | 
			
		||||
  const [houseNumber, setHouseNumber] = useState([])
 | 
			
		||||
  const [housesList, setHousesList] = useState([])
 | 
			
		||||
  const [submitted, setSubmitted] = useState(false)
 | 
			
		||||
| 
						 | 
				
			
			@ -101,6 +102,7 @@ const Inquilinos = () => {
 | 
			
		|||
  }, [])
 | 
			
		||||
 | 
			
		||||
  const saveTenant = () => {
 | 
			
		||||
    if (tenant._id === null) {
 | 
			
		||||
      if (tenant.email && tenant.number_house && tenant.dni
 | 
			
		||||
        && tenant.name && tenant.last_name && tenant.phone) {
 | 
			
		||||
        let _tenants = [...tenants]
 | 
			
		||||
| 
						 | 
				
			
			@ -108,6 +110,7 @@ const Inquilinos = () => {
 | 
			
		|||
        _tenant.community_id = cookies.community_id;
 | 
			
		||||
        _tenant.number_house = houseNumber;
 | 
			
		||||
        _tenant.password = _tenant.email;
 | 
			
		||||
      console.log(`Registrando nuevo inquilino: ${_tenant}`)
 | 
			
		||||
 | 
			
		||||
        fetch(`http://localhost:4000/user/createUser`, {
 | 
			
		||||
          cache: 'no-cache',
 | 
			
		||||
| 
						 | 
				
			
			@ -118,7 +121,7 @@ const Inquilinos = () => {
 | 
			
		|||
          },
 | 
			
		||||
        })
 | 
			
		||||
          .then((response) => {
 | 
			
		||||
          if (response.status !== 201)
 | 
			
		||||
            if (response.status !== 200)
 | 
			
		||||
              console.log(`Hubo un error en el servicio: ${response.status}`)
 | 
			
		||||
            else return response.json()
 | 
			
		||||
          })
 | 
			
		||||
| 
						 | 
				
			
			@ -132,9 +135,36 @@ const Inquilinos = () => {
 | 
			
		|||
            })
 | 
			
		||||
            setTenants(_tenants)
 | 
			
		||||
            setTenant(emptyTenant)
 | 
			
		||||
            setHouseNumber('')
 | 
			
		||||
          })
 | 
			
		||||
          .catch((error) => console.log(`Ocurrió un error: ${error}`))
 | 
			
		||||
      } else setSubmitted(true)
 | 
			
		||||
    } else {
 | 
			
		||||
      let _tenant = { ..._tenant, number_house: houseNumber };
 | 
			
		||||
      console.log(`Actualizando inquilino: ${_tenant}`)
 | 
			
		||||
      fetch(`http://localhost:4000/user/updateUser/${tenant._id}`, {
 | 
			
		||||
        cache: 'no-cache',
 | 
			
		||||
        method: 'PUT',
 | 
			
		||||
        body: JSON.stringify(_tenant),
 | 
			
		||||
        headers: {
 | 
			
		||||
          'Content-Type': 'application/json',
 | 
			
		||||
        },
 | 
			
		||||
      }).then((response) => {
 | 
			
		||||
        if (response.status !== 200)
 | 
			
		||||
          console.log(`Hubo un error en el servicio: ${response.status}`)
 | 
			
		||||
        else return response.json()
 | 
			
		||||
      }).then(() => {
 | 
			
		||||
        toast.current.show({
 | 
			
		||||
          severity: 'success',
 | 
			
		||||
          summary: 'Éxito',
 | 
			
		||||
          detail: 'Inquilino editado',
 | 
			
		||||
          life: 3000,
 | 
			
		||||
        })
 | 
			
		||||
        tenantsList()
 | 
			
		||||
        setTenant(emptyTenant)
 | 
			
		||||
        setHouseNumber('')
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const deleteTenant = () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -238,6 +268,19 @@ const Inquilinos = () => {
 | 
			
		|||
    setShowInfoDialog(true);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const editTenant = (tenant) => {
 | 
			
		||||
    setTenant(tenant);
 | 
			
		||||
    console.log(tenant);
 | 
			
		||||
    setSaveButtonTitle('Actualizar');
 | 
			
		||||
    setHouseNumber(tenant.number_house);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const cancelEdit = () => {
 | 
			
		||||
    setTenant(emptyTenant);
 | 
			
		||||
    setSaveButtonTitle('Registrar');
 | 
			
		||||
    setHouseNumber('');
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const actionsTenant = (rowData) => {
 | 
			
		||||
    let icono = ''
 | 
			
		||||
    let text = ''
 | 
			
		||||
| 
						 | 
				
			
			@ -246,14 +289,21 @@ const Inquilinos = () => {
 | 
			
		|||
      text = 'Activar Inquilino'
 | 
			
		||||
    } else if (rowData.status === '1') {
 | 
			
		||||
      icono = 'pi pi-eye-slash'
 | 
			
		||||
      text = 'Inactivar Inquilino'
 | 
			
		||||
      text = 'Desactivar Inquilino'
 | 
			
		||||
    }
 | 
			
		||||
    return (
 | 
			
		||||
      <div className='actions'>
 | 
			
		||||
        <Button
 | 
			
		||||
          icon="pi pi-pencil"
 | 
			
		||||
          className="p-button-rounded p-button-success mt-2 mx-2"
 | 
			
		||||
          onClick={() => editTenant(rowData)}
 | 
			
		||||
          title="Editar"
 | 
			
		||||
        />
 | 
			
		||||
        <Button
 | 
			
		||||
          icon="pi pi-exclamation-circle"
 | 
			
		||||
          className="p-button-rounded p-button-info mt-2 mx-2"
 | 
			
		||||
          onClick={() => infoTenant(rowData)}
 | 
			
		||||
          title="Ver Información"
 | 
			
		||||
        />
 | 
			
		||||
        <Button
 | 
			
		||||
          icon={`${icono}`}
 | 
			
		||||
| 
						 | 
				
			
			@ -265,6 +315,7 @@ const Inquilinos = () => {
 | 
			
		|||
          icon='pi pi-trash'
 | 
			
		||||
          className='p-button-rounded p-button-danger mt-2 mx-2'
 | 
			
		||||
          onClick={() => confirmDeleteTenant(rowData)}
 | 
			
		||||
          title='Eliminar Inquilino'
 | 
			
		||||
        />
 | 
			
		||||
      </div>
 | 
			
		||||
    )
 | 
			
		||||
| 
						 | 
				
			
			@ -574,10 +625,7 @@ const Inquilinos = () => {
 | 
			
		|||
                wordBreak: 'break-word',
 | 
			
		||||
              }}
 | 
			
		||||
            ></Column>
 | 
			
		||||
            <Column
 | 
			
		||||
              style={{ flexGrow: 1, flexBasis: '80px', minWidth: '80px' }}
 | 
			
		||||
              body={actionsTenant}
 | 
			
		||||
            ></Column>
 | 
			
		||||
            <Column style={{ flexGrow: 1, flexBasis: '80px', minWidth: '80px' }} body={actionsTenant}></Column>
 | 
			
		||||
          </DataTable>
 | 
			
		||||
          <Dialog
 | 
			
		||||
            visible={infoDialogVisible}
 | 
			
		||||
| 
						 | 
				
			
			@ -711,7 +759,7 @@ const Inquilinos = () => {
 | 
			
		|||
      </div>
 | 
			
		||||
      <div className="col-12">
 | 
			
		||||
        <div className="card">
 | 
			
		||||
          <h5>Registro de un administrador de una comunidad de viviendas</h5>
 | 
			
		||||
          <h5>Registro de un Inquilino</h5>
 | 
			
		||||
          <div className="p-fluid formgrid grid">
 | 
			
		||||
            <div className="field col-12 md:col-6">
 | 
			
		||||
              <label htmlFor="name">Nombre</label>
 | 
			
		||||
| 
						 | 
				
			
			@ -798,7 +846,22 @@ const Inquilinos = () => {
 | 
			
		|||
                  && <small className="p-invalid">Casa es requerida.</small>}
 | 
			
		||||
              </div>
 | 
			
		||||
            </div>
 | 
			
		||||
            <Button label="Registrar" onClick={saveTenant} />
 | 
			
		||||
            <div style={{
 | 
			
		||||
              display: "flex",
 | 
			
		||||
              justifyContent: "center",
 | 
			
		||||
              gap: "10px",
 | 
			
		||||
              width: "100%"
 | 
			
		||||
            }}>
 | 
			
		||||
              <Button
 | 
			
		||||
                label={`${saveButtonTitle}`}
 | 
			
		||||
                onClick={saveTenant}
 | 
			
		||||
              />
 | 
			
		||||
              {saveButtonTitle === 'Actualizar' && (
 | 
			
		||||
                <Button
 | 
			
		||||
                  label="Cancel"
 | 
			
		||||
                  onClick={cancelEdit}
 | 
			
		||||
                  className="p-button-danger" />)}
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue