Skip to content

Instantly share code, notes, and snippets.

@kerdany
Last active June 19, 2024 10:49
Show Gist options
  • Save kerdany/3154b6f8df68a42f4260bd40d08a6c7e to your computer and use it in GitHub Desktop.
Save kerdany/3154b6f8df68a42f4260bd40d08a6c7e to your computer and use it in GitHub Desktop.

Statuses & Buttons

  • Status: Created
    • "Force Assign" shown & enabled (should be disabled)
  • Status: Fulfilling
    • "Force Assign" shown & enabled (should be disabled)
  • Status: Packing
    • "Force Assign" shown & enabled (should be disabled)
  • Status: Fulfilled
    • "Force Assign" shown & enabled
  • Status: Scanned
    • "Update Delivery Status" shown & enabled (should be disabled)
    • "Unassign Driver" shown & enabled
    • "Add Associate Driver" shown & enabled
    • "Unassign Associate Driver" shown & enabled (if associate drivers assigned)
  • Status: PickedUp
    • "Update Delivery Status" shown & enabled
    • "Unassign Driver" shown & enabled
    • "Add Associate Driver" shown & disabled (if associate drivers assigned)
    • "Unassign Associate Driver" shown & enabled (if associate drivers assigned)
  • Status: Arrived
    • "Update Delivery Status" shown & enabled
    • "Unassign Driver" shown & enabled (should be disabled)
    • "Add Associate Driver" shown & disabled (if associate drivers assigned)
    • "Unassign Associate Driver" shown & enabled (if associate drivers assigned)
  • Status: Delivered
    • "Update Delivery Status" shown & enabled (should be disabled)
    • "Unassign Driver" shown & enabled (should be disabled)
    • "Add Associate Driver" shown & disabled (if associate drivers assigned)
    • "Unassign Associate Driver" shown & enabled (if associate drivers assigned) (should be disabled)
  • Status: Undelivered
    • "Update Delivery Status" shown & enabled
    • "Unassign Driver" shown & enabled (should be disabled)
    • "Add Associate Driver" shown & disabled (if associate drivers assigned)
    • "Unassign Associate Driver" shown & enabled (if associate drivers assigned) (should be disabled)
  • Status: Returned
    • "Update Delivery Status" shown & enabled (should be disabled)
    • "Unassign driver" shown & enabled (should be disabled)
    • "Add Associate Driver" shown & disabled (if associate drivers assigned)
    • "Unassign Associate Driver" shown & enabled (if associate drivers assigned) (should be disabled)

Button Behaviors

  • "Force Assign" Button:

    • If no Ready/Scanning drivers available:
      Error (after clicking): "No Driver Found" (Message should be clearer)
    • If selected driver is not in top of queue:
      Error (after selecting): "You cannot scan this order, you're not in the top of the queue"
    • If Order status is not "Fulfilled" (i.e. either Created/Fulfilling/Packing):
      Error (after selecting): "You cannot scan this order, current status is ..."
    • If Driver is "Busy" (has another picking/putaway job):
      Error (after selecting): ""
  • "Add Associate Driver" Button:

    • If no Ready/Scanning drivers available: Error (after clicking): "No Driver Found" (Message should be clearer)
  • "Update Delivery Status" Button:

    • If Order status is "Scanned":
      Error: "You cannot update this order"
    • If Order status is "PickedUp":
      Available Statuses: Arrived At Delivery, Undelivered (different reasons)
    • If Order status is "Arrived":
      Available Statuses: Delivered, Undelivered
    • If Status is "Delivered":
      Error: "You cannot update this order"
    • If Status is "Undelivered":
      Available Statuses: Returned
    • If Status is "Returned":
      Error: "You cannot update this order"
  • "Unassign Driver" Button:

    • If Status is "Scanned":
      Unassigns Driver
    • If Status is "PickedUp":
      Unassigns Driver
    • If Status is "Arrived":
      Error: "Invalid action, this job status is arrived_at_delivery"
    • If Status is "Delivered":
      Error: "Invalid action, this order is not assigned to a driver"
    • If Status is "Undelivered":
      Error: "Invalid action, this job status is undelivered"
    • If Status is "Returned":
      Error: "Invalid action, this order is not assigned to a driver"
  • "Unassign Associate Driver" Button:

    • If Status is "Scanned":
      Unassigns Associate Driver
    • If Status is "PickedUp":
      Unassigns Associate Driver (can't reassign as button is hidden after)
    • If Status is "Arrived":
      Unassigns Associate Driver (can't reassign as button is hidden after)
    • If Status is "Delivered":
      Error: "Order status has reached a final state of delivered, you cannot unassign the driver"
    • If Status is "Undelivered":
      Error: "Order status has reached a final state of undelivered, you cannot unassign the driver"
    • If Status is "Returned":
      Error: "Order status has reached a final state of returned, you cannot unassign the driver"

Delivery Comments

  • Dashboard: Rename "Unassign Order" for main driver to "Unassign Driver".
  • Dashboard: Rename "Unassign Order" for associate driver to "Unassign Associate Driver".
  • Delivery: Driver current warehouse should not be WMS code warehouse, should be warehouse code or area name.
  • Delivery: Before starting delivery, rename "Picked Up Orders" to "Scanned/Assigned Orders".

Picking Comments

  • Picking: Add Beauty/Health Card/Sticker tags on "you will be assigned" dialog.
  • Picking: Proceed to Packing button should be available in all tabs.

https://mx-instant-api-homs.mx.noonstg.team/swagger

/order/create

{
  "order": {
    "orderNr": "HK_TEST_115",
    "mpCode": "nooninstant",
    "warehouseCode": "W00000002A",
    "countryCode": "ae",
    "deliveryAddress": "94da2fd8954376e8ac5315d4878c4f57-2",
    "returnWarehouse": "W00000002A",
    "estimatedPickupAt": "2024-06-18 18:00:00",
    "estimatedDeliveryAt": "2024-06-18 18:15:00"
  },
  "items": [
    {
      "itemNr": "HK_TEST_115-1",
      "status": "created",
      "idPartner": 1283,
      "catalogCode": "zsku",
      "catalogSku": "ZC13F36E8C1A1EEA90AE9Z-1",
      "itemCode": "ZC13F36E8C1A1EEA90AE9Z-1"
    }
  ]
}
SELECT mp.code mp, o.warehouse_code, o.order_nr, i.item_nr, so.code order_status, si.code item_status, o.is_cancelled, sj.code job_status, j.is_ready_to_start, l.code picking_lane, o.created_at 
FROM homs.picking_job j
JOIN homs.mp_order o USING (id_mp_order)
JOIN homs.mp_order_item i USING (id_mp_order)
JOIN homs.status so ON (so.id_status = o.id_status)
JOIN homs.status sj ON (sj.id_status = j.id_status)
JOIN homs.status si ON (si.id_status = i.id_status)
JOIN homs.picking_lane l USING (id_picking_lane)
JOIN homs.mp ON (mp.id_mp = o.id_mp)
WHERE TRUE
AND j.is_ready_to_start = 1
AND sj.code = 'pending'
ORDER BY id_picking_job DESC

/order/cancel

{
  "orderNr": "HK_TEST_113",
  "mpCode": "string"
}

/oms/item/cancel

# X-MP: noon|namshi_v2
{
  "items": [
    "HK_TEST_113-1"
  ]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment