public virtual IEnumerable ReverseAdjustment(PXAdapter adapter) { TaxAdjustment taxAdjToReverse = Document.Current; if (taxAdjToReverse?.Released != true || !AskUserApprovalIfReversingDocumentAlreadyExists(taxAdjToReverse)) { return(adapter.Get()); } Save.Press(); try { IsReversingInProgress = true; Clear(PXClearOption.PreserveTimeStamp); var reverseAdjustmentWithCuryInfo = CreateReversingTaxAdjustmentWithCuryInfo(taxAdjToReverse); TaxAdjustment reverseAdjustment = Document.Insert(reverseAdjustmentWithCuryInfo.Item1); UpdateCurrencyInfoForReversedTaxAdjustment(reverseAdjustmentWithCuryInfo.Item2); AddReversedTaxTransactionsToReversedTaxAdjustment(taxAdjToReverse, reverseAdjustment); Document.Cache.RaiseExceptionHandling <TaxAdjustment.finPeriodID>(Document.Current, Document.Current.FinPeriodID, null); PXTrace.WriteVerbose("Reverse Tax Adjustment for Tax Adjustment \"{0}\" was created", taxAdjToReverse.RefNbr); return(new List <TaxAdjustment> { Document.Current }); } catch (PXException e) { PXTrace.WriteError(e); Clear(PXClearOption.PreserveTimeStamp); Document.Current = taxAdjToReverse; throw; } finally { IsReversingInProgress = false; } }