Tuesday, October 27, 2015

Programmatically change project group for each project

//as long as we have the proj id and the group to change, we can use the inbuilt classes to change it for us.

private static void changeGroupPerReord(projtable _currentRecord, ProjgroupID _toProjGroupID)
{
    ProjGroupChange projGroupChange;
    ProjTable       projTable;
    Common          currentRecord = _currentRecord;

    if (!currentRecord)
    {
        throw error(strFmt("@SYS29104", classId2Name(classIdGet(projGroupChange))));
    }

    projGroupChange = new ProjGroupChange();

    projGroupChange.getLast();
    projGroupChange.parmProjGroupIdTo("");
    projGroupChange.parmProjInvoiceProjId("");
    projGroupChange.parmProjGroupIdTo(_toProjGroupID);
    projTable       = currentRecord;
    if (ProjWIPTable::exist(projTable.ProjId))
    {
        projGroupChange.parmProjWIPId(projTable.ProjId);
        projGroupChange.parmProjType(projTable.Type);
        projGroupChange.parmProjGroupIdFrom(projTable.ProjGroupId);
        projGroupChange.parmShowChild(false);
        projGroupChange.parmProjId("");
    }
    else
    {
        projGroupChange.parmProjId(projTable.ProjId);
        projGroupChange.parmProjType(projTable.Type);
        projGroupChange.parmProjGroupIdFrom(projTable.ProjGroupId);
        projGroupChange.parmShowChild(true);
        projGroupChange.parmProjWIPId("");
    }


    projGroupChange.run();

}

No comments:

Post a Comment