KENNIS IN VERBINDING / ANALYSE 03.10.2026
TRACEERBAARHEID

frontend.md

Feitelijke analyse op 3 oktober 2026. Codebevindingen zijn geen garantie voor foutloos of daadwerkelijk gebruikt runtimegedrag.

← Alle bronnen

React-frontend en API-mapping

Gecontroleerde bronversie

Apache DocumentRoot /var/bestelsysteem/lmf-app → /mnt/storage/lmf_app/build. Live entrypoint static/js/main.7e850739.js. In /mnt/storage/lmf_app/lmf_buildv0027.zip staat dezelfde bundel, byte-identiek, met build/static/js/main.7e850739.js.map en ingebedde sourcesContent. Het buildscript verwijdert sourcemaps uit de live map; het archief bewaart ze wel.

Alle React-paden hieronder zijn oorspronkelijke sourcepaden uit die sourcemap, niet verzonnen componentnamen. Extractie is uitsluitend voor analyse in /tmp/lmf-react-source; niet als nieuwe bronrepository of release gebruikt. Manifest met hashes/paden. Er is geen aparte actuele React-Gitcommit vastgesteld. Archive/build-identiteit bewijst de bron van de geserveerde bundle, niet welke gecachete versie iedere browser heeft.

Routes en schermen

| Route | Screen / component | API en backend | Tabellen/resultaat | |---|---|---|---| | / | LoginView / Auth/Login | services/login.loginAPI → login → handler.authen → LMF.role | lmf_user, account/locaties/catalogus/config; token/rol | | /main-menu | MenuView / Menu | loginstate, geen extra logistieke call | vier rolmenu's | | /supplier-deliveries | SupplierDeliveriesView / SupplierDeliveries (exportnaam LogisticDeliveries) | fetchSupplierDeliveries → supplier_deliveries | pakbon, regels, lokatie, partners, verpakking → deliveries | | /supplier-delivery-detail/:id | SupplierDeliveryDetailView / SupplierDeliveryDetail | fetchSupplierDelivery → supplier_delivery → supplier_deliveries; confirmSupplierDelivery → confirm_delivery | pakbon.guid-detail; bevestiging/geleverd_volgens_leverancier | | /new-supplier-delivery | NewSupplierDeliveryView / NewSupplierDelivery | createNewSupplierDelivery → new_supplier_delivery; optioneel base64toData extern | pakbon/footer/emballage; camera naar aparte herkennings-API | | /supplier-orders | SupplierOrdersView / SupplierOrders | fetchSupplierOrders → orders → order_regels | vers_order, order_regel, product, lokatie, order_status | | /supplier-products | SupplierProductsView / SupplierProducts | fetchSupplierProducts → products | producten/aantallen per datum | | /supplier-dashboard | SupplierDashboardView / SupplierDashboard | fetchSupplierDashboardData → dashboard → supplier_dashboard | vers_order/regels/productgroepen → chartdata | | /supplier-settings | SupplierSettingsView / SupplierSettings | Redux currentInformation | navigatievoorkeur; ook route in HubRoutes | | /hub-incoming | HubDeliveriesView / HubIncoming → HubDeliveries | fetchIncomingHub → hub_incoming; registerIncomingGoodsHub → hub_incoming_deliveries | pakbonnen, catalogus, reg → leverancierzijde | | /hub-outgoing | HubOutgoingView / HubOutgoing → HubDeliveries | fetchOutgoingHub → hub_outgoing; registerIncomingGoodsHub → hub_outgoing_deliveries | dezelfde bronnen, locatiezijde | | /hub-dashboard | HubDashboardView / HubDashboard | fetchHubDashboardData → dashboard → hub_dashboard | orders/productgroepen op HUB | | /logistics-deliveries | LogisticDeliveriesView / LogisticsDeliveries | fetchLogisticDeliveries → logistics_deliveries | route/project/pakbon → deliveries | | /logistics-delivery-detail | LogisticDeliveryDetailView / LogisticDeliveryDetail | confirmLogisticsDelivery → confirm_delivery, acceptNewSupplierDelivery → accept_new_delivery | geselecteerde delivery uit schermstate; bevestiging/acceptatie | | /new-logistics-deliveries | NewLogisticsDeliveriesView / NewLogisticsDeliveries | fetchNewSupplierDeliveries → new_supplier_deliveries | vrije LMF-pakbonnen, status 0 | | /logistics-stops | LogisticStopsView / LogisticsStops → LogisticsStopDetail | fetchLogisticStops → stops; registerStopEmballage → stop → pickup_stop/delivery_stop | route_lokatie/pakbon/stopregistratie | | /logistics-dashboard | LogisticsDashboardView / LogisticsDashboard | fetchLogisticsDashboardData → dashboard → logistics_dashboard | orders van transporteur | | /logistics-settings | LogisticSettingsView / LogisticSettings | Redux-navigator | Google/Waze-keuze | | /customer-deliveries | CustomerDeliveriesView / CustomerDeliveries → CustomerDeliveryDetails | fetchCustomerDeliveries → customer_deliveries; confirmCustomerDelivery → confirm_delivery | klantlocatie/pakbon/emballage; contractverschillen hieronder | | /customer-delivery | CustomerDeliveryView | schermwrapper | geen afzonderlijke customer_delivery-call in actieve actions gevonden | | /customer-settings | CustomerSettingsView / CustomerSettings, LocationSelector | placeLocationComment → location_comment; updateLocations → Redux | lokatie.bijzonderheden + vernieuwde locaties in Redux | | /customer-dashboard | CustomerDashboardView / CustomerDashboard | fetchCustomerDashboardData → dashboard → customer_dashboard | eerste loginlocatie, orders/productgroepen |

