public override void Persist() { using (new PXConnectionScope()) { using (PXTransactionScope ts = new PXTransactionScope()) { List <CATran> deleted = new List <CATran>(); RowPersisting.AddHandler <CATran>((sender, e) => { if (deleted.Contains((CATran)e.Row)) { e.Cancel = true; } }); CATranEntry graph = null; foreach (CATran catran in TransferTran.Cache.Deleted) { if (graph == null) { graph = PXGraph.CreateInstance <CATranEntry>(); } CAAdj adj = PXSelect <CAAdj, Where <CAAdj.tranID, Equal <Required <CAAdj.tranID> > > > .Select(graph, catran.TranID); if (adj != null) { graph.TimeStamp = TimeStamp; graph.CAAdjRecords.Delete(adj); graph.Save.Press(); graph.Clear(); deleted.Add(catran); } } base.Persist(); ts.Complete(); foreach (CATran catran in deleted) { TransferTran.Cache.Remove(catran); } deleted.Clear(); } } //Current should be the only one inserted PXCache currencycache = Caches[typeof(CM.CurrencyInfo)]; currencycache.SetStatus(currencycache.Current, PXEntryStatus.Inserted); }
public override void Persist() { using (PXTransactionScope ts = new PXTransactionScope()) { List <CATran> deleted = new List <CATran>(); RowPersisting.AddHandler <CATran>((sender, e) => { if (deleted.Contains((CATran)e.Row)) { e.Cancel = true; } }); CATranEntry graph = null; foreach (CATran catran in TransferTran.Cache.Deleted) { if (graph == null) { graph = PXGraph.CreateInstance <CATranEntry>(); } CAAdj adj = PXSelect <CAAdj, Where <CAAdj.tranID, Equal <Required <CAAdj.tranID> > > > .Select(graph, catran.TranID); if (adj != null) { graph.TimeStamp = TimeStamp; graph.CAAdjRecords.Delete(adj); graph.Save.Press(); graph.Clear(); deleted.Add(catran); } } base.Persist(); ts.Complete(); foreach (CATran catran in deleted) { TransferTran.Cache.Remove(catran); } deleted.Clear(); } }