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