validaciones de fechas y horas repetidas
This commit is contained in:
parent
47efe0bbdf
commit
ac80892afb
|
@ -94,7 +94,9 @@ const Reservations = () => {
|
||||||
)
|
)
|
||||||
data.map((item) => {
|
data.map((item) => {
|
||||||
|
|
||||||
item.date = formatDateString(item.date)
|
if (item.date) {
|
||||||
|
item.date = formatDateString(item.date)
|
||||||
|
}
|
||||||
|
|
||||||
if (item.status == '1') {
|
if (item.status == '1') {
|
||||||
item.status_text = 'Activo';
|
item.status_text = 'Activo';
|
||||||
|
@ -129,11 +131,11 @@ const Reservations = () => {
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
const saveReservation = () => {
|
const saveReservation = () => {
|
||||||
|
|
||||||
let _reservations = [...reservations];
|
let _reservations = [...reservations];
|
||||||
let _reservation = { ...reservation };
|
let _reservation = { ...reservation };
|
||||||
|
|
||||||
if (_reservation.date && _reservation.time && tenantId && areaId && !validationTime()) {
|
if (!validationIsReservation() && _reservation.date && _reservation.time && tenantId && areaId && !validationTime()) {
|
||||||
_reservation.common_area_name = areas.find(item => item._id == areaId).name;
|
_reservation.common_area_name = areas.find(item => item._id == areaId).name;
|
||||||
let tenant = tenants.find(item => item._id == tenantId);
|
let tenant = tenants.find(item => item._id == tenantId);
|
||||||
_reservation.user_name = tenant.name + ' ' + tenant.last_name;
|
_reservation.user_name = tenant.name + ' ' + tenant.last_name;
|
||||||
|
@ -147,34 +149,35 @@ const Reservations = () => {
|
||||||
_reservation.status_text = 'Inactivo';
|
_reservation.status_text = 'Inactivo';
|
||||||
}
|
}
|
||||||
console.log(_reservation)
|
console.log(_reservation)
|
||||||
fetch('http://localhost:4000/reservation/createReservation/', {
|
|
||||||
cache: 'no-cache',
|
/* fetch('http://localhost:4000/reservation/createReservation/', {
|
||||||
method: 'POST',
|
cache: 'no-cache',
|
||||||
body: JSON.stringify(_reservation),
|
method: 'POST',
|
||||||
headers: {
|
body: JSON.stringify(_reservation),
|
||||||
'Content-Type': 'application/json'
|
headers: {
|
||||||
}
|
'Content-Type': 'application/json'
|
||||||
})
|
}
|
||||||
.then((response) => {
|
})
|
||||||
if (response.status !== 200 && response.status !== 201 )
|
.then((response) => {
|
||||||
console.log(`Hubo un error en el servicio: ${response.status}`)
|
if (response.status !== 200 && response.status !== 201 )
|
||||||
else return response.json()
|
console.log(`Hubo un error en el servicio: ${response.status}`)
|
||||||
}).then(() => {
|
else return response.json()
|
||||||
_reservations.push(_reservation);
|
}).then(() => {*/
|
||||||
setReservations(_reservations)
|
_reservations.push(_reservation);
|
||||||
toast.current.show({
|
setReservations(_reservations)
|
||||||
severity: 'success',
|
toast.current.show({
|
||||||
summary: 'Éxito',
|
severity: 'success',
|
||||||
detail: 'Reservación realizada',
|
summary: 'Éxito',
|
||||||
life: 3000,
|
detail: 'Reservación realizada',
|
||||||
});
|
life: 3000,
|
||||||
|
});
|
||||||
setReservationDialog(false)
|
|
||||||
})
|
setReservationDialog(false)
|
||||||
|
/*})*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
setSubmitted(true);
|
setSubmitted(true);
|
||||||
}
|
}
|
||||||
|
@ -363,6 +366,16 @@ const Reservations = () => {
|
||||||
setReservation(_reservation);
|
setReservation(_reservation);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onTimeChange = (e) => {
|
||||||
|
e.target.value.split(':')[1] = "00";
|
||||||
|
const val = (e.target && e.target.value.split(':')[0]) || '';
|
||||||
|
let _reservation = { ...reservation };
|
||||||
|
document.getElementById('time').value = val + ":00";
|
||||||
|
_reservation['time'] = val + ":00";
|
||||||
|
setReservation(_reservation);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
const handleAreas = (e) => {
|
const handleAreas = (e) => {
|
||||||
const getAreaId = e.target.value;
|
const getAreaId = e.target.value;
|
||||||
setAreaId(getAreaId);
|
setAreaId(getAreaId);
|
||||||
|
@ -419,11 +432,21 @@ const Reservations = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatDateString(dateString) {
|
function formatDateString(dateString) {
|
||||||
const [date, time] = timeString.split('T');
|
const [date, time] = dateString.split('T');
|
||||||
return date;
|
return date;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validationIsReservation() {
|
||||||
|
let booked = reservations.filter(item => item.common_area_id == areaId && item.date == reservation.date && item.time == reservation.time);
|
||||||
|
if (booked.length > 0) {
|
||||||
|
return true;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="grid">
|
<div className="grid">
|
||||||
|
@ -567,7 +590,8 @@ const Reservations = () => {
|
||||||
lang='es'
|
lang='es'
|
||||||
value={reservation.date}
|
value={reservation.date}
|
||||||
className={classNames({
|
className={classNames({
|
||||||
'p-invalid': submitted && reservation.date === '',
|
'p-invalid': submitted && (reservation.date === ''
|
||||||
|
|| validationIsReservation()),
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
@ -575,6 +599,7 @@ const Reservations = () => {
|
||||||
{submitted && reservation.date === '' && (
|
{submitted && reservation.date === '' && (
|
||||||
<small className="p-invalid">Fecha es requirida.</small>
|
<small className="p-invalid">Fecha es requirida.</small>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -588,13 +613,14 @@ const Reservations = () => {
|
||||||
<InputText
|
<InputText
|
||||||
id="time"
|
id="time"
|
||||||
value={reservation.time}
|
value={reservation.time}
|
||||||
onChange={(e) => onInputChange(e, 'time')}
|
onChange={(e) => onTimeChange(e)}
|
||||||
required
|
required
|
||||||
autoFocus
|
autoFocus
|
||||||
type="time"
|
type="time"
|
||||||
step='3600'
|
step='3600'
|
||||||
className={classNames({
|
className={classNames({
|
||||||
'p-invalid': submitted && (reservation.time === '' || validationTime()),
|
'p-invalid': submitted && (reservation.time === ''
|
||||||
|
|| validationTime() || validationIsReservation()),
|
||||||
})}
|
})}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -602,9 +628,11 @@ const Reservations = () => {
|
||||||
<small className="p-invalid">Hora es requirido.</small>
|
<small className="p-invalid">Hora es requirido.</small>
|
||||||
)}
|
)}
|
||||||
{submitted && validationTime() && (
|
{submitted && validationTime() && (
|
||||||
<small className="p-invalid">La hora de inicio debe set mayor de {area.hourMin} y menor de {area.hourMax} .</small>
|
<small className="p-invalid">La hora de inicio debe ser mayor de {area.hourMin} y menor de {area.hourMax} .</small>
|
||||||
|
)}
|
||||||
|
{submitted && validationIsReservation() && (
|
||||||
|
<small className="p-invalid">Ya hay una reservación en la fecha y hora ingresada.</small>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue