Switchboard
Push Excel/CSV data to SharePoint lists
No token
🧾 Stock Movement Entry β€” receive or release stock Β· saved to SKUs_Movements_Batch_tbl
Choose the transaction, fill the header once, then enter the SKU lines. SKU details, UoM, batch dates and the available balance are suggested from what is already in the list. The user name and the time stamp are added automatically when you save.
πŸ•˜ Latest movements in the list
πŸ— Project Progress β€” register projects, update progress per phase, record costs & manpower Β· saved to SharePoint lists
🚚 Fleet Management β€” vehicles, drivers, maintenance, fuel, documents, incidents, tyres & parts Β· saved to SharePoint lists
🏭 WHs Movements (FEFO) β€” inbound & outbound by pallets or bulk Β· FEFO batch allocation Β· saved to SKUs_Movements_Batch_tbl
πŸ§ͺ RMPM Warehouse β€” raw & packaging materials Β· FEFO Β· QC status Β· saved to SharePoint lists
1 Connection ADMIN MANAGED
These values are configured by an administrator in Settings β†’ Global Connection Settings.
2 Excel or CSV File
πŸ“
Click to browse or drag & drop your file
.xlsx, .xls, or .csv β€” first row must contain headers
4 SharePoint List Targets
6 Upload
Uploading...
0%0 / 0 records
β€”
1 Order File WAREHOUSE
Load the order / request file. The FEFO engine reads SKU, UOM, and Qty from this file and allocates quantities against the batch list you pick below.
πŸ“¦
Click to browse or drag & drop the order file
.xlsx, .xls, or .csv β€” first row must contain headers
Parsing file...
0%0 / 0 rows
β€”
βš– UOM Conversion β†’ Pcs (optional)
Upload the UOM file so FEFO can convert order quantities and SharePoint batch balances to the base unit (Pcs) before allocating, and so the consolidated picking list can be shown in Cartons or Pallets. Load the UOM table from its SharePoint list (recommended β€” always current) or upload a file. UOM codes and descriptions are matched per SKU (PC / Piece, CT / Carton, OT / Outer, BT / Bottle, PLT / Pallet, Crate). Supported layouts: one row per SKU (Pcs-per-Carton / Pallet columns) or one row per SKU + UOM (UOM + Pcs-per-UOM factor).
Loading UOM list...
0%0 / 0
β€”
β€” or upload a file instead β€”
βš–
Click to browse or drag & drop the UOM file
.xlsx, .xls, or .csv β€” first row must contain headers
πŸ“₯ Planning Dept. β€” Daily Data Upload β€” UHT Inventory Tracking Sheet
Upload the daily Planning_Data.xlsx in the same format every day (header row starting with Code Β· Item Β· Size …, one row per SKU, optional β€œGrand Total” row). The file is checked, shown below and saved as one snapshot per as-of date, so the dashboard can show today's position and the day-by-day trend. Saving the same date again replaces that day.
πŸ“Š
Click to browse or drag & drop the Planning Data file
.xlsx / .xls β€” first sheet is read
πŸ—‚ Saved snapshots
As-of dateSKUsTotal stock on hand (CT)MTD sales (CT)UploadedStored
☁ Shared storage (SharePoint document library)
Snapshots are always kept in this browser. To share them with every user, they are also written as planning_YYYY-MM-DD.json into a folder of the site's default document library (needs the Global Site URL + token / Microsoft sign-in, and write access). Everybody who opens the dashboard then sees the same data.
Total stock on hand Β·
β€”
Month progress Β·
πŸ“‹ SKU data β€” every column
Click a header to sort Β· double-click a row for the full record Β· colour: days-cover health and % vs forecast.
πŸ“₯ Daily Plan β€” Upload β€” production / demand plan (e.g. β€œMilco-GSD Demand 16th Oct Kizad”)
Upload the daily plan Excel. The file is read as it is: SKU rows from the ICODE header, one demand block per plan day (locations ALN Β· AUH Β· TRF Β· SHJ Β· RAK Β· FUJ Β· DXB Β· UT, NE / SE and Grand Total) plus the crates and pallets blocks and the trip summary. It is checked, shown below and saved as one plan per start date β€” in this browser and (optionally) in a SharePoint document-library folder shared with every user. The rows can also be pushed into a SharePoint list (section below).
🚚
Click to browse or drag & drop the daily plan file
.xlsx / .xls β€” the first visible sheet is read
⬆ Upload the plan rows to a SharePoint list
Creates one list item per plan day Γ— SKU Γ— location that has demand (date, ICODE, item, brand, category, location, region, units, litres, crates, pallets …). Choose the plan, pick the target list, map the fields (auto-map fills them by name) and upload.
Output FieldMaps To SharePoint Column
πŸ—‚ Saved plans
Plan dateDaysSKUsPalletsLitresUploadedStored
☁ Shared storage (SharePoint document library)
Plans are always kept in this browser. To share them with every user they are also written as dailyplan_YYYY-MM-DD.json into a folder of the site’s default document library (needs the Global Site URL + token / Microsoft sign-in, and write access). Everyone opening the dashboard then sees them automatically.
Pallets required Β·
β€”
Northern (NE) vs Southern (SE) share
πŸ“‹ SKU plan β€” every column
Click a header to sort Β· double-click a row for the full SKU record by day and location. Units are in each item’s own UoM (PC / DZ / OT) β€” use pallets, crates or litres for totals.
βš™ Trailer rules & compliance limits
Trailers per location and day = pallets Γ· capacity, rounded up, separately for P12 and for P6 + cage pallets (as in the file’s β€œTrips P12 / Trips P6+cages”). The file’s own trip figures are shown next to ours. Changing a rule re-forms the trips.
πŸ“ F&D change log
Every time an item is added, removed or its actual quantity is changed inside a trip / picking list, a line is recorded here with the original and the changed quantity, the user, the reason and the planned region. Type the reason directly in the table if it was skipped. Every ☁ Save to SharePoint in a trip also uploads its changes to the change-log list set up below; use ⬇ Load from SharePoint to review everyone's changes.
☁ SharePoint lists for this area β€” set up once
Log fieldSharePoint column
⬆ F&D Plan β€” upload the picking list to SharePoint
Creates one list item per trip / trailer Γ— SKU picking line β€” trip ID, date, location, trailer type, ICODE, item, quantities, batch, production and expiry dates (when entered), status, trailer plate, driver and seal. Trips are formed in F&D Plan; capacities and batch entries are taken from there.
Output FieldMaps To SharePoint Column
πŸ“‘ F&D Demand β€” weekly plan (production + distribution to the regions) and daily plan, compared with each other and with the actual quantities
πŸ“… Daily demand plan (e.g. β€œMilco-GSD Demand 26th Oct Kizad”)
The KIZAD daily prod order: one row per SKU, demand per location (ALN, AUH, TRF, SHJ, RAK, FUJ, DXB, UT) for each day, with crates and pallets. Once saved, F&D Plan builds the trips, picking lists and delivery notes from it.
πŸ“…
Drop the daily demand file here
or click to choose Β· .xlsx
πŸ—“ Weekly demand plan (e.g. β€œMilco weekly demand 27th Oct to 2nd Nov”)
The weekly prod order: one row per SKU with the production plan per day and the distribution plan of each region (Al Ain, Abu Dhabi, Tariff, Sharjah, Ras Al Khaimah, Fujairah, Dubai, UT) per day, with the demand type (Final / Tentative / Delist).
πŸ—“
Drop the weekly demand file here
or click to choose Β· .xlsx
πŸ“š Saved daily plans
Plan dateDaysSKUsFileSaved
πŸ“š Saved weekly plans
WeekSKUsFileSaved
πŸ₯› Milco Daily Planning β€” sales demand (DSO) Γ— good returns Γ— SharePoint stock β†’ picking lists
πŸ“₯ 1 Β· Import files
Drop the Daily Sales Order (DSO) files from sales (the MBYTO file with Rte Code / Itm Code / Plan Qty P Uom / S Uom and the WINIT file with RouteCode / ItemCode / PrimaryQTY / SecondaryQTY β€” recognised automatically) and the Good Return file of the sales trucks. Imported files stay in this browser until you remove them.
🧾
Daily Sales Order files (MBYTO / WINIT / route matrix)
click or drop one or more .xlsx files β€” also the item Γ— route matrix (Prod. Code Β· Product Name Β· V01 Β· V02 …, date from the file name e.g. 25.10.2026_MT.xlsx)
↩️
Good Return file (sales trucks)
click or drop the .xlsx file
Imported files β€” tick the ones to include in the plan
UseTypeSourceLoad dateFileRoutesItemsQty primaryQty secondaryQuantity used
πŸ‘· Staff Roster β€” daily time-slot availability, weekly plan, SharePoint
πŸ‘₯ 1 Β· Staff & time slots
Import the Daily Team Site Attendance sheet (File Nr, Staff Name, Job Role across the top, the timing slots down the side, 1 = available). The staff, the time slots and any marks already in the sheet are read; you can also add or edit people by hand.
πŸ“‹
Click or drop the attendance sheet (.xlsx)
Double-click a person to open the full staff card (roster details + everything retrieved from SharePoint) and edit it. Use Columns to hide or show any column.
⏱ Time slots and β˜• Break hours are now set on the ⏱ Overtime, Slots & Breaks page.
🌴 Smart Annual Leave Planner β€” suggests each person's annual leave through the year without leaving a job role (or store) short of staff
Set the entitlement and the rules, press Build plan, check the grid (click two names to swap their leave), then write it into the roster and/or queue it for SharePoint (you decide there). Leave already marked 🌴 in the roster counts as taken and as cover already used.
β†’
πŸ‘₯ People, entitlements & preferred dates
Entitlement by role (empty = default):
File NrNameRoleLocationEntitlementTaken in rosterExtra takenLeave modePhasesBalancePreferred dates 2026-07-01..2026-07-20, …
πŸ“… Suggested leave plan
RoleLocationPeopleMax away togetherMost away at onceOn
πŸ“ˆ
No list data yet
Open the file you downloaded from Data Download (.xlsx / .csv), or use the rows that are currently loaded there. Every chart, filter and KPI adapts to the columns of the list.
πŸͺ§ Location Signboards & Rack Labels β€” signboards Β· rack location labels Β· rack code register (feeds Batch Allocation FEFO)
πŸͺ§ Warehouse location signboard
πŸ—Ί Map pictures: not connected β€” a picture is picked by file name = location code.
πŸ“‹ Warehouse location list
All warehouse locations with their information. Filter the list, then print the signboards of exactly the locations you filtered. Click a row to show its signboard above.
🧠 Smart Break Planner β€” spreads the breaks of each job role over the day for one attendance shift, so the operation is never short of staff
Choose how long and how many breaks each person takes. The planner staggers them inside each job role (and inside each person's own working hours) so the fewest people of the same role are on break at the same moment. Check the preview, then apply β€” it writes each person's own break slots.
πŸ“ Location β€” staff are in different cities and stores. Say which staff field holds each level, then filter Region β†’ Warehouse β†’ Store.
⏱ Overtime, Slots & Breaks β€” overtime rules, roster time slots and break hours in one place
⏱ Overtime rules β€” changes apply at once and are saved on this device
Overtime is calculated here from the IN / OUT hours using the rules below (not taken from the report’s own OT columns, which are shown beside it for comparison). Example: normal day = 9 h, a person works 12 h β†’ 3 h Normal OT. Work on a person’s week-off day is counted as Week-Off OT and work on a public holiday as Public OT, each kept separate.
Set hours for a store…
StoreNormal day (h)
⏱ Time slots & β˜• Break hours β€” used by the Staff Roster daily sheet and by the overtime hours
⏱ Time slots (the rows of the daily sheet)
πŸ•’ Shifts
Day and Night exist by default. Create another shift (Morning, Evening, Weekend, Ramadan…) and give it its own time slots β€” it then appears in the daily grid, weekly plan, staff card, default shift and the shift filter.
ShiftFromTo
β˜• Break hours
Set the default break slots everybody takes (a person can have several β€” e.g. lunch and two tea breaks), then give anyone a different break in the table below or on their staff card (double-click). In Daily availability the slots inside a person’s break show β˜•, are not counted as staff on site, and the person’s hours are shown net of the break.
Set a break for a group of people
🧠 To spread the breaks automatically (min / max minutes, number of slots, time frames, per shift, region · warehouse · store) use the 🧠 Smart Break Planner page.
πŸ•’ Attendance Analytics β€” biometric check-in / check-out analysis Β· roster vs actual
πŸ“₯ Upload the attendance report
Upload the Attendance Detail Report exported from the biometric system (.xlsb, .xlsx, .xls or .csv). One row per employee per day: Date, Employee No, Name, IN / Out Time, Required & Work Hours, Position, Work Location, Section, Supervisor, overtime, Shift Code, Remarks. Upload another day or week to add to what is already loaded.
πŸ•’
Click or drop the attendance report
.xlsb Β· .xlsx Β· .xls Β· .csv
🎁 FOC Release Voucher β€” free-of-charge stock release Β· signatures Β· history Β· SharePoint
✍ New voucher
πŸ“¦ Items released
SKUDescriptionUOMQtyBatchExpiryRemarks
πŸ“Ž Request evidence
Attach the request that authorises this release β€” the approval e-mail (.eml / .msg), a PDF, or a scan / photo of the signed voucher. Files are kept with the voucher and go to SharePoint with it.
Click or drop the request e-mail, PDF or scanned voucher here
Up to 15 MB per file Β· on a phone you can take a photo of the paper voucher
SharePoint folder (Documents library): β†’ a sub-folder per voucher number is created.
πŸ–Š Names & signatures
Type the name, then sign with the mouse, finger or stylus β€” or upload a picture of the signature. The date and time of signing are recorded.
πŸ“Š Management Daily Report β€” productivity Β· overtime Β· headcount Β· volumes, straight from your SharePoint lists
πŸ”Œ 1 Β· SharePoint lists ADMIN Β· SELECTED USERS
The report uses the same three tables as the Power BI file: the daily data list (one row per warehouse per day β€” Entry_Date, WHs_Desc, Region_Desc, BU_Decs, Outbound / Inbound / Returns volume, Orders, hours…), the WHs headcount list (Budget_HC, Nr_TACCS_HC) and the targets list (Area_Desc, Region_Code, WHs_Code, Target Value, TargetOT). Pick each list, load its columns and map them below.
Daily data columns
Report fieldSharePoint column
WHs headcount columns
Report fieldSharePoint column
Targets columns
Report fieldSharePoint column
πŸ“Š Management Daily Report β€” productivity Β· overtime Β· volumes, read directly from Mngmnt_Daily_Data_tbl with the targets from Trgt_tbl
πŸ”Œ 1 Β· SharePoint lists ADMIN Β· SELECTED USERS
This page reads the SharePoint lists directly (no attendance file): the daily data list (one row per warehouse per day β€” Entry_Date, WHs_Desc, Region_Desc, BU_Decs, Outbound / Inbound / Returns volume, Orders, hours…), the WHs headcount list (Budget_HC, Nr_TACCS_HC) and the targets list (Area_Desc, Region_Code, WHs_Code, Target Value, TargetOT). Pick each list, load its columns and map them below.
Daily data columns
Report fieldSharePoint column
WHs headcount columns
Report fieldSharePoint column
Targets columns
Report fieldSharePoint column
πŸ“… Daily Update Tracker β€” which places update their data every day
Pick the SharePoint list that receives the daily records, then the date column and the place / location column. The grid shows, for every day of the month, whether each place has submitted data (βœ… number of records) or not (⚠ 0).
🧩 My filtersβ€” build your own filters on any column of the list; they apply to the grid, the counts, the Excel and the e-mail.
Checking updates...
0%0
β€”
πŸ“Š Upload overview
Bar: β–  new Β· β–  already in the list Β· β–  duplicate in file
1 Target SharePoint List
Pick the list that cumulative Excel rows will be pushed into...
1 SharePoint Source
Fetching data...
0%0 records
β€”
1 SharePoint Source
Fetching data...
0%0 records
β€”
1 Select List
Choose any SharePoint list to browse, add, edit, delete, or bulk-edit records. Autosuggest uses the last 10,000 rows.
Loading records...
0%0 records
β€”
⏰ Scheduled Exports
⏱ Active Timers
No active timers.
⏫ Scheduled Uploads
⏱ Active Upload Timers
No active timers.
πŸ‘€ Profiles
πŸ”‘ Users & Roles
Manage who can sign in and what they can do. Use πŸ“‹ Lists to assign which SharePoint lists each user can see and edit.
UsernameDisplay NameRoleEmail / Line ManagerList AccessCreatedLast Sign-inActions
πŸ“§ Email Notifications
πŸ“€ Upload Destinations & Data Sources ADMIN ONLY
One place where the administrator decides, for every β€œupload to SharePoint” action in the system, which list receives the data and how each output field maps to that list’s columns. Users then just press Upload in their section β€” they no longer pick a list or map anything. It also holds the data sources β€” the SharePoint lists that sections read from (e.g. the Staff Roster’s staff master list) and which column feeds which field. Use Export / Import to back up this file or move it to another computer (same idea as the Users file).
SectionTypeActionSharePoint listFields mappedStatus
🧭 Define & map each destination
🏠 Switchboard (main page) appearance ADMIN ONLY
The Switchboard is the main page of the system. Choose its style, accent colour, font, size and corner roundness. Changes preview live; press Save to keep them on this browser, or Copy default to make them the starting look for every browser.
Follows the πŸŒ™ button in the top bar.
🏷 System name, logo & side-panel font ADMIN ONLY
Change the name and logo shown on the sign-in page, the side panel and the browser tab. Logo = a short text / emoji, or an uploaded picture (PNG / JPG / SVG, shrunk automatically). Saved on this browser; use Copy default and paste the result over BRAND_DEFAULT in the HTML file to give it to every user.
πŸ“Š Menu item sample
β–Ύ Data Β· Warehouse
The side menu changes immediately so you can compare the styles; press Save to keep the one you like.
πŸ” Login control β€” SharePoint user list ADMIN ONLY
Each user is checked against a SharePoint list every time the system opens and every 5 minutes. A user whose Allow column is not Yes / true (or who is not on the list) is locked out immediately β€” switch the column to No to deactivate anyone, any time. Matching uses the user's e-mail / username / Microsoft account against any text, e-mail or person column of the list.
🌐 Global Connection Settings ADMIN ONLY
These values are shared by all users. Only administrators can view or change them.

πŸ“ Shared token file β€” publish once, every user picks it up automatically
Admin: save the Site URL + token above, press Export token file and put the file (sp_token.json) in a shared location β€” e.g. the same SharePoint library / folder as this HTML. Users then get the token without asking: the app reads the file on start and every 10 minutes. Re-export when the token expires. Anyone who can read the file can use the token β€” restrict the folder to your team.

πŸ” Microsoft sign-in β€” no pasted token; each user signs in with their own account
Register the app once in Microsoft Entra (Azure AD) β†’ App registrations β†’ New β†’ Single-page application redirect URI = the address this page is opened from (https:// or http://localhost). API permissions: Microsoft Graph Sites.ReadWrite.All + User.Read (and SharePoint AllSites.Write for attachments), then grant admin consent. Paste the two IDs below, or fill MS_AUTH_DEFAULT in the file so every user gets them.

βš– UoM conversion list β€” drives the β€œQty in UoM” column of the trip screens (admin)

πŸ“¨ Send email directly β€” adds a β€œπŸš€ Send now” button to every Share-by-email window
A web page cannot log in to a POP3/SMTP mail server, so choose one of these two ways. Microsoft 365: the mail is sent from the signed-in user's own mailbox through Microsoft Graph β€” no password is stored. One-time admin step: Entra β†’ App registrations β†’ your app β†’ API permissions β†’ Add β†’ Microsoft Graph β†’ Delegated β†’ Mail.Send, then grant admin consent (needs the Microsoft sign-in above, opened from https:// or http://localhost). Power Automate: create a flow β€œWhen an HTTP request is received” β†’ β€œSend an email (V2)”, paste its POST URL here. Anyone who has the URL can send mail through the flow, so keep the file inside your organisation.
Power Automate flow set-up (copy/paste)
1) When an HTTP request is received β†’ Request Body JSON Schema:
{"type":"object","properties":{"to":{"type":"string"},"cc":{"type":"string"},"subject":{"type":"string"},"bodyHtml":{"type":"string"},"sender":{"type":"string"},"attachments":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"contentType":{"type":"string"},"contentBase64":{"type":"string"}}}}}}
2) Send an email (V2): To = to, CC = cc, Subject = subject, Body = bodyHtml (switch the editor to code view </>), Attachments β†’ switch to array input and use attachments with Name = name, Content = base64ToBinary(item()?['contentBase64']).
3) Save, copy the generated HTTP POST URL into the box above. Sent as: the flow owner (or use β€œSend an email from a shared mailbox”).
βš™ Personal Settings
❔ How to Use

πŸ“¦ Warehouse β€” Batch Allocation (FEFO)

Load the order file, optionally group it, map the fields (file ↔ batch list), then click πŸ” Lookup Batch (FEFO) to allocate quantities against the batch list using First-Expired-First-Out. Results can be printed, exported, or uploaded.

βš™ Field Mapping

Map the file's SKU, UOM, and Qty Requested columns, and the batch list's SKU, UOM, Qty Balance, Batch Code, Prod Date, and Expiry Date columns. Auto-Detect tries to guess; override any field manually. Mapping is saved per batch list, per user.

⬆ Uploader β€” Group & Order

The Uploader keeps its own Group section for controlling the order rows are pushed into SharePoint.

πŸ•˜ Recent Activity

No activity yet.