예제 #1
0
function verifyID($lChapterID, $varID, $enumVerifyType, $bRedirectOnFail = true)
{
    /*---------------------------------------------------------------------
          another way... Note that get_instance is a CI function, defined in
          system/core/CodeIgniter.php
    
          from http://stackoverflow.com/questions/4740430/explain-ci-get-instance
    
          $CI =& get_instance(); // use get_instance, it is less prone to failure in this context.
       ---------------------------------------------------------------------*/
    $CI =& get_instance();
    $bValid = true;
    switch ($enumVerifyType) {
        //      case 'account ID':
        //         $bValid = vid_bGenericRecExists($lChapterID, $varID, 'gifts_accounts', 'ga_lKeyID', 'ga_lChapterID', 'ga_bRetired');
        //         break;
        case 'attributed to ID':
            $bValid = vid_bAttributedToIDExists($lChapterID, $varID);
            break;
        case 'patient ID':
            $bValid = vid_bGenericRecExists($lChapterID, $varID, 'patient_records', 'cr_lKeyID', 'cr_lChapterID', 'cr_bRetired');
            break;
        case 'patientContact ID':
            $bValid = vid_bGenericRecExists(null, $varID, 'patient_contacts', 'cc_lKeyID', null, 'cc_bRetired');
            break;
        case 'patientVisit ID':
            $bValid = vid_bGenericRecExists($lChapterID, $varID, 'patient_visit', 'pv_lKeyID', 'pv_lChapterID', 'pv_bRetired');
            break;
        case 'vpAssoc ID':
            $bValid = vid_bVPAssocRecExists($lChapterID, $varID);
            break;
        case 'image/document ID':
            $bValid = vid_bGenericRecExists($lChapterID, $varID, 'docs_images', 'di_lKeyID', 'di_lChapterID', 'di_bRetired');
            break;
        case 'organization ID':
            $bValid = vid_bGenericRecExists(null, $varID, 'admin_chapters', 'ch_lKeyID', null, 'ch_bRetired');
            break;
        case 'people ID':
            $bValid = vid_bPBRecExists($lChapterID, $varID, false, false);
            break;
        case 'user ID':
            $bValid = vid_bGenericRecExists($lChapterID, $varID, 'admin_users', 'us_lKeyID', 'us_lChapterID', null);
            break;
        case 'volunteer ID':
            $bValid = vid_bVolRecExists($lChapterID, $varID, 'vol_lChapterID');
            break;
        case 'vol training ID':
            $bValid = vid_bGenericRecExists($lChapterID, $varID, 'vol_training', 'vt_lKeyID', 'vt_lChapterID', 'vt_bRetired');
            break;
        default:
            screamForHelp($enumVerifyType . ': invalid verify type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
            break;
    }
    if ($bRedirectOnFail) {
        vid_bTestFail($bValid, $enumVerifyType, $varID);
    }
    return $bValid;
}
 public function moveSort($lReportID, $lFieldID, $enumMove)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lReportID, 'custom report ID');
     $lReportID = (int) $lReportID;
     $lFieldID = (int) $lFieldID;
     //------------------------------------------------
     // libraries and utilities
     //------------------------------------------------
     $this->load->helper('reports/search');
     $this->load->helper('dl_util/context');
     $this->load->helper('reports/creport_util');
     $this->load->helper('creports/creport_field');
     $this->load->model('admin/madmin_aco');
     $this->load->model('creports/mcreports', 'clsCReports');
     //------------------------------------------------
     // load report
     //------------------------------------------------
     $displayData['cRptTypes'] = loadCReportTypeArray();
     $this->clsCReports->loadReportViaID($lReportID, true);
     $report =& $this->clsCReports->reports[0];
     if (!$report->bUserHasWriteAccess) {
         vid_bTestFail($this, false, 'Custom Report', $lReportID);
         return;
     }
     $this->load->library('util/up_down_top_bottom', '', 'upDown');
     $this->upDown->enumMove = $enumMove;
     $this->upDown->enumRecType = 'creport fields';
     $this->upDown->strUfieldDDL = 'creport_fields';
     $this->upDown->strUfieldDDLKey = 'crf_lKeyID';
     $this->upDown->strUfieldDDLSort = 'crf_lSortIDX';
     $this->upDown->strUfieldDDLQual1 = 'crf_lReportID';
     $this->upDown->strUfieldDDLRetired = '';
     $this->upDown->lUfieldDDLQual1Val = $lReportID;
     $this->upDown->lKeyID = $lFieldID;
     $this->upDown->moveRecs();
     $this->session->set_flashdata('msg', 'The display fields were re-ordered');
     redirect('creports/display_order/addEditDisplayTermOrder/' . $lReportID);
 }
예제 #3
0
 public function cloneTable($lTableID)
 {
     //-------------------------------------------------------------------------
     //
     //-------------------------------------------------------------------------
     global $glUserID;
     if (!bTestForURLHack('adminOnly')) {
         return;
     }
     $this->load->helper('dl_util/verify_id');
     if (!vid_bUserTableIDExists($this, $lTableID, $enumType)) {
         vid_bTestFail($this, false, 'user table ID', $lTableID);
     }
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('personalization/muser_fields_create', 'clsUFC');
     $this->load->model('personalization/muser_clone', 'cUFClone');
     // most of the work is complete in the model muser_clone;
     // just need the gui to get the new table name, then create the new
     // table (probably can use the add/edit user table routine)
     echoT('Work in progress<br>');
 }
