예제 #1
0
def compute_contexts_from_to(from_data, to_data, products, locations_map,
                             useMinDate):
    contexts = []
    keys = set([*from_data] + [*to_data])
    from_locations = set()
    to_locations = set()

    for group_key in keys:
        print('Processing Group: ' + group_key)
        if group_key in from_data:
            from_data_items_for_group = from_data[group_key]
        if group_key in to_data:
            to_data_items_for_group = to_data[group_key]
        groupDate = None

        quantifiedFromItems = unquantifiedFromItems = []

        context = Context()
        context.EventID = str(uuid.uuid4().urn)
        context.TransformationID = str(uuid.uuid4().urn)
        context.QuantifiedFromItems = []
        context.UnquantifiedFromItems = []
        context.QuantifiedToItems = []
        context.UnquantifiedToItems = []
        context.FromLocation = []
        context.ToLocation = []

        print('Processing FROM items')
        if from_data_items_for_group:
            for dataItem in from_data_items_for_group:
                context.TimeZone = valueOf(dataItem, DataKey.TIME_ZONE)
                context = process_from_or_to_data(True, locations_map,
                                                  dataItem, context, True)

                print('QuantifiedFromItems: ' +
                      str(context.QuantifiedFromItems) +
                      ', UnquantifiedFromItems: ' +
                      str(context.UnquantifiedFromItems))

        print('Processing TO items')
        quantifiedToItems = unquantifiedToItems = []
        if to_data_items_for_group:
            for dataItem in to_data_items_for_group:
                context.TimeZone = valueOf(dataItem, DataKey.TIME_ZONE)
                context = process_from_or_to_data(False, locations_map,
                                                  dataItem, context, True)

        if not context.EventTime:
            print('WARNING: no date/time supplied for event')
        else:
            #context.EventTime = context.EventTime.isoformat()
            context.EventTime = datetimeToString(context.EventTime)

        print('CONTEXT, bizLocation: ' + str(context.Location))
        contexts.append(context)
    return contexts
예제 #2
0
def compute_contexts(data, products, locations):
    contexts = []
    for dataItem in data:
        dateTime = calculateTimeInfo(valueOf(dataItem, DataKey.DATE),
                                     valueOf(dataItem, DataKey.TIME))
        if not dateTime:
            timeString = None
            print('WARNING: no date/time supplied for event')
        else:
            print('dateTime: ' + str(dateTime) + ', class: ' +
                  dateTime.__class__.__name__)
            timeString = datetimeToString(dateTime)
            #timeString = dateTime.isoformat()
        company_prefix = valueOf(dataItem, DataKey.COMPANY_PREFIX)

        quantifiedItem, item = __itemContext(dataItem, company_prefix,
                                             DataKey.MATERIAL,
                                             DataKey.QUANTITY, DataKey.UOM,
                                             DataKey.LOT)
        quantifiedFromItem, fromItem = __itemContext(dataItem, company_prefix,
                                                     DataKey.FROM_MATERIAL,
                                                     DataKey.FROM_QUANTITY,
                                                     DataKey.FROM_UOM,
                                                     DataKey.FROM_LOT)
        quantifiedToItem, toItem = __itemContext(dataItem, company_prefix,
                                                 DataKey.TO_MATERIAL,
                                                 DataKey.TO_QUANTITY,
                                                 DataKey.TO_UOM,
                                                 DataKey.TO_LOT)

        print('UnquantifiedItem: ' + str(item))
        print('QuantifiedItem: ' + str(quantifiedItem))
        print('UnquantifiedFromItem: ' + str(fromItem))
        print('QuantifiedFromItem: ' + str(quantifiedFromItem))
        print('UnquantifiedToItem: ' + str(toItem))
        print('QuantifiedToItem: ' + str(quantifiedToItem))

        print('DataItem: ' + str(dataItem))
        print('DataKey.Shipper: ' + str(valueOf(dataItem, DataKey.SHIPPER)))

        context = Context()
        context.EventID = str(uuid.uuid4().urn)
        context.TransformationID = str(uuid.uuid4().urn)
        context.TimeZone = valueOf(dataItem, DataKey.TIME_ZONE)
        context.Location = glnOf(locations, company_prefix,
                                 valueOf(dataItem, DataKey.LOCATION),
                                 valueOf(dataItem, DataKey.LOCATION_EXT))
        context.FromLocation = glnOf(
            locations, company_prefix, valueOf(dataItem,
                                               DataKey.FROM_LOCATION),
            valueOf(dataItem, DataKey.FROM_LOCATION_EXT))
        context.ToLocation = glnOf(locations, company_prefix,
                                   valueOf(dataItem, DataKey.TO_LOCATION),
                                   valueOf(dataItem, DataKey.TO_LOCATION_EXT))
        context.UnquantifiedItems = [item] if item else None
        context.QuantifiedItems = [quantifiedItem] if quantifiedItem else None
        context.UnquantifiedFromItems = [fromItem] if fromItem else None
        context.QuantifiedFromItems = [quantifiedFromItem
                                       ] if quantifiedFromItem else None
        context.UnquantifiedToItems = [toItem] if toItem else None
        context.QuantifiedToItems = [quantifiedToItem
                                     ] if quantifiedToItem else None
        context.ExpirationDate = valueOf(dataItem, DataKey.EXPIRATION_DATE)
        context.SellByDate = valueOf(dataItem, DataKey.SELL_BY_DATE)
        context.BestBeforeDate = valueOf(dataItem, DataKey.BEST_BEFORE_DATE)
        context.ReadPoint = valueOf(dataItem, DataKey.READ_POINT)
        context.Disposition = valueOf(dataItem, DataKey.DISPOSITION)
        context.BizStep = valueOf(dataItem, DataKey.BIZ_STEP)
        context.PurchaseOrder = purchaseOrderOf(
            company_prefix, valueOf(dataItem, DataKey.PURCHASE_ORDER))
        context.DespatchAdvice = despatchAdviceOf(
            company_prefix, valueOf(dataItem, DataKey.PURCHASE_ORDER),
            valueOf(dataItem, DataKey.DESPATCH_ADVICE))
        context.ProductionOrder = productionOrderOf(
            company_prefix, valueOf(dataItem, DataKey.PRODUCTION_ORDER))
        context.SSCC = ssccOf(valueOf(dataItem, DataKey.SHIPPER),
                              valueOf(dataItem, DataKey.SSCC))
        context.Shipper = valueOf(dataItem, DataKey.SHIPPER)
        contexts.append(context)
    return contexts