예제 #1
0
        protected virtual void ARInvoice_UsrContractID_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e, PXFieldUpdated del)
        {
            // Event handler body before the base BLC event handler collection
            if (del != null)
            {
                del(sender, e);
            }
            // Event handler body after the base BLC event handler collection
            if (e.Row != null)
            {
                ARRegister    row       = (ARRegister)e.Row;
                ARRegisterExt invoiceEX = PXCache <ARRegister> .GetExtension <ARRegisterExt>(row);

                if (invoiceEX.UsrContractID != null)
                {
                    MaxQ.Products.RBRR.XRBContrHdr contract = PXSelect <MaxQ.Products.RBRR.XRBContrHdr,
                                                                        Where <MaxQ.Products.RBRR.XRBContrHdr.contractID,
                                                                               Equal <Required <MaxQ.Products.RBRR.XRBContrHdr.contractID> > > > .Select(Base, invoiceEX.UsrContractID);

                    sender.SetValue <ARRegisterExt.usrContractCD>(e.Row, contract.ContractCD);
                    sender.SetValue <ARRegisterExt.usrRevisionNbr>(e.Row, contract.RevisionNbr);
                    sender.SetValue <ARInvoice.invoiceNbr>(e.Row, contract.ContractCDRevNbr);
                }
            }
        }
예제 #2
0
        public IEnumerable voidOrder(PXAdapter adapter)
        {
            if (CreditSettings.AskExt() == WebDialogResult.OK)
            {
                if (CreditSettings.Current.CreditDate != null && CreditSettings.Current.ReasonCodeID != null)
                {
                    XRBContrDet contractdet = Base.ContractDetails.Current;

                    PXGraph.InstanceCreated.AddHandler <PX.Objects.AR.ARInvoiceEntry>((graph) =>
                    {
                        graph.RowInserting.AddHandler <PX.Objects.AR.ARInvoice>((sender, e) =>
                        {
                            ARRegisterExt invoiceExt    = PXCache <PX.Objects.AR.ARRegister> .GetExtension <ARRegisterExt>((PX.Objects.AR.ARInvoice)e.Row);
                            invoiceExt.UsrGenerateDate  = CreditSettings.Current.CreditDate;
                            invoiceExt.UsrReasonCodeID  = CreditSettings.Current.ReasonCodeID;
                            invoiceExt.UsrOrginalRefNbr = (contractdet != null) ? contractdet.ARRefNbr : null;
                        });
                    });
                }
                else
                {
                    throw new PXSetPropertyException <CancelContractSettings.reasonCD>(
                              "Enter a reason code.", PXErrorLevel.Error);
                }
            }
            return(Base.voidOrder.Press(adapter));
        }
