import React, {useState, useEffect} from "react"; import { useSelector } from "react-redux"; import { useParams, useNavigate } from "react-router-dom"; import { selectAllRoutes, selectTomorrowAllRoutes, selectAllActiveDrivers, selectAllActiveVehicles, selectHistoryRoutes } from "./../../store"; import PersonnelSection from "./PersonnelSection"; import { AuthService, CustomerService, SignatureRequestService } from "../../services"; import moment from 'moment'; import { Breadcrumb, Tabs, Tab, Dropdown, Spinner, Modal, Button } from "react-bootstrap"; import { Download, Pencil } from "react-bootstrap-icons"; import RouteCustomerEditor from "./RouteCustomerEditor"; const RouteView = () => { const params = useParams(); const allRoutes = useSelector(selectAllRoutes); const tomorrowRoutes = useSelector(selectTomorrowAllRoutes); const historyRoutes = useSelector(selectHistoryRoutes); const drivers = useSelector(selectAllActiveDrivers); const vehicles = useSelector(selectAllActiveVehicles); const currentRoute = (allRoutes.find(item => item.id === params.id)) || (tomorrowRoutes.find(item => item.id === params.id)) || (historyRoutes.find(item => item.id === params.id)); const currentVehicle = vehicles.find(item => item.id === currentRoute?.vehicle ); const currentDriver = drivers.find(item => item.id === currentRoute?.driver); const [showVehicleDetails, setShowVehicleDetails] = useState(false); const [signature, setSignature] = useState(undefined); const [signatureRequest, setSignatureRequest] = useState(undefined); const paramsQuery = new URLSearchParams(window.location.search); const scheduleDate = paramsQuery.get('dateSchedule'); const navigate = useNavigate(); const closeModal = () => { setShowVehicleDetails(false); } const openModal = () => { setShowVehicleDetails(true); } const getRelatedOutboundRoutesForThisView = () => { if (allRoutes.find(item => item.id === params.id)) { return allRoutes.filter(item => item.type==='outbound'); } if (tomorrowRoutes.find(item => item.id === params.id)) { return tomorrowRoutes.filter(item => item.type==='outbound'); } if (historyRoutes.find(item => item.id === params.id)) { return historyRoutes.filter(item => item.type==='outbound'); } } const directToDashboad = () => { navigate(`/trans-routes/dashboard?dateSchedule=${moment(currentRoute?.schedule_date).format('YYYY-MM-DD')}`); } const edit = (editSection) => { if (scheduleDate) { navigate(`/trans-routes/edit/${currentRoute?.id}?dateSchedule=${scheduleDate}&editSection=${editSection}`) } else { navigate(`/trans-routes/edit/${currentRoute?.id}?editSection=${editSection}`) } } const deleteFile = () => { if (signature) { const dateArr = moment(currentRoute?.schedule_date)?.format('MM/DD/YYYY')?.split('/') || []; CustomerService.deleteFile({name: `${currentRoute?.id}_${currentRoute?.driver}_${dateArr[0]}_${dateArr[1]}`}).then(data => { setSignature(undefined); }) } } const generateSignatureRequest = () => { SignatureRequestService.createNewSignatureRequest({ driver_id: currentDriver?.id, driver_name: currentDriver?.name, route_id: currentRoute?.id, route_date: currentRoute?.schedule_date, route_name: currentRoute?.name, status: 'active', }).then((data) => { setSignatureRequest(data.data); }) } useEffect(() => { const dateArr = moment(currentRoute?.schedule_date)?.format('MM/DD/YYYY')?.split('/') || []; CustomerService.getAvatar(`${currentRoute?.id}_${currentRoute?.driver}_${dateArr[0]}_${dateArr[1]}`).then(data => { setSignature(data.data); }); SignatureRequestService.getAllSignatureRequests({driver_id: currentDriver?.id, route_id: currentRoute?.id, route_date: currentRoute?.scheduleDate}).then((data) => { if (data?.data?.length > 0) { setSignatureRequest(data?.data[0]); } }) }, [currentRoute]); return ( <>
Transportation Transportation Routes View Route

View Route Information

Route Details
Route Name
{currentRoute?.name}
Vehicle
{currentVehicle?.vehicle_number}
Driver
{currentDriver?.name}
Route Type
{currentRoute?.type}
Route Start Time
{currentRoute?.start_time && (new Date(currentRoute?.start_time))?.toLocaleTimeString()}
Route End Time
{currentRoute?.end_time && (new Date(currentRoute?.end_time))?.toLocaleTimeString()}
{currentRoute?.type === 'outbound' &&
Leave Center Time
{currentRoute?.start_time && (new Date(currentRoute?.start_time))?.toLocaleTimeString()}
} {currentRoute?.type === 'outbound' &&
Estimated Start Time
{currentRoute?.estimated_start_time && (new Date(currentRoute?.estimated_start_time))?.toLocaleTimeString()}
}
Start Mileage
{ currentRoute?.start_mileage}
End Mileage
{ currentRoute?.end_mileage}
{signature &&
Driver Signature
{signature && }
} {!signature && !signatureRequest &&
Signature Request
} {!signature && signatureRequest &&
Please send this to the driver to get signature:
{`${window.location.origin}/signature/${signatureRequest?.id}`}
}
Checklist
{currentRoute && currentRoute?.checklist_result?.map(item =>
{`${item?.item}: ${item?.result ? 'Yes': "No"}`}
)} {currentRoute && currentRoute?.checklist_result.length === 0 && <>No Checklist found}
{currentRoute && }
{/*
*/}
closeModal()}> Vehicle Info <>
Vehicle Number: {currentVehicle?.vehicle_number}
Tag: {currentVehicle?.tag}
EzPass: {currentVehicle?.ezpass}
GPS: {currentVehicle?.gps_tag}
Capacity: {currentVehicle?.capacity}
Status: {currentVehicle?.status}
Mileage: {currentVehicle?.mileage}
); }; export default RouteView;