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
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