Ibnu Sina drivers deliver, collect, exchange, and service equipment for customers. Warehouse staff load the lorries before they leave. Both groups have screens in the Ops app.
Not live. The screens are built, but production builds do not offer Ibnu Sina yet. Switching it on is the owner's decision. The code is in src/bu/ibnu-sina/, and it is the reference every new business unit copies.
Tabs come from the work lists a person is on in the Ibnu Sina portal, not from their role.
Work list
Tabs
Opens on
Driver
Home, Trip Log, Schedule, Profile
Trip Log
Warehouse
Warehouse, Profile
Warehouse
Both
All five
Trip Log
Neither
Profile, with a "no work assigned" note
Profile
To add a warehouse person: they sign in to the app once, then in the portal go to Settings → Users → Work lists and tick Warehouse.If the work lists fail to load, the app shows the driver tabs.Payments is a screen, not a tab. Home and Profile link to it.
Exchange: the unit going out and the one coming back.
Angkat (collect) and Walk in - Return: the unit coming back.
Service and Exchange can also record whose fault it was.
If a label will not scan, the driver takes a barcode photo instead and finishes the trip. The office types the serial in from the photo later.
There is no Start Trip button. A driver with many stops cannot start each one.The trip shows "waiting for the warehouse" until loading is finished, then "ready" or "on the way".Customer IC photos are kept on the customer's record, with no limit. The driver cannot delete them.Home shows Today's Assignment: the lorry plate and up to 5 helpers. There is no clock-in or day summary yet.
A payment belongs to the order. The trip only records where the cash was collected.
Drivers can record cash only, and only while the order still has a balance and the trip is not cancelled.The amount starts at the balance and cannot be more than it.The payment is saved as RECORDED. The receipt photo can be taken now or later from the Payments screen.The office verifies the payment in the portal as usual. Other methods, editing, and deleting are portal-only.
Every call goes through Utopia OE with the header X-OE-BU: ibnu-sina, using the slice's own client in api/http.ts.Driver endpoints check the trip is assigned to the caller. Warehouse endpoints check the caller is on the Warehouse work list.Rules live in lib/ with tests: trip-rules.ts, payment-rules.ts, transfer-rules.ts, checking-rules.ts, load-lock.ts, scan.ts.Setup, ports, and the backend contract are in src/bu/ibnu-sina/README.md. See also Business Units & OE.