private GLTran CreateOrEditReclassTranPair(GLTranForReclassification tranForReclass, ReclassificationItem reclassItem, List <GLTran> transMovedFromExistingBatch) { GLTran reclassifyingTran; if (tranForReclass.ReclassRowType == ReclassRowTypes.Editing) { EditReverseTran(tranForReclass, transMovedFromExistingBatch); reclassifyingTran = EditReclassifyingTran(tranForReclass, transMovedFromExistingBatch); } else { var newTranCuryInfo = CreateCurrencyInfo(reclassItem.CuryInfo); BuildReverseTran(tranForReclass, reclassItem, newTranCuryInfo); reclassifyingTran = BuildReclassifyingTran(tranForReclass, reclassItem, newTranCuryInfo); reclassItem.NewReclassifyingTrans.Add(reclassifyingTran); } reclassItem.ReclassifyingTrans.Add(reclassifyingTran); return(reclassifyingTran); }
private void BuildReverseTran(GLTranForReclassification tranForReclass, ReclassificationItem reclassItem, CurrencyInfo newTranCuryInfo) { var reverseTran = JournalEntry.BuildReverseTran(JournalEntryInstance, tranForReclass, JournalEntry.TranBuildingModes.SetLinkToOriginal, newTranCuryInfo); reverseTran.IsReclassReverse = true; SetOrigLineNumber(reverseTran, reclassItem); SetCommonBusinessAttrs(reverseTran, tranForReclass); SetReclassificationLinkingAttrs(reverseTran, tranForReclass, reclassItem); SetDependingOnReclassTypeAttrs(reverseTran, tranForReclass); JournalEntryInstance.GLTranModuleBatNbr.Insert(reverseTran); }
protected virtual void UpdateOrigRecordsByBatches(string origModule, string origBatchNbr, IReadOnlyCollection <ReclassificationItem> reclassificationItems, Batch reclassBatch, Dictionary <GLTranKey, ReclassificationItem> allReclassItemsByHeaderKey) { JournalEntryInstance.Clear(PXClearOption.ClearAll); JournalEntryInstance.SelectTimeStamp(); JournalEntryInstance.BatchModule.Current = JournalEntry.FindBatch(JournalEntryInstance, origModule, origBatchNbr); List <int?> origLineNbrs = reclassificationItems.Select(m => m.HeadTranForReclass.LineNbr).ToList(); const int portionSize = 2; decimal rawPortionCount = reclassificationItems.Count / (decimal)portionSize; int portionCount = (int)Math.Ceiling(rawPortionCount); for (int i = 0; i < portionCount; i++) { int curPortionSize = i <= rawPortionCount - 1 ? portionSize : reclassificationItems.Count % portionSize; var lineNbrs = origLineNbrs.GetRange(i * portionSize, curPortionSize).ToArray(); var transInBatch = JournalEntry.GetTrans(JournalEntryInstance, origModule, origBatchNbr, lineNbrs); foreach (GLTran origTran in transInBatch) { origTran.ReclassBatchNbr = reclassBatch.BatchNbr; origTran.ReclassBatchModule = reclassBatch.Module; ReclassificationItem reclassItem = allReclassItemsByHeaderKey[new GLTranKey(origTran)]; if (origTran.ReclassTotalCount == null) { origTran.ReclassTotalCount = 0; } origTran.ReclassTotalCount += reclassItem.NewReclassifyingTrans.Count; JournalEntryInstance.GLTranModuleBatNbr.Update(origTran); } } JournalEntryInstance.Save.Press(); }
private void BuildReverseTran(GLTranForReclassification tranForReclass, ReclassificationItem reclassItem, CurrencyInfo newTranCuryInfo) { var reverseTran = JournalEntry.BuildReverseTran(JournalEntryInstance, tranForReclass, JournalEntry.TranBuildingModes.SetLinkToOriginal, newTranCuryInfo); reverseTran.IsReclassReverse = true; SetOrigLineNumber(reverseTran, reclassItem); SetCommonBusinessAttrs(reverseTran, tranForReclass); SetReclassificationLinkingAttrs(reverseTran, tranForReclass, reclassItem); SetDependingOnReclassTypeAttrs(reverseTran, tranForReclass); bool BaseCalc = (tranForReclass.TranClass != GLTran.tranClass.RealizedAndRoundingGOL); PXDBCurrencyAttribute.SetBaseCalc <GLTran.curyCreditAmt>(JournalEntryInstance.GLTranModuleBatNbr.Cache, null, BaseCalc); PXDBCurrencyAttribute.SetBaseCalc <GLTran.curyDebitAmt>(JournalEntryInstance.GLTranModuleBatNbr.Cache, null, BaseCalc); JournalEntryInstance.GLTranModuleBatNbr.Insert(reverseTran); }
private void SetReclassificationLinkingAttrs(GLTran tran, GLTranForReclassification tranForReclassification, ReclassificationItem reclassItem) { if (JournalEntry.IsReclassifacationTran(tranForReclassification)) { tran.ReclassSourceTranModule = tranForReclassification.ReclassSourceTranModule; tran.ReclassSourceTranBatchNbr = tranForReclassification.ReclassSourceTranBatchNbr; tran.ReclassSourceTranLineNbr = tranForReclassification.ReclassSourceTranLineNbr; tran.ReclassSeqNbr = tranForReclassification.ReclassSeqNbr + 1; } else { tran.ReclassSourceTranModule = tranForReclassification.Module; tran.ReclassSourceTranBatchNbr = tranForReclassification.BatchNbr; tran.ReclassSourceTranLineNbr = reclassItem.HeadTranForReclass.LineNbr; tran.ReclassSeqNbr = 1; } tran.ReclassOrigTranDate = tranForReclassification.TranDate; }
protected virtual void SetOrigLineNumber(GLTran tran, ReclassificationItem reclassItem) { tran.OrigLineNbr = reclassItem.HeadTranForReclass.LineNbr; }
private GLTran BuildReclassifyingTran(GLTranForReclassification tranForReclass, ReclassificationItem reclassItem, CurrencyInfo newTranCuryInfo) { var reclassifyingTran = JournalEntry.BuildReleasableTransaction(JournalEntryInstance, tranForReclass, JournalEntry.TranBuildingModes.SetLinkToOriginal, newTranCuryInfo); SetOrigLineNumber(reclassifyingTran, reclassItem); SetReclassifyingTranBusinessAttrs(reclassifyingTran, tranForReclass); SetReclassificationLinkingAttrs(reclassifyingTran, tranForReclass, reclassItem); SetDependingOnReclassTypeAttrs(reclassifyingTran, tranForReclass); return(JournalEntryInstance.GLTranModuleBatNbr.Insert(reclassifyingTran)); }