# Plugin Group PlanS

## About

The plugin allows process execution planning using a single board. On the board execution groups assigned to execution areas and over these shifts are distributed processes.

## Setup

| You can see the plugin operation in Demo System.

### Process Type

In involved process types has to be configured a mandatory parameter with type list for definition of the required in the work type. On the screen below the parameter has ID 86. Another address parameter with ID 52 is needed for distribution processes over board columns by city. Both parameters are used tor generation of process title.

### Board

Make sure the plugin is enabled and append to the configuration:

    grpl:board.<ID>.title=<TITLE>
    grpl:board.<ID>.on.changed.param=<workTypeParam>
    grpl:board.<ID>.process.types=<processTypes>
    grpl:board.<ID>.column.param=<columnParam>
    grpl:board.<ID>.column.cities=<cityIds>
    grpl:board.<ID>.groups=<groupIds>
    grpl:board.<ID>.shift.from=<timeFrom>
    grpl:board.<ID>.shift.to=<timeTo>
    grpl:board.<ID>.process.duration.expression=<durationExpression>
    # optional keys
    # modified column titles
    #grpl:board.<ID>.column.<columnId>.title=<columnTitle>
    # process background colors
    #grpl:board.<ID>.process.background.color.<statusId>=<hexColor>

Where:

- <ID> - unique numeric board ID, must not be modified;

- <TITLE> - board title;

- <workTypeParam> - board-unique work type list parameter ID;

- <processTypes> - comma-separated process type IDs;

- <columnParam> - parameter ID, used for process to column mapping;

- <cityIds> - comma-separated city IDs, taken from the address parameter <columnParam> and used as board columns;

- <groupIds> - user groups, can be assigned for board processes execution;

- <timeFrom> - included time of shift’s beginning, HH:mm format;

- <timeTo> - excluded time of shift’s end, HH:mm format;

- <columnId> and <columnTitle> pair - change a column title, taken by default from city;

- <statusId> and <hexColor> pair - board cell background color, depends on the process status.

<durationExpression> contains JEXL expression for evaluating of process duration based on work type

Here is an example of a configuration in the Demo.

    // PzdcDoc snippet of: 'Plugin GrPl board config', lines: 3 - 23

    grpl:board.1.title={@BOARD_TITLE}
    grpl:board.1.on.changed.param={@PARAM_WORK_TYPE_ID}
    grpl:board.1.process.types={@PROCESS_TYPE_IDS}

    grpl:board.1.column.param={@PARAM_ADDRESS_ID}
    grpl:board.1.column.cities={@CITY_MUENCHEN_ID},{@CITY_STERLITAMAK_ID},{@CITY_UFA_ID}
    # modified title
    grpl:board.1.column.{@CITY_MUENCHEN_ID}.title=MUENCHEN

    grpl:board.1.groups={@USER_GROUP_IDS}
    grpl:board.1.shift.from=09:00
    grpl:board.1.shift.to=18:00
    grpl:board.1.process.duration.expression=<<END
        workType = pp.listValueIds({@PARAM_WORK_TYPE_ID});
        if (workType =~ {5})
            return "60M";
        return "30M";
    END

    grpl:board.1.process.background.color.{@STATUS_DONE_ID}=#90ee9080
    grpl:board.1.process.background.color.{@STATUS_REJECT_ID}=#ffe59980

## Usage

A process has been assigned for a board on change the work type parameter there. Column defining parameter has to be filled as well.

At first time a process appears in the bottom QUEUE cells, showing processes without time assigned.

Note, that for a board are shown only process-containing columns.

For cells int the shown columns have to be assigned accountable execution groups with mouse click on them.

That creates a shift plan for execution groups.

After each of the queued processes have to be arranged with customer, for that their descriptions are shown in popups on mouse hover. Using configurable process descriptions these texts can contain phone numbers or even direct HTTP links for running calls.

After or even during customer conversations a process can be mouse-dragged to a suitable slot, filled with a dark background when the process is over it.

When the process has been dropped to such a slot, exact time should be confirmed in the appearing dialog.