Your IP : 216.73.217.79


Current Path : /var/www/cesa.co.za/
Upload File :
Current File : /var/www/cesa.co.za/awards-from-forminator.php

<?php

// Start output buffering to prevent "headers already sent" warnings
ob_start();

ini_set('display_errors', 1);
error_reporting(E_ALL);
//header('Content-type: text/json');

// Set required server variables for WordPress
if (!isset($_SERVER['HTTP_HOST'])) {
    $_SERVER['HTTP_HOST'] = 'localhost';
}
if (!isset($_SERVER['REQUEST_URI'])) {
    $_SERVER['REQUEST_URI'] = '/';
}

if (!isset($_SERVER['DOCUMENT_ROOT']) || strlen($_SERVER['DOCUMENT_ROOT']) <= 0) {
    $_SERVER['DOCUMENT_ROOT'] = str_replace('/crons', '', getcwd());
}

// echo $_SERVER['DOCUMENT_ROOT'];
// exit;

include_once($_SERVER['DOCUMENT_ROOT'] . "/ADOdb/adodb.inc.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/vendor/autoload.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/cfg/config.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/php/includes/sqlFunctions.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/php/includes/BaseTableClass.php");
include_once($_SERVER['DOCUMENT_ROOT'] . "/php/includes/MemberFirm.php");

// Load WordPress with error handling
try {
    require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
    echo 'WordPress loaded successfully' . "\r\n";
} catch (Exception $e) {
    echo 'Error loading WordPress: ' . $e->getMessage() . "\r\n";
    exit(1);
}

// Verify WordPress functions are available
if (!function_exists('get_post_meta')) {
    echo 'WordPress function get_post_meta is not available. WordPress may not have loaded properly.' . "\r\n";
    exit(1);
}

$sqlfWP = new sqlFunctions(WP_HOST, WPDB_USER, WPDB_PASS, WPDB_DB);
$wpFormsSQL = "SELECT * FROM wp_posts p "
    . "INNER JOIN wp_postmeta pm ON p.id = pm.post_id "
    . "WHERE p.post_type = 'forminator_forms'";

echo $wpFormsSQL . "\r\n";

$wpForms = $sqlfWP->getAll($wpFormsSQL);

$forms = array();

echo count($wpForms) . " forms found\r\n";

foreach ($wpForms as $wpForm) {

    $formMeta = get_post_meta($wpForm['ID']);
    $forminatorMeta = unserialize($formMeta['forminator_form_meta'][0]);
    $forms[$forminatorMeta['settings']['form_name']] = array('name' => $forminatorMeta['settings']['formName'], 'fields' => array(), 'entries' => array());
    $entriesFinal = array();

    //    var_dump(array_keys($wpForm));
    //    echo $forminatorMeta['settings']['form_name'] . ' - ' . $forminatorMeta['settings']['formName'];
    //    echo '<br /> ';

    foreach ($forminatorMeta['fields'] as $field) {

        if (isset($field['field_label'])) {

            //            echo 'Field ID: ' . $field['id'] . ' - Label: ' . $field['field_label'] . '<br />';

            $forms[$forminatorMeta['settings']['form_name']]['fields'][$field['id']] = array('label' => $field['field_label']);
        }
    } //foreach

    $entrySQL = "SELECT * FROM wp_frmt_form_entry WHERE form_id = " . $wpForm['ID'];

    $formEntries = $sqlfWP->getAll($entrySQL);

    $entries = array();

    //    echo '<br />Entries:<br/>';
    foreach ($formEntries as $formEntry) {

        $oneEntry = array(
            'ExternalFormID' => $forminatorMeta['settings']['form_name'],
            'ExternalEntryID' => $formEntry['entry_id'],
            'EntryFormName' => $forminatorMeta['settings']['formName'],
            'FirmName' => '',
            'FormFields' => array(),
            'PreEntryHTML' => '<table border="0" cellpadding="4" cellspacing="0" border="0">',
            'FullEntryHTML' => '',
            'JV_Partners' => '',
        );

        $entries[$formEntry['entry_id']] = array();

        foreach ($forms[$forminatorMeta['settings']['form_name']]['fields'] as $fieldId => $vals) {

            $fieldSQL = "SELECT * FROM wp_frmt_form_entry_meta WHERE entry_id = " . $formEntry['entry_id'] . " AND meta_key = '" . $fieldId . "'";
            //            echo $fieldSQL . ' <br />';

            $fieldValue = $sqlfWP->getRow($fieldSQL);
            $labelText = trim($forms[$forminatorMeta['settings']['form_name']]['fields'][$fieldId]['label']);
            //            echo 'Label: ' . $labelText . '<br />';

            if (is_array($fieldValue) && isset($fieldValue['meta_value'])) {

                if (in_array($fieldId, array('text-1'))) {
                    $oneEntry['Firm_Name'] = $fieldValue['meta_value'];
                }

                if ($labelText == 'Which awards category(ies) are you entering for? (Please select all relevant)' || $labelText == 'Name of Award Category' || $labelText == 'Which Award Category is the Submission for?') {
                    $numEntries = 0;
                    if (strpos(' ' . $fieldValue['meta_value'], '{') > 0) {
                        $fieldValue['meta_value'] = unserialize($fieldValue['meta_value']);
                        if (is_array($fieldValue['meta_value'])) {
                            $numEntries = count($fieldValue['meta_value']);
                            $fieldValue['meta_value'] = implode(', ', $fieldValue['meta_value']);
                        }
                    }

                    if ($numEntries <= 0) {
                        $numEntries = 1;
                    }

                    $oneEntry['Award_Category'] = $fieldValue['meta_value'];
                    //                    echo $labelText . ' found category: ' . $oneEntry['Award_Category'] . '<br />';
                } else {
                    //                    echo 'label not category: ' . $labelText . '<br />';
                }

                if (in_array($fieldId, array('date-1', 'date-3', 'date-5', 'date-7', 'date-9'))) {
                    $oneEntry['Start_Date'] = $fieldValue['meta_value'];
                }

                if ($labelText == 'Name of Project Entered' || $labelText == 'Project Title') {
                    $oneEntry['Project_Name'] = $fieldValue['meta_value'];
                }

                if (in_array($fieldId, array('date-2', 'date-4', 'date-6', 'date-8', 'date-10'))) {
                    $oneEntry['End_Date'] = $fieldValue['meta_value'];
                    $oneEntry['Completion_Date'] = $fieldValue['meta_value'];
                    //                    echo $oneEntry['End_Date'] . '<br />';
                }

                if ($labelText == 'Full Name' || $labelText == 'Company Contact Person') {
                    $oneEntry['Lead_Consultant_Name'] = $fieldValue['meta_value'];
                }

                if ($labelText == 'Office Number') {
                    $oneEntry['Lead_Consultant_Tel'] = $fieldValue['meta_value'];
                }

                if ($labelText == 'Mobile Number' || $labelText == 'Phone Number of Contact Person') {
                    $oneEntry['Lead_Consultant_Mobile'] = $fieldValue['meta_value'];
                }

                if (substr($fieldId, 0, 5) == 'email') {
                    $oneEntry['Lead_Consultant_Email'] = $fieldValue['meta_value'];
                }

                if (substr($fieldId, 0, 5) == 'radio') {
                    $oneEntry['A1_Poster_Required'] = $fieldValue['meta_value'];
                }

                if ($labelText == 'Job Title') {
                    $oneEntry['Role_In_Project'] = $fieldValue['meta_value'];
                }

                if ($labelText == 'JV Partner Name' || in_array($fieldId, array('text-4', 'text-5', 'text-6', 'text-7', 'text-8', 'text-9'))) {
                    if (strlen($oneEntry['JV_Partners']) > 0) {
                        $oneEntry['JV_Partners'] .= ', ';
                    }
                    $oneEntry['JV_Partners'] .= $fieldValue['meta_value'];
                }

                if (substr($fieldId, 0, 6) == 'upload') {
                    $fieldValue['meta_value'] = unserialize($fieldValue['meta_value']);

                    if (is_array($fieldValue['meta_value']) && count($fieldValue['meta_value']) > 0 && isset($fieldValue['meta_value']['file']) && $fieldValue['meta_value']['file']['success']) {

                        if (is_array($fieldValue['meta_value']['file']['file_url'])) {
                            $fieldValue['meta_value']['file']['file_url'] = $fieldValue['meta_value']['file']['file_url'][0];
                        }

                        if (!isset($fieldValue['meta_value']['file']['file_name'])) {
                            $fieldValue['meta_value']['file']['file_name'] = substr($fieldValue['meta_value']['file']['file_url'], strrpos('/', $fieldValue['meta_value']['file']['file_url']));
                        }

                        $fieldValue['meta_value'] = '<a href="' . $fieldValue['meta_value']['file']['file_url'] . '" target="_blank">' . $fieldValue['meta_value']['file']['file_name'] . '</a>';
                    }
                }

                $oneEntry['FormFields'][] = array(
                    'id' => $fieldId,
                    'label' => $labelText,
                    'value' => $fieldValue['meta_value'],
                );

                //                echo $fieldId . ' - ' . $labelText . ' = ' . $fieldValue['meta_value'] . '<br />';
                $entries[$formEntry['entry_id']][$fieldId] = array('label' => $forms[$forminatorMeta['settings']['form_name']]['fields'][$fieldId]['label'], 'value' => $fieldValue['meta_value']);
            } else {
                //                var_dump($fieldValue);
                //                echo '<br />';
            }
        } //foreach fields

        foreach ($oneEntry['FormFields'] as $oneFormField) {

            if (is_array($oneFormField['value'])) {
                $oneFormField['value'] = print_r($oneFormField['value'], true);
            }

            $oneEntry['PreEntryHTML'] .= '<tr><td align="left" valign="top" width="40%"><b>' . $oneFormField['label'] . ':</b></td><td align="left" valign="top">' . $oneFormField['value'] . '</td></tr>';
        }

        $oneEntry['PreEntryHTML'] .= '</table>';

        //        echo '<br />Entry For DB:<br />';
        $entriesFinal[] = $oneEntry;
        //        exit;
        //        unset($oneEntry['FormFields']);
        //        echo nl2br(print_r($oneEntry, true));
        //        echo 'Entry done<br /><br />';
    } //foreach entries

    echo '<h4>' . $forminatorMeta['settings']['form_name'] . '</h4>';
    $firmObj = new MemberFirm($sqlf);

    foreach ($entriesFinal as $oneEntry) {

        if (is_numeric($oneEntry['Firm_Name'])) {
            $firmArr = $firmObj->find($oneEntry['Firm_Name']);

            if (is_array($firmArr) && count($firmArr) > 0) {
                $oneEntry['Firm_Name'] = $firmArr['FirmName'];
            }

            //            echo $oneEntry['Firm_Name'];
            //            exit;
        }

        if (in_array(
            $forminatorMeta['settings']['form_name'],
            array('pre-entry-form-project-awards', 'pre-entry-form-business-development-award', 'pre-entry-form-individual-awards', 'pre-entry-form-client-awards', 'Pre-Entry Form: Individual Awards')
        )) {

            $currentEntry = $sqlf->getRow("SELECT * FROM AwardsEntries WHERE ExternalFormID = '" . $oneEntry['ExternalFormID'] . "' "
                . "AND ExternalEntryID = '" . $oneEntry['ExternalEntryID'] . "' AND PreEntry = 1");

            if (!is_array($currentEntry) || count($currentEntry) <= 0) {

                $sqlf->execute("INSERT INTO AwardsEntries (Firm_Name, ExternalFormID, ExternalEntryID, PreEntry, AwardYear) "
                    . "VALUES ('" . $oneEntry['Firm_Name'] . "', '" . $oneEntry['ExternalFormID'] . "', '" . $oneEntry['ExternalEntryID'] . "', 1, " . date('Y') . ")");

                $currentEntry = $sqlf->getRow("SELECT * FROM AwardsEntries WHERE ExternalFormID = '" . $oneEntry['ExternalFormID'] . "' "
                    . "AND ExternalEntryID = '" . $oneEntry['ExternalEntryID'] . "'");
            }

            $currentEntry = array_merge($currentEntry, $oneEntry);
            unset($currentEntry['FormFields']);
            $currentEntry['FullEntryHTML'] = '';
            $currentEntry['AwardYear'] = date('Y');

            $sqlf->autoExecute('AwardsEntries', $currentEntry, 'UPDATE', 'AwardsEntryID = ' . $currentEntry['AwardsEntryID'], 'AwardsEntryID');

            echo 'Entry ID: ' . $currentEntry['AwardsEntryID'] . '<br />';
            //            var_dump($oneEntry);
            //            echo '<br /><br />';
            //            var_dump($currentEntry);
            //            echo '<br /><br /> ';
            //            exit;
        } else {

            if (!isset($oneEntry['Award_Category'])) {
                $oneEntry['Award_Category'] = '';
            }

            if (!isset($oneEntry['Award_Category']) || strlen($oneEntry['Award_Category']) <= 0) {
                if ($forminatorMeta['settings']['form_name'] == 'full-submission-projects-less-then-50-million') {
                    $oneEntry['Award_Category'] = 'Projects less than R50 million';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-projects-ranging-from-r50-less-than-r250-million') {
                    $oneEntry['Award_Category'] = 'Projects ranging from R50 – less than R250 million';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-projects-ranging-from-r250-less-than-r1-billion') {
                    $oneEntry['Award_Category'] = 'Projects ranging from R250 – less than R1 billion';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-mega-projects-greater-than-r1-billion') {
                    $oneEntry['Award_Category'] = 'Mega Projects greater than R1 billion';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-best-international-projects') {
                    $oneEntry['Award_Category'] = 'Best International Projects';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-water-sanitation-and-hygiene-wash-design-excellence-award') {
                    $oneEntry['Award_Category'] = 'Engineering Technology and Innovation: Water, Sanitation, and Hygiene (Wash) Design Excellence Award';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-hvac-building-systems-design-excellence-award') {
                    $oneEntry['Award_Category'] = 'Engineering Technology and Innovation: HVAC Building Systems Design Excellence Award';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-business-development-awards') {
                    //TODO: Is this correct mapping?
                    $oneEntry['Award_Category'] = 'Business Excellence Award';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-individual-awards') {
                    $oneEntry['Award_Category'] = 'Individual Awards';
                } elseif ($forminatorMeta['settings']['form_name'] == 'full-submission-client-awards') {
                    $oneEntry['Award_Category'] = 'Client Awards';
                } elseif ($forminatorMeta['settings']['form_name'] == 'project-awards-full-submission') {
                    $oneEntry['Award_Category'] = 'Project Awards';
                } else {
                }
            }

            $currentEntry = $sqlf->getRow("SELECT * FROM AwardsEntries "
                . "WHERE ExternalFormID = '" . $oneEntry['ExternalFormID'] . "' AND Firm_Name = '" . $oneEntry['Firm_Name'] . "' "
                . "AND Award_Category LIKE '%" . $oneEntry['Award_Category'] . "%' AND PreEntry = 0");

            if (!is_array($currentEntry) || count($currentEntry) <= 0) {

                $sqlf->execute("INSERT INTO AwardsEntries (Award_Category, Firm_Name, ExternalFormID, ExternalEntryID, PreEntry, AwardYear) "
                    . "VALUES ('" . $oneEntry['Award_Category'] . "', '" . $oneEntry['Firm_Name'] . "', '" . $oneEntry['ExternalFormID'] . "', "
                    . "'" . $oneEntry['ExternalEntryID'] . "', 0, " . date('Y') . ")");

                $currentEntry = $sqlf->getRow("SELECT * FROM AwardsEntries "
                    . "WHERE ExternalFormID = '" . $oneEntry['ExternalFormID'] . "' AND Firm_Name = '" . $oneEntry['Firm_Name'] . "' "
                    . "AND Award_Category LIKE '%" . $oneEntry['Award_Category'] . "%' AND PreEntry = 0");
            }

            $currentEntry = array_merge($currentEntry, $oneEntry);
            unset($currentEntry['FormFields']);

            $oneEntry['FullEntryHTML'] = '<table border="0" cellpadding="4" cellspacing="0" border="0">';

            foreach ($oneEntry['FormFields'] as $oneFormField) {
                $oneEntry['FullEntryHTML'] .= '<tr><td align="left" valign="top" width="40%"><b>' . $oneFormField['label'] . ':</b></td><td align="left" valign="top">' . $oneFormField['value'] . '</td></tr>';
            }
            $oneEntry['FullEntryHTML'] .= '</table>';

            $currentEntry['FullEntryHTML'] = $oneEntry['FullEntryHTML'];
            $currentEntry['PreEntryHTML'] = '';
            $currentEntry['AwardYear'] = date('Y');

            $sqlf->autoExecute('AwardsEntries', $currentEntry, 'UPDATE', 'AwardsEntryID = ' . $currentEntry['AwardsEntryID'], 'AwardsEntryID');

            echo 'Entry ID: ' . $currentEntry['AwardsEntryID'] . '<br />';
            //            var_dump($oneEntry);
            //            echo '<br /><br />';
            //            var_dump($currentEntry);
            //            echo '<br /><br />';
            //            exit;
        }
    }

    $forms[$forminatorMeta['settings']['form_name']]['entries'] = $entries;
    echo 'DONE one form!<br />';
} //foreach form
//echo json_encode($forms);
//echo nl2br(print_r($entriesFinal, true));
//echo '<br /><br />';