protected void HandleCrossReferences(InventoryItem product, ref List <KCAPIAttribute> attributes) { IEnumerable <INItemXRef> crossReferences = Graph.CrossReferences.Select(product.InventoryID).RowCast <INItemXRef>(); List <string> fieldReferencesAttributesToExport = new List <string>(); foreach (INItemXRef crossRef in crossReferences) { KCINItemXRefExt crossRefKCExt = crossRef.GetExtension <KCINItemXRefExt>(); foreach (KCCrossReferenceMapping mapping in Graph.CrossReferenceMapping.Select()) { KCAttribute cAAttribute = Graph.KCAttributes.Select().RowCast <KCAttribute>().FirstOrDefault(x => x.AttributeID == mapping.CAAttributeID); if (!fieldReferencesAttributesToExport.Contains(cAAttribute.AttributeName)) { if (cAAttribute.AttributeType.Equals(KCAttributeType.Custom)) { if (KCGeneralDataHelper.CrossReferenceMatchTheRule(mapping, crossRef)) { attributes.Add(new KCAPIAttribute { Name = cAAttribute.AttributeName, Value = crossRef.AlternateID }); fieldReferencesAttributesToExport.Add(cAAttribute.AttributeName); } } } } } }
protected void HandleProductAttributes(InventoryItem product, ref List <KCAPIAttribute> attributes) { IEnumerable <CSAnswers> attrs = Graph.Attributes.Select(product.InventoryID).RowCast <CSAnswers>().Where(x => x.RefNoteID == product.NoteID); KCAttributesMappingMaint attributesMappingGraph = PXGraph.CreateInstance <KCAttributesMappingMaint>(); attributesMappingGraph.updateAttributes(); foreach (CSAnswers attribute in attrs) { KCAttributesMapping mappedAttribute = attributesMappingGraph.MappedAttributeById.SelectSingle(attribute.AttributeID); if (mappedAttribute == null) { continue; } KCAttribute cAAttribute = Graph.KCAttributes.Select().RowCast <KCAttribute>().FirstOrDefault(x => x.AttributeID == mappedAttribute.CAAttributeID); if (cAAttribute.AttributeType.Equals(KCAttributeType.Custom)) { attribute.AttributeID = cAAttribute.AttributeName; attributes.Add(new KCAPIAttribute { Name = attribute.AttributeID, Value = attribute.Value }); } } }