2024-07-15 07:57:02 +01:00
|
|
|
from log import log
|
|
|
|
from timeOperations import isInboundShipmentPlanWithinSpecifiedDelta
|
|
|
|
from amazonAPI import getAccessToken, getInboundShipmentData, getInboundShipmentPlans, getInboundShipmentPlan, getProductName
|
|
|
|
from sentNotifications import isInboundShipmentPlanIDInSentNotifications, updateSentNotifications
|
|
|
|
from discordNotifications import sendDiscordNotification
|
|
|
|
|
|
|
|
def parseInboundShipmentPlans():
|
|
|
|
log('\U0001F504 Getting inbound shipment plans...', 'info')
|
|
|
|
inboundShipmentPlans = getInboundShipmentPlans()
|
|
|
|
inboundShipmentPlanIDs = []
|
|
|
|
inboundShipmentPlanData = {}
|
|
|
|
|
|
|
|
for plan in inboundShipmentPlans:
|
|
|
|
if isInboundShipmentPlanWithinSpecifiedDelta(plan['createdAt']):
|
|
|
|
log('Adding inbound shipment plan to list: {}'.format(plan['inboundPlanId']), 'info')
|
|
|
|
inboundShipmentPlanIDs.append(plan['inboundPlanId'])
|
|
|
|
inboundShipmentPlanData.update({plan['inboundPlanId']: {'creationDate': plan['createdAt']}})
|
|
|
|
|
|
|
|
if inboundShipmentPlanIDs:
|
|
|
|
log('\U0001F440 Checking inbound shipment plans...', 'info')
|
|
|
|
log(f'Shipments to check: {len(inboundShipmentPlanIDs)}', 'info')
|
2024-07-12 19:48:15 +01:00
|
|
|
|
2024-07-15 07:57:02 +01:00
|
|
|
for inboundShipmentPlanID in inboundShipmentPlanIDs:
|
|
|
|
if isInboundShipmentPlanIDInSentNotifications(inboundShipmentPlanID):
|
|
|
|
log(f'Ignoring inbound shipment plan {inboundShipmentPlanID}, notification has already been sent', 'info')
|
|
|
|
elif not isInboundShipmentPlanIDInSentNotifications(inboundShipmentPlanID):
|
|
|
|
inboundShipmentPlan = getInboundShipmentPlan(inboundShipmentPlanID)
|
|
|
|
if inboundShipmentPlan['items']:
|
2024-07-12 19:48:15 +01:00
|
|
|
itemDict = {}
|
|
|
|
totalItemCount = 0
|
2024-07-15 07:57:02 +01:00
|
|
|
for item in inboundShipmentPlan['items']:
|
2024-07-12 21:57:49 +01:00
|
|
|
productName = getProductName(item['msku'])
|
|
|
|
itemDict.update({productName: item.get('quantity')})
|
2024-07-12 19:48:15 +01:00
|
|
|
totalItemCount += item['quantity']
|
2024-07-15 07:57:02 +01:00
|
|
|
itemDict.update({'Total unit count': totalItemCount})
|
|
|
|
inboundShipmentPlanData[inboundShipmentPlanID]['contents'] = itemDict
|
|
|
|
inboundShipmentData = getInboundShipmentData(inboundShipmentPlanID)
|
|
|
|
inboundShipmentPlanData[inboundShipmentPlanID]['destinations'] = inboundShipmentData[inboundShipmentPlanID]['destinations']
|
|
|
|
inboundShipmentPlanData[inboundShipmentPlanID]['shipmentIDs'] = inboundShipmentData[inboundShipmentPlanID]['shipmentIDs']
|
|
|
|
log(f'\U0001F514 Sending Discord notification for {inboundShipmentPlanID}...', 'info')
|
|
|
|
sendDiscordNotification(inboundShipmentPlanID, inboundShipmentPlanData[inboundShipmentPlanID])
|
|
|
|
updateSentNotifications(inboundShipmentPlanID)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
parseInboundShipmentPlans()
|