Wilt u uw zending in de gaten houden tijdns transport? Dat is geen enkel probleem. Dit is bij ons zeker mogelijk. U kunt de live locatie van onze koerier bekijken en dus een exacte tijd bekijk van wanneer uw bestelling word geleverd.
𝗥𝗼𝘂𝘁𝗲𝘀
Wij baseren onze routes op de meest duurzaamste manier. Wij leveren zoveel mogelijk pakketten op 1 route. Onze route worden op efficiente manieren geproduceerd. Dat is een snellere levering voor u, en een beter mileu voor ons allemaal!
𝗦𝗽𝗼𝗲𝗱𝗹𝗲𝘃𝗲𝗿𝗶𝗻𝗴𝗲𝗻
Wij bieden ook spoedleveringen aan. Moet u nou een pakket ZSM geleverd hebben? Dan bent u bij WeShip+ aan het juiste adres! Wij staan 24/7 klaar voor uw leveringen. Een spoedlevering word voorgenomen op alle andere zendingen, en word sneller bezorgd. Mestaal zal dit worden opgenomen binnen 5 minuten tijd.
24/7 𝗗𝗶𝗲𝗻𝘀𝘁
Ja u ziet het goed! Wij bieden 24/7 diensten aan. Wij zijn 24 uur per dag en 7 dagen per week beschikbaar voor uw bestellingen! Wij zijn net zo snel in de nacht als wij overdag ook zijn!
document.addEventListener('DOMContentLoaded', () => {
const roleSelection = document.getElementById('role-selection');
const managerDashboard = document.getElementById('manager-dashboard');
const driverDashboard = document.getElementById('driver-dashboard');
const managerBtn = document.getElementById('manager-btn');
const driverBtn = document.getElementById('driver-btn');
const managerBackBtn = document.getElementById('manager-back-btn');
const driverBackBtn = document.getElementById('driver-back-btn');
const orderForm = document.getElementById('order-form');
const ordersListManager = document.getElementById('orders-list-manager');
const ordersListDriver = document.getElementById('orders-list-driver');
const driverFilterInput = document.getElementById('driver-filter');
// Delivery status colors
const statusColors = {
delivered: 'bg-green-200 text-green-800',
not_home: 'bg-orange-200 text-orange-800',
not_delivered: 'bg-red-200 text-red-800',
};
// Orders data structure: array of {id, customer, address, driver, status}
let orders = [];
// Load orders from localStorage if available
function loadOrders() {
const saved = localStorage.getItem('weship_orders');
if (saved) {
orders = JSON.parse(saved);
}
}
// Save orders to localStorage
function saveOrders() {
localStorage.setItem('weship_orders', JSON.stringify(orders));
}
// Render orders for manager dashboard
function renderManagerOrders() {
ordersListManager.innerHTML = '';
orders.forEach(order => {
const tr = document.createElement('tr');
tr.innerHTML = `
${order.customer}
${order.address}
${order.driver}
${formatStatus(order.status)}
`;
ordersListManager.appendChild(tr);
});
}
// Render orders for driver dashboard filtered by driver name
function renderDriverOrders(driverName) {
ordersListDriver.innerHTML = '';
if (!driverName) return;
const filtered = orders.filter(o => o.driver.toLowerCase() === driverName.toLowerCase());
filtered.forEach(order => {
const tr = document.createElement('tr');
tr.innerHTML = `
${order.customer}
${order.address}
${formatStatus(order.status)}
`;
ordersListDriver.appendChild(tr);
});
// Add event listeners to selects
document.querySelectorAll('.status-select').forEach(select => {
select.addEventListener('change', (e) => {
const id = e.target.getAttribute('data-id');
const newStatus = e.target.value;
updateOrderStatus(id, newStatus);
});
});
}
// Format status text
function formatStatus(status) {
switch (status) {
case 'delivered': return 'Delivered';
case 'not_home': return 'Not Home';
case 'not_delivered': return 'Not Delivered';
default: return '';
}
}
// Update order status by id
function updateOrderStatus(id, newStatus) {
const order = orders.find(o => o.id === id);
if (order) {
order.status = newStatus;
saveOrders();
renderManagerOrders();
}
}
// Add new order
orderForm.addEventListener('submit', (e) => {
e.preventDefault();
const customer = document.getElementById('customer-name').value.trim();
const address = document.getElementById('address').value.trim();
const driver = document.getElementById('driver-name').value.trim();
if (!customer || !address || !driver) return;
const newOrder = {
id: Date.now().toString(),
customer,
address,
driver,
status: 'not_delivered',
};
orders.push(newOrder);
saveOrders();
renderManagerOrders();
orderForm.reset();
});
// Role selection buttons
managerBtn.addEventListener('click', () => {
roleSelection.classList.add('hidden');
managerDashboard.classList.remove('hidden');
loadOrders();
renderManagerOrders();
});
driverBtn.addEventListener('click', () => {
roleSelection.classList.add('hidden');
driverDashboard.classList.remove('hidden');
driverFilterInput.value = '';
ordersListDriver.innerHTML = '';
});
// Back buttons
managerBackBtn.addEventListener('click', () => {
managerDashboard.classList.add('hidden');
roleSelection.classList.remove('hidden');
});
driverBackBtn.addEventListener('click', () => {
driverDashboard.classList.add('hidden');
roleSelection.classList.remove('hidden');
});
// Driver filter input event
driverFilterInput.addEventListener('input', (e) => {
const name = e.target.value.trim();
renderDriverOrders(name);
});
// Initial load
loadOrders();
});