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 }); } } }
public static T GetReservedProductAttributeValue <T>(KCAttributesMappingMaint graph, InventoryItem product, string ReservedAttributeName) { try { PXResult <KCAttribute> resAttr = graph.ReservedAttribute.Select(ReservedAttributeName, product.NoteID).FirstOrDefault(); CSAnswers ans = resAttr?.GetItem <CSAnswers>(); return(resAttr != null && ans != null ? (T)Convert.ChangeType(ans.Value, typeof(T)) : default);
protected virtual IEnumerable GetRecords() { KCAttributesMappingMaint graph = (KCAttributesMappingMaint)_Graph; IEnumerable <KCCrossReferenceMapping> crossReferenceMapping = CrossReferenceMappingDatabaseSlot.Cross;// graph.CrossReferenceMapping.Select().RowCast<KCCrossReferenceMapping>(); IEnumerable <KCAttribute> allAttributes = graph.Attributes.Select().RowCast <KCAttribute>(); foreach (KCAttribute attr in allAttributes) { if (!crossReferenceMapping.Any(x => x.CAAttributeID == attr.AttributeID)) { yield return(attr); } } }