/// <summary> /// Generate Journal Line /// </summary> /// <param name="Journal">GL Journal</param> /// <param name="Line">Gl Journal line</param> /// <param name="M_Product_ID">Product</param> /// <param name="C_Charge_ID">Charge</param> /// <param name="Campaign_ID">Campaign</param> /// <param name="Account_ID">Account</param> /// <param name="Opprtunity_ID">Opportunity</param> /// <param name="Activity_ID">Activity</param> /// <param name="BPartner_ID">Business Partner</param> /// <param name="trxOrg_ID">Transaction Organization</param> /// <returns>object of journal line</returns> public MJournalLine CreateJournalLine(MJournal Journal, MJournalLine Line, int M_Product_ID, int C_Charge_ID, int Campaign_ID, int Account_ID, int Opprtunity_ID, int Activity_ID, int BPartner_ID, int trxOrg_ID) { Line = new MJournalLine(Journal); Line.SetLine(lineno); Line.Set_ValueNoCheck("Account_ID", Account_ID); Line.Set_ValueNoCheck("C_BPartner_ID", BPartner_ID); Line.Set_ValueNoCheck("M_Product_ID", M_Product_ID); Line.SetAD_OrgTrx_ID(trxOrg_ID); //Line.Set_ValueNoCheck("C_Charge_ID", C_Charge_ID); Line.Set_ValueNoCheck("C_Campaign_ID", Campaign_ID); Line.Set_ValueNoCheck("C_Project_ID", Opprtunity_ID); Line.Set_ValueNoCheck("C_Activity_ID", Activity_ID); return(Line); }
/// <summary> /// Create Gl Journal Line /// </summary> /// <param name="Journal">GL Journal</param> /// <param name="Invoice">Invoice</param> /// <param name="InvoiceLine">Invoice Line</param> /// <param name="RevenueRecognitionPlan">Revenue Recognition Plan</param> /// <param name="TotalAmt">Sum of RecognizeAmt</param> /// <param name="RecognitionType">Recognition Type</param> /// <param name="k">loop variable</param> /// <returns>>Journal line object</returns> public MJournalLine GenerateJounalLine(MJournal Journal, MInvoice Invoice, MInvoiceLine InvoiceLine, MRevenueRecognitionPlan RevenueRecognitionPlan, Decimal TotalAmt, string RecognitionType, int k) { int combination_ID = 0; if (k == 0) { combination_ID = RevenueRun.GetCombinationID(InvoiceLine.GetM_Product_ID(), InvoiceLine.GetC_Charge_ID(), journal.GetC_AcctSchema_ID(), Invoice.IsSOTrx(), Invoice.IsReturnTrx(), totalAmt, RevenueRecognitionPlan.GetC_RevenueRecognition_ID()); journalLine.SetLine(lineno); if (RecognitionType.Equals("E") && TotalAmt > 0) { journalLine.SetAmtAcctDr(TotalAmt); journalLine.SetAmtSourceDr(TotalAmt); journalLine.SetAmtSourceCr(0); journalLine.SetAmtAcctCr(0); } else if (RecognitionType.Equals("E") && TotalAmt < 0) { journalLine.SetAmtAcctCr(Decimal.Negate(TotalAmt)); journalLine.SetAmtSourceCr(Decimal.Negate(TotalAmt)); journalLine.SetAmtSourceDr(0); journalLine.SetAmtAcctDr(0); } else if (RecognitionType.Equals("R") && TotalAmt > 0) { journalLine.SetAmtAcctCr(TotalAmt); journalLine.SetAmtSourceCr(TotalAmt); journalLine.SetAmtSourceDr(0); journalLine.SetAmtAcctDr(0); } else if (RecognitionType.Equals("R") && TotalAmt < 0) { journalLine.SetAmtAcctDr(Decimal.Negate(TotalAmt)); journalLine.SetAmtSourceDr(Decimal.Negate(TotalAmt)); journalLine.SetAmtSourceCr(0); journalLine.SetAmtAcctCr(0); } int account_ID = Util.GetValueOfInt(DB.ExecuteScalar("SELECT Account_ID From C_ValidCombination Where C_ValidCombination_ID=" + combination_ID)); journalLine.Set_ValueNoCheck("Account_ID", account_ID); journalLine.Set_ValueNoCheck("C_BPartner_ID", Invoice.GetC_BPartner_ID()); journalLine.SetAD_OrgTrx_ID(InvoiceLine.Get_ColumnIndex("AD_OrgTrx_ID") > 0 ? InvoiceLine.GetAD_OrgTrx_ID() : Invoice.GetAD_OrgTrx_ID()); journalLine.Set_ValueNoCheck("C_Project_ID", InvoiceLine.GetC_Project_ID() > 0 ? InvoiceLine.GetC_Project_ID() : Invoice.Get_Value("C_ProjectRef_ID")); journalLine.Set_ValueNoCheck("C_Campaign_ID", InvoiceLine.Get_ColumnIndex("C_Campaign_ID") > 0 ? InvoiceLine.GetC_Campaign_ID() : Invoice.GetC_Campaign_ID()); journalLine.Set_ValueNoCheck("C_Activity_ID", InvoiceLine.Get_ColumnIndex("C_Activity_ID") > 0 ? InvoiceLine.GetC_Activity_ID() : Invoice.GetC_Activity_ID()); journalLine.Set_ValueNoCheck("M_Product_ID", InvoiceLine.GetM_Product_ID()); } else { combination_ID = RevenueRun.GetCombinationID(0, 0, RevenueRecognitionPlan.GetC_AcctSchema_ID(), Invoice.IsSOTrx(), Invoice.IsReturnTrx(), totalAmt, RevenueRecognitionPlan.GetC_RevenueRecognition_ID()); int account_ID = Util.GetValueOfInt(DB.ExecuteScalar("SELECT Account_ID From C_ValidCombination Where C_ValidCombination_ID=" + combination_ID)); journalLine = RevenueRun.GetOrCreate(journal, journalLine, InvoiceLine.GetM_Product_ID(), InvoiceLine.GetC_Charge_ID(), InvoiceLine.Get_ColumnIndex("C_Campaign_ID") > 0 ? InvoiceLine.GetC_Campaign_ID() : Invoice.GetC_Campaign_ID(), account_ID, InvoiceLine.GetC_Project_ID() > 0 ? InvoiceLine.GetC_Project_ID() : Util.GetValueOfInt(Invoice.Get_Value("C_ProjectRef_ID")), InvoiceLine.Get_ColumnIndex("C_Activity_ID") > 0 ? InvoiceLine.GetC_Activity_ID() : Invoice.GetC_Activity_ID(), Invoice.GetC_BPartner_ID(), Invoice.GetAD_Org_ID(), InvoiceLine.Get_ColumnIndex("AD_OrgTrx_ID") > 0 ? InvoiceLine.GetAD_OrgTrx_ID() : Invoice.GetAD_OrgTrx_ID()); journalLine.SetLine(lineno); if (RecognitionType.Equals("E") && TotalAmt > 0) { journalLine.SetAmtAcctCr(journalLine.GetAmtAcctCr() + TotalAmt); journalLine.SetAmtSourceCr(journalLine.GetAmtSourceCr() + TotalAmt); journalLine.SetAmtSourceDr(0); journalLine.SetAmtAcctDr(0); } else if (RecognitionType.Equals("E") && TotalAmt < 0) { journalLine.SetAmtAcctDr(journalLine.GetAmtAcctDr() + Decimal.Negate(TotalAmt)); journalLine.SetAmtSourceDr(journalLine.GetAmtSourceDr() + Decimal.Negate(TotalAmt)); journalLine.SetAmtSourceCr(0); journalLine.SetAmtAcctCr(0); } else if (RecognitionType.Equals("R") && TotalAmt > 0) { journalLine.SetAmtAcctDr(journalLine.GetAmtAcctDr() + TotalAmt); journalLine.SetAmtSourceDr(journalLine.GetAmtSourceDr() + TotalAmt); journalLine.SetAmtSourceCr(0); journalLine.SetAmtAcctCr(0); } else if (RecognitionType.Equals("R") && TotalAmt < 0) { journalLine.SetAmtAcctCr(journalLine.GetAmtAcctCr() + Decimal.Negate(TotalAmt)); journalLine.SetAmtSourceCr(journalLine.GetAmtSourceCr() + Decimal.Negate(TotalAmt)); journalLine.SetAmtSourceDr(0); journalLine.SetAmtAcctDr(0); } } return(journalLine); }