# Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# GPL: http://www.gnu.org/licenses/gpl.txt
#
##################################################
// Part of the Administration Control Panel : Workflow category
if (!defined('EXPONENT')) {
    exit('');
}
if (exponent_permissions_check('workflow', exponent_core_makeLocation('administrationmodule'))) {
    $oldpolicy = null;
    if (isset($_POST['id'])) {
        $oldpolicy = $db->selectObject('approvalpolicy', 'id=' . intval($_POST['id']));
    }
    $policy = approvalpolicy::update($_POST, $oldpolicy);
    if (!defined('SYS_WORKFLOW')) {
        require_once BASE . 'subsystems/workflow.php';
    }
    if ($oldpolicy) {
        // Check for content in revision:
        $infos = array();
        foreach (exponent_workflow_getInfoTables() as $table) {
            $typename = str_replace('_wf_info', '', $table);
            $infos[$typename] = $db->selectObjects($table, 'policy_id=' . $oldpolicy->id);
            for ($i = 0; $i < count($infos[$typename]); $i++) {
                $infos[$typename][$i]->state = unserialize($infos[$typename][$i]->current_state_data);
                $revision = $db->selectObject($typename . '_wf_revision', 'wf_original=' . $infos[$typename][$i]->real_id . ' AND wf_major=' . $infos[$typename][$i]->current_major . ' AND wf_minor=' . $infos[$typename][$i]->current_minor);
                $infos[$typename][$i]->title = $revision->title;
                $infos[$typename][$i]->approvers = count($infos[$typename][$i]->state[0]);
                $infos[$typename][$i]->approvals = array_sum($infos[$typename][$i]->state[1]);