public IEnumerable Release(PXAdapter adapter) { if (RUTROTHelper.IsNeedBalancing(Base, Base.Document.Current, RUTROTBalanceOn.Release)) { Base.Save.Press(); ARInvoice doc = Base.Document.Current; PXLongOperation.StartOperation(Base, delegate() { RUTROT rutrot = PXSelect <RUTROT, Where <RUTROT.refNbr, Equal <Required <ARInvoice.refNbr> >, And <RUTROT.docType, Equal <Required <ARInvoice.docType> > > > > .Select(Base, doc.RefNbr, doc.DocType); ARInvoiceEntry invoiceEntryGraph = PXGraph.CreateInstance <ARInvoiceEntry>(); RUTROTHelper.BalanceARInvoiceRUTROT(invoiceEntryGraph, doc, OnRelease: true, rutrot: rutrot); RUTROTHelper.CreateAdjustment(Base, doc, rutrot); Base.ReleaseProcess(new List <ARRegister> { doc }); }); return(new List <ARInvoice> { Base.Document.Current }); } return(Base.Release(adapter)); }
private void BalanceProc(ARInvoiceEntry graph, ARRegister register) { ARInvoice invoice = PXSelect <ARInvoice, Where <ARInvoice.docType, Equal <Required <ARRegister.docType> >, And <ARInvoice.refNbr, Equal <Required <ARRegister.refNbr> > > > > .Select(graph, register.DocType, register.RefNbr); if (RUTROTHelper.IsNeedBalancing(graph, invoice, RUTROTBalanceOn.Release)) { RUTROT rutrot = PXSelect <RUTROT, Where <RUTROT.refNbr, Equal <Required <ARInvoice.refNbr> >, And <RUTROT.docType, Equal <Required <ARInvoice.docType> > > > > .Select(graph, invoice.RefNbr, invoice.DocType); RUTROTHelper.BalanceARInvoiceRUTROT(graph, invoice, OnRelease: true, rutrot: rutrot); RUTROTHelper.CreateAdjustment(graph, invoice, rutrot); } }