dialogos y funciones eliminar reserva
This commit is contained in:
		
							parent
							
								
									dc3977ef44
								
							
						
					
					
						commit
						2ff3db6615
					
				|  | @ -94,7 +94,7 @@ const Reservations = () => { | ||||||
|                 ) |                 ) | ||||||
|                 data.map((item) => { |                 data.map((item) => { | ||||||
| 
 | 
 | ||||||
|                         item.date = formatDateString(item.date) |                     item.date = formatDateString(item.date) | ||||||
| 
 | 
 | ||||||
|                     if (item.status == '1') { |                     if (item.status == '1') { | ||||||
|                         item.status_text = 'Activo'; |                         item.status_text = 'Activo'; | ||||||
|  | @ -134,7 +134,7 @@ const Reservations = () => { | ||||||
|         let _reservation = { ...reservation }; |         let _reservation = { ...reservation }; | ||||||
| 
 | 
 | ||||||
|         if (_reservation.date && _reservation.time && tenantId && areaId |         if (_reservation.date && _reservation.time && tenantId && areaId | ||||||
|             && !validationTime()  |             && !validationTime() | ||||||
|             && !validationIsSameUser() && !validationIsReservation()) { |             && !validationIsSameUser() && !validationIsReservation()) { | ||||||
|             _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); | ||||||
|  | @ -175,7 +175,7 @@ const Reservations = () => { | ||||||
|                     setAreaId('') |                     setAreaId('') | ||||||
|                     setTenantId('') |                     setTenantId('') | ||||||
|                 }) |                 }) | ||||||
|              | 
 | ||||||
|         } else { |         } else { | ||||||
|             setSubmitted(true); |             setSubmitted(true); | ||||||
|         } |         } | ||||||
|  | @ -222,7 +222,83 @@ const Reservations = () => { | ||||||
|         setReservation(emptyReservation); |         setReservation(emptyReservation); | ||||||
|         setReservationDialog(true); |         setReservationDialog(true); | ||||||
|         setSubmitted(false); |         setSubmitted(false); | ||||||
|  |     }; | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     const hideDeleteReservationDialog = () => { | ||||||
|  |         setDeleteReservationDialog(false); | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     const hideDeleteReservationsDialog = () => { | ||||||
|  |         setDeleteReservationsDialog(false); | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     const deleteReservation = () => { | ||||||
|  |         fetch('http://localhost:4000/reservation/deleteReservation' + reservation._id, { | ||||||
|  |             cache: 'no-cache', | ||||||
|  |             method: 'DELETE', | ||||||
|  |             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 (response) { | ||||||
|  |                 let _reservation = reservations.filter( | ||||||
|  |                     (val) => (val._id !== reservation._id || val.status != -1), | ||||||
|  |                 ); | ||||||
|  | 
 | ||||||
|  |                 setReservations(_reservation); | ||||||
|  |                 setDeleteReservationDialog(false); | ||||||
|  |                 setReservation(emptyReservation); | ||||||
|  |                 toast.current.show({ | ||||||
|  |                     severity: 'success', | ||||||
|  |                     summary: 'Éxito', | ||||||
|  |                     detail: 'Reservación Eliminada', | ||||||
|  |                     life: 3000, | ||||||
|  |                 }); | ||||||
|  |             }) | ||||||
|  |             .catch((err) => { | ||||||
|  |                 console.log('Ocurrió un error con el fetch', err); | ||||||
|  |                 toast.current.show({ | ||||||
|  |                     severity: 'danger', | ||||||
|  |                     summary: 'Error', | ||||||
|  |                     detail: 'Reservación no se pudo Eliminar', | ||||||
|  |                     life: 3000, | ||||||
|  |                 }); | ||||||
|  |             }); | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     const deleteSelectedReservations = () => { | ||||||
|  |         let _reservations = reservations.filter( | ||||||
|  |             (val) => (!selectedReservations.includes(val)), | ||||||
|  |         ); | ||||||
|  |         selectedReservations.map((item) => { | ||||||
|  |             fetch('http://localhost:4000/reservation/deleteReservation/' + item._id, { | ||||||
|  |                 cache: 'no-cache', | ||||||
|  |                 method: 'DELETE', | ||||||
|  |                 headers: { | ||||||
|  |                     'Content-Type': 'application/json', | ||||||
|  |                 }, | ||||||
|  |             }); | ||||||
|  |         }); | ||||||
|  |         _reservations = _reservations.filter( | ||||||
|  |             (val) => val.status != -1, | ||||||
|  |         ) | ||||||
|  |         setReservations(_reservations); | ||||||
|  |         setDeleteReservationsDialog(false); | ||||||
|  |         setSelectedReservations(null); | ||||||
|  |         toast.current.show({ | ||||||
|  |             severity: 'success', | ||||||
|  |             summary: 'Éxito', | ||||||
|  |             detail: 'Reservaciones Eliminadas', | ||||||
|  |             life: 3000, | ||||||
|  |         }); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     const leftToolbarTemplate = () => { |     const leftToolbarTemplate = () => { | ||||||
|  | @ -272,6 +348,40 @@ const Reservations = () => { | ||||||
|         </> |         </> | ||||||
|     ); |     ); | ||||||
| 
 | 
 | ||||||
|  |     const deleteReservationDialogFooter = ( | ||||||
|  |         <> | ||||||
|  |           <Button | ||||||
|  |             label="No" | ||||||
|  |             icon="pi pi-times" | ||||||
|  |             className="p-button-text" | ||||||
|  |             onClick={hideDeleteReservationDialog} | ||||||
|  |           /> | ||||||
|  |           <Button | ||||||
|  |             label="Yes" | ||||||
|  |             icon="pi pi-check" | ||||||
|  |             className="p-button-text" | ||||||
|  |             onClick={deleteReservation} | ||||||
|  |           /> | ||||||
|  |         </> | ||||||
|  |       ); | ||||||
|  |      | ||||||
|  |       const deleteReservationsDialogFooter = ( | ||||||
|  |         <> | ||||||
|  |           <Button | ||||||
|  |             label="No" | ||||||
|  |             icon="pi pi-times" | ||||||
|  |             className="p-button-text" | ||||||
|  |             onClick={hideDeleteReservationsDialog} | ||||||
|  |           /> | ||||||
|  |           <Button | ||||||
|  |             label="Yes" | ||||||
|  |             icon="pi pi-check" | ||||||
|  |             className="p-button-text" | ||||||
|  |             onClick={deleteSelectedReservations} | ||||||
|  |           /> | ||||||
|  |         </> | ||||||
|  |       ); | ||||||
|  | 
 | ||||||
|     const header = ( |     const header = ( | ||||||
|         <div className="flex flex-column md:flex-row md:justify-content-between md:align-items-center"> |         <div className="flex flex-column md:flex-row md:justify-content-between md:align-items-center"> | ||||||
|             <h5 className="m-0"> |             <h5 className="m-0"> | ||||||
|  | @ -411,17 +521,17 @@ const Reservations = () => { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function validationIsReservation() { |     function validationIsReservation() { | ||||||
|         if(reservation.date && reservation.time && areaId){ |         if (reservation.date && reservation.time && areaId) { | ||||||
|             let date1 = new Date(reservation.date).toJSON().split('T')[0]; |             let date1 = new Date(reservation.date).toJSON().split('T')[0]; | ||||||
|             let date2 = date1.split('-')[2] + '-' + date1.split('-')[1] + '-' +date1.split('-')[0]; |             let date2 = date1.split('-')[2] + '-' + date1.split('-')[1] + '-' + date1.split('-')[0]; | ||||||
|      | 
 | ||||||
|             let booked = reservations.filter(item => item.common_area_id == areaId |             let booked = reservations.filter(item => item.common_area_id == areaId | ||||||
|                 &&  item.date == date2 |                 && item.date == date2 | ||||||
|                 && item.time == reservation.time); |                 && item.time == reservation.time); | ||||||
|                  | 
 | ||||||
|             if (booked.length > 0) { |             if (booked.length > 0) { | ||||||
|                 return true; |                 return true; | ||||||
|      | 
 | ||||||
|             } else { |             } else { | ||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|  | @ -429,16 +539,16 @@ const Reservations = () => { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     function validationIsSameUser() { |     function validationIsSameUser() { | ||||||
|         if(reservation.date && tenantId && areaId){ |         if (reservation.date && tenantId && areaId) { | ||||||
|             let date1 = new Date(reservation.date).toJSON().split('T')[0]; |             let date1 = new Date(reservation.date).toJSON().split('T')[0]; | ||||||
|             let date2 = date1.split('-')[2] + '-' + date1.split('-')[1] + '-' +date1.split('-')[0]; |             let date2 = date1.split('-')[2] + '-' + date1.split('-')[1] + '-' + date1.split('-')[0]; | ||||||
|      | 
 | ||||||
|             let booked = reservations.filter(item => item.common_area_id == areaId |             let booked = reservations.filter(item => item.common_area_id == areaId | ||||||
|                 &&  item.date == date2 |                 && item.date == date2 | ||||||
|                 && item.user_id == tenantId); |                 && item.user_id == tenantId); | ||||||
|             if (booked.length >= 2) { |             if (booked.length >= 2) { | ||||||
|                 return true; |                 return true; | ||||||
|      | 
 | ||||||
|             } else { |             } else { | ||||||
|                 return false; |                 return false; | ||||||
|             } |             } | ||||||
|  | @ -698,7 +808,47 @@ const Reservations = () => { | ||||||
|                             </div> |                             </div> | ||||||
|                         )} |                         )} | ||||||
|                     </Dialog> |                     </Dialog> | ||||||
| 
 |                     <Dialog | ||||||
|  |                         visible={deleteReservationsDialog} | ||||||
|  |                         style={{ width: '450px' }} | ||||||
|  |                         header="Confirmar" | ||||||
|  |                         modal | ||||||
|  |                         footer={deleteReservationDialogFooter} | ||||||
|  |                         onHide={hideDeleteReservationDialog} | ||||||
|  |                     > | ||||||
|  |                         <div className="flex align-items-center justify-content-center"> | ||||||
|  |                             <i | ||||||
|  |                                 className="pi pi-exclamation-triangle mr-3" | ||||||
|  |                                 style={{ fontSize: '2rem' }} | ||||||
|  |                             /> | ||||||
|  |                             {reservation && ( | ||||||
|  |                                 <span> | ||||||
|  |                                     ¿Estás seguro que desea eliminar la reservación de <b>{reservation.user_name}</b>? | ||||||
|  |                                 </span> | ||||||
|  |                             )} | ||||||
|  |                         </div> | ||||||
|  |                     </Dialog> | ||||||
|  |                     <Dialog | ||||||
|  |                         visible={deleteReservationsDialog} | ||||||
|  |                         style={{ width: '450px' }} | ||||||
|  |                         header="Confirmar" | ||||||
|  |                         modal | ||||||
|  |                         footer={deleteReservationsDialogFooter} | ||||||
|  |                         onHide={hideDeleteReservationsDialog} | ||||||
|  |                     > | ||||||
|  |                         <div className="flex align-items-center justify-content-center"> | ||||||
|  |                             <i | ||||||
|  |                                 className="pi pi-exclamation-triangle mr-3" | ||||||
|  |                                 style={{ fontSize: '2rem' }} | ||||||
|  |                             /> | ||||||
|  |                             {selectedReservations && ( | ||||||
|  |                                 <span> | ||||||
|  |                                     ¿Está seguro eliminar las reservaciones | ||||||
|  |                                     seleccionadas? | ||||||
|  |                                 </span> | ||||||
|  |                             )} | ||||||
|  |                         </div> | ||||||
|  |                     </Dialog> | ||||||
|                 </div> |                 </div> | ||||||
|             </div> |             </div> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue