Example #1
17
function ReadPostData($ReportID, $Prefs)
{
    global $db;
    // check for page setup form entry to look at check boxes and save as new defaults, return
    if (isset($_POST['PageForm'])) {
        $success = SavePrefs($ReportID);
        // values saved, read them back in to update $Prefs array
        $sql = "SELECT *\tFROM " . DBReports . " WHERE id = '" . $ReportID . "'";
        $Result = DB_query($sql, $db, '', '', false, true);
        $myrow = DB_fetch_assoc($Result);
        foreach ($myrow as $key => $value) {
            $Prefs[$key] = $value;
        }
        return $Prefs;
    }
    // Since we are not at the page setup form, we read from the filter form, fetch user selections
    $Prefs['DateListings']['params'] = $_POST['DefDate'];
    if ($_POST['DefDate'] == 'b') {
        // then it's a range selection, save dates, else discard
        $Prefs['DateListings']['params'] .= ':' . $_POST['DefDateFrom'] . ':' . $_POST['DefDateTo'];
    }
    $Prefs['defgroup'] = $_POST['DefGroup'];
    $Prefs['defsort'] = $_POST['DefSort'];
    $Prefs['TruncListings']['params'] = $_POST['DefTrunc'];
    if (!$Prefs['defaultreport']) {
        // Then save the filter settings because it's a custom report and we save them
        $success = SaveFilters($ReportID, 'dateselect', $Prefs['DateListings']['params']);
        $success = SaveFilters($ReportID, 'trunclong', $Prefs['TruncListings']['params']);
        if (isset($Prefs['defgroup'])) {
            $success = SaveDefSettings($ReportID, 'grouplist', $Prefs['defgroup']);
        }
        if (isset($Prefs['defsort'])) {
            $success = SaveDefSettings($ReportID, 'sortlist', $Prefs['defsort']);
        }
    }
    // update Prefs with current user selections
    if (isset($Prefs['defgroup'])) {
        // First clear all defaults and reset the user's choice
        for ($i = 0; $i < count($Prefs['GroupListings']); $i++) {
            $Prefs['GroupListings'][$i]['params'] = 0;
        }
        if ($Prefs['defgroup'] != 0) {
            $Prefs['GroupListings'][$Prefs['defgroup'] - 1]['params'] = '1';
        }
    }
    if (isset($Prefs['defsort'])) {
        // First clear all defaults and reset the user's choice
        for ($i = 0; $i < count($Prefs['SortListings']); $i++) {
            $Prefs['SortListings'][$i]['params'] = 0;
        }
        if ($Prefs['defsort'] != 0) {
            $Prefs['SortListings'][$Prefs['defsort'] - 1]['params'] = '1';
        }
    }
    // Criteria Field Selection
    $i = 1;
    while (isset($_POST['defcritsel' . $i])) {
        // then there is at least one criteria
        // Build the criteria default string
        $Prefs['CritListings'][$i - 1]['params'] = mb_substr($Prefs['CritListings'][$i - 1]['params'], 0, 1);
        $Prefs['CritListings'][$i - 1]['params'] .= ':' . $_POST['defcritsel' . $i];
        $Prefs['CritListings'][$i - 1]['params'] .= ':' . $_POST['fromvalue' . $i];
        if ($_POST['tovalue' . $i] == '') {
            $_POST['tovalue' . $i] = $_POST['fromvalue' . $i];
        }
        $Prefs['CritListings'][$i - 1]['params'] .= ':' . $_POST['tovalue' . $i];
        if (!$Prefs['defaultreport']) {
            // save it since it's a custom report
            $sql = "UPDATE " . DBRptFields . " SET params='" . $Prefs['CritListings'][$i - 1]['params'] . "'\n\t\t\t\tWHERE reportid ='" . $ReportID . "' AND entrytype='critlist' AND seqnum='" . $i . "'";
            $Result = DB_query($sql, $db, '', '', false, true);
        }
        $i++;
    }
    // If it's a default report, we're done, return
    if ($Prefs['defaultreport']) {
        return $Prefs;
    }
    // Read in the display field form selections
    $i = 1;
    while (isset($_POST['DataField' . $i])) {
        // read in the field choices
        if ($_POST['show' . $i] == '1') {
            $Prefs['FieldListings'][$i - 1]['visible'] = '1';
        } else {
            $Prefs['FieldListings'][$i - 1]['visible'] = '0';
        }
        if ($_POST['break' . $i] == '1') {
            $Prefs['FieldListings'][$i - 1]['columnbreak'] = '1';
        } else {
            $Prefs['FieldListings'][$i - 1]['columnbreak'] = '0';
        }
        $sql = "UPDATE " . DBRptFields . " SET\n\t\t\t\tvisible='" . $Prefs['FieldListings'][$i - 1]['visible'] . "',\n\t\t\t\tcolumnbreak='" . $Prefs['FieldListings'][$i - 1]['columnbreak'] . "'\n\t\t\tWHERE reportid ='" . $ReportID . "' AND entrytype='fieldlist' AND seqnum='" . $i . "'";
        $Result = DB_query($sql, $db, '', '', false, true);
        $i++;
    }
    return $Prefs;
}
function ReadPostData($ReportID, $Prefs, $Overrides, $action = '')
{
    global $db, $messageStack;
    //echo 'Prefs = '; print_r($Prefs); echo '<br />';
    // look at check boxes and convert to boolean
    $Overrides['coynameshow'] = isset($Overrides['coynameshow']) ? '1' : '0';
    $Overrides['title1show'] = isset($Overrides['title1show']) ? '1' : '0';
    $Overrides['title2show'] = isset($Overrides['title2show']) ? '1' : '0';
    $Overrides['grpbreak'] = isset($Overrides['grpbreak']) ? '1' : '0';
    // Some special cases
    $Prefs['trunclong'] = $Overrides['deftrunc'];
    // map the Override field listings to the pre-defined format
    $temp = array();
    $tempEntry = array();
    for ($i = 0; $i < sizeof($Prefs['FieldListings']); $i++) {
        for ($j = 0; $j < sizeof($Prefs['FieldListings']); $j++) {
            if ($Prefs['FieldListings'][$i]['id'] == $Overrides['id_' . $j]) {
                $tempEntry = $Prefs['FieldListings'][$i];
                $tempEntry['seqnum'] = $Overrides['seq_' . $j];
                $tempEntry['visible'] = $Overrides['show_' . $j] == '1' ? '1' : '0';
                $tempEntry['columnbreak'] = $Overrides['break_' . $j] == '1' ? '1' : '0';
                $tempEntry['params']['columnwidth'] = $Overrides['width_' . $j];
                unset($Overrides['seq_' . $j], $Overrides['show_' . $j], $Overrides['break_' . $j], $Overrides['width_' . $j]);
                if ($action == 'save' && !$Prefs['standard_report']) {
                    // If it's a default report, don't write the changes just acknowledge them for display
                    $db->Execute("update " . TABLE_REPORT_FIELDS . " set \r\n\t\t\t\t\t\t\tseqnum = '" . $tempEntry['seqnum'] . "',\r\n\t\t\t\t\t\t\tvisible = '" . $tempEntry['visible'] . "',\r\n\t\t\t\t\t\t\tcolumnbreak = '" . $tempEntry['columnbreak'] . "',\r\n\t\t\t\t\t\t\tparams = '" . serialize($tempEntry['params']) . "'\r\n\t\t\t\t\t\twhere id = " . $tempEntry['id']);
                }
                $temp[$tempEntry['seqnum']] = $tempEntry;
            }
        }
    }
    // re-sort the fields listings
    ksort($temp);
    $Prefs['FieldListings'] = array();
    $Prefs['FieldListings'] = $temp;
    // Overrride the default preferences with the remaining fields
    $Prefs = array_merge($Prefs, $Overrides);
    //echo 'Prefs = '; print_r($Prefs); echo '<br />'; exit();
    // read from the filter form, fetch user selections
    if (isset($Overrides['period'])) {
        // choose by period field instead of date
        $Prefs['datedefault'] = 'z:' . $Overrides['period'];
    } else {
        $Prefs['datedefault'] = $Overrides['defdate'];
        if ($Overrides['defdate'] == 'b') {
            // then it's a range selection, save dates, else discard
            $Prefs['datedefault'] .= ':' . $Overrides['DefDateFrom'] . ':' . $Overrides['DefDateTo'];
        }
    }
    // update Prefs with current user selections
    if (isset($Prefs['defgroup'])) {
        // First clear all defaults and reset the user's choice
        for ($i = 0; $i < count($Prefs['GroupListings']); $i++) {
            $Prefs['GroupListings'][$i]['params']['default'] = 0;
        }
        if ($Prefs['defgroup'] != 0) {
            $Prefs['GroupListings'][$Prefs['defgroup'] - 1]['params']['default'] = '1';
        }
    }
    if (isset($Prefs['defsort'])) {
        // First clear all defaults and reset the user's choice
        for ($i = 0; $i < count($Prefs['SortListings']); $i++) {
            $Prefs['SortListings'][$i]['params']['default'] = 0;
        }
        if ($Prefs['defsort'] != 0) {
            $Prefs['SortListings'][$Prefs['defsort'] - 1]['params']['default'] = '1';
        }
    }
    // Criteria Field Selection
    $i = 1;
    while (isset($Overrides['defcritsel' . $i])) {
        // then there is at least one criteria
        // Build the criteria default string
        $Prefs['CritListings'][$i - 1]['params']['default'] = $Overrides['defcritsel' . $i];
        $Prefs['CritListings'][$i - 1]['params']['min_val'] = $Overrides['fromvalue' . $i];
        $Prefs['CritListings'][$i - 1]['params']['max_val'] = $Overrides['tovalue' . $i];
        if ($action == 'save' && !$Prefs['standard_report']) {
            // save it since it's a custom report
            $sql = "update " . TABLE_REPORT_FIELDS . " \r\n\t\t\t\tset params = '" . serialize($Prefs['CritListings'][$i - 1]['params']) . "' \r\n\t\t\t\twhere reportid = " . $ReportID . " and entrytype = 'critlist' and seqnum = " . $i;
            $result = $db->Execute($sql);
        }
        $i++;
    }
    if ($action == 'save' && !$Prefs['standard_report']) {
        // Update the main report record
        $data_array['papersize'] = $Prefs['papersize'];
        $data_array['paperorientation'] = $Prefs['paperorientation'];
        $data_array['margintop'] = $Prefs['margintop'];
        $data_array['marginbottom'] = $Prefs['marginbottom'];
        $data_array['marginleft'] = $Prefs['marginleft'];
        $data_array['marginright'] = $Prefs['marginright'];
        $data_array['coynamefont'] = $Prefs['coynamefont'];
        $data_array['coynamefontsize'] = $Prefs['coynamefontsize'];
        $data_array['coynamefontcolor'] = $Prefs['coynamefontcolor'];
        $data_array['coynamealign'] = $Prefs['coynamealign'];
        $data_array['coynameshow'] = $Prefs['coynameshow'];
        $data_array['title1desc'] = addslashes($Prefs['title1desc']);
        $data_array['title1font'] = $Prefs['title1font'];
        $data_array['title1fontsize'] = $Prefs['title1fontsize'];
        $data_array['title1fontcolor'] = $Prefs['title1fontcolor'];
        $data_array['title1fontalign'] = $Prefs['title1fontalign'];
        $data_array['title1show'] = $Prefs['title1show'];
        $data_array['title2desc'] = addslashes($Prefs['title2desc']);
        $data_array['title2font'] = $Prefs['title2font'];
        $data_array['title2fontsize'] = $Prefs['title2fontsize'];
        $data_array['title2fontcolor'] = $Prefs['title2fontcolor'];
        $data_array['title2fontalign'] = $Prefs['title2fontalign'];
        $data_array['title2show'] = $Prefs['title2show'];
        $data_array['filterfont'] = $Prefs['filterfont'];
        $data_array['filterfontsize'] = $Prefs['filterfontsize'];
        $data_array['filterfontcolor'] = $Prefs['filterfontcolor'];
        $data_array['filterfontalign'] = $Prefs['filterfontalign'];
        $data_array['datafont'] = $Prefs['datafont'];
        $data_array['datafontsize'] = $Prefs['datafontsize'];
        $data_array['datafontcolor'] = $Prefs['datafontcolor'];
        $data_array['datafontalign'] = $Prefs['datafontalign'];
        $data_array['totalsfont'] = $Prefs['totalsfont'];
        $data_array['totalsfontsize'] = $Prefs['totalsfontsize'];
        $data_array['totalsfontcolor'] = $Prefs['totalsfontcolor'];
        $data_array['totalsfontalign'] = $Prefs['totalsfontalign'];
        $data_array['trunclong'] = $Prefs['trunclong'];
        $data_array['datedefault'] = $Prefs['datedefault'];
        $sql = "update " . TABLE_REPORT_FIELDS . " set params = '" . serialize($data_array) . "'\r\n\t\t\twhere reportid = " . $ReportID . " and entrytype = 'pagelist'";
        $result = $db->Execute($sql);
        // update the criteria and fields
        if (isset($Prefs['defgroup'])) {
            SaveDefSettings($ReportID, 'grouplist', $Prefs['defgroup']);
        }
        if (isset($Prefs['defsort'])) {
            SaveDefSettings($ReportID, 'sortlist', $Prefs['defsort']);
        }
    } elseif ($action == 'save') {
        $messageStack->add(RW_RPT_CANNOT_EDIT, 'caution');
    }
    return $Prefs;
}