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); }