backend requirements onthe xustomer app
This commit is contained in:
@@ -443,8 +443,13 @@ func MilerInwardConsignmentAtHub(c *fiber.Ctx) error {
|
||||
// the base gate — and ridercharges the order amount, both written the same way
|
||||
// MilerDeliverConsignment writes them for a final-mile leg. Without this an
|
||||
// intercity rider's every job reported zero distance and zero value.
|
||||
var booking models.PickupBooking
|
||||
if tx.Where("consignmentid = ?", consignment.Consignmentid).First(&booking).Error == nil {
|
||||
// Resolved through bookingdestinations, not through
|
||||
// pickupbookings.consignmentid. That column names only the FIRST order of a
|
||||
// multi-destination pickup, so joining on it found nothing for orders 2..N
|
||||
// — and an intercity rider handing in the second parcel of a three-stop
|
||||
// pickup had their assignment left open and their distance recorded as zero.
|
||||
if _, bookingPtr, ok := cxDestinationForConsignment(consignment.Consignmentid); ok && bookingPtr != nil {
|
||||
booking := *bookingPtr
|
||||
dropLat, dropLon := lat, lon
|
||||
if dropLat == 0 && dropLon == 0 {
|
||||
dropLat, dropLon = hub.Latitude, hub.Longitude
|
||||
@@ -479,10 +484,25 @@ func MilerInwardConsignmentAtHub(c *fiber.Ctx) error {
|
||||
return utils.Internal(c, "failed to update miler availability")
|
||||
}
|
||||
|
||||
// The customer's "In transit" milestone. Recorded against THIS order, not
|
||||
// the booking, because the other parcels from the same visit may still be
|
||||
// in the rider's hands.
|
||||
notifyInTransit, err := recordCxConsignmentStage(tx, consignment.Consignmentid,
|
||||
constants.ConsignmentInwardedAtHub, constants.CxActorMiler, &milerUserID,
|
||||
"POST /miler/consignments/{id}/inward-at-hub")
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
utils.Error("MilerInwardConsignmentAtHub: could not record in_transit",
|
||||
"consignment_id", consignment.Consignmentid, "error", err)
|
||||
return utils.Internal(c, "failed to record the handover")
|
||||
}
|
||||
|
||||
if err := tx.Commit().Error; err != nil {
|
||||
return utils.Internal(c, "failed to record the handover")
|
||||
}
|
||||
|
||||
notifyInTransit()
|
||||
|
||||
// Best-effort, on an already-bound subject — a dropped event must never fail
|
||||
// a handover the rider has physically completed.
|
||||
if db.Js != nil {
|
||||
|
||||
Reference in New Issue
Block a user