/// <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)); } } }