Example #1
0
 public GLTranForReclassification GetGLTranForReclassByKey(GLTranKey key)
 {
     return(new GLTranForReclassification
     {
         Module = key.Module,
         BatchNbr = key.BatchNbr,
         LineNbr = key.LineNbr
     });
 }
        private Dictionary <GLTranKey, ReclassificationItem> BuildReclassificationItems(ICollection <GLTranForReclassification> transForReclassOrig,
                                                                                        out Dictionary <GLTranForReclassification, GLTranForReclassification> mappedTrans)
        {
            mappedTrans = transForReclassOrig.ToDictionary(origTran => PXCache <GLTranForReclassification> .CreateCopy(origTran), origTran => origTran);

            var reclassItemsByHeaderKeys = new Dictionary <GLTranKey, ReclassificationItem>();

            foreach (var tran in mappedTrans.Keys)
            {
                if (tran.IsSplitting == false)
                {
                    var key = new GLTranKey(tran);

                    if (reclassItemsByHeaderKeys.ContainsKey(key))
                    {
                        reclassItemsByHeaderKeys[key].HeadTranForReclass = tran;
                    }
                    else
                    {
                        reclassItemsByHeaderKeys.Add(key, new ReclassificationItem());
                        reclassItemsByHeaderKeys[key].HeadTranForReclass = tran;
                    }

                    continue;
                }
                if (reclassItemsByHeaderKeys.ContainsKey(tran.ParentKey))
                {
                    reclassItemsByHeaderKeys[tran.ParentKey].SplittingTransForReclass.Add(tran);
                }
                else
                {
                    reclassItemsByHeaderKeys.Add(tran.ParentKey, new ReclassificationItem());
                    reclassItemsByHeaderKeys[tran.ParentKey].SplittingTransForReclass.Add(tran);
                }
            }

            var reclassItemsByCuryInfoID = reclassItemsByHeaderKeys.Values.GroupBy(m => m.HeadTranForReclass.CuryInfoID);

            foreach (var reclassItemGroup in reclassItemsByCuryInfoID)
            {
                var curyInfo = PXSelect <CurrencyInfo,
                                         Where <CurrencyInfo.curyInfoID, Equal <Required <CurrencyInfo.curyInfoID> > > >
                               .Select(this, reclassItemGroup.Key);

                foreach (var reclassItem in reclassItemGroup)
                {
                    reclassItem.CuryInfo = curyInfo;
                }
            }

            return(reclassItemsByHeaderKeys);
        }