/// <summary> /// Copy Tasks from other Phase /// </summary> /// <param name="fromPhase">from phase</param> /// <returns>number of tasks copied</returns> public int CopyTasksFrom(MProjectPhase fromPhase) { if (fromPhase == null) { return(0); } int count = 0; // MProjectTask[] myTasks = GetTasks(); MProjectTask[] fromTasks = fromPhase.GetTasks(); // Copy Project Tasks for (int i = 0; i < fromTasks.Length; i++) { // Check if Task already exists int C_Task_ID = fromTasks[i].GetC_Task_ID(); bool exists = false; if (C_Task_ID == 0) { exists = false; } else { for (int ii = 0; ii < myTasks.Length; ii++) { if (myTasks[ii].GetC_Task_ID() == C_Task_ID) { exists = true; break; } } } // Phase exist if (exists) { log.Info("Task already exists here, ignored - " + fromTasks[i]); } else { MProjectTask toTask = new MProjectTask(GetCtx(), 0, Get_TrxName()); PO.CopyValues(fromTasks[i], toTask, GetAD_Client_ID(), GetAD_Org_ID()); toTask.SetC_ProjectPhase_ID(GetC_ProjectPhase_ID()); if (toTask.Save()) { count++; } } } if (fromTasks.Length != count) { log.Warning("Count difference - ProjectPhase=" + fromTasks.Length + " <> Saved=" + count); } return(count); }
/// <summary> /// To copy task from other phase to new phase /// </summary> /// <param name="fromPhase">From Phase</param> /// <param name="toPhase">To Phase</param> /// <returns></returns> public int CopyTasksFrom(MProjectPhase fromPhase, MProjectPhase toPhase) { if (fromPhase == null) { return(0); } int count = 0; ValueNamePair pp = null; StringBuilder msg = new StringBuilder(); MProjectTask[] myTasks = GetTasks(); MProjectTask[] fromTasks = fromPhase.GetTasks(); int C_Task_ID = 0; bool exists = false; // Copy Project Tasks for (int i = 0; i < fromTasks.Length; i++) { // Check if Task already exists C_Task_ID = fromTasks[i].GetC_ProjectTask_ID(); exists = false; if (C_Task_ID == 0) { exists = false; } else { for (int ii = 0; ii < myTasks.Length; ii++) { if (myTasks[ii].GetC_ProjectTask_ID() == C_Task_ID) { exists = true; break; } } } // Phase exist if (exists) { log.Info("Task already exists here, ignored - " + fromTasks[i]); } else { MProjectTask toTask = new MProjectTask(GetCtx(), 0, Get_TrxName()); PO.CopyValues(fromTasks[i], toTask, GetAD_Client_ID(), GetAD_Org_ID()); toTask.SetC_ProjectPhase_ID(toPhase.GetC_ProjectPhase_ID()); if (toTask.Save()) { count++; count += CopyMTaskLinesFromProjectTask(fromTasks[i], toTask, toPhase.GetC_Project_ID()); } else { pp = VLogger.RetrieveError(); if (pp != null) { msg.Append(pp.GetName()); //if GetName is Empty then it will check GetValue if (string.IsNullOrEmpty(msg.ToString())) { msg.Append(Msg.GetMsg("", pp.GetValue())); } } if (string.IsNullOrEmpty(msg.ToString())) { msg.Append(Msg.GetMsg(GetCtx(), "VIS_LineNotSaved")); } else { msg.Append(Msg.GetMsg(GetCtx(), "VIS_LineNotSaved") + "," + msg.ToString()); } } } } if (fromTasks.Length != count) { log.Warning("Count difference - ProjectPhase=" + fromTasks.Length + " <> Saved=" + count); } return(count); }