예제 #3
0
        protected void ARInvoice_RowPersisting(PXCache sender, PXRowPersistingEventArgs e, PXRowPersisting del)
        {
            ARInvoice invoice = (ARInvoice)e.Row;

            if (invoice != null)
            {
                ARRegisterExt ext = PXCache <PX.Objects.AR.ARRegister> .GetExtension <ARRegisterExt>((PX.Objects.AR.ARInvoice) e.Row);

                //Validate fields
                if ((e.Operation & PXDBOperation.Command) != PXDBOperation.Delete && ext != null)
                {
                    if (ext.UsrContractTypeID == null)
                    {
                        throw new PXSetPropertyException <ARRegisterExt.usrContractTypeID>(
                                  "Enter a Contract Type.", PXErrorLevel.Error);
                    }
                    if (ext.UsrLineofBusiness == null)
                    {
                        throw new PXSetPropertyException <ARRegisterExt.usrLineofBusiness>(
                                  "Enter a Line of Business.", PXErrorLevel.Error);
                    }
                    if (invoice.DocType == ARDocType.DebitMemo ||
                        invoice.DocType == ARDocType.CreditMemo ||
                        invoice.DocType == ARDocType.SmallCreditWO)
                    {
                        if (ext.UsrReasonCodeID == null)
                        {
                            throw new PXSetPropertyException <ARRegisterExt.usrReasonCodeID>(
                                      "Enter a Reason Code.", PXErrorLevel.Error);
                        }
                    }
                }
                /* Document level discount */
                // Initializing the data view
                PXSelectBase <ARTran> select = new PXSelect <ARTran, Where <ARTran.tranType, Equal <Current <ARInvoice.docType> >,
                                                                            And <ARTran.refNbr, Equal <Current <ARInvoice.refNbr> >,
                                                                                 And <ARTran.deferredCode, IsNotNull> > >,
                                                             OrderBy <Asc <ARTran.tranType, Asc <ARTran.refNbr, Asc <ARTran.lineNbr> > > > >(Base);
                // Executing the data view
                PX.Objects.AR.ARTran trandeferredCode = select.SelectWindowed(0, 1, null);
                // Set the defferral code to first line item
                if (trandeferredCode != null)
                {
                    foreach (ARTran tran in Base.Discount_Row.Select())
                    {
                        Base.Discount_Row.Current = tran;
                        Base.Discount_Row.Current.DeferredCode = trandeferredCode.DeferredCode;
                        Base.Discount_Row.Update(Base.Discount_Row.Current);
                    }
                }
            }
            del(sender, e);
        }
        public override void Initialize()
        {
            var  myDate      = (DateTime)Base.Accessinfo.BusinessDate;
            bool oktoprocess = false;

            Base.FilteredProcessing.SetParametersDelegate(delegate(List <XRBOrdersToGen> documents)
            {
                string smessage = String.Format("Warning you are about to create multiple invoices. Do you want to proceed? The Invoice date is {0}/{1}/{2}", myDate.Month, myDate.Day, myDate.Year);

                return(Base.FilteredProcessing.Ask("Generate Recurring Orders", smessage, MessageButtons.YesNo) == WebDialogResult.Yes);
            });

            Base.FilteredProcessing.SetProcessDelegate(delegate(XRBOrdersToGen doc)
            {
                if (Base.Filter != null)
                {
                    int daysDiff    = ((TimeSpan)(Base.Filter.Current.BegDate - Base.Filter.Current.EndDate)).Days;
                    int begdaysDiff = ((TimeSpan)(Base.Filter.Current.BegDate - myDate)).Days;
                    int enddaysDiff = ((TimeSpan)(Base.Filter.Current.EndDate - myDate)).Days;

                    if (begdaysDiff < 240 && enddaysDiff < 240)
                    {
                        oktoprocess = true;
                    }
                }
                if (oktoprocess)
                {
                    PXGraph.InstanceCreated.AddHandler <ContractMaint>((graph) =>
                    {
                        graph.RowPersisting.AddHandler <MaxQ.Products.RBRR.XRBContrHdr>((sender, e) =>
                        {
                            XRBContrHdr contract          = PXResult <XRBContrHdr> .Current;
                            XRBContrDet contractdet       = PXResult <XRBContrDet> .Current;
                            XRBContrHdrExt contractEX     = PXCache <XRBContrHdr> .GetExtension <XRBContrHdrExt>(contract);
                            CAMPContractType contracttype = (CAMPContractType)PXSelect <CAMPContractType,
                                                                                        Where <CAMPContractType.contractTypeID,
                                                                                               Equal <Required <XRBContrHdrExt.usrContractTypeID> > > > .Select(Base, contractEX.UsrContractTypeID);
                            if ((bool)contractdet.ManuallyBooked && contracttype != null && (bool)contracttype.UpdateContractType)
                            {
                                contractEX.UsrContractTypeID = contracttype.NextContractTypeID;
                            }
                        });
                    });

                    PXGraph.InstanceCreated.AddHandler <PX.Objects.AR.ARInvoiceEntry>((graph) =>
                    {
                        graph.RowInserting.AddHandler <PX.Objects.AR.ARInvoice>((sender, e) =>
                        {
                            XRBContrHdr contract            = PXResult <XRBContrHdr> .Current;
                            XRBContrDet contractdet         = PXResult <XRBContrDet> .Current;
                            XRBContrHdrExt contractEX       = PXCache <XRBContrHdr> .GetExtension <XRBContrHdrExt>(contract);
                            PX.Objects.AR.ARInvoice invoice = (PX.Objects.AR.ARInvoice)e.Row;
                            ARRegisterExt ext      = PXCache <PX.Objects.AR.ARRegister> .GetExtension <ARRegisterExt>(invoice);
                            CAMPLineofBusiness lob = (CAMPLineofBusiness)PXSelect <CAMPLineofBusiness,
                                                                                   Where <CAMPLineofBusiness.lineofBusinessID,
                                                                                          Equal <Required <XRBContrHdrExt.usrLineofBusiness> > > > .Select(Base, contractEX.UsrLineofBusiness);
                            if (contract != null)
                            {
                                ext.UsrContractID     = contract.ContractID;
                                ext.UsrContractCD     = contract.ContractCD;
                                ext.UsrRevisionNbr    = contract.RevisionNbr;
                                ext.UsrTotPeriods     = contract.TotPeriods;
                                ext.UsrLineofBusiness = contractEX.UsrLineofBusiness;
                                ext.UsrContractTypeID = contractEX.UsrContractTypeID;
                                invoice.DocDesc       = (lob != null) ? lob.LineofBusinessCD : "";
                            }
                            if (contractdet != null)
                            {
                                ext.UsrGenerateDate = contractdet.GenDate;
                                switch (contract.TotPeriods)
                                {
                                case ContractMaintContractInterval_List.Every18Months_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(18);
                                    break;

                                case ContractMaintContractInterval_List.FiveYears_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(60);
                                    break;

                                case ContractMaintContractInterval_List.SixYears_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(72);
                                    break;

                                case ContractMaintContractInterval_List.SevenYears_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(84);
                                    break;

                                case ContractMaintContractInterval_List.ThreeYears_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(36);
                                    break;

                                case ContractMaintContractInterval_List.Biennially_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(24);
                                    break;

                                case ContractMaintContractInterval_List.Years_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(12);
                                    break;

                                case ContractMaintContractInterval_List.SemiAnnually_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(6);
                                    break;

                                case ContractMaintContractInterval_List.Quarters_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(3);
                                    break;

                                case ContractMaintContractInterval_List.BiMonthly_key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(2);
                                    break;

                                case ContractMaintContractInterval_List.Months_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(1);
                                    break;

                                case ContractMaintContractInterval_List.UserDefined_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(60);
                                    break;

                                case ContractMaintContractInterval_List.FourMonths_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(4);
                                    break;

                                case ContractMaintContractInterval_List.BiWeekly_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddDays(14);
                                    break;

                                case ContractMaintContractInterval_List.Days_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddDays(1);
                                    break;

                                case ContractMaintContractInterval_List.Weeks_Key:
                                    ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddDays(7);
                                    break;
                                }
                                ext.UsrContractEndDate = ((DateTime)ext.UsrContractEndDate).AddDays(-1);
                            }
                        });
                        graph.RowInserting.AddHandler <ARTran>((sender, e) =>
                        {
                            XRBGLDist contractdist      = PXResult <XRBGLDist> .Current;
                            XRBGLDistExt contractdistEX = PXCache <XRBGLDist> .GetExtension <XRBGLDistExt>(contractdist);

                            if (contractdist != null)
                            {
                                ARTranExt ext           = PXCache <ARTran> .GetExtension <ARTranExt>((ARTran)e.Row);
                                ext.UsrProfileNumber    = contractdistEX.UsrProfileNumber;
                                ext.UsrDiscountReasonID = contractdistEX.UsrDiscountReasonID;
                                ext.UsrRegNbr           = contractdistEX.UsrRegNbr;
                            }
                        });
                    });
                    GenerateRecurringOrders.ProcessOrdersAndInvoices(new List <XRBOrdersToGen>()
                    {
                        doc
                    });
                }
                else
                {
                    throw new PXException("Invalid Date Range. Date range must be within 120 Days of business date.");
                }
            });

            base.Initialize();
        }
