protected virtual void Segment_RowDeleting(PXCache cache, PXRowDeletingEventArgs e)
        {
            var row         = (Segment)e.Row;
            var dimensionID = row.DimensionID;
            var segmentID   = row.SegmentID;

            if (Header.Current.ParentDimensionID != null && row.Inherited == true)
            {
                throw new PXException(Messages.SegmentNotOverridden, segmentID);
            }
            if (PXSelectReadonly <Segment, Where <Segment.parentDimensionID, Equal <Current <Segment.dimensionID> >,
                                                  And <Segment.segmentID, Equal <Current <Segment.segmentID> > > > > .SelectMultiBound(this, new object[] { row }).Count > 0)
            {
                throw new PXException(Messages.SegmentHasChilds, segmentID);
            }
            Segment lastSegmeent = PXSelect <Segment, Where <Segment.dimensionID, Equal <Current <Segment.dimensionID> > >,
                                             OrderBy <Desc <Segment.segmentID> > > .SelectSingleBound(this, new object[] { row });

            if (lastSegmeent != null && lastSegmeent.SegmentID > segmentID)
            {
                throw new PXException(Messages.SegmentIsNotLast, segmentID);
            }
            if (((SegmentValue)PXSelect <SegmentValue,
                                         Where <SegmentValue.dimensionID, Equal <Optional <Segment.dimensionID> >,
                                                And <SegmentValue.segmentID, Equal <Optional <Segment.segmentID> > > > > .
                 Select(this, dimensionID, segmentID)) != null)
            {
                if (row.ParentDimensionID == null)
                {
                    throw new PXException(Messages.SegmentHasValues, segmentID);
                }

                var answer = Header.Ask(Messages.Warning,
                                        PXMessages.LocalizeFormatNoPrefixNLA(Messages.SegmentHasValuesQuestion, segmentID),
                                        MessageButtons.YesNoCancel,
                                        MessageIcon.Warning);
                switch (answer)
                {
                case WebDialogResult.Yes:
                    break;

                case WebDialogResult.Cancel:
                    e.Cancel = true;
                    break;

                case WebDialogResult.No:
                default:
                    throw new PXException(Messages.SegmentHasValues, segmentID);
                }
            }
        }
예제 #2
0
        public static IEnumerable <ExternalTransaction> GetSOInvoiceExternalTrans(PXGraph graph, ARInvoice currentInvoice)
        {
            foreach (ExternalTransaction tran in PXSelectReadonly <ExternalTransaction,
                                                                   Where <ExternalTransaction.refNbr, Equal <Current <ARInvoice.refNbr> >,
                                                                          And <ExternalTransaction.docType, Equal <Current <ARInvoice.docType> > > >,
                                                                   OrderBy <Desc <ExternalTransaction.transactionID> > > .SelectMultiBound(graph, new object[] { currentInvoice }))
            {
                yield return(tran);
            }

            foreach (ExternalTransaction tran in PXSelectReadonly2 <ExternalTransaction,
                                                                    InnerJoin <SOOrderShipment, On <SOOrderShipment.orderNbr, Equal <ExternalTransaction.origRefNbr>,
                                                                                                    And <SOOrderShipment.orderType, Equal <ExternalTransaction.origDocType> > > >,
                                                                    Where <SOOrderShipment.invoiceNbr, Equal <Current <ARInvoice.refNbr> >,
                                                                           And <SOOrderShipment.invoiceType, Equal <Current <ARInvoice.docType> >,
                                                                                And <ExternalTransaction.refNbr, IsNull> > >,
                                                                    OrderBy <Desc <CCProcTran.tranNbr> > > .SelectMultiBound(graph, new object[] { currentInvoice }))
            {
                yield return(tran);
            }
        }