예제 #4
0
 function remove($lReportID, $lSortTermID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lReportID, 'custom report ID');
     $lReportID = (int) $lReportID;
     $lSortTermID = (int) $lSortTermID;
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->helper('reports/creport_util');
     $this->load->model('admin/madmin_aco');
     $this->load->model('creports/mcreports', 'crpt');
     if (!$this->crpt->bSortTermGoesWithReport($lReportID, $lSortTermID)) {
         vid_bTestFail($this, false, 'Sort Order', $lSortTermID);
         return;
     }
     $this->crpt->deleteSortOrderTerm($lSortTermID);
     redirect('creports/custom_directory/viewRec/' . $lReportID);
 }
 function add_edit($lReportID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $glUserID;
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lReportID, 'custom report ID');
     $displayData = array();
     $displayData['lReportID'] = $lReportID;
     $displayData['js'] = '';
     //------------------------------------------------
     // models, libraries and utilities
     //------------------------------------------------
     $this->load->helper('reports/creport_util');
     $params = array('enumStyle' => 'terse', 'clsRpt');
     $this->load->library('generic_rpt', $params);
     $this->load->library('generic_form');
     $this->load->helper('js/toggle_paren');
     $this->load->helper('reports/creport_util');
     $this->load->helper('reports/search');
     $this->load->helper('dl_util/special_ddl');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('creports/link_creports');
     $this->load->helper('creports/creport_field');
     $this->load->helper('dl_util/context');
     $this->load->model('admin/madmin_aco');
     $this->load->model('personalization/muser_fields');
     $this->load->model('creports/mcreports', 'clsCReports');
     $this->load->model('creports/mcrpt_search_terms', 'crptTerms');
     $this->load->model('creports/mcrpt_terms_display', 'crptTD');
     $this->load->library('util/up_down_top_bottom');
     $displayData['js'] .= strToggleParen();
     //------------------------------------------------
     // load report
     //------------------------------------------------
     $displayData['cRptTypes'] = loadCReportTypeArray();
     $this->clsCReports->loadReportViaID($lReportID, true);
     $displayData['report'] = $report =& $this->clsCReports->reports[0];
     if (!$report->bUserHasWriteAccess) {
         vid_bTestFail($this, false, 'Custom Report', $lReportID);
         return;
     }
     $displayData['lNumFields'] = $report->lNumFields;
     //$this->clsCReports->lFieldCount($lReportID);
     $displayData['contextSummary'] = $this->clsCReports->strCReportHTMLSummary();
     //------------------------------------------------
     // load formatted search expression
     //------------------------------------------------
     $attributes = new stdClass();
     $attributes->lReportID = $lReportID;
     $attributes->bShowParenEditLink = false;
     $attributes->bShowSortLink = false;
     $attributes->bParenAsTextInput = true;
     $displayData['strSearchExpression'] = $this->crptTD->strFormattedSearchExpression($lReportID, $attributes, $bBalanced);
     //--------------------------
     // breadcrumbs
     //--------------------------
     $displayData['pageTitle'] = anchor('main/menu/reports', 'Reports', 'class="breadcrumb"') . ' | ' . anchor('creports/custom_directory/view/' . $glUserID, 'Custom Report Directory', 'class="breadcrumb"') . ' | Custom Report: ' . $report->strSafeName;
     $displayData['title'] = CS_PROGNAME . ' | Reports';
     $displayData['nav'] = $this->mnav_brain_jar->navData();
     $displayData['mainTemplate'] = 'creports/paren_edit_view';
     $this->load->vars($displayData);
     $this->load->view('template');
 }
 function add_edit($lCRptID = 0)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     $displayData = array();
     $displayData['lReportID'] = (int) $lCRptID;
     $displayData['js'] = '';
     $displayData['bNew'] = $bNew = $lCRptID <= 0;
     $this->load->helper('dl_util/verify_id');
     if (!$bNew) {
         verifyIDsViaType($this, CENUM_CONTEXT_CUSTOMREPORT, $lCRptID, false);
     }
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->helper('reports/creport_util');
     $params = array('enumStyle' => 'terse');
     $this->load->library('generic_rpt', $params);
     $this->load->model('admin/madmin_aco');
     $this->load->model('creports/mcreports', 'clsCReports');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('creports/link_creports');
     $cRptTypes = loadCReportTypeArray();
     $this->clsCReports->loadReportViaID($lCRptID, false);
     $report =& $this->clsCReports->reports[0];
     if (!$bNew) {
         if (!$report->bUserHasWriteAccess) {
             vid_bTestFail($this, false, 'Custom Report', $lCRptID);
             return;
         }
     }
     $this->load->helper('js/div_hide_show');
     $displayData['js'] .= showHideDiv();
     //-------------------------
     // validation rules
     //-------------------------
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtName', 'Report Name', 'trim|required|callback_cRptNameDupTest[' . $lCRptID . ']');
     $this->form_validation->set_rules('txtNotes', 'Notes', 'trim');
     if ($this->form_validation->run() == FALSE) {
         $displayData['formData'] = new stdClass();
         $this->load->library('generic_form');
         if (!$bNew) {
             $displayData['formData']->strRptType = $report->strXlatedRptType;
         }
         // first time displayed, no user data entry errors
         if (validation_errors() == '') {
             $displayData['formData']->strName = $report->strName;
             $displayData['formData']->strNotes = $report->strNotes;
             $displayData['formData']->bPrivate = $report->bPrivate;
             if ($bNew) {
                 $displayData['formData']->strCRptTypeDDL = strCRptTypesDDL($cRptTypes, false, $report->enumRptType);
             }
         } else {
             setOnFormError($displayData);
             $displayData['formData']->strName = set_value('txtName');
             $displayData['formData']->strNotes = set_value('txtNotes');
             $displayData['formData']->bPrivate = @$_POST['chkPrivate'] == 'TRUE';
             if ($bNew) {
                 $displayData['formData']->strCRptTypeDDL = strCRptTypesDDL($cRptTypes, false, @$_POST['ddlCRpt']);
             }
         }
         //--------------------------
         // breadcrumbs
         //--------------------------
         $displayData['pageTitle'] = anchor('main/menu/reports', 'Reports', 'class="breadcrumb"');
         if (!$bNew) {
             $displayData['pageTitle'] .= ' | ' . anchor('creports/custom_directory/viewRec/' . $lCRptID, 'Custom Report: ' . $report->strSafeName, 'class="breadcrumb"');
         }
         $displayData['pageTitle'] .= ' | ' . ($bNew ? 'Add' : 'Edit') . ' Custom Report';
         $displayData['title'] = CS_PROGNAME . ' | Custom Reports';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['mainTemplate'] = 'creports/add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $report->strName = trim($_POST['txtName']);
         $report->strNotes = trim($_POST['txtNotes']);
         $report->bPrivate = @$_POST['chkPrivate'] == 'TRUE';
         if ($bNew) {
             $report->enumRptType = trim($_POST['ddlCRpt']);
         }
         //------------------------------------
         // update db tables and return
         //------------------------------------
         if ($bNew) {
             $lCRptID = $this->clsCReports->addNewCReport();
             $this->session->set_flashdata('msg', 'Custom report added');
             redirect('creports/custom_fields/viewRecFields/' . $lCRptID . '/true');
         } else {
             $this->clsCReports->updateCReport($lCRptID);
             $this->session->set_flashdata('msg', 'Custom report updated');
             redirect('creports/custom_directory/viewRec/' . $lCRptID);
         }
     }
 }
 function removeRecord($lTableID, $lFID, $lRecID)
 {
     //-------------------------------------------------------------------------
     //
     //-------------------------------------------------------------------------
     $this->load->helper('dl_util/verify_id');
     if (!vid_bUserTableIDExists($this, $lTableID, $enumTabType)) {
         vid_bTestFail($this, false, 'user table ID', $lTableID);
     }
     verifyIDsViaType($this, $enumTabType, $lFID, false);
     $lEnrollID = 0;
     //-------------------------
     // models & helpers
     //-------------------------
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('personalization/muser_fields_display', 'clsUFD');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->helper('clients/client_program');
     $this->clsUFD->lTableID = $lTableID;
     $this->clsUFD->loadTableViaTableID();
     $utable =& $this->clsUFD->userTables[0];
     $enumTType = $utable->enumTType;
     $bCProg = bTypeIsClientProg($enumTType);
     $bEnrollment = $enumTType == CENUM_CONTEXT_CPROGENROLL;
     // if deleting an enrollment record, we must also delete
     // any associated attendance records
     if ($bCProg) {
         $this->load->model('client_features/mcprograms', 'cprograms');
         if ($bEnrollment) {
             $this->cprograms->loadClientProgramsViaETableID($lTableID);
             $cprog =& $this->cprograms->cprogs[0];
             $strATable = $cprog->strAttendanceTable;
             $strATableFNPre = $cprog->strATableFNPrefix;
             $this->cprograms->deleteATableRecsViaEnrollRecID($strATable, $strATableFNPre, $lRecID);
         } else {
             // load the enrollment record to provide the proper return path
             $this->cprograms->loadClientProgramsViaATableID($lTableID);
             $cprog =& $this->cprograms->cprogs[0];
             $this->cprograms->loadBaseARecViaARecID($cprog, $lRecID, $lNumARecs, $arecs);
             $lEnrollID = $arecs[0]->lEnrollID;
         }
         $strTableLabel = 'An ' . ($bEnrollment ? 'enrollment' : 'attendance') . ' record was removed from client program <b>' . htmlspecialchars($cprog->strProgramName) . '</b>.';
     } else {
         $strTableLabel = 'The selected record was removed from ' . 'table <b>' . htmlspecialchars($utable->strUserTableName) . '</b>';
     }
     $this->clsUFD->removeMRRecord($lRecID);
     $this->session->set_flashdata('msg', $strTableLabel);
     redirect('admin/uf_multirecord_view/viewMRViaFID/' . $lTableID . '/' . $lFID . '/' . $lEnrollID);
 }
