コード例 #1
0
        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
                    });
                }
            }
        }
コード例 #2
0
 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);
                }
            }
        }