} //	prepare

        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        protected override String DoIt()
        {
            if (C_ResourcePeriod_ID != 0)
            {
                int[] allIds           = VAdvantage.Model.X_C_ResourceTime.GetAllIDs("C_ResourceTime", "C_ResourcePeriod_ID = " + C_ResourcePeriod_ID, Get_TrxName());
                int   S_TimeExpence_ID = 0;
                for (int i = 0; i < allIds.Length; i++)
                {
                    VAdvantage.Model.X_C_ResourceTime rTime = new VAdvantage.Model.X_C_ResourceTime(GetCtx(), allIds[i], Get_TrxName());
                    if (S_TimeExpence_ID == 0)
                    {
                        int res = GenerateTimeExpense();
                        if (res == 1)
                        {
                            msg = Msg.GetMsg(GetCtx(), "PriceListNotFound");
                            return(msg);
                        }
                        else if (res == 5)
                        {
                            msg = Msg.GetMsg(GetCtx(), "WarehouseNotFound");
                            return(msg);
                        }
                    }
                    GenerateExpenseReportLine(S_TimeExpence_ID, rTime);
                }
            }
            return(msg);
        }
 /// <summary>
 /// Generate Lines
 /// </summary>
 /// <param name="S_TimeExpence_ID"></param>
 /// <param name="rTime"></param>
 private void GenerateExpenseReportLine(int S_TimeExpence_ID, VAdvantage.Model.X_C_ResourceTime rTime)
 {
     VAdvantage.Model.X_S_TimeExpenseLine tLine = new VAdvantage.Model.X_S_TimeExpenseLine(GetCtx(), 0, Get_TrxName());
     tLine.SetAD_Client_ID(GetCtx().GetAD_Client_ID());
     tLine.SetAD_Org_ID(GetCtx().GetAD_Org_ID());
     tLine.SetS_TimeExpense_ID(S_TimeExpence_ID);
     tLine.SetDateExpense(rTime.GetDate1());
     tLine.SetM_Product_ID(rTime.GetM_Product_ID());
     tLine.SetC_OrderLine_ID(rTime.GetC_OrderLine_ID());
     tLine.SetC_UOM_ID(rTime.GetC_UOM_ID());
     tLine.SetIsTimeReport(true);
     tLine.SetQty(rTime.GetActualHrs());
     tLine.SetActualQty(rTime.GetActualHrs());
     if (!tLine.Save(Get_TrxName()))
     {
         log.SaveError("ExpenseLineNotSaved", "ExpenseLineNotSaved");
         return;
     }
 }