예제 #5
0
        public IEnumerable generateOrder(PXAdapter adapter)
        {
            /*PXGraph.InstanceCreated.AddHandler<ContractMaint>((graph) =>
             * {
             *  graph.RowPersisting.AddHandler<XRBContrHdr>((sender, e) =>
             *  {
             *      XRBContrHdr contract = PXResult<XRBContrHdr>.Current;
             *      XRBContrDet contractdet = PXResult<XRBContrDet>.Current;
             *      XRBContrHdrExt contractEX = PXCache<XRBContrHdr>.GetExtension<XRBContrHdrExt>(contract);
             *      CAMPContractType contracttype = (CAMPContractType)PXSelect<CAMPContractType,
             *         Where<CAMPContractType.contractTypeID,
             *          Equal<Required<XRBContrHdrExt.usrContractTypeID>>>>.Select(Base, contractEX.UsrContractTypeID);
             *      if ((bool)contractdet.ManuallyBooked && contracttype != null && (bool)contracttype.UpdateContractType)
             *      {
             *          contractEX.UsrContractTypeID = contracttype.NextContractTypeID;
             *      }
             *  });
             * }); */

            PXGraph.InstanceCreated.AddHandler <PX.Objects.AR.ARInvoiceEntry>((graph) =>
            {
                graph.RowInserting.AddHandler <PX.Objects.AR.ARInvoice>((sender, e) =>
                {
                    XRBContrHdr contract            = PXResult <XRBContrHdr> .Current;
                    XRBContrDet contractdet         = PXResult <XRBContrDet> .Current;
                    XRBContrHdrExt contractEX       = PXCache <XRBContrHdr> .GetExtension <XRBContrHdrExt>(contract);
                    PX.Objects.AR.ARInvoice invoice = (PX.Objects.AR.ARInvoice)e.Row;
                    ARRegisterExt ext      = PXCache <PX.Objects.AR.ARRegister> .GetExtension <ARRegisterExt>(invoice);
                    CAMPLineofBusiness lob = (CAMPLineofBusiness)PXSelect <CAMPLineofBusiness,
                                                                           Where <CAMPLineofBusiness.lineofBusinessID,
                                                                                  Equal <Current <XRBContrHdrExt.usrLineofBusiness> > > > .Select(Base);
                    if (contract != null)
                    {
                        ext.UsrContractID     = contract.ContractID;
                        ext.UsrContractCD     = contract.ContractCD;
                        ext.UsrRevisionNbr    = contract.RevisionNbr;
                        ext.UsrLineofBusiness = contractEX.UsrLineofBusiness;
                        ext.UsrContractTypeID = contractEX.UsrContractTypeID;
                        ext.UsrTotPeriods     = contract.TotPeriods;
                    }
                    if (contractdet != null)
                    {
                        ext.UsrGenerateDate = contractdet.GenDate;
                        switch (contract.TotPeriods)
                        {
                        case ContractMaintContractInterval_List.Every18Months_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(18);
                            break;

                        case ContractMaintContractInterval_List.FiveYears_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(60);
                            break;

                        case ContractMaintContractInterval_List.SixYears_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(72);
                            break;

                        case ContractMaintContractInterval_List.SevenYears_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(84);
                            break;

                        case ContractMaintContractInterval_List.ThreeYears_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(36);
                            break;

                        case ContractMaintContractInterval_List.Biennially_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(24);
                            break;

                        case ContractMaintContractInterval_List.Years_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(12);
                            break;

                        case ContractMaintContractInterval_List.SemiAnnually_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(6);
                            break;

                        case ContractMaintContractInterval_List.Quarters_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(3);
                            break;

                        case ContractMaintContractInterval_List.BiMonthly_key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(2);
                            break;

                        case ContractMaintContractInterval_List.Months_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(1);
                            break;

                        case ContractMaintContractInterval_List.UserDefined_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(60);
                            break;

                        case ContractMaintContractInterval_List.FourMonths_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddMonths(4);
                            break;

                        case ContractMaintContractInterval_List.BiWeekly_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddDays(14);
                            break;

                        case ContractMaintContractInterval_List.Days_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddDays(1);
                            break;

                        case ContractMaintContractInterval_List.Weeks_Key:
                            ext.UsrContractEndDate = ((DateTime)contractdet.GenDate).AddDays(7);
                            break;
                        }
                        ext.UsrContractEndDate = ((DateTime)ext.UsrContractEndDate).AddDays(-1);
                    }
                });
                graph.RowInserting.AddHandler <PX.Objects.AR.ARTran>((sender, e) =>
                {
                    XRBGLDist contractdist      = PXResult <XRBGLDist> .Current;
                    XRBGLDistExt contractdistEX = PXCache <XRBGLDist> .GetExtension <XRBGLDistExt>(contractdist);
                    if (contractdist != null)
                    {
                        ARTranExt ext           = PXCache <PX.Objects.AR.ARTran> .GetExtension <ARTranExt>((PX.Objects.AR.ARTran)e.Row);
                        ext.UsrProfileNumber    = contractdistEX.UsrProfileNumber;
                        ext.UsrDiscountReasonID = contractdistEX.UsrDiscountReasonID;
                        ext.UsrRegNbr           = contractdistEX.UsrRegNbr;
                    }
                });
            });

            return(Base.generateOrder.Press(adapter));
        }