HubRoutes bevat ook supplier-delivery-detail/:id met HUB-availability. De onderliggende supplier_delivery-API wordt in LMF alleen onder leverancierrol gedispatcht: route-aanwezigheid bewijst geen werkend HUB-detailpad.

Alle reguliere actions gebruiken POST, JSON en Authorization: Bearer <token>. API-prefix /api komt uit Axios.defaults. Backendcode=200 bepaalt succes, niet alleen HTTP-status. Exacte actie-/endpointregels staan in frontend-evidence.

State, hooks, layout en invoer

  • services/store.js: Redux createStore + thunk, reducers login/current_information. Beide worden als state in localStorage bewaard en bij start hersteld. Login wist localStorage en zet het Axios Bearer-header; logout wist state/header.
  • services/currentInformation: startDate/endDate/navigator. DateRangePicker stuurt datumkeuze; views herladen via useEffect/useSelector, formatteren data met date-fns. Lokale useState voor response/loading, gekozen levering/stop, drawers, hoeveelheden en commentaar; useRef voor handtekening/formulier.
  • routes/AppRoutes.js, utils/RequireAuth.js: rolcontrole, fallback NotFound. Menu, BottomNavBar, Header en screens/Layout hergebruiken routeconfig en gebruikersinfo.
  • GroupedDeliveries: MUI accordions; groepeerkeuze in GroupbyOptions en datumkiezer. Het bestand sorteert groepitems op leverdatum aflopend; dit kan de serverroutevolgorde visueel veranderen.
  • SupplierOrders en SupplierProducts tonen tabellen. DashboardComponents gebruikt Chart.js/react-chartjs-2 voor lijn- en staafgrafieken, orders per dag en productaantallen.
  • EmballageDrawer (export SupplierEmballageDrawer): MUI bottom drawer, catalogusartikel + KVD-keuze + Number(value); bewaart {id, number, package_type}. Herkent zowel id als package_id in catalogusopties. EmballageInvoerBox.js, export EmballageBox: aantallen/knoppen in stopdetail.
  • CameraComponent/NewSupplierDelivery gebruiken react-html5-camera-photo. SignatureComponent/SignatureUtils behandelen handtekening. Photo/signature zijn requestvelden; opslaggevolgen staan in packaging-flow.
  • GoogleMapCustom en Marker zijn gedeeld door leverings-/stopdetail; geen plannerpagina in deze build. Zie integraties.

Backendfuncties zonder geverifieerde React-aanroep

Geen action/call voor dash_orders, dash_customers, dash_route_customers, dash_suppliers, route_plan, emballage_hub_control, return_packaging, postcode, check_token, hub_routes, hub_vehicles, hub_customer_products, hub_supplier_products, hub_customers, hub_suppliers, hub_orders, update_supplier_delivery gevonden in de actieve appbronnen/bundel. Een andere client is mogelijk maar niet vastgesteld. Importer is evenmin gekoppeld aan een scherm.

Push-notificatiecomponenten roepen subscribe/subscribed/unsubscribe aan; geen overeenkomstige dispatch in XLSLMFHandler/LMF gevonden. Connector/upload/download/Keana zijn backend/externe paden, geen React-use-cases in deze build.

Aantoonbare frontend/backend-contractverschillen

  1. fetchCustomerDeliveries stuurt alleen start_date/end_date; backend vereist ook location_id (GUID). Geen interceptor die dit toevoegt aangetroffen.
  2. CustomerDeliveryDetails verstuurt packages, backend-confirm leest outbound_packages. Supplierdetail verstuurt outbound_packages wel; returned_packages wordt in beide gevallen niet verwerkt door confirm_delivery.
  3. delivery_id uit klant/logistieke lijst is pakbon.levering; confirm_delivery zoekt pakbon.guid. Alleen als waarden toevallig overeenkomen werkt dit als dezelfde sleutel.
  4. registerStopEmballage leest response.data.stops.data.stops; backend retourneert {code,data:{stops:{code,data:{stops:[...]}}}}. Het voorste data-niveau ontbreekt dus in de frontendtoegang; een write kan al geslaagd zijn terwijl de UI catch uitvoert.
  5. CustomerDeliveryDetails veronderstelt bepaalde suppliers/locations; lege/mismatched responses zijn niet overal defensief verwerkt. Geen ingelogde browserproef uitgevoerd.

Deze bevindingen zijn niet tijdens de documentatie-opdracht gerepareerd.

Legenda · bewijs en verbindingen

Bewijsstatus

CONFIRMED Aangetroffen in bron of catalogus; niet automatisch foutloos livegedrag.

LIKELY Gevolgtrekking met onderbouwing.

UNCLEAR Onvoldoende bewijs voor deze koppeling of werking.

NOT FOUND Niet aangetroffen binnen de onderzochte scope.

FUTURE / PROPOSED Voorstel; geen huidige functionaliteit.

Relaties

direct · Aangetroffen rechtstreekse referentie of aanroep.

derived · Afgeleid door selectie, groepering of berekening.

conditional · Alleen bij de genoemde voorwaarden of aanwezige bronverwijzing.

not active · Code/model aanwezig, niet aangesloten op het beschreven pad.

unclear · Verbinding niet vastgesteld.