fix
All checks were successful
Build And Deploy Main / build-and-deploy (push) Successful in 32s

This commit is contained in:
2026-03-09 16:07:06 -04:00
parent be1ce5fd4c
commit 91212ab759

View File

@@ -4,11 +4,11 @@ import { useNavigate, useSearchParams } from "react-router-dom";
import { selectInboundRoutes, selectTomorrowAllRoutes, selectTomorrowInboundRoutes, selectTomorrowOutboundRoutes, selectHistoryInboundRoutes, selectHistoryRoutes, selectHistoryOutboundRoutes, selectOutboundRoutes, selectAllRoutes, selectAllActiveVehicles, selectAllActiveDrivers, transRoutesSlice } from "./../../store"; import { selectInboundRoutes, selectTomorrowAllRoutes, selectTomorrowInboundRoutes, selectTomorrowOutboundRoutes, selectHistoryInboundRoutes, selectHistoryRoutes, selectHistoryOutboundRoutes, selectOutboundRoutes, selectAllRoutes, selectAllActiveVehicles, selectAllActiveDrivers, transRoutesSlice } from "./../../store";
import RoutesSection from "./RoutesSection"; import RoutesSection from "./RoutesSection";
import PersonnelSection from "./PersonnelSection"; import PersonnelSection from "./PersonnelSection";
import { AuthService, CustomerService, TransRoutesService, DriverService, EventsService, SignatureRequestService, DailyRoutesTemplateService } from "../../services"; import { AuthService, CustomerService, TransRoutesService, DriverService, EventsService, DailyRoutesTemplateService } from "../../services";
import { PERSONAL_ROUTE_STATUS, ROUTE_STATUS, reportRootUrl, CUSTOMER_TYPE_TEXT, PERSONAL_ROUTE_STATUS_TEXT, PICKUP_STATUS, PICKUP_STATUS_TEXT, REPORT_TYPE } from "../../shared"; import { PERSONAL_ROUTE_STATUS, ROUTE_STATUS, reportRootUrl, CUSTOMER_TYPE_TEXT, PERSONAL_ROUTE_STATUS_TEXT, PICKUP_STATUS, PICKUP_STATUS_TEXT, REPORT_TYPE } from "../../shared";
import moment from 'moment'; import moment from 'moment';
import DatePicker from "react-datepicker"; import DatePicker from "react-datepicker";
import { CalendarWeek, ClockHistory, Copy, Download, Eraser, Plus, Clock, Send, Filter, CalendarCheck, Check } from "react-bootstrap-icons"; import { CalendarWeek, ClockHistory, Copy, Download, Eraser, Plus, Clock, Filter, CalendarCheck, Check } from "react-bootstrap-icons";
import { Breadcrumb, Tabs, Tab, Dropdown, Spinner, Modal, Button, ProgressBar } from "react-bootstrap"; import { Breadcrumb, Tabs, Tab, Dropdown, Spinner, Modal, Button, ProgressBar } from "react-bootstrap";
import RouteCustomerTable from "./RouteCustomerTable"; import RouteCustomerTable from "./RouteCustomerTable";
@@ -40,10 +40,8 @@ const RoutesDashboard = () => {
const [routesForSignature, setRoutesForSignature] = useState(allRoutes); const [routesForSignature, setRoutesForSignature] = useState(allRoutes);
const [currentTab, setCurrentTab] = useState('allRoutesOverview'); const [currentTab, setCurrentTab] = useState('allRoutesOverview');
const [sorting, setSorting] = useState({key: '', order: ''}); const [sorting, setSorting] = useState({key: '', order: ''});
const [selectedItems, setSelectedItems] = useState([]);
const [showFilterDropdown, setShowFilterDropdown] = useState(false); const [showFilterDropdown, setShowFilterDropdown] = useState(false);
const [showDateDropdown, setShowDateDropdown] = useState(false); const [showDateDropdown, setShowDateDropdown] = useState(false);
const [showSignatureRequestLoading, setShowSignatureRequestLoading] = useState(false);
const [routesForShowing, setRoutesForShowing] = useState(allRoutes); const [routesForShowing, setRoutesForShowing] = useState(allRoutes);
const [routesInboundForShowing, setRoutesInboundForShowing] = useState(inboundRoutes); const [routesInboundForShowing, setRoutesInboundForShowing] = useState(inboundRoutes);
const [routesOutboundForShowing, setRoutesOutboundForShowing] = useState(outboundRoutes); const [routesOutboundForShowing, setRoutesOutboundForShowing] = useState(outboundRoutes);
@@ -750,7 +748,6 @@ const RoutesDashboard = () => {
setCurrentTab(k); setCurrentTab(k);
setKeyword(''); setKeyword('');
setSorting({key: '', order: ''}); setSorting({key: '', order: ''});
setSelectedItems([]);
setDateSelected(new Date()); setDateSelected(new Date());
setOriginDateSelected(undefined); setOriginDateSelected(undefined);
setTargetedDateSelected(undefined); setTargetedDateSelected(undefined);
@@ -1141,43 +1138,6 @@ const RoutesDashboard = () => {
setSorting(newSorting); setSorting(newSorting);
} }
const toggleSelectedAllItems = () => {
const filteredSignatures = routesForSignature && routesForSignature.filter((route) => {
if (!selectedDriver) {
return route;
} else {
return route?.driver === selectedDriver;
}
}).filter(((route) => route.name?.toLowerCase().includes(keyword?.toLowerCase()) || drivers.find((d) => d.id === route?.driver)?.name?.toLowerCase().includes(keyword?.toLowerCase())));
if (selectedItems.length !== filteredSignatures.length || selectedItems.length === 0) {
const newSelectedItems = [...filteredSignatures].map((sig) => sig.id);
setSelectedItems(newSelectedItems);
} else {
setSelectedItems([]);
}
}
const toggleItem = (id) => {
if (selectedItems.includes(id)) {
const newSelectedItems = [...selectedItems].filter((item) => item !== id);
setSelectedItems(newSelectedItems);
} else {
const newSelectedItems = [...selectedItems, id];
setSelectedItems(newSelectedItems);
}
}
const checkSelectAll = () => {
const filteredSignatures = routesForSignature && routesForSignature.filter((route) => {
if (!selectedDriver) {
return route;
} else {
return route?.driver === selectedDriver;
}
}).filter((route) => route.name?.toLowerCase().includes(keyword?.toLowerCase()) || drivers.find((d) => d.id === route?.driver)?.name?.toLowerCase().includes(keyword?.toLowerCase()));
return selectedItems.length === filteredSignatures.length && selectedItems.length > 0;
}
const pickOriginDateSelected = (v) => { const pickOriginDateSelected = (v) => {
setOriginDateSelected(v); setOriginDateSelected(v);
setDateSelected(v); setDateSelected(v);
@@ -1452,24 +1412,6 @@ const RoutesDashboard = () => {
const generateSignatureRequest = async () => {
setShowSignatureRequestLoading(true);
for (const id of selectedItems) {
const currentRoute = routesForSignature.find(route => route?.id === id);
const currentDriver = drivers.find(driver => driver?.id === currentRoute?.driver);
await SignatureRequestService.createNewSignatureRequest({
driver_id: currentRoute?.id,
driver_name: currentDriver?.name,
route_id: currentRoute?.id,
route_date: currentRoute?.schedule_date,
route_name: currentRoute?.name,
status: 'active',
})
}
setShowSignatureRequestLoading(false);
}
// Save template modal handlers // Save template modal handlers
const openSaveTemplateModal = () => { const openSaveTemplateModal = () => {
setShowSaveTemplateModal(true); setShowSaveTemplateModal(true);
@@ -1786,7 +1728,6 @@ const RoutesDashboard = () => {
<table className="personnel-info-table me-4"> <table className="personnel-info-table me-4">
<thead> <thead>
<tr> <tr>
<th className="th-checkbox"><input type="checkbox" checked={checkSelectAll()} onClick={() => toggleSelectedAllItems()}></input></th>
<th className="th-index">No.</th> <th className="th-index">No.</th>
{ {
columns.map((column, index) => <th className="sortable-header" key={index}> columns.map((column, index) => <th className="sortable-header" key={index}>
@@ -1806,7 +1747,6 @@ const RoutesDashboard = () => {
} }
}).filter((route) => route.name?.toLowerCase().includes(keyword?.toLowerCase()) || drivers.find((d) => d.id === route?.driver)?.name?.toLowerCase().includes(keyword?.toLowerCase()))?.map(({id, name, end_time, driver, type, signature}, index) => { }).filter((route) => route.name?.toLowerCase().includes(keyword?.toLowerCase()) || drivers.find((d) => d.id === route?.driver)?.name?.toLowerCase().includes(keyword?.toLowerCase()))?.map(({id, name, end_time, driver, type, signature}, index) => {
return (<tr key={index}> return (<tr key={index}>
<td className="td-checkbox"><input type="checkbox" checked={selectedItems.includes(id)} onClick={()=>toggleItem(id)}/></td>
<td className="td-index">{index + 1}</td> <td className="td-index">{index + 1}</td>
<td>{name}</td> <td>{name}</td>
<td>{drivers.find((d) => d.id === driver)?.name}</td> <td>{drivers.find((d) => d.id === driver)?.name}</td>
@@ -1925,8 +1865,6 @@ const RoutesDashboard = () => {
</Dropdown.Toggle> </Dropdown.Toggle>
<Dropdown.Menu as={customMenu}/> <Dropdown.Menu as={customMenu}/>
</Dropdown> </Dropdown>
<button className="btn btn-primary me-2" onClick={() => generateSignatureRequest()}><Send size={16} className="me-2"></Send>{ showSignatureRequestLoading ? <Spinner size={12}></Spinner> : 'Send Signature Link'}</button>
<button className="btn btn-primary"><Download size={16} className="me-2"></Download>Export</button>
</> } </> }
{ currentTab === 'allRoutesStatus' && <> { currentTab === 'allRoutesStatus' && <>