function verifyID(&$local, $varID, $enumVerifyType, $bRedirectOnFail = true)
{
    /*---------------------------------------------------------------------
          another way... Note that get_instance is a CI function, defined in
          system/core/CodeIgniter.php
    
          from http://stackoverflow.com/questions/4740430/explain-ci-get-instance
    
          $CI =& get_instance(); // use get_instance, it is less prone to failure in this context.
       ---------------------------------------------------------------------*/
    $bValid = true;
    switch ($enumVerifyType) {
        case 'account ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'gifts_accounts', 'ga_lKeyID', 'ga_bRetired');
            break;
        case 'attributed to ID':
            $bValid = vid_bAttributedToIDExists($local, $varID);
            break;
        case 'auction ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'gifts_auctions', 'auc_lKeyID', 'auc_bRetired');
            break;
        case 'auction item ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'gifts_auctions_items', 'ait_lKeyID', 'ait_bRetired');
            break;
        case 'autocharge ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'sponsor_autocharge_log', 'spcl_lKeyID', null);
            break;
        case 'bidsheet ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'gifts_auctions_bidsheets', 'abs_lKeyID', 'abs_bRetired');
            break;
        case 'business ID':
            $bValid = vid_bBizRecExists($local, $varID);
            break;
        case 'business contact ID':
            $bValid = vid_bBizConRecExists($local, $varID);
            break;
        case 'campaign ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'gifts_campaigns', 'gc_lKeyID', 'gc_bRetired');
            break;
        case 'client location ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'client_location', 'cl_lKeyID', 'cl_bRetired');
            break;
        case 'client ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'client_records', 'cr_lKeyID', 'cr_bRetired');
            break;
        case 'client program ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'cprograms', 'cp_lKeyID', 'cp_bRetired');
            break;
        case 'client vocabulary ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'lists_client_vocab', 'cv_lKeyID', 'cv_bRetired');
            break;
        case 'custom form ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'custom_forms', 'cf_lKeyID', 'cf_bRetired');
            break;
        case 'custom report ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'creport_dir', 'crd_lKeyID', 'crd_bRetired');
            break;
        case 'deposit ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'deposit_log', 'dl_lKeyID', 'dl_bRetired');
            break;
        case 'donation ID':
            $bValid = vid_bGiftExists($local, $varID);
            break;
        case 'event ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'vol_events', 'vem_lKeyID', 'vem_bRetired');
            break;
        case 'event date ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'vol_events_dates', 'ved_lKeyID', null);
            break;
        case 'grant ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'grants', 'gr_lKeyID', null);
            break;
        case 'group ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'groups_parent', 'gp_lKeyID', null);
            break;
        case 'honorarium/memorial ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'lists_hon_mem', 'ghm_lKeyID', 'ghm_bRetired');
            break;
        case 'household ID':
        case 'people ID':
            $bValid = vid_bPeopleRecExists($local, $varID);
            break;
        case 'image/document ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'docs_images', 'di_lKeyID', 'di_bRetired');
            break;
        case 'inventory cat ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'inv_cats', 'ivc_lKeyID', 'ivc_bRetired');
            break;
        case 'inventory item ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'inv_items', 'ivi_lKeyID', 'ivi_bRetired');
            break;
        case 'organization ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'admin_chapters', 'ch_lKeyID', 'ch_bRetired');
            break;
        case 'package ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'gifts_auctions_packages', 'ap_lKeyID', 'ap_bRetired');
            break;
        case 'people/business ID':
            $bValid = vid_bPBRecExists($local, $varID, false, false);
            break;
        case 'pledge ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'gifts_pledges', 'gp_lKeyID', 'gp_bRetired');
            break;
        case 'pre/post test ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'cpp_tests', 'cpp_lKeyID', 'cpp_bRetired');
            break;
        case 'provider ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'grant_providers', 'gpr_lKeyID', 'gpr_bRetired');
            break;
        case 'relationship ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'people_relationships', 'pr_lKeyID', 'pr_bRetired');
            break;
        case 'relationship entry ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'lists_people_relationships', 'lpr_lKeyID', 'lpr_bRetired');
            break;
        case 'reminder ID':
            $bValid = vid_bReminderIDExists($local, $varID);
            break;
        case 'search term ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'creport_search', 'crs_lKeyID', null);
            break;
        case 'shift ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'vol_events_dates_shifts', 'vs_lKeyID', 'vs_bRetired');
            break;
        case 'sponsor ID':
            $bValid = vid_bSponsorIDExists($local, $varID);
            break;
        case 'sponsorship charge ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'sponsor_charges', 'spc_lKeyID', 'spc_bRetired');
            break;
        case 'sponsor payment ID':
            $bValid = vid_bPaymentExists($local, $varID);
            break;
        case 'sponsorship program ID':
            $bValid = vid_bSponsorProgIDExists($local, $varID);
            break;
        case 'status category ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'client_status_cats', 'csc_lKeyID', 'csc_bRetired');
            break;
        case 'status ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'lists_client_status_entries', 'cst_lKeyID', 'cst_bRetired');
            break;
        case 'status entry ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'client_status', 'csh_lKeyID', 'csh_bRetired');
            break;
        case 'status entry list ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'lists_client_status_entries', 'cst_lKeyID', 'cst_bRetired');
            break;
        case 'user ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'admin_users', 'us_lKeyID', null);
            break;
        case 'volunteer ID':
            $bValid = vid_bVolRecExists($local, $varID);
            break;
        case 'volunteer assignment ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'vol_events_dates_shifts_assign', 'vsa_lKeyID', 'vsa_bRetired');
            break;
        case 'vol. registration ID':
            $bValid = vid_bGenericRecExists($local, $varID, 'vol_reg', 'vreg_lKeyID', 'vreg_bRetired');
            break;
        default:
            screamForHelp($enumVerifyType . ': invalid verify type<br>error on line <b> -- ' . __LINE__ . ' --</b>,<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
            break;
    }
    if ($bRedirectOnFail) {
        vid_bTestFail($local, $bValid, $enumVerifyType, $varID);
    }
    return $bValid;
}
예제 #9
0
 function creportReviewUtility(&$lReportID, &$displayData, &$bFail, &$fails, &$bFieldsOK, &$bTablePermissionOK, &$lNumTablePermFails, &$failTablePerms, &$lNumDDLJoins)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     //------------------------------------------------
     // load report
     //------------------------------------------------
     $displayData['cRptTypes'] = loadCReportTypeArray();
     $this->crptRun->loadReportViaID($lReportID, true);
     $report =& $this->crptRun->reports[0];
     if (!$report->bUserHasReadAccess) {
         vid_bTestFail($this, false, 'Custom Report', $lReportID);
         die;
     }
     $bFail = false;
     $fails = array();
     if ($report->lNumFields == 0) {
         $bFail = true;
         $fails[] = 'Please define one or more fields to display.';
     }
     // load search terms
     $this->crptRun->loadSearchTermViaReportID($lReportID);
     // load sort terms
     $this->crptRun->loadSortFieldsViaReportID($lReportID, $lNumSortTerms, $sortTerms);
     // max of 61 joins - mysql limit
     $lNumDDLJoins = $this->lCountDDLJoins($report->fields);
     // verify personalized terms still exist
     $this->crptRun->verifyTerms_Init();
     $bFieldsOK_Display = $this->crptRun->bVerifyTerms_Display($report, $displayData['lNumBad_Display'], $displayData['badFields_Display']);
     $bFieldsOK_Search = $this->crptRun->bVerifyTerms_Search($displayData['lNumBad_Search'], $displayData['badFields_Search']);
     $bFieldsOK_Sort = $this->crptRun->bVerifyTerms_Sort($lNumSortTerms, $sortTerms, $displayData['lNumBad_Sort'], $displayData['badFields_Sort']);
     $bFieldsOK = $bFieldsOK_Display && $bFieldsOK_Search && $bFieldsOK_Sort;
     // verify user has access to all tables referenced in report
     $bTablePermissionOK = $this->bVerifyUserAccessToReport($report, $lNumTablePermFails, $failTablePerms);
 }
