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);
        }
Beispiel #2
0
        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();
            }
        }