Esempio n. 1
0
        protected virtual void INItemClassSubItemSegment_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
        {
            if (e.Operation == PXDBOperation.Insert || e.Operation == PXDBOperation.Update)
            {
                INItemClassSubItemSegment seg = (INItemClassSubItemSegment)e.Row;

                if (seg.IsActive == false && string.IsNullOrEmpty(seg.DefaultValue))
                {
                    if (sender.RaiseExceptionHandling <INItemClassSubItemSegment.defaultValue>(e.Row, null, new PXSetPropertyException(ErrorMessages.FieldIsEmpty, typeof(INItemClassSubItemSegment.defaultValue).Name)))
                    {
                        throw new PXRowPersistingException(typeof(INItemClassSubItemSegment.defaultValue).Name, null, ErrorMessages.FieldIsEmpty, typeof(INItemClassSubItemSegment.defaultValue).Name);
                    }
                }

                SegmentValue val = (SegmentValue)PXSelect <SegmentValue, Where <SegmentValue.dimensionID, Equal <SubItemAttribute.dimensionName>, And <SegmentValue.segmentID, Equal <Required <SegmentValue.segmentID> >, And <SegmentValue.isConsolidatedValue, Equal <boolTrue> > > > > .Select(this, seg.SegmentID);

                if (val == null)
                {
                    val = (SegmentValue)PXSelect <SegmentValue, Where <SegmentValue.dimensionID, Equal <SubItemAttribute.dimensionName>, And <SegmentValue.segmentID, Equal <Required <SegmentValue.segmentID> >, And <SegmentValue.value, Equal <Required <SegmentValue.value> > > > > > .Select(this, seg.SegmentID, seg.DefaultValue);

                    if (val != null)
                    {
                        val.IsConsolidatedValue = true;
                        segmentvalue.Cache.SetStatus(val, PXEntryStatus.Updated);
                        segmentvalue.Cache.IsDirty = true;
                    }
                }
            }
        }
Esempio n. 2
0
        public virtual IEnumerable Segments()
        {
            foreach (INItemClassSubItemSegment seg in segments.Cache.Updated)
            {
                yield return(seg);
            }

            if (itemclass.Current == null || string.IsNullOrEmpty(itemclass.Current.ItemClassID))
            {
                yield break;
            }

            foreach (PXResult <Segment, SegmentValue, INItemClassSubItemSegment> res in PXSelectJoin <Segment, LeftJoin <SegmentValue, On <SegmentValue.dimensionID, Equal <Segment.dimensionID>, And <SegmentValue.segmentID, Equal <Segment.segmentID>, And <SegmentValue.isConsolidatedValue, Equal <boolTrue> > > >, LeftJoin <INItemClassSubItemSegment, On <INItemClassSubItemSegment.itemClassID, Equal <Current <INItemClass.itemClassID> >, And <INItemClassSubItemSegment.segmentID, Equal <Segment.segmentID> > > > >, Where <Segment.dimensionID, Equal <SubItemAttribute.dimensionName> > > .Select(this))
            {
                INItemClassSubItemSegment seg = (INItemClassSubItemSegment)res;
                if (seg.SegmentID == null)
                {
                    seg.SegmentID   = ((Segment)res).SegmentID;
                    seg.ItemClassID = itemclass.Current.ItemClassID;
                    seg.IsActive    = true;
                }

                seg.DefaultValue = ((SegmentValue)res).Value;
                PXUIFieldAttribute.SetEnabled <INItemClassSubItemSegment.defaultValue>(segments.Cache, seg, string.IsNullOrEmpty(seg.DefaultValue));

                INItemClassSubItemSegment cached;

                if ((cached = (INItemClassSubItemSegment)segments.Cache.Locate(seg)) == null || segments.Cache.GetStatus(cached) == PXEntryStatus.Notchanged)
                {
                    yield return(seg);
                }
            }

            segments.Cache.IsDirty = false;
        }