예제 #10
0
 function userAddEdit($lTableID, $lForeignID, $lEditFieldID)
 {
     //-----------------------------------------------------------------------------
     //
     //-----------------------------------------------------------------------------
     global $gbDateFormatUS;
     $this->load->helper('dl_util/verify_id');
     if (!vid_bUserTableIDExists($this, $lTableID, $enumTabType)) {
         vid_bTestFail($this, false, 'user table ID', $lTableID);
     }
     verifyIDsViaType($this, $enumTabType, $lForeignID, false);
     if (!is_numeric($lEditFieldID)) {
         vid_bTestFail($this, false, 'user field ID', $lEditFieldID);
     }
     $displayData = array();
     $displayData['lTableID'] = $lTableID = (int) $lTableID;
     $displayData['lForeignID'] = $lForeignID = (int) $lForeignID;
     $displayData['lEditFieldID'] = $lEditFieldID = (int) $lEditFieldID;
     //-----------------------
     // load table info
     //-----------------------
     $bEditMode = $lEditFieldID > 0;
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('personalization/muser_fields_display', 'clsUFD');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->library('util/dl_date_time', '', 'clsDateTime');
     $params = array('enumStyle' => 'enpRptC');
     $this->load->library('generic_rpt', $params);
     $this->load->model('admin/madmin_aco');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('dl_util/context');
     $this->clsUFD->lTableID = $lTableID;
     $this->clsUFD->lForeignID = $lForeignID;
     $this->clsUFD->loadTableViaTableID();
     $enumTType = $this->clsUFD->userTables[0]->enumTType;
     loadSupportModels($enumTType, $lForeignID);
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtxxxx');
     // dummy
     if ($bEditMode) {
         $this->clsUFD->loadSingleField($lEditFieldID);
         $enumFType = $this->clsUFD->fields[0]->enumFieldType;
         $strFName = 'var' . $lEditFieldID;
         if ($enumFType == CS_FT_DATE) {
             $this->form_validation->set_rules($strFName, 'Date Field', 'trim|callback_ufFieldVerifyDateValid');
         }
         if ($enumFType == CS_FT_INTEGER) {
             $this->form_validation->set_rules($strFName, 'Number Field', 'trim|required|callback_stripCommas|integer');
         }
         if ($enumFType == CS_FT_CURRENCY) {
             $this->form_validation->set_rules($strFName, 'Currency Field', 'trim|required|callback_stripCommas|numeric');
         }
     }
     if ($this->form_validation->run() == FALSE) {
         //------------------------------------------------------
         // set form validation based on field type being edited
         //------------------------------------------------------
         if ($bEditMode) {
             $this->load->helper('dl_util/web_layout');
         }
         $displayData['title'] = CS_PROGNAME . ' | Personalized Fields';
         $displayData['pageTitle'] = $this->clsUFD->strBreadcrumbsTableDisplay(0);
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $displayData['strTableDisplay'] = $this->clsUFD->strEditUserTableEntries($lEditFieldID);
         $displayData['strHTMLSummary'] = $this->clsUFD->strHTMLSummary;
         $displayData['mainTemplate'] = 'admin/user_table_add_edit_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->clsUFD->loadSingleField($lEditFieldID);
         $enumType = $this->clsUFD->fields[0]->enumFieldType;
         $strFieldID = 'var' . $lEditFieldID;
         switch ($enumType) {
             case CS_FT_CHECKBOX:
                 $varUserVal = @$_POST[$strFieldID] == 'TRUE';
                 break;
             case CS_FT_DATE:
                 $varUserVal = trim($_POST[$strFieldID]);
                 if ($varUserVal == '') {
                     $varUserVal = ' null ';
                 } else {
                     MDY_ViaUserForm($varUserVal, $lMon, $lDay, $lYear, $gbDateFormatUS);
                     $varUserVal = ' "' . strMoDaYr2MySQLDate($lMon, $lDay, $lYear) . '" ';
                 }
                 break;
             case CS_FT_DATETIME:
                 break;
             case CS_FT_TEXTLONG:
             case CS_FT_TEXT255:
             case CS_FT_TEXT80:
             case CS_FT_TEXT20:
                 $varUserVal = trim($_POST[$strFieldID]);
                 break;
             case CS_FT_INTEGER:
                 $varUserVal = (int) $_POST[$strFieldID];
                 break;
             case CS_FT_CURRENCY:
                 $varUserVal = number_format($_POST[$strFieldID], 2, '.', '');
                 break;
             case CS_FT_DDL:
                 $varUserVal = (int) $_POST[$strFieldID];
                 break;
             default:
                 screamForHelp($enumType . ': invalid field type<br>error on line ' . __LINE__ . ',<br>file ' . __FILE__ . ',<br>function ' . __FUNCTION__);
                 break;
         }
         $this->clsUFD->updateUserField($varUserVal);
         redirect('admin/uf_user_edit/userAddEdit/' . $lTableID . '/' . $lForeignID . '/0');
     }
 }
