Merge branch 'dev' into US-52-Verinformacióndeguardadeseguridad
This commit is contained in:
		
						commit
						3da1bf7755
					
				| 
						 | 
					@ -269,6 +269,7 @@ export class AppService {
 | 
				
			||||||
      hourMax: hourMax,
 | 
					      hourMax: hourMax,
 | 
				
			||||||
      bookable: bookable,
 | 
					      bookable: bookable,
 | 
				
			||||||
      community_id: community_id,
 | 
					      community_id: community_id,
 | 
				
			||||||
 | 
					      status: '1'
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    return this.clientCommonAreaApp
 | 
					    return this.clientCommonAreaApp
 | 
				
			||||||
      .send<string>(pattern, payload)
 | 
					      .send<string>(pattern, payload)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,16 +15,15 @@ import { faIdCardAlt } from '@fortawesome/free-solid-svg-icons';
 | 
				
			||||||
import { faClipboardCheck } from '@fortawesome/free-solid-svg-icons';
 | 
					import { faClipboardCheck } from '@fortawesome/free-solid-svg-icons';
 | 
				
			||||||
import classNames from 'classnames';
 | 
					import classNames from 'classnames';
 | 
				
			||||||
import { useCookies } from "react-cookie";
 | 
					import { useCookies } from "react-cookie";
 | 
				
			||||||
 | 
					import { RadioButton } from 'primereact/radiobutton';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const AreasComunes = () => {
 | 
					const AreasComunes = () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let emptyCommonArea = {
 | 
					    let emptyCommonArea = {
 | 
				
			||||||
        _id: null,
 | 
					        _id: null,
 | 
				
			||||||
        dni: '',
 | 
					 | 
				
			||||||
        name: '',
 | 
					        name: '',
 | 
				
			||||||
        hourMin: '',
 | 
					        hourMin: '00:00',
 | 
				
			||||||
        hourMax: '',
 | 
					        hourMax: '01:00',
 | 
				
			||||||
        community_id: '',
 | 
					        community_id: '',
 | 
				
			||||||
        bookable: '1',
 | 
					        bookable: '1',
 | 
				
			||||||
        bookable_text: '',
 | 
					        bookable_text: '',
 | 
				
			||||||
| 
						 | 
					@ -32,6 +31,7 @@ const AreasComunes = () => {
 | 
				
			||||||
        status_text: '',
 | 
					        status_text: '',
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const [commonAreaList, setCommonAreaList] = useState([]);
 | 
					    const [commonAreaList, setCommonAreaList] = useState([]);
 | 
				
			||||||
    const [commonArea, setCommonArea] = useState(emptyCommonArea);
 | 
					    const [commonArea, setCommonArea] = useState(emptyCommonArea);
 | 
				
			||||||
    const [selectedCommonAreas, setSelectedCommonAreas] = useState(null);
 | 
					    const [selectedCommonAreas, setSelectedCommonAreas] = useState(null);
 | 
				
			||||||
| 
						 | 
					@ -44,6 +44,8 @@ const AreasComunes = () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const [cookies, setCookie] = useCookies();
 | 
					    const [cookies, setCookie] = useCookies();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    async function getCommonAreas() {
 | 
					    async function getCommonAreas() {
 | 
				
			||||||
        await fetch(`http://localhost:4000/commonArea/findByCommunity/${cookies.community_id}`, { method: 'GET' })
 | 
					        await fetch(`http://localhost:4000/commonArea/findByCommunity/${cookies.community_id}`, { method: 'GET' })
 | 
				
			||||||
            .then((response) => response.json())
 | 
					            .then((response) => response.json())
 | 
				
			||||||
| 
						 | 
					@ -78,6 +80,74 @@ const AreasComunes = () => {
 | 
				
			||||||
        getCommonAreas();
 | 
					        getCommonAreas();
 | 
				
			||||||
    }, []);
 | 
					    }, []);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const saveCommonArea = () => {
 | 
				
			||||||
 | 
					        if (
 | 
				
			||||||
 | 
					            commonArea.name &&
 | 
				
			||||||
 | 
					            commonArea.hourMin < commonArea.hourMax
 | 
				
			||||||
 | 
					        ) {
 | 
				
			||||||
 | 
					            let _common_areas = [...commonAreaList];
 | 
				
			||||||
 | 
					            let _common_area = { ...commonArea };
 | 
				
			||||||
 | 
					            _common_area.community_id = cookies.community_id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // console.log(houses)
 | 
				
			||||||
 | 
					            fetch('http://localhost:4000/commonArea/createCommonArea', {
 | 
				
			||||||
 | 
					                cache: 'no-cache',
 | 
				
			||||||
 | 
					                method: 'POST',
 | 
				
			||||||
 | 
					                body: JSON.stringify(_common_area),
 | 
				
			||||||
 | 
					                headers: {
 | 
				
			||||||
 | 
					                    'Content-Type': 'application/json',
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					                .then(function (response) {
 | 
				
			||||||
 | 
					                    if (response.status != 201)
 | 
				
			||||||
 | 
					                        console.log('Ocurrió un error con el servicio: ' + response.status);
 | 
				
			||||||
 | 
					                    else return response.json();
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					                .then(function (data) {
 | 
				
			||||||
 | 
					                    return data.message;
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					                .then((data) => {
 | 
				
			||||||
 | 
					                    if (data) {
 | 
				
			||||||
 | 
					                        if (data.bookable == '1') {
 | 
				
			||||||
 | 
					                            data.bookable_text = 'Necesaria';
 | 
				
			||||||
 | 
					                        } else {
 | 
				
			||||||
 | 
					                            data.bookable_text = 'No es necesaria';
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        if (data.status == '1') {
 | 
				
			||||||
 | 
					                            data.status_text = 'Activo';
 | 
				
			||||||
 | 
					                        } else if (data.status == '0') {
 | 
				
			||||||
 | 
					                            data.status_text = 'Inactivo';
 | 
				
			||||||
 | 
					                        } else {
 | 
				
			||||||
 | 
					                            data.status_text = 'Eliminado';
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    _common_areas.push(data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    toast.current.show({
 | 
				
			||||||
 | 
					                        severity: 'success',
 | 
				
			||||||
 | 
					                        summary: 'Registro exitoso',
 | 
				
			||||||
 | 
					                        detail: 'Área Común Creada',
 | 
				
			||||||
 | 
					                        life: 3000,
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                    setCommonAreaList(_common_areas);
 | 
				
			||||||
 | 
					                    setCommonArea(emptyCommonArea);
 | 
				
			||||||
 | 
					                })
 | 
				
			||||||
 | 
					                .catch((err) => {
 | 
				
			||||||
 | 
					                    console.log('Ocurrió un error con el fetch', err);
 | 
				
			||||||
 | 
					                    toast.current.show({
 | 
				
			||||||
 | 
					                        severity: 'danger',
 | 
				
			||||||
 | 
					                        summary: 'Error',
 | 
				
			||||||
 | 
					                        detail: 'No se pudo registrar el área común',
 | 
				
			||||||
 | 
					                        life: 3000
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            setSubmitted(true);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const deleteCommonArea = () => {
 | 
					    const deleteCommonArea = () => {
 | 
				
			||||||
        fetch('http://localhost:4000/commonArea/deleteCommonArea/' + commonArea._id, {
 | 
					        fetch('http://localhost:4000/commonArea/deleteCommonArea/' + commonArea._id, {
 | 
				
			||||||
| 
						 | 
					@ -167,8 +237,6 @@ const AreasComunes = () => {
 | 
				
			||||||
        setDeleteCommonAreasDialog(true);
 | 
					        setDeleteCommonAreasDialog(true);
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const actionsCommonArea = (rowData) => {
 | 
					    const actionsCommonArea = (rowData) => {
 | 
				
			||||||
        return (
 | 
					        return (
 | 
				
			||||||
            <div className="actions">
 | 
					            <div className="actions">
 | 
				
			||||||
| 
						 | 
					@ -181,6 +249,18 @@ const AreasComunes = () => {
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onBookableChange = (e) => {
 | 
				
			||||||
 | 
					        let _commonArea = { ...commonArea };
 | 
				
			||||||
 | 
					        _commonArea['bookable'] = e.value;
 | 
				
			||||||
 | 
					        setCommonArea(_commonArea);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onInputChange = (e, name) => {
 | 
				
			||||||
 | 
					        const val = (e.target && e.target.value) || '';
 | 
				
			||||||
 | 
					        let _commonArea = { ...commonArea };
 | 
				
			||||||
 | 
					        _commonArea[`${name}`] = val;
 | 
				
			||||||
 | 
					        setCommonArea(_commonArea);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const deleteCommonAreaDialogFooter = (
 | 
					    const deleteCommonAreaDialogFooter = (
 | 
				
			||||||
        <>
 | 
					        <>
 | 
				
			||||||
| 
						 | 
					@ -278,7 +358,7 @@ const AreasComunes = () => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const bookableBodyTemplate = (rowData) => {
 | 
					    const bookableBodyTemplate = (rowData) => {
 | 
				
			||||||
        let class_color = '';
 | 
					        let class_color = '';
 | 
				
			||||||
        if(rowData.bookable == '1') {
 | 
					        if (rowData.bookable == '1') {
 | 
				
			||||||
            class_color = '0';
 | 
					            class_color = '0';
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            class_color = '1';
 | 
					            class_color = '1';
 | 
				
			||||||
| 
						 | 
					@ -307,6 +387,18 @@ const AreasComunes = () => {
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    function compareTimesMinRequired(hour1, hour2) {
 | 
				
			||||||
 | 
					        var timeFormat1 = Number(hour1.replace(/[:]/g, ''));
 | 
				
			||||||
 | 
					        var timeFormat2 = Number(hour2.replace(/[:]/g, ''));
 | 
				
			||||||
 | 
					        if (timeFormat1 <= timeFormat2) {
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
        <div className="grid">
 | 
					        <div className="grid">
 | 
				
			||||||
            <div className="col-12">
 | 
					            <div className="col-12">
 | 
				
			||||||
| 
						 | 
					@ -341,6 +433,124 @@ const AreasComunes = () => {
 | 
				
			||||||
                    </Dialog>
 | 
					                    </Dialog>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div className="col-12">
 | 
				
			||||||
 | 
					                <div className="card">
 | 
				
			||||||
 | 
					                    <h5>Registro de área común</h5>
 | 
				
			||||||
 | 
					                    <div className="p-fluid formgrid grid">
 | 
				
			||||||
 | 
					                        <div className="field col-12 md:col-6">
 | 
				
			||||||
 | 
					                            <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 id="name"
 | 
				
			||||||
 | 
					                                        type="text"
 | 
				
			||||||
 | 
					                                        onChange={(e) => onInputChange(e, 'name')}
 | 
				
			||||||
 | 
					                                        value={commonArea.name}
 | 
				
			||||||
 | 
					                                        required
 | 
				
			||||||
 | 
					                                        autoFocus
 | 
				
			||||||
 | 
					                                        className={classNames({
 | 
				
			||||||
 | 
					                                            'p-invalid': submitted && commonArea.name === '',
 | 
				
			||||||
 | 
					                                        })}
 | 
				
			||||||
 | 
					                                    />
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                {submitted && commonArea.name === '' && (
 | 
				
			||||||
 | 
					                                    <small className="p-invalid">Nombre es requirido.</small>
 | 
				
			||||||
 | 
					                                )}
 | 
				
			||||||
 | 
					                            </div>
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                        <div className="field col-12 md:col-6">
 | 
				
			||||||
 | 
					                            <label htmlFor="hourMin">Hora apertura</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="hourMin"
 | 
				
			||||||
 | 
					                                        type="time"
 | 
				
			||||||
 | 
					                                        min="00:00" max="23:59"
 | 
				
			||||||
 | 
					                                        step="3600000"
 | 
				
			||||||
 | 
					                                        onChange={(e) => onInputChange(e, 'hourMin')}
 | 
				
			||||||
 | 
					                                        value={commonArea.hourMin}
 | 
				
			||||||
 | 
					                                        required
 | 
				
			||||||
 | 
					                                        autoFocus
 | 
				
			||||||
 | 
					                                        className={classNames({
 | 
				
			||||||
 | 
					                                            'p-invalid': submitted && compareTimesMinRequired(commonArea.hourMax, commonArea.hourMin),
 | 
				
			||||||
 | 
					                                        })}
 | 
				
			||||||
 | 
					                                    />
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                {submitted && compareTimesMinRequired(commonArea.hourMax, commonArea.hourMin) && (
 | 
				
			||||||
 | 
					                                    <small className="p-invalid">La hora de apertura debe ser menor que la hora de cierre.</small>
 | 
				
			||||||
 | 
					                                )}
 | 
				
			||||||
 | 
					                            </div>
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                        <div className="field col-12 md:col-6">
 | 
				
			||||||
 | 
					                            <label htmlFor="hourMax">Hora de cierre</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="hourMax"
 | 
				
			||||||
 | 
					                                        type="time"
 | 
				
			||||||
 | 
					                                        min="00:00" max="23:59"
 | 
				
			||||||
 | 
					                                        step="3600000"
 | 
				
			||||||
 | 
					                                        onChange={(e) => onInputChange(e, 'hourMax')}
 | 
				
			||||||
 | 
					                                        value={commonArea.hourMax}
 | 
				
			||||||
 | 
					                                        required
 | 
				
			||||||
 | 
					                                        autoFocus
 | 
				
			||||||
 | 
					                                        className={classNames({
 | 
				
			||||||
 | 
					                                            'p-invalid': submitted && compareTimesMinRequired(commonArea.hourMax, commonArea.hourMin),
 | 
				
			||||||
 | 
					                                        })}
 | 
				
			||||||
 | 
					                                    />
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                {submitted && compareTimesMinRequired(commonArea.hourMax, commonArea.hourMin) && (
 | 
				
			||||||
 | 
					                                    <small className="p-invalid">La hora de cierre debe ser mayor que la hora de apertura</small>
 | 
				
			||||||
 | 
					                                )}
 | 
				
			||||||
 | 
					                            </div>
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					                        <div className="field col-12 md:col-6">
 | 
				
			||||||
 | 
					                            <label htmlFor="bookable">¿Necesita Reservación?</label>
 | 
				
			||||||
 | 
					                            <div className="formgrid grid align-items-end" style={{marginTop: '12px', width: '300px'}}>
 | 
				
			||||||
 | 
					                                <div className="field-radiobutton col-6">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                                    <RadioButton
 | 
				
			||||||
 | 
					                                        inputId="bookable1"
 | 
				
			||||||
 | 
					                                        name="bookable"
 | 
				
			||||||
 | 
					                                        value="1"
 | 
				
			||||||
 | 
					                                        onChange={onBookableChange}
 | 
				
			||||||
 | 
					                                        checked={commonArea.bookable === '1'}
 | 
				
			||||||
 | 
					                                    />
 | 
				
			||||||
 | 
					                                    <label htmlFor="bookable1">
 | 
				
			||||||
 | 
					                                        <span className="p-icon-input-khaki">
 | 
				
			||||||
 | 
					                                            <i className="pi pi-check status status-1"></i> Sí
 | 
				
			||||||
 | 
					                                        </span>
 | 
				
			||||||
 | 
					                                    </label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                                <div className="field-radiobutton col-6">
 | 
				
			||||||
 | 
					                                    <RadioButton
 | 
				
			||||||
 | 
					                                        inputId="bookable2"
 | 
				
			||||||
 | 
					                                        name="bookable"
 | 
				
			||||||
 | 
					                                        value="0"
 | 
				
			||||||
 | 
					                                        onChange={onBookableChange}
 | 
				
			||||||
 | 
					                                        checked={commonArea.bookable === '0'}
 | 
				
			||||||
 | 
					                                    />
 | 
				
			||||||
 | 
					                                    <label htmlFor="bookable2">
 | 
				
			||||||
 | 
					                                        <span className="p-icon-input-khaki">
 | 
				
			||||||
 | 
					                                            <i className="pi pi-times status status-0"></i> No
 | 
				
			||||||
 | 
					                                        </span>
 | 
				
			||||||
 | 
					                                    </label>
 | 
				
			||||||
 | 
					                                </div>
 | 
				
			||||||
 | 
					                            </div>
 | 
				
			||||||
 | 
					                        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        <Button label="Registrar" onClick={saveCommonArea}></Button>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue