/// <summary>
 /// Parent Constructor.
 /// </summary>
 /// <param name="parent">parent batch</param>
 public MJournal(MJournalBatch parent)
     : this(parent.GetCtx(), 0, parent.Get_TrxName())
 {
     //this (parent.getCtx(), 0, parent.get_TrxName());
     SetClientOrg(parent);
     SetGL_JournalBatch_ID(parent.GetGL_JournalBatch_ID());
     SetC_DocType_ID(parent.GetC_DocType_ID());
     SetPostingType(parent.GetPostingType());
     //
     SetDateDoc(parent.GetDateDoc());
     SetC_Period_ID(parent.GetC_Period_ID());
     SetDateAcct(parent.GetDateAcct());
     SetC_Currency_ID(parent.GetC_Currency_ID());
 }       //	MJournal
        }       //	getJournals

        /// <summary>
        /// Copy Journal/Lines from other Journal Batch
        /// </summary>
        /// <param name="jb">Journal Batch</param>
        /// <returns>number of journals + lines copied</returns>
        public int CopyDetailsFrom(MJournalBatch jb)
        {
            if (IsProcessed() || jb == null)
            {
                return(0);
            }
            int count     = 0;
            int lineCount = 0;

            MJournal[] fromJournals = jb.GetJournals(false);
            for (int i = 0; i < fromJournals.Length; i++)
            {
                MJournal toJournal = new MJournal(GetCtx(), 0, jb.Get_TrxName());
                PO.CopyValues(fromJournals[i], toJournal, GetAD_Client_ID(), GetAD_Org_ID());
                toJournal.SetGL_JournalBatch_ID(GetGL_JournalBatch_ID());
                toJournal.Set_ValueNoCheck("DocumentNo", null); //	create new

                //Manish 18/7/2016. C_Period_ID was Null.. But column is mandatory in database so value can't be null.
                toJournal.Set_ValueNoCheck("C_Period_ID", fromJournals[i].GetC_Period_ID());
                // end
                toJournal.SetDateDoc(GetDateDoc());             //	dates from this Batch
                toJournal.SetDateAcct(GetDateAcct());
                toJournal.SetDocStatus(MJournal.DOCSTATUS_Drafted);
                toJournal.SetDocAction(MJournal.DOCACTION_Complete);
                toJournal.SetTotalCr(Env.ZERO);
                toJournal.SetTotalDr(Env.ZERO);
                toJournal.SetIsApproved(false);
                toJournal.SetIsPrinted(false);
                toJournal.SetPosted(false);
                toJournal.SetProcessed(false);
                if (toJournal.Save())
                {
                    count++;
                    lineCount += toJournal.CopyLinesFrom(fromJournals[i], GetDateAcct(), 'x');
                }
            }
            if (fromJournals.Length != count)
            {
                log.Log(Level.SEVERE, "Line difference - Journals=" + fromJournals.Length + " <> Saved=" + count);
            }

            return(count + lineCount);
        }       //	copyLinesFrom
        }       //	MJournalBatch

        /// <summary>
        /// Copy Constructor.Dos not copy: Dates/Period
        /// </summary>
        /// <param name="original">original</param>
        public MJournalBatch(MJournalBatch original)
            : this(original.GetCtx(), 0, original.Get_TrxName())
        {
            //this (original.getCtx(), 0, original.Get_TrxName());
            SetClientOrg(original);
            SetGL_JournalBatch_ID(original.GetGL_JournalBatch_ID());
            //
            //	setC_AcctSchema_ID(original.getC_AcctSchema_ID());
            //	setGL_Budget_ID(original.getGL_Budget_ID());
            SetGL_Category_ID(original.GetGL_Category_ID());
            SetPostingType(original.GetPostingType());
            SetDescription(original.GetDescription());
            SetC_DocType_ID(original.GetC_DocType_ID());
            SetControlAmt(original.GetControlAmt());
            //
            SetC_Currency_ID(original.GetC_Currency_ID());
            //	setC_ConversionType_ID(original.getC_ConversionType_ID());
            //	setCurrencyRate(original.getCurrencyRate());

            //	SetDateDoc(original.getDateDoc());
            //	setDateAcct(original.getDateAcct());
            //	setC_Period_ID(original.getC_Period_ID());
        }       //	MJournal