예제 #11
0
 function crunGeneric($lReportID, $bExport, $lStartRec = null, $lRecsPerPage = null)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $glUserID, $gdteNow;
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lReportID, 'custom report ID');
     $displayData = array();
     $displayData['js'] = '';
     $displayData['lReportID'] = $lReportID = (int) $lReportID;
     //------------------------------------------------
     // libraries and utilities
     //------------------------------------------------
     $this->load->helper('reports/search');
     $this->load->helper('dl_util/context');
     $this->load->helper('reports/creport_util');
     $this->load->helper('creports/creport_field');
     $this->load->helper('creports/link_creports');
     $this->load->helper('creports/creport_special_ddl');
     $this->load->helper('dl_util/rs_navigate');
     $this->load->helper('dl_util/time_date');
     $this->load->helper('creports/creport_tables');
     $this->load->helper('personalization/field_display');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->model('admin/madmin_aco');
     $this->load->model('creports/mcreports');
     $this->load->model('creports/mcrpt_search_terms');
     $this->load->model('creports/mcrpt_run', 'crptRun');
     $this->load->model('personalization/muser_fields');
     $params = array('enumStyle' => 'terse', 'clsRpt');
     $this->load->library('generic_rpt', $params);
     //------------------------------------------------
     // load report
     //------------------------------------------------
     $this->crptRun->loadReportViaID($lReportID, true);
     $displayData['report'] = $report =& $this->crptRun->reports[0];
     if (!$report->bUserHasReadAccess) {
         vid_bTestFail($this, false, 'Custom Report', $lReportID);
         return;
     }
     if (!$this->crptRun->bVerifyUserAccessToReport($report, $lNumFails, $failTables)) {
         vid_bTestFail($this, false, 'Permissions for Custom Report', $lReportID);
         return;
     }
     $report =& $this->crptRun->reports[0];
     if (!$bExport) {
         $displayData['contextSummary'] = $this->crptRun->strCReportHTMLSummary();
         $sRpt = new stdClass();
         $sRpt->lReportID = $lReportID;
         $sRpt->bShowRecNav = true;
         $sRpt->lStartRec = $sRpt->lRecsPerPage = null;
         $this->setLimits($sRpt, $lStartRec, $lRecsPerPage);
     }
     // build the sql string for all records
     $this->crptRun->strBuildCReportSQL($report, '', false);
     if ($bExport) {
         // life is good - this is so easy....
         $this->load->dbutil();
         $this->load->helper('download');
         $this->load->model('reports/mexports', 'clsExports');
         $strFN = 'creport_' . str_pad($report->lKeyID, 5, '0', STR_PAD_LEFT) . '_' . date('Ymd_His', $gdteNow) . '.csv';
         force_download($strFN, $this->clsExports->exportCReport($this->crptRun->strSQL . ';'));
     } else {
         // prep the navigation
         $displayData['lTotRecs'] = $lNumRecsTot = $this->crptRun->lCountRecs(false, null, null);
         $displayData['lNumThisPage'] = $lNumThisPage = $this->crptRun->lCountRecs(true, $lStartRec, $lRecsPerPage);
         $displayData['strNavLinkExtra'] = '';
         $displayData['lStartRec'] = $lStartRec = (int) $lStartRec;
         $displayData['lRecsPerPage'] = $lRecsPerPage = (int) $lRecsPerPage;
         $displayData['strNavRptTitle'] = 'Record selection';
         $displayData['strExport'] = false;
         // compatibility with reports/record_nav_view
         $displayData['bShowRecNav'] = true;
         // compatibility with reports/record_nav_view
         $displayData['bSuppressNavBr'] = true;
         $displayData['strLinkBase'] = 'reports/reports/crun/' . $lReportID;
         if ($lNumThisPage > 0) {
             $this->crptRun->strSQL = $this->crptRun->strSQL . "\nLIMIT {$lStartRec}, {$lRecsPerPage};";
             $this->crptRun->loadCReportRecords($report->fields, $displayData['lNumCRecs'], $displayData['crecs']);
         }
         //------------------------------------------------
         // stripes
         //------------------------------------------------
         $this->load->model('util/mbuild_on_ready', 'clsOnReady');
         $this->clsOnReady->addOnReadyTableStripes();
         $this->clsOnReady->closeOnReady();
         $displayData['js'] .= $this->clsOnReady->strOnReady;
         //------------------------------------------------
         // breadcrumbs, page set-up
         //------------------------------------------------
         $displayData['mainTemplate'] = array('reports/record_nav_view', 'reports/creport_run_nav');
         $displayData['pageTitle'] = anchor('main/menu/reports', 'Reports', 'class="breadcrumb"') . ' | ' . anchor('creports/custom_directory/view/' . $glUserID, 'Custom Report Directory', 'class="breadcrumb"') . ' | ' . anchor('creports/custom_directory/viewRec/' . $lReportID, 'Report Record', 'class="breadcrumb"') . ' | Run: ' . $report->strSafeName;
         $displayData['title'] = CS_PROGNAME . ' | Reports';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $this->load->vars($displayData);
         $this->load->view('template');
     }
 }
 function addEditTable($enumTType, $lTableID = 0)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     if (!bTestForURLHack('adminOnly')) {
         return;
     }
     $displayData = array();
     $displayData['enumTType'] = $enumTType = htmlspecialchars($enumTType);
     if ($lTableID . '' != '0') {
         $this->load->helper('dl_util/verify_id');
         if (!vid_bUserTableIDExists($this, $lTableID, $enumTType)) {
             vid_bTestFail($this, false, 'user table ID', $lTableID);
         }
     }
     $displayData['lTableID'] = $lTableID = (int) $lTableID;
     /*------------------------------------------------
           models/libraries/helpers
       ------------------------------------------------*/
     $this->load->model('personalization/muser_fields', 'clsUF');
     $this->load->model('admin/mpermissions', 'perms');
     $this->load->helper('dl_util/web_layout');
     $this->load->helper('personalization/validate_custom_verification');
     // validation rules
     $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
     $this->form_validation->set_rules('txtTableName', 'Table Name', 'trim|callback_userTableVerifyRequired|callback_userTableVerifyUnique[' . $enumTType . ',' . $lTableID . ']');
     $this->form_validation->set_rules('txtVerificationModule', 'Validation File', 'callback_verifyVerMod');
     $this->form_validation->set_rules('txtVModEntryPoint', 'Validation Entry Point', 'callback_verifyVModEntry');
     $this->form_validation->set_rules('txtDescription');
     $this->form_validation->set_rules('chkMultiEntry');
     $this->form_validation->set_rules('chkReadOnly');
     $this->form_validation->set_rules('chkHide');
     $this->form_validation->set_rules('chkCollapsible');
     $this->form_validation->set_rules('chkAlertNoDataEntry');
     $this->form_validation->set_rules('txtAlert');
     $displayData['bNew'] = $bNew = $lTableID <= 0;
     $this->clsUF->setTType($enumTType);
     if ($bNew) {
         $this->clsUF->lTableID = 0;
     } else {
         $this->clsUF->lTableID = $lTableID;
     }
     $this->clsUF->loadTableViaTableID(false);
     $displayData['userTables'] = $uTable =& $this->clsUF->userTables[0];
     $displayData['strTTypeLabel'] = $strLabel = $this->clsUF->strTTypeLabel;
     if ($this->form_validation->run() == FALSE) {
         $displayData['title'] = CS_PROGNAME . ' | Personalization';
         $displayData['pageTitle'] = anchor('main/menu/admin', 'Admin', 'class="breadcrumb"') . ' | ' . anchor('admin/personalization/overview/' . $enumTType, 'Personalization', 'class="breadcrumb"') . ' | ' . ($bNew ? 'Add New ' : 'Edit ') . $strLabel . ' Table';
         $displayData['nav'] = $this->mnav_brain_jar->navData();
         $this->load->library('generic_form');
         $displayData['bCurrentlyHidden'] = $uTable->bHidden;
         if (validation_errors() == '') {
             $displayData['strTableName'] = htmlspecialchars($uTable->strUserTableName);
             $displayData['bHidden'] = $uTable->bHidden;
             $displayData['bCollapsible'] = $uTable->bCollapsibleHeadings;
             $displayData['bMultiEntry'] = $uTable->bMultiEntry;
             $displayData['bReadOnly'] = $uTable->bReadOnly;
             $displayData['strDescription'] = $uTable->strDescription;
             $displayData['bAlertNoDataEntry'] = $uTable->bAlertIfNoEntry;
             $displayData['strAlert'] = $uTable->strAlertMsg;
             $displayData['txtVerificationModule'] = htmlspecialchars($uTable->strVerificationModule);
             $displayData['txtVModEntryPoint'] = htmlspecialchars($uTable->strVModEntryPoint);
         } else {
             setOnFormError($displayData);
             $displayData['strTableName'] = set_value('txtTableName');
             $displayData['bHidden'] = set_value('chkHide') == 'true';
             $displayData['bCollapsible'] = set_value('chkCollapsible') == 'true';
             if ($bNew) {
                 $displayData['bMultiEntry'] = set_value('chkMultiEntry') == 'true';
             } else {
                 $displayData['bMultiEntry'] = $uTable->bMultiEntry;
             }
             $displayData['bReadOnly'] = set_value('chkReadOnly') == 'true';
             $displayData['strDescription'] = set_value('txtDescription');
             $displayData['bAlertNoDataEntry'] = set_value('chkAlertNoDataEntry') == 'true';
             $displayData['strAlert'] = set_value('txtAlert');
             $displayData['txtVerificationModule'] = set_value('txtVerificationModule');
             $displayData['txtVModEntryPoint'] = set_value('txtVModEntryPoint');
         }
         $displayData['mainTemplate'] = 'personalization/uf_add_edit_table_view';
         $this->load->vars($displayData);
         $this->load->view('template');
     } else {
         $this->load->model('personalization/muser_fields_create', 'clsUFC');
         $this->clsUFC->enumTType = $enumTType;
         $this->clsUFC->strUserTableName = xss_clean(trim($_POST['txtTableName']));
         $this->clsUFC->strVerificationModule = xss_clean(trim($_POST['txtVerificationModule']));
         $this->clsUFC->strVModEntryPoint = xss_clean(trim($_POST['txtVModEntryPoint']));
         if ($bNew) {
             $this->clsUFC->bMultiEntry = trim(@$_POST['chkMultiEntry']) == 'true';
         } else {
             $this->clsUFC->bMultiEntry = $uTable->bMultiEntry;
         }
         $this->clsUFC->bReadOnly = trim(@$_POST['chkReadOnly']) == 'true';
         $this->clsUFC->bCollapsibleHeadings = trim(@$_POST['chkCollapsible']) == 'true';
         $this->clsUFC->bCollapseDefaultHide = true;
         // should this be a user option?
         $this->clsUFC->bHidden = trim(@$_POST['chkHide']) == 'true';
         $this->clsUFC->strTableDescription = xss_clean(trim($_POST['txtDescription']));
         $this->clsUFC->bAlertNoDataEntry = trim(@$_POST['chkAlertNoDataEntry']) == 'true';
         $this->clsUFC->strAlert = trim($_POST['txtAlert']);
         $strMultiLabel = $this->clsUFC->bMultiEntry ? ' multiple-entry ' : ' single-entry ';
         $bRetired = @$_POST['chkRetire'] == 'YES';
         if ($bRetired) {
             $this->clsUFC->lTableID = $lTableID;
             $this->clsUFC->loadTableViaTableID();
             $this->clsUFC->removeUFTable($lTableID);
             $this->session->set_flashdata('msg', 'The ' . $strLabel . $strMultiLabel . ' table <b>' . htmlspecialchars($this->clsUFC->strUserTableName) . '</b> was removed.');
             redirect('admin/personalization/overview');
         } else {
             if ($bNew) {
                 $lTableID = $this->clsUFC->lAddNewUFTable();
                 $this->session->set_flashdata('msg', 'The new ' . $strLabel . $strMultiLabel . ' table was added');
                 redirect('admin/uf_fields/view/' . $lTableID);
             } else {
                 $this->clsUFC->lTableID = $lTableID;
                 $this->clsUFC->updateUFTable();
                 $this->session->set_flashdata('msg', 'The ' . $strLabel . $strMultiLabel . ' table was updated');
                 redirect('admin/personalization/overview/' . $enumTType);
             }
         }
     }
 }
 function remove($lReportID)
 {
     //---------------------------------------------------------------------
     //
     //---------------------------------------------------------------------
     global $glUserID;
     $this->load->helper('dl_util/verify_id');
     verifyID($this, $lReportID, 'custom report ID');
     $lReportID = (int) $lReportID;
     //------------------------------------------------
     // libraries and utilities
     //------------------------------------------------
     $this->load->helper('reports/search');
     $this->load->helper('dl_util/context');
     $this->load->helper('creports/creport_field');
     $this->load->helper('reports/creport_util');
     $this->load->model('admin/madmin_aco');
     $this->load->model('creports/mcreports', 'clsCReports');
     //------------------------------------------------
     // load report
     //------------------------------------------------
     $displayData['cRptTypes'] = loadCReportTypeArray();
     $this->clsCReports->loadReportViaID($lReportID, true);
     $displayData['report'] = $report =& $this->clsCReports->reports[0];
     if (!$report->bUserHasWriteAccess) {
         vid_bTestFail($this, false, 'Custom Report', $lReportID);
         return;
     }
     $this->clsCReports->removeCReport($lReportID);
     redirect('creports/custom_directory/view/' . $glUserID);
 }