/// <summary> /// /// </summary> /// <param name="contSchedule"></param> private void GenerateInvoice(VAdvantage.Model.X_C_ContractSchedule contSchedule) { if (contSchedule.IsActive()) { int res = 0; sql = "select c_doctype_id from c_doctype where name = 'AR Invoice' and ad_client_id = " + GetCtx().GetAD_Client_ID(); int C_DocType_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); // sql = "select noofdays from c_frequency where c_frequency_id = " + cont.GetC_Frequency_ID(); // Decimal? days = Util.GetValueOfDecimal(DB.ExecuteScalar(sql, null, null)); Decimal?price = null; if (!cont.IsCancel()) { price = Decimal.Multiply(cont.GetPriceEntered(), cont.GetQtyEntered()); } else { sql = "update c_contract set renewaltype = null where c_contract_id = " + cont.GetC_Contract_ID(); int res2 = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); if (contSchedule.GetEndDate() <= cont.GetCancellationDate()) { price = Decimal.Multiply(cont.GetPriceEntered(), cont.GetQtyEntered()); } else { sql = "select max(c_contractschedule_id) from c_contractschedule where c_invoice_id is not null and c_contract_id = " + cont.GetC_Contract_ID(); int c_contractschedule_id = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); if (c_contractschedule_id != 0) { string date = cont.GetCancellationDate().Value.ToString("dd-MMM-yyyy"); // int contsch = Util.GetValueOfInt(contSchedule.GetC_ContractSchedule_ID()) - 1; sql = "select daysbetween('" + date + "', enddate) from c_contractschedule where c_contractschedule_id = " + c_contractschedule_id; Decimal?diffDays = Util.GetValueOfDecimal(DB.ExecuteScalar(sql, null, null)); // price = Decimal.Multiply(cont.GetPriceEntered(), diffDays.Value); price = Decimal.Multiply(cont.GetPriceEntered(), cont.GetQtyEntered()); sql = "update c_contractschedule set isactive = 'N' where enddate > '" + date + "' and c_contract_id = " + cont.GetC_Contract_ID(); res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); } else { sql = "select daysbetween(cancellationdate, startdate) from c_contract where c_contract_id = " + cont.GetC_Contract_ID(); Decimal?diffDays = Util.GetValueOfDecimal(DB.ExecuteScalar(sql, null, null)); //price = Decimal.Multiply(Decimal.Divide(cont.GetPriceEntered(), days.Value), diffDays.Value); price = Decimal.Multiply(cont.GetPriceEntered(), cont.GetQtyEntered()); if (diffDays > 0) { sql = "update c_contractschedule set isactive = 'N' where c_contract_id = " + cont.GetC_Contract_ID(); res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); } else { sql = "update c_contractschedule set isactive = 'N' where c_contract_id = " + cont.GetC_Contract_ID(); res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); } // sql = "update c_contractschedule set isactive = 'N' where enddate > '" + System.DateTime.Now + "' and c_contract_id = " + cont.GetC_Contract_ID(); } } } price = Decimal.Round(price.Value, 2, MidpointRounding.AwayFromZero); VAdvantage.Model.MInvoice inv = new VAdvantage.Model.MInvoice(GetCtx(), 0, null); inv.SetAD_Client_ID(GetCtx().GetAD_Client_ID()); inv.SetAD_Org_ID(GetCtx().GetAD_Org_ID()); inv.SetC_BPartner_ID(cont.GetC_BPartner_ID()); if (Util.GetValueOfInt(cont.GetC_Order_ID()) != 0) { inv.SetC_Order_ID(cont.GetC_Order_ID()); } inv.SetC_DocType_ID(C_DocType_ID); inv.SetC_DocTypeTarget_ID(C_DocType_ID); inv.SetC_BPartner_Location_ID(cont.GetBill_Location_ID()); inv.SetC_Currency_ID(cont.GetC_Currency_ID()); inv.SetC_PaymentTerm_ID(cont.GetC_PaymentTerm_ID()); inv.SetC_Campaign_ID(cont.GetC_Campaign_ID()); inv.SetIsSOTrx(true); inv.SetM_PriceList_ID(cont.GetM_PriceList_ID()); inv.SetSalesRep_ID(cont.GetSalesRep_ID()); inv.SetC_Contract_ID(cont.GetC_Contract_ID()); if (!inv.Save()) { } if (inv.GetC_Invoice_ID() != 0) { VAdvantage.Model.MInvoiceLine invLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), 0, null); invLine.SetAD_Client_ID(inv.GetAD_Client_ID()); invLine.SetAD_Org_ID(inv.GetAD_Org_ID()); invLine.SetC_Campaign_ID(inv.GetC_Campaign_ID()); invLine.SetC_Invoice_ID(inv.GetC_Invoice_ID()); invLine.SetC_UOM_ID(cont.GetC_UOM_ID()); invLine.SetM_Product_ID(cont.GetM_Product_ID()); if (Util.GetValueOfInt(cont.GetC_OrderLine_ID()) != 0) { invLine.SetC_OrderLine_ID(cont.GetC_OrderLine_ID()); } invLine.SetC_Tax_ID(cont.GetC_Tax_ID()); invLine.SetQty(cont.GetQtyEntered()); invLine.SetQtyEntered(cont.GetQtyEntered()); // invLine.SetQtyInvoiced(1); // invLine.SetPrice(price.Value); invLine.SetPriceActual(cont.GetPriceEntered()); invLine.SetPriceEntered(cont.GetPriceEntered()); // invLine.SetPriceLimit(price); invLine.SetPriceList(cont.GetPriceEntered()); if (!invLine.Save()) { } } string comp = inv.CompleteIt(); inv.SetDocAction("CL"); inv.SetDocStatus("CO"); if (!inv.Save()) { } sql = "update c_invoice set c_contract_id = " + cont.GetC_Contract_ID() + " where c_invoice_id = " + inv.GetC_Invoice_ID(); res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); sql = "select sum(taxamt) from c_invoicetax where c_invoice_id = " + inv.GetC_Invoice_ID(); Decimal?taxAmt = Util.GetValueOfDecimal(DB.ExecuteScalar(sql, null, null)); sql = "update c_contractschedule set c_invoice_id = " + inv.GetC_Invoice_ID() + ", processed = 'Y' where c_contractschedule_id = " + contSchedule.GetC_ContractSchedule_ID(); // sql = "update c_contractschedule set c_invoice_id = " + inv.GetC_Invoice_ID() + ", processed = 'Y', TotalAmt = " + inv.GetTotalLines() + ", taxamt = " + taxAmt + ", grandtotal = " + inv.GetGrandTotal() + " where c_contractschedule_id = " + contSchedule.GetC_ContractSchedule_ID(); res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); } }
/// <summary> /// /// </summary> /// <param name="p"></param> private void CreateLine(int S_TimeExpenseLine_ID, int C_Invoice_ID) { VAdvantage.Model.X_S_TimeExpenseLine tLine = new VAdvantage.Model.X_S_TimeExpenseLine(GetCtx(), S_TimeExpenseLine_ID, null); VAdvantage.Model.X_S_TimeExpense tExp = new VAdvantage.Model.X_S_TimeExpense(GetCtx(), Util.GetValueOfInt(tLine.GetS_TimeExpense_ID()), null); if (tLine.IsAPInvoice()) { if (Util.GetValueOfInt(tLine.GetM_Product_ID()) != 0) { sql = "select max(line) from c_invoiceline where c_invoice_id = " + C_Invoice_ID; int lineNo = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); sql = "select C_Invoiceline_ID from C_InvoiceLine where c_invoice_ID = " + C_Invoice_ID + " and m_product_id = " + tLine.GetM_Product_ID(); int C_InvoiceLine_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); if (C_InvoiceLine_ID != 0) { sql = "select c_uom_id from c_orderline where c_orderline_id = " + tLine.GetC_OrderLine_ID(); int C_UOM_IDTo = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); sql = "select c_uom_id from m_product where m_product_id = " + tLine.GetM_Product_ID(); int C_UOM_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); Decimal?qty = 0; if (C_UOM_IDTo != 0 && C_UOM_ID != 0) { //qty = MUOMConversion.Convert(C_UOM_ID, C_UOM_IDTo, tLine.GetAPApprovedHrs(), true); qty = VAdvantage.Model.MUOMConversion.ConvertProductTo(GetCtx(), tLine.GetM_Product_ID(), C_UOM_IDTo, tLine.GetAPApprovedHrs()); } VAdvantage.Model.MInvoiceLine iLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), C_InvoiceLine_ID, null); iLine.SetQtyEntered(Decimal.Add(iLine.GetQtyEntered(), qty.Value)); iLine.SetQtyInvoiced(Decimal.Add(iLine.GetQtyInvoiced(), qty.Value)); // iLine.SetTaxAmt(Decimal.Add(iLine.GetTaxAmt(), tLine.GetTaxAmt())); iLine.SetLineNetAmt(Decimal.Multiply(iLine.GetQtyEntered(), iLine.GetPriceEntered())); iLine.SetLineTotalAmt(Decimal.Add(iLine.GetLineNetAmt(), iLine.GetTaxAmt())); if (!iLine.Save()) { } } else { lineNo = lineNo + 10; Decimal?price = 0; //sql = "select s_resource_id from s_resource where c_bpartner_id = " + tLine.GetC_BPartner_ID() // + " and ad_user_id = " + tExp.GetAD_User_ID() + " and m_product_id = " + tLine.GetM_Product_ID() + " and isactive = 'Y'"; //sql = "select s_resource_id from where c_bpartner_id = " + tLine.GetC_BPartner_ID(); sql = "select c_uom_id from c_orderline where c_orderline_id = " + tLine.GetC_OrderLine_ID(); int C_UOM_IDTo = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); sql = "select c_uom_id from m_product where m_product_id = " + tLine.GetM_Product_ID(); int C_UOM_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); Decimal?qty = 0; //qty = MUOMConversion.Convert(C_UOM_ID, C_UOM_IDTo, tLine.GetAPApprovedHrs(), true); qty = VAdvantage.Model.MUOMConversion.ConvertProductTo(GetCtx(), tLine.GetM_Product_ID(), C_UOM_IDTo, tLine.GetAPApprovedHrs()); //Decimal? qty2 = MUOMConversion.ConvertProductFrom(GetCtx(), tLine.GetM_Product_ID(), C_UOM_IDTo, tLine.GetAPApprovedHrs()); //Decimal? qty3 = MUOMConversion.GetProductRateTo(GetCtx(), tLine.GetM_Product_ID(), C_UOM_IDTo); //Decimal? qty4 = MUOMConversion.GetProductRateFrom(GetCtx(), tLine.GetM_Product_ID(), C_UOM_ID); int S_Resource_ID = Util.GetValueOfInt(tLine.GetS_Resource_ID()); if (S_Resource_ID != 0) { sql = "select HourlyRate from s_resource where s_resource_id = " + S_Resource_ID; price = Util.GetValueOfDecimal(DB.ExecuteScalar(sql, null, null)); price = VAdvantage.Model.MUOMConversion.ConvertProductFrom(GetCtx(), tLine.GetM_Product_ID(), C_UOM_IDTo, price.Value); } else { sql = "select m_pricelist_version_id from m_pricelist_version where isactive = 'Y' and m_pricelist_id = " + tExp.GetM_PriceList_ID(); int plv_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); if (plv_ID != 0) { sql = "select pricestd from m_productprice where m_pricelist_version_id = " + plv_ID + " and m_product_ID = " + tLine.GetM_Product_ID(); price = Util.GetValueOfDecimal(DB.ExecuteScalar(sql, null, null)); } } VAdvantage.Model.MInvoiceLine iLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), 0, null); iLine.SetAD_Client_ID(GetCtx().GetAD_Client_ID()); iLine.SetAD_Org_ID(GetCtx().GetAD_Org_ID()); iLine.SetC_Invoice_ID(C_Invoice_ID); iLine.SetC_Tax_ID(tLine.GetC_Tax_ID()); iLine.SetC_UOM_ID(tLine.GetC_UOM_ID()); iLine.SetDescription(tLine.GetDescription()); iLine.SetM_Product_ID(tLine.GetM_Product_ID()); iLine.SetQtyEntered(qty); iLine.SetQtyInvoiced(qty); iLine.SetPriceEntered(price); iLine.SetPriceList(price); iLine.SetPriceLimit(price); iLine.SetPriceActual(price); // iLine.SetTaxAmt(tLine.GetTaxAmt()); iLine.SetLineNetAmt(Decimal.Multiply(iLine.GetQtyEntered(), iLine.GetPriceEntered())); iLine.SetLineTotalAmt(Decimal.Add(iLine.GetLineNetAmt(), iLine.GetTaxAmt())); iLine.SetLine(lineNo); if (!iLine.Save()) { } } sql = "update S_TimeExpenseLine set C_Invoice_ID = " + C_Invoice_ID + " where S_TimeExpenseLine_ID = " + S_TimeExpenseLine_ID; int res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); } } if (tLine.IsExpenseInvoice()) { if (Util.GetValueOfInt(tLine.GetC_Charge_ID()) != 0) { sql = "select max(line) from c_invoiceline where c_invoice_id = " + C_Invoice_ID; int lineNo = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); sql = "select C_Invoiceline_ID from C_InvoiceLine where c_invoice_ID = " + C_Invoice_ID + " and c_charge_ID = " + tLine.GetC_Charge_ID() + " and c_tax_id = " + tLine.GetC_Tax_ID(); int C_InvoiceLine_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); if (C_InvoiceLine_ID != 0) { VAdvantage.Model.MInvoiceLine iLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), C_InvoiceLine_ID, null); iLine.SetPriceEntered(Decimal.Add(tLine.GetApprovedExpenseAmt(), iLine.GetPriceEntered())); iLine.SetPriceActual(Decimal.Add(tLine.GetApprovedExpenseAmt(), iLine.GetPriceActual())); iLine.SetPriceLimit(Decimal.Add(tLine.GetApprovedExpenseAmt(), iLine.GetPriceLimit())); iLine.SetPriceList(Decimal.Add(tLine.GetApprovedExpenseAmt(), iLine.GetPriceList())); // iLine.SetTaxAmt(Decimal.Add(tLine.GetTaxAmt(), iLine.GetTaxAmt())); // iLine.SetLineNetAmt(Decimal.Multiply(iLine.GetQtyEntered(), iLine.GetPriceEntered())); // iLine.SetLineTotalAmt(Decimal.Add(iLine.GetLineNetAmt(), iLine.GetTaxAmt())); if (!iLine.Save()) { } } else { lineNo = lineNo + 10; VAdvantage.Model.MInvoiceLine iLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), 0, null); iLine.SetAD_Client_ID(GetCtx().GetAD_Client_ID()); iLine.SetAD_Org_ID(GetCtx().GetAD_Org_ID()); iLine.SetC_Invoice_ID(C_Invoice_ID); iLine.SetC_Tax_ID(tLine.GetC_Tax_ID()); iLine.SetC_UOM_ID(tLine.GetC_UOM_ID()); iLine.SetDescription(tLine.GetDescription()); iLine.SetC_Charge_ID(tLine.GetC_Charge_ID()); iLine.SetQtyEntered(Decimal.One); iLine.SetQtyInvoiced(Decimal.One); iLine.SetPriceEntered(tLine.GetApprovedExpenseAmt()); iLine.SetPriceActual(tLine.GetApprovedExpenseAmt()); iLine.SetPriceLimit(tLine.GetApprovedExpenseAmt()); iLine.SetPriceList(tLine.GetApprovedExpenseAmt()); // iLine.SetTaxAmt(tLine.GetTaxAmt()); // iLine.SetLineNetAmt(Decimal.Multiply(iLine.GetQtyEntered(), iLine.GetPriceEntered())); // iLine.SetLineTotalAmt(Decimal.Add(iLine.GetLineNetAmt(), iLine.GetTaxAmt())); iLine.SetLine(lineNo); if (!iLine.Save()) { } } sql = "update S_TimeExpenseLine set C_Invoice_ID = " + C_Invoice_ID + " where S_TimeExpenseLine_ID = " + S_TimeExpenseLine_ID; int res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); } } }
/// <summary> /// /// </summary> /// <param name="p"></param> private void CreateLine(int S_TimeExpenseLine_ID, int C_Invoice_ID) { VAdvantage.Model.X_S_TimeExpenseLine tLine = new VAdvantage.Model.X_S_TimeExpenseLine(GetCtx(), S_TimeExpenseLine_ID, null); VAdvantage.Model.X_S_TimeExpense tExp = new VAdvantage.Model.X_S_TimeExpense(GetCtx(), Util.GetValueOfInt(tLine.GetS_TimeExpense_ID()), null); if (tLine.IsARInvoice()) { if (Util.GetValueOfInt(tLine.GetM_Product_ID()) != 0) { sql = "select max(line) from c_invoiceline where c_invoice_id = " + C_Invoice_ID; int lineNo = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); sql = "select C_Invoiceline_ID from C_InvoiceLine where c_invoice_ID = " + C_Invoice_ID + " and m_product_id = " + tLine.GetM_Product_ID(); int C_InvoiceLine_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); if (C_InvoiceLine_ID != 0) { sql = "select c_uom_id from c_orderline where c_orderline_id = " + tLine.GetC_OrderLine_ID(); int C_UOM_IDTo = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); sql = "select c_uom_id from m_product where m_product_id = " + tLine.GetM_Product_ID(); int C_UOM_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); Decimal?qty = 0; // qty = MUOMConversion.Convert(C_UOM_ID, C_UOM_IDTo, tLine.GetARApprovedHrs(), true); qty = VAdvantage.Model.MUOMConversion.ConvertProductTo(GetCtx(), tLine.GetM_Product_ID(), C_UOM_IDTo, tLine.GetARApprovedHrs()); VAdvantage.Model.MInvoiceLine iLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), C_InvoiceLine_ID, null); iLine.SetQtyEntered(Decimal.Add(iLine.GetQtyEntered(), qty.Value)); iLine.SetQtyInvoiced(Decimal.Add(iLine.GetQtyInvoiced(), qty.Value)); // iLine.SetTaxAmt(Decimal.Add(iLine.GetTaxAmt(), tLine.GetTaxAmt())); iLine.SetLineNetAmt(Decimal.Multiply(iLine.GetQtyEntered(), iLine.GetPriceEntered())); iLine.SetLineTotalAmt(Decimal.Add(iLine.GetLineNetAmt(), iLine.GetTaxAmt())); if (!iLine.Save()) { } } else { lineNo = lineNo + 10; Decimal?price = 0; sql = "select c_uom_id from c_orderline where c_orderline_id = " + tLine.GetC_OrderLine_ID(); int C_UOM_IDTo = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); sql = "select c_uom_id from m_product where m_product_id = " + tLine.GetM_Product_ID(); int C_UOM_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); Decimal?qty = 0; qty = VAdvantage.Model.MUOMConversion.ConvertProductTo(GetCtx(), tLine.GetM_Product_ID(), C_UOM_IDTo, tLine.GetARApprovedHrs()); VAdvantage.Model.MInvoiceLine iLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), 0, null); iLine.SetAD_Client_ID(GetCtx().GetAD_Client_ID()); iLine.SetAD_Org_ID(GetCtx().GetAD_Org_ID()); iLine.SetC_Invoice_ID(C_Invoice_ID); iLine.SetC_Tax_ID(tLine.GetC_Tax_ID()); iLine.SetC_UOM_ID(tLine.GetC_UOM_ID()); iLine.SetDescription(tLine.GetDescription()); iLine.SetM_Product_ID(tLine.GetM_Product_ID()); iLine.SetQtyEntered(qty); iLine.SetQtyInvoiced(qty); if (tLine.GetC_OrderLine_ID() != 0) { VAdvantage.Model.MOrderLine oline = new VAdvantage.Model.MOrderLine(GetCtx(), tLine.GetC_OrderLine_ID(), null); price = oline.GetPriceEntered(); } iLine.SetPriceEntered(price); iLine.SetPriceList(price); iLine.SetPriceLimit(price); iLine.SetPriceActual(price); // iLine.SetTaxAmt(tLine.GetTaxAmt()); iLine.SetLineNetAmt(Decimal.Multiply(iLine.GetQtyEntered(), iLine.GetPriceEntered())); iLine.SetLineTotalAmt(Decimal.Add(iLine.GetLineNetAmt(), iLine.GetTaxAmt())); iLine.SetLine(lineNo); if (!iLine.Save()) { } } sql = "update S_TimeExpenseLine set Ref_C_Invoice_ID = " + C_Invoice_ID + " where S_TimeExpenseLine_ID = " + S_TimeExpenseLine_ID; int res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); } } if (tLine.IsBillToCustomer()) { if (Util.GetValueOfInt(tLine.GetC_Charge_ID()) != 0) { sql = "select max(line) from c_invoiceline where c_invoice_id = " + C_Invoice_ID; int lineNo = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); sql = "select C_Invoiceline_ID from C_InvoiceLine where c_invoice_ID = " + C_Invoice_ID + " and c_charge_ID = " + tLine.GetC_Charge_ID() + " and c_tax_id = " + tLine.GetC_Tax_ID(); int C_InvoiceLine_ID = Util.GetValueOfInt(DB.ExecuteScalar(sql, null, null)); if (C_InvoiceLine_ID != 0) { VAdvantage.Model.MInvoiceLine iLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), C_InvoiceLine_ID, null); iLine.SetPriceEntered(Decimal.Add(tLine.GetApprovedARExpenseAmt(), iLine.GetPriceEntered())); iLine.SetPriceActual(Decimal.Add(tLine.GetApprovedARExpenseAmt(), iLine.GetPriceActual())); iLine.SetPriceLimit(Decimal.Add(tLine.GetApprovedARExpenseAmt(), iLine.GetPriceLimit())); iLine.SetPriceList(Decimal.Add(tLine.GetApprovedARExpenseAmt(), iLine.GetPriceList())); // iLine.SetTaxAmt(Decimal.Add(tLine.GetTaxAmt(), iLine.GetTaxAmt())); // iLine.SetLineNetAmt(Decimal.Multiply(iLine.GetQtyEntered(), iLine.GetPriceEntered())); // iLine.SetLineTotalAmt(Decimal.Add(iLine.GetLineNetAmt(), iLine.GetTaxAmt())); if (!iLine.Save()) { } } else { lineNo = lineNo + 10; VAdvantage.Model.MInvoiceLine iLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), 0, null); iLine.SetAD_Client_ID(GetCtx().GetAD_Client_ID()); iLine.SetAD_Org_ID(GetCtx().GetAD_Org_ID()); iLine.SetC_Invoice_ID(C_Invoice_ID); iLine.SetC_Tax_ID(tLine.GetC_Tax_ID()); iLine.SetC_UOM_ID(100); iLine.SetDescription(tLine.GetDescription()); iLine.SetC_Charge_ID(tLine.GetC_Charge_ID()); iLine.SetQtyEntered(Decimal.One); iLine.SetQtyInvoiced(Decimal.One); iLine.SetPriceEntered(tLine.GetApprovedARExpenseAmt()); iLine.SetPriceActual(tLine.GetApprovedARExpenseAmt()); iLine.SetPriceLimit(tLine.GetApprovedARExpenseAmt()); iLine.SetPriceList(tLine.GetApprovedARExpenseAmt()); // iLine.SetTaxAmt(tLine.GetTaxAmt()); // iLine.SetLineNetAmt(Decimal.Multiply(iLine.GetQtyEntered(), iLine.GetPriceEntered())); // iLine.SetLineTotalAmt(Decimal.Add(iLine.GetLineNetAmt(), iLine.GetTaxAmt())); iLine.SetLine(lineNo); if (!iLine.Save()) { } } sql = "update S_TimeExpenseLine set Ref_C_Invoice_ID = " + C_Invoice_ID + " where S_TimeExpenseLine_ID = " + S_TimeExpenseLine_ID; int res = Util.GetValueOfInt(DB.ExecuteQuery(sql, null, null)); } } }
public string createJournals(MRevenueRecognition mRevenueRecognition) { try { MRevenueRecognitionPlan[] revenueRecognitionPlans = MRevenueRecognitionPlan.GetRecognitionPlans(mRevenueRecognition, 0); MRevenueRecognitionRun[] mRevenueRecognitionRuns = null; for (int i = 0; i < revenueRecognitionPlans.Length; i++) { MRevenueRecognitionPlan revenueRecognitionPlan = revenueRecognitionPlans[i]; VAdvantage.Model.MInvoiceLine invoiceLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), revenueRecognitionPlan.GetC_InvoiceLine_ID(), Get_Trx()); MInvoice invoice = new MInvoice(GetCtx(), invoiceLine.GetC_Invoice_ID(), Get_Trx()); mRevenueRecognitionRuns = MRevenueRecognitionRun.GetRecognitionRuns(revenueRecognitionPlan, _RecognitionDate, true); if (mRevenueRecognitionRuns.Length > 0) { for (int j = 0; j < mRevenueRecognitionRuns.Length; j++) { MRevenueRecognitionRun revenueRecognitionRun = mRevenueRecognitionRuns[j]; if (_DocType == "GL") { if (revenueRecognitionPlan.GetC_AcctSchema_ID() != _AcctSchema_ID || revenueRecognitionPlan.GetC_Currency_ID() != _Currency_ID || revenueRecognitionRun.GetINT15_RecognitionDate() != _RecognizeDate) { if (journal != null && journal.CompleteIt() == "CO") { journal.SetProcessed(true); journal.SetDocStatus("CO"); journal.SetDocAction("CL"); journal.Save(Get_Trx()); if (DocNo == null) { DocNo = journal.GetDocumentNo(); } else { DocNo += "," + journal.GetDocumentNo(); } } journal = new VAdvantage.Model.MJournal(GetCtx(), 0, Get_Trx()); journal = CreateJournalHDR(revenueRecognitionPlan, revenueRecognitionRun); #region Commented Code for Journal Batch //else if (_DocType == "GB") //{ // VAdvantage.Model.MJournalBatch journalBatch = new VAdvantage.Model.MJournalBatch(GetCtx(), 0, Get_Trx()); // journalBatch.SetClientOrg(revenueRecognitionPlan); // journalBatch.SetDescription("Revenue Recognition Run"); // journalBatch.SetPostingType("A"); // journalBatch.SetDateDoc(_RecognitionDate); // journalBatch.SetDateAcct(_RecognitionDate); // journalBatch.SetC_Period_ID(C_Period_ID); // int C_Doctype_ID = Util.GetValueOfInt(DB.ExecuteScalar("Select C_Doctype_ID From C_Doctype Where DocBaseType='GLJ'")); // journalBatch.SetC_DocType_ID(C_Doctype_ID); // journalBatch.SetC_Currency_ID(revenueRecognitionPlan.GetC_Currency_ID()); // journalBatch.SetTotalCr(revenueRecognitionPlan.GetTotalAmt()); // journalBatch.SetTotalDr(revenueRecognitionPlan.GetTotalAmt()); // journalBatch.SetDocStatus("DR"); // journalBatch.SetDocAction("CO"); // if (journalBatch.Save()) // { // if (revenueRecognitionPlan.GetC_AcctSchema_ID() != _AcctSchema_ID || revenueRecognitionPlan.GetC_Currency_ID() != _Currency_ID) // { // journal = new VAdvantage.Model.MJournal(journalBatch); // journal = CreateJournalHDR(mRevenueRecognition, revenueRecognitionPlan); // } // } //} #endregion if (journal.Save()) { _AcctSchema_ID = journal.GetC_AcctSchema_ID(); _Currency_ID = journal.GetC_Currency_ID(); _RecognizeDate = revenueRecognitionRun.GetINT15_RecognitionDate(); } } for (int k = 0; k < 2; k++) { journalLine = new VAdvantage.Model.MJournalLine(journal); journalLine = GenerateJounalLine(journal, invoice, invoiceLine, revenueRecognitionPlan, revenueRecognitionRun, mRevenueRecognition.GetINT15_RecognizeType(), k); if (journalLine.Save()) { revenueRecognitionRun.SetGL_Journal_ID(journal.GetGL_Journal_ID()); revenueRecognitionRun.Save(); } } revenueRecognitionPlan.SetRecognizedAmt(revenueRecognitionRun.GetRecognizedAmt() + revenueRecognitionPlan.GetRecognizedAmt()); revenueRecognitionPlan.Save(); } } } } if (journal != null && journal.GetDocStatus() != "CO") { journal.CompleteIt(); journal.SetProcessed(true); journal.SetDocStatus("CO"); journal.SetDocAction("CL"); journal.Save(Get_Trx()); if (DocNo == null) { DocNo = journal.GetDocumentNo(); } else { DocNo += "," + journal.GetDocumentNo(); } } } catch (Exception ex) { log.Log(Level.SEVERE, "GL Journal not allocated due to " + ex); return(ex.ToString()); } if (DocNo == null) { DocNo = "0"; } return(Msg.GetMsg(GetCtx(), "INT15_GLJournalCreated = " + DocNo)); }
public VAdvantage.Model.MJournalLine GenerateJounalLine(VAdvantage.Model.MJournal journal, MInvoice invoice, VAdvantage.Model.MInvoiceLine invoiceLine, MRevenueRecognitionPlan revenueRecognitionPlan, MRevenueRecognitionRun revenueRecognitionRun, string recognitionType, int k) { try { int combination_ID = 0; if (k == 0) { if (recognitionType == "R") { combination_ID = revenueRecognitionPlan.GetUnEarnedRevenue_Acct(); //journalLine.SetC_ValidCombination_ID(combination_ID); } else { combination_ID = revenueRecognitionPlan.GetINT15_ProductExpense(); //journalLine.SetC_ValidCombination_ID(combination_ID); } journalLine.SetAmtAcctDr(revenueRecognitionRun.GetRecognizedAmt()); journalLine.SetAmtSourceDr(revenueRecognitionRun.GetRecognizedAmt()); journalLine.SetAmtSourceCr(0); journalLine.SetAmtAcctCr(0); } else { if (recognitionType == "R") { combination_ID = revenueRecognitionPlan.GetP_Revenue_Acct(); //journalLine.SetC_ValidCombination_ID(combination_ID); } else { combination_ID = revenueRecognitionPlan.GetINT15_PrepaidExpense(); //journalLine.SetC_ValidCombination_ID(combination_ID); } journalLine.SetAmtAcctDr(0); journalLine.SetAmtSourceDr(0); journalLine.SetAmtSourceCr(revenueRecognitionRun.GetRecognizedAmt()); journalLine.SetAmtAcctCr(revenueRecognitionRun.GetRecognizedAmt()); } int account_ID = Util.GetValueOfInt(DB.ExecuteScalar("Select Account_ID From C_ValidCombination Where C_ValidCombination_ID=" + combination_ID)); //VAdvantage.Model.MElementValue elementValue = new VAdvantage.Model.MElementValue(GetCtx(), account_ID, Get_Trx()); journalLine.Set_ValueNoCheck("Account_ID", account_ID); journalLine.Set_ValueNoCheck("C_BPartner_ID", invoice.GetC_BPartner_ID()); journalLine.Set_ValueNoCheck("M_Product_ID", invoiceLine.GetM_Product_ID()); } catch (Exception ex) { log.SaveError(null, ex); } return(journalLine); }
protected override string DoIt() { try { MRevenueRecognition mRevenueRecognition = new MRevenueRecognition(GetCtx(), _RevenueRecognition_ID, Get_Trx()); MRevenueRecognitionPlan[] revenueRecognitionPlans = MRevenueRecognitionPlan.GetRecognitionPlans(mRevenueRecognition, C_InvoiceLine_ID); for (int i = 0; i < revenueRecognitionPlans.Length; i++) { MRevenueRecognitionPlan revenueRecognitionPlan = revenueRecognitionPlans[i]; VAdvantage.Model.MInvoiceLine invoiceLine = new VAdvantage.Model.MInvoiceLine(GetCtx(), revenueRecognitionPlan.GetC_InvoiceLine_ID(), Get_Trx()); MInvoice invoice = new MInvoice(GetCtx(), invoiceLine.GetC_Invoice_ID(), Get_Trx()); MRevenueRecognitionRun[] mRevenueRecognitionRuns = MRevenueRecognitionRun.GetRecognitionRuns(revenueRecognitionPlan, _RecognitionDate, false); if (mRevenueRecognitionRuns.Length > 0) { if (_DocType == "GL") { if (revenueRecognitionPlan.GetC_AcctSchema_ID() != _AcctSchema_ID || revenueRecognitionPlan.GetC_Currency_ID() != _Currency_ID) { if (journal != null && journal.CompleteIt() == "CO") { journal.SetProcessed(true); journal.SetDocStatus("CO"); journal.SetDocAction("CL"); journal.Save(Get_Trx()); if (DocNo == null) { DocNo = journal.GetDocumentNo(); } else { DocNo += "," + journal.GetDocumentNo(); } } journal = new VAdvantage.Model.MJournal(GetCtx(), 0, Get_Trx()); journal = CreateJournalHDR(mRevenueRecognition, revenueRecognitionPlan); journal.Save(); _AcctSchema_ID = journal.GetC_AcctSchema_ID(); _Currency_ID = journal.GetC_Currency_ID(); decimal totalAmt = 0; for (int j = 0; j < mRevenueRecognitionRuns.Length; j++) { MRevenueRecognitionRun revenueRecognitionRun = mRevenueRecognitionRuns[j]; totalAmt += revenueRecognitionRun.GetRecognizedAmt(); revenueRecognitionRun.SetGL_Journal_ID(journal.GetGL_Journal_ID()); revenueRecognitionRun.Save(); } revenueRecognitionPlan.SetRecognizedAmt(totalAmt + revenueRecognitionPlan.GetRecognizedAmt()); revenueRecognitionPlan.Save(); for (int k = 0; k < 2; k++) { journalLine = new VAdvantage.Model.MJournalLine(journal); int combination_ID = 0; if (k == 0) { if (mRevenueRecognition.GetINT15_RecognizeType() == "R") { combination_ID = revenueRecognitionPlan.GetUnEarnedRevenue_Acct(); //journalLine.SetC_ValidCombination_ID(combination_ID); } else { combination_ID = revenueRecognitionPlan.GetINT15_ProductExpense(); //journalLine.SetC_ValidCombination_ID(combination_ID); } journalLine.SetAmtAcctDr(totalAmt); journalLine.SetAmtSourceDr(totalAmt); journalLine.SetAmtSourceCr(0); journalLine.SetAmtAcctCr(0); } else { if (mRevenueRecognition.GetINT15_RecognizeType() == "R") { combination_ID = revenueRecognitionPlan.GetP_Revenue_Acct(); //journalLine.SetC_ValidCombination_ID(combination_ID); } else { combination_ID = revenueRecognitionPlan.GetINT15_PrepaidExpense(); //journalLine.SetC_ValidCombination_ID(combination_ID); } journalLine.SetAmtAcctDr(0); journalLine.SetAmtSourceDr(0); journalLine.SetAmtSourceCr(totalAmt); journalLine.SetAmtAcctCr(totalAmt); } int account_ID = Util.GetValueOfInt(DB.ExecuteScalar("Select Account_ID From C_ValidCombination Where C_ValidCombination_ID=" + combination_ID)); VAdvantage.Model.MElementValue elementValue = new VAdvantage.Model.MElementValue(GetCtx(), account_ID, Get_Trx()); try { journalLine.Set_ValueNoCheck("Account_ID", account_ID); journalLine.Set_ValueNoCheck("C_BPartner_ID", invoice.GetC_BPartner_ID()); journalLine.Set_ValueNoCheck("M_Product_ID", invoiceLine.GetM_Product_ID()); } catch (Exception ex) { } journalLine.Save(); } } } } } if (journal != null && journal.GetDocStatus() != "CO") { if (journal.CompleteIt() == "CO") { journal.SetProcessed(true); journal.SetDocStatus("CO"); journal.SetDocAction("CL"); journal.Save(Get_Trx()); if (DocNo == null) { DocNo = journal.GetDocumentNo(); } else { DocNo += "," + journal.GetDocumentNo(); } } } } catch (Exception ex) { log.Log(Level.SEVERE, "GL Journal not allocated due to " + ex); return(ex.ToString()); } return(Msg.GetMsg(GetCtx(), "INT15_GLJournalCreated = " + DocNo)); }