/// <summary> /// is used to set User Element Dimension /// </summary> /// <param name="journalLineDimension">journal line dimension object</param> /// <param name="docLine">document line object</param> private DocLine SetUserDimension(X_GL_LineDimension journalLineDimension, DocLine docLine) { if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement1 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement1(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement2 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement2(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement3 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement3(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement4 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement4(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement5 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement5(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement6 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement6(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement7 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement7(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement8 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement8(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType() == MJournalLine.ELEMENTTYPE_UserElement9 && !String.IsNullOrEmpty(journalLineDimension.GetDimensionValue())) { docLine.SetUserElement9(Convert.ToInt32(journalLineDimension.GetDimensionValue())); } else if (journalLineDimension.GetLineType().Equals(MJournalLine.ELEMENTTYPE_OrgTrx) && journalLineDimension.GetOrg_ID() > 0) { docLine.SetAD_OrgTrx_ID(Convert.ToInt32(journalLineDimension.GetOrg_ID())); } else if (journalLineDimension.GetLineType().Equals(MJournalLine.ELEMENTTYPE_Organization) && journalLineDimension.GetOrg_ID() > 0) { docLine.SetAD_Org_ID(Convert.ToInt32(journalLineDimension.GetOrg_ID())); } return(docLine); }
/// <summary> /// Load Invoice Line /// </summary> /// <param name="journal"></param> /// <returns>DocLine Array</returns> private DocLine[] LoadLines(MJournal journal) { MAcctSchema mSc = new MAcctSchema(GetCtx(), _C_AcctSchema_ID, null); List <DocLine> list = new List <DocLine>(); MJournalLine[] lines = journal.GetLines(false); record_Id = lines[0].GetGL_Journal_ID(); for (int i = 0; i < lines.Length; i++) { MJournalLine line = lines[i]; if (line.GetElementType() == null) { DocLine docLine = new DocLine(line, this); // -- Source Amounts docLine.SetAmount(line.GetAmtAcctDr(), line.GetAmtAcctCr()); // -- Converted Amounts // no need to update converted amount here //docLine.SetConvertedAmt(_C_AcctSchema_ID, line.GetAmtAcctDr(), line.GetAmtAcctCr()); // -- Account MAccount account = line.GetAccount(); docLine.SetAccount(account); // -- Quantity docLine.SetQty(line.GetQty(), false); // -- Date docLine.SetDateAcct(journal.GetDateAcct()); // -- Organization of Line was set to Org of Account list.Add(docLine); } else { string sql = "SELECT * FROM GL_LineDimension WHERE GL_JournalLine_ID=" + line.Get_ID(); DataSet ds = DB.ExecuteDataset(sql); if (ds != null && ds.Tables[0].Rows.Count > 0) { for (int m = 0; m < ds.Tables[0].Rows.Count; m++) { DataRow dr = ds.Tables[0].Rows[m]; X_GL_LineDimension lDim = new X_GL_LineDimension(GetCtx(), dr, null); DocLine docLine = new DocLine(lDim, this); // -- Source Amounts decimal cRate = line.GetCurrencyRate(); if (cRate == 0) { cRate = 1; } decimal amtAcctCr = 0; decimal amtAcctDr = 0; //MAcctSchema mSc = new MAcctSchema(GetCtx(), _C_AcctSchema_ID, null); if (line.GetAmtSourceDr() != 0) { amtAcctDr = lDim.GetAmount() * cRate; docLine.SetAmount(amtAcctDr, 0); amtAcctDr = Decimal.Round(amtAcctDr, mSc.GetStdPrecision()); } else { amtAcctCr = lDim.GetAmount() * cRate; docLine.SetAmount(0, amtAcctCr); amtAcctCr = Decimal.Round(amtAcctCr, mSc.GetStdPrecision()); } // -- Converted Amounts // no need to update converted amount here //docLine.SetConvertedAmt(_C_AcctSchema_ID, amtAcctDr, amtAcctCr); // -- Account MAccount account = line.GetAccount(); docLine.SetAccount(account); // -- Quantity docLine.SetQty(lDim.GetQty(), false); // -- Date docLine.SetDateAcct(journal.GetDateAcct()); // -- User Dimension docLine = SetUserDimension(lDim, docLine); // -- Organization of Line was set to Org of Account list.Add(docLine); } } } } // Return Array int size = list.Count; DocLine[] dls = new DocLine[size]; dls = list.ToArray(); return(dls); }