Your IP : 216.73.217.79


Current Path : /var/www/cesa.co.za/php/templates/
Upload File :
Current File : /var/www/cesa.co.za/php/templates/msd-questionnaire.php

<?php
if (session_id() == "")
    session_start(); // Initialize Session data

require_once($_SERVER['DOCUMENT_ROOT'] . "/php/includes/ADQAudit.php");

$sTable = "";
if (isset($_GET["forprev"]))
    $sTable = "ADQFirms_Prev ";

$adqAuditObj = new ADQAudit($sqlf);
$adqAuditObj->checkAudit($ADQFirmID);
$adqAuditObj->checkAuditScore($ADQFirmID);

if (strlen($ADQFirmID) <= 0) {
    $ADQFirmID = '0';
}

$sql = "SELECT " . $sTable . "ADQFirms.*, tblMemberFirms.FirmName, tblMemberFirms.DateJoined, "
    . "ADecQuestionnaires.*, ADQAudit.*, MAX(ADQAuditID) AS ADQAuditID, MIN(ADQAudit.ADQAuditID) AS FirstADQAuditID, "
    . "(SELECT COUNT(*) AS AnswerCount FROM ADQAnswers WHERE ADQFirmID=" . $ADQFirmID . ") AS AnswerCount "
    . "FROM " . $sTable . "ADQFirms "
    . "JOIN ADecQuestionnaires USING (ADQID) "
    . "JOIN tblMemberFirms USING (FirmID) "
    . "LEFT JOIN ADQAudit USING (ADQFirmID) "
    . "WHERE ADQFirmID=" . $ADQFirmID;

// echo $sql . '<br />';

$rec = mysqli_query($conni, $sql);

if ($rec) {
    $row = mysqli_fetch_assoc($rec);
} else {
    $row = array();
}

if (count($row) > 0 && $row["ADQFirmID"] > 0) {

    $MemberFirmID = $row["FirmID"];
    $QID = $row["ADQID"];
    $DeclarationYear = $row['AuditYear'];
    $iRefCols = 2;
    if ($QID == 3)
        $iRefCols = 1;

    $sHTMLExportFile = ADQAudit::getFileName($row['FirmName'], $row['ADQID']);

    $sql = "SELECT * FROM ADQAudit WHERE ADQAuditID=" . $row["ADQAuditID"] . ' ORDER BY DateUpdated DESC';
    //    echo $sql . '<br />';
    $recAudit = mysqli_query($conni, $sql);

    if ($recAudit) {
        $rowAudit = mysqli_fetch_assoc($recAudit);
    } else {
        $rowAudit = array();
    }

    ob_start();
?>
    <style>
        .adecqtable tr td {
            border: 1px solid #333333;
            /*	border-width:0px 1px 0px 1px; */
            padding: 5px !important;
        }

        .adecqtable tr {
            page-break-after: auto;
            page-break-before: auto;
            page-break-inside: avoid;
        }
    </style>

    <?php
    if ($pdf <= 0) {
    ?>
        <div class="printhide">
            <table align="center" border="0" cellpadding="4" cellspacing="0" width="100%">
                <tr>
                    <td align="left" valign="top" width="25%">
                        <p class="printhide"><a href="rptADecQuestionnaires.php?id=<?php echo $QID; ?>&auditYear=<?php echo $row['AuditYear']; ?>">Return to Report</a></p>
                        <p class="printhide"><a href="exportpdf.php?from=<?php echo $sHTMLExportFile; ?>&to=<?php echo $sHTMLExportFile; ?>&o=landscape" target="_blank">Export to PDF</a></p>
                        <p class="printhide">You are logged in and interacting with this review as user name: <?php echo CurrentUserName(); ?></p>
                    </td>
                    <td align="left" valign="top" width="25%">

                        <input type="button" value="Usefull Links" id="btnUsefullLinks" onclick="$('#usefulLinks').dialog('open'); return false;" />

                        <div id="usefulLinks" class="ChangeAnswerDialog" title="Useful Links">
                            <h3>
                                Useful Links:
                            </h3>
                            <ul>
                                <li>
                                    <a href="https://view.officeapps.live.com/op/view.aspx?src=https%3A%2F%2Fwww.cesa.co.za%2Fuploads%2F20201114_-_CESA_MSD_Procedure_-_Final_draft.docx&wdOrigin=BROWSELINK"
                                        target="_blank">Procedure: CESA Management System Declarations (MSDs)</a>
                                </li>
                            </ul>
                            <?php
                            if ($row['ADQID'] == 1) {
                                //FIMS
                            ?>
                                <p>
                                    The declaration below consists of a number of questions used to evaluate the level of system development of a member firm’s Integrity Management System and is based on the following guidelines:
                                </p>
                                <ul>
                                    <li>
                                        <a href="https://www.dropbox.com/scl/fo/ig3gfuql2norkyykndfy9/h/_Integrity%20Management%20System%20%28FIMS%29%20Guidelines%201st%20Ed%20%282011%29%20Part1.pdf?rlkey=2qhukdmqa3jw0j0t3c9838qzi&dl=0"
                                            target="_blank">FIDIC Guidelines for Integrity Management in the Consulting Industry Part I – Policies and Principles 1st Edition 2011</a>
                                    </li>
                                    <li>
                                        <a href="https://www.dropbox.com/scl/fo/ig3gfuql2norkyykndfy9/h/_Guidelines%20for%20Integrity%20Management%20System%20in%20the%20Consulting%20Industry%201st%20Ed%20%282015%29%20Part%202.pdf?rlkey=2qhukdmqa3jw0j0t3c9838qzi&dl=0"
                                            target="_blank">FIDIC Guidelines for Integrity Management in the Consulting Industry Part II – FIMS Procedures 1st Edition 2015</a>
                                    </li>
                                </ul>
                            <?php
                            } elseif ($row['ADQID'] == 2) {
                                //QMS
                            ?>
                                <p>
                                    The declaration below consists of a number of questions used to evaluate the level of system development of a member firm’s Quality Management System and is based on the following guidelines:
                                </p>
                                <ul>
                                    <li>
                                        <a href="https://www.dropbox.com/scl/fo/ig3gfuql2norkyykndfy9/h/_Quality%20Management%20Guide%202nd%20Ed%20%282001%29.pdf?rlkey=2qhukdmqa3jw0j0t3c9838qzi&dl=0"
                                            target="_blank">FIDIC Guide to Quality Management in the Consulting Engineering Industry (copyright 2001)</a>
                                    </li>
                                    <li>
                                        <a href="https://www.dropbox.com/scl/fo/ig3gfuql2norkyykndfy9/h/_ISO%209001_2015%20Interpretation%20Guide%201st%20Ed%20%282017%29.pdf?rlkey=2qhukdmqa3jw0j0t3c9838qzi&dl=0"
                                            target="_blank">FIDIC Guide to the interpretation and application of the ISO9001:2015 standard for the Consulting Engineering Industry (copyright 2017)</a>
                                    </li>
                                    <li>
                                        <a href="https://www.cesa.co.za/wp-content/uploads/2022/01/20220126-QMIG-with-cover.pdf"
                                            target="_blank">Quality Management Implementation Guideline (QMIG)</a>
                                    </li>
                                    <li>
                                        <a href="https://www.cesa.co.za/wp-content/uploads/2022/01/20220126-RMIG-with-cover.pdf"
                                            target="_blank">CESA Risk Management Implementation Guideline (RMIG)</a>
                                    </li>
                                </ul>
                            <?php
                            } elseif ($row['ADQID'] == 3) {
                                //PSM
                            ?>
                                <p>
                                    The declaration below consists of a number of questions used to evaluate the level of system development of a member firm’s Project Sustainability Management System and is based on the
                                    following guidelines:
                                </p>
                                <ul>
                                    <li>
                                        <a href="https://www.dropbox.com/scl/fo/ig3gfuql2norkyykndfy9/h/_Project%20Sustainability%20Management%20-%20Applications%20Manual%20-%202nd%20edition%202013.pdf?rlkey=2qhukdmqa3jw0j0t3c9838qzi&dl=0"
                                            target="_blank">FIDIC Project Sustainability Management Applications Manual Second Edition 2013</a>
                                    </li>
                                </ul>
                            <?php
                            }
                            ?>
                        </div>
                    </td>
                </tr>
            </table>

        </div>
    <?php
    }
    ?>

    <h1><?php echo $row["QuestionnaireName"]; ?></h1>
    <h2><?php echo $row["FirmName"]; ?></h2>
    <?php
    if (!empty($row["DateJoined"]) && strtotime($row["DateJoined"]) > 0) {
        $dateJoined = new DateTime($row["DateJoined"]);
        ?>
        <h3>Date Joined: <?php echo $dateJoined->format('d-m-Y'); ?></h3>
        <?php
    } else {
        ?>
        Date Joined: Not Captured
        <?php
    }
    ?>
    <?php
    if (!empty($row["DateCompleted"])) { 
        ?>
        <h3>MSD Submitted on <?php echo date("Y-m-d", strtotime($row["DateCompleted"])); ?><?php if (!empty($row["ScorePerc"])) { ?>
            , Score: <?php echo $row["ScorePerc"]; ?>%
        <?php
    }

    if ($rowAudit && count($rowAudit) > 0) {
        ?>, Verified on <?php echo date("Y-m-d", strtotime($rowAudit["DateUpdated"])); ?>
        <?php
        if (!empty($row["AuditScorePerc"])) {
        ?>, Verified Score: <?php echo $row["AuditScorePerc"]; ?>%
        <?php
        } else {
        ?>, Verified Score Not Captured
        <?php
        }
    }
    ?>, Answers: <?php echo ADQFirms::answerCountIndicator($row["AnswerCount"]); ?>
        </h3>
    <?php
    }

    $adqFirm = $row;
    $adqAudit = $rowAudit;
    $Questionnaire_ID = $QID;

    include($_SERVER['DOCUMENT_ROOT'] . '/php/templates/msd-review-popup.php');

    if (isset($_POST["go"]) && ($_POST["go"] == "Audit")) {
    ?>
        <div class="printhide ewMessage" style="border:1px solid black">
            <p><b>Review responses saved.</b></p>
        </div>
    <?php
    }
    $sql = "SELECT * FROM ADQAudit JOIN ADQFirms USING (ADQFirmID) "
        . "WHERE ADQFirms.ADQID=" . $QID . " "
        . "AND ADQFirms.FirmID=" . $MemberFirmID . " "
        . "AND ADQFirms.ADQFirmID = " . $ADQFirmID . " ORDER BY ADQAudit.DateUpdated DESC";

    //    echo $sql . '<br />';

    $bLockAuditAnswers = false;
    $bAuditStarted = false;
    $recAudit = mysqli_query($conni, $sql);
    if ($rowAudit = mysqli_fetch_assoc($recAudit)) {
        $bAuditStarted = true;
        if (($rowAudit["Verified"] == "Y") || ($rowAudit["Verified"] == "C"))
            $bLockAuditAnswers = true;
    }
    mysqli_free_result($recAudit);

    $arrFileQs = array(71, 73, 91);

    $sql = "SELECT ADQuestions.ADQuestionID, ADQAnswers.* FROM ADQuestions JOIN " . $sTable . "ADQFirms USING (ADQID) "
        . "LEFT JOIN ADQAnswers USING (ADQFirmID, ADQuestionID) "
        . "WHERE ADQFirms.ADQID=" . $QID . " AND ADQFirms.FirmID=" . $MemberFirmID . " AND ADQFirms.ADQFirmID = " . $ADQFirmID;

    //                echo $sql . '<br />';

    $recExist = mysqli_query($conni, $sql);
    while ($rowExist = mysqli_fetch_assoc($recExist)) {
        if (in_array($rowExist["ADQuestionID"], $arrFileQs)) {
            $arrExist["Ques" . $rowExist["ADQuestionID"]] = "<a href='uploads/" . $rowExist["Answer"] . "' target='_blank'>" . $rowExist["Answer"] . "</a>";
        } else {
            $arrExist["Ques" . $rowExist["ADQuestionID"]] = $rowExist["Answer"];
        }
        $arrExist["Evidence" . $rowExist["ADQuestionID"]] = $rowExist["Evidence"];
        $arrExist["Justification" . $rowExist["ADQuestionID"]] = $rowExist["Justification"];
        $arrExist["ReviewerChangedAnswer" . $rowExist["ADQuestionID"]] = $rowExist["ReviewerChangedAnswer"];
    }
    ?>
    <form method="post" action="rptADQFirm.php">
        <input type="hidden" name="go" value="Audit">
        <input type="hidden" id="ADQFirmID" name="ADQFirmID" value="<?php echo $ADQFirmID; ?>">
        <input type="hidden" id="ADQAuditID" name="ADQAuditID" value="<?php echo $row["ADQAuditID"]; ?>">
        <table border="1" cellspacing="0" cellpadding="5" width="100%" class="adecqtable">
            <?php
            $sql = "SELECT * FROM ADQSections WHERE ADQID=" . $QID;
            $sql .= " ORDER BY SectionNum";

            //            echo $sql . '<br />';

            $recS = mysqli_query($conni, $sql);
            $iNumSections = 0;
            $bHeadingsShown = false;
            $firstAnswer = null;
            while ($rowS = mysqli_fetch_assoc($recS)) {
                $iNumSections++;
                if (!$bHeadingsShown) {
                    $bHeadingsShown = true;
            ?>
                    <tr>
                        <td><b>No.</b></td>
                        <td><b>Ref1</b></td><?php if ($iRefCols > 1) { ?><td><b>Ref2</b></td><?php } ?><td width="40%"><b>Declaration</b></td>
                        <td colspan="5"><b>Level of System Development</b></td>
                    </tr>
                    <tr>
                        <td colspan="<?php echo 2 + $iRefCols; ?>">
                            <p>
                                Please consult the '<strong>Procedure: CESA Management System Declarations (MSDs)</strong>'
                                for guidance on how to complete the Management System Declaration.
                                <a href="https://www.cesa.co.za/uploads/20201114_-_CESA_MSD_Procedure_-_Final_draft_CC_DL_review.pdf" target="_blank">Click here</a>
                                to view the Procedure.
                            </p>
                        </td>
                        <td><b>Answer</b></td>
                        <td><b>If yes, have evidence for verification</b></td>
                        <td><b>If NA, give justification</b></td>
                        <td><b>Review</b></td>
                    </tr>
                    <?php
                }
                $sql = "SELECT * FROM ADQuestions WHERE ADQID=" . $QID . " AND SectionNum=" . $rowS["SectionNum"] . " ORDER BY QuestionNum";

                //                echo $sql . '<br />';

                $recQ = mysqli_query($conni, $sql);
                while ($rowQ = mysqli_fetch_assoc($recQ)) {
                    if (isset($_POST["go"]) && ($_POST["go"] == "Audit")) {
                        $sql = "REPLACE INTO ADQAuditAnswers (ADQQuestionID, ADQFirmID, DateUpdated, UpdatedBy, Comments, Verified)
                            VALUES (" . intval($rowQ["ADQuestionID"]) . ", " . intval($_POST["ADQFirmID"]) . ", NOW(), '" . CurrentUserName() . "', '" . addslashes($_POST["Comments_" . $rowQ["ADQuestionID"]]) . "', "
                            . "'" . addslashes($_POST["Verified_" . $rowQ["ADQuestionID"]]) . "')";

                        mysqli_query($conni, $sql);

                        if (mysqli_affected_rows($conni) <= 0 || mysqli_errno($conni) > 0) {
                            maill(
                                'cesa-msds@igotafrica.com',
                                'Error on Audit answer insert: ' . $rowQ["ADQuestionID"],
                                'Error ' . print_r(mysqli_error_list($conni), true),
                                null,
                                [
                                    'from-name' => 'CESA MSDS',
                                    'from-address' => 'info@cesa.co.za',
                                    'reply-to-address' => 'info@cesa.co.za',
                                ]
                            );
                        }
                    }

                    if ($iNumSections < mysqli_num_rows($recS)) {

                        if (is_null($firstAnswer) && $rowS["SectionNum"] == 1) {

                            if ($arrExist["Ques" . $rowQ["ADQuestionID"]] == '') {
                                $arrExist["Ques" . $rowQ["ADQuestionID"]] = 'No';
                            }

                            $firstAnswer = $arrExist["Ques" . $rowQ["ADQuestionID"]];
                            //                            echo $rowQ["ADQuestionID"];
                        }

                        //                        echo $rowQ["ADQuestionID"] . ': ' . $firstAnswer . ' - ' . $rowS["SectionNum"] . '<br />';

                        if ($rowS["SectionNum"] == 1 && ($firstAnswer == 'No' || $firstAnswer == '') && $rowQ["QuestionNum"] >= 2 && $rowQ["QuestionNum"] <= 8) {
                            //                            echo 'Continnuing section num<br />';
                            continue;
                        }

                        if ($firstAnswer == 'Yes' && $rowS["SectionNum"] > 1) {
                            //                            echo $rowQ["QuestionNum"] . ' Continnuing first answer is Yes<br />';
                            continue;
                        }

                        if ($rowS['SectionNum'] == 1) {
                            $rowQ["QuestionNum"] = chr(64 + $rowQ["QuestionNum"]);
                        }
                    ?>
                        <tr>
                            <td valign="top"><?php echo $rowQ["QuestionNum"]; ?></td>
                            <td valign="top"><?php echo nl2br($rowQ["Ref1"]); ?></td>
                            <?php if ($iRefCols > 1) { ?>
                                <td valign="top"><?php echo nl2br($rowQ["Ref2"]); ?></td>
                            <?php } ?>
                            <td valign="top"><?php echo $rowQ["Question"]; ?><br><br>
                                <i><?php echo nl2br(str_replace("\\", "", $rowQ["Explanation"])); ?></i>
                            </td>
                            <td valign="top" align="center" <?php if (false && $arrExist["Ques" . $rowQ["ADQuestionID"]] == "No") echo " style='background-color:red;color:white'"; ?>>
                                <?php echo str_replace("\\", "", $arrExist["Ques" . $rowQ["ADQuestionID"]]); ?>
                            </td>
                            <td valign="top">
                                <?php echo str_replace("\\", "", $arrExist["Evidence" . $rowQ["ADQuestionID"]]); ?>
                            </td>
                            <td valign="top">
                                <?php echo str_replace("\\", "", $arrExist["Justification" . $rowQ["ADQuestionID"]]); ?>
                            </td>
                            <td>
                                <?php
                                $arrAudit = array();
                                $sql = "SELECT * FROM ADQAuditAnswers WHERE ADQFirmID=" . $ADQFirmID . " AND ADQQuestionID=" . $rowQ["ADQuestionID"];

                                //                                echo $sql . '<br />';

                                $recAudit = mysqli_query($conni, $sql);
                                if ($rowAudit = mysqli_fetch_assoc($recAudit)) {
                                    $arrAudit = $rowAudit;
                                }
                                mysqli_free_result($recAudit);
                                if (!$bLockAuditAnswers && $pdf <= 0) {
                                ?>
                                    <span id="autoSaveStatus_<?php echo $rowQ["ADQuestionID"]; ?>"></span>
                                    <input type="radio" name="Verified_<?php echo $rowQ["ADQuestionID"]; ?>"
                                        value="" <?php if ($bAuditStarted && (!isset($arrAudit["Verified"]) || empty($arrAudit["Verified"]))) echo " checked"; ?> class="autoSave"
                                        data-adquestionid="<?php echo $rowQ["ADQuestionID"]; ?>" data-adqauditid="<?php echo $arrAudit["ADQAuditID"]; ?>"
                                        data-field-name="Verified">
                                    Verification in progress / pending<br>
                                    <input type="radio" name="Verified_<?php echo $rowQ["ADQuestionID"]; ?>"
                                        value="Y" <?php if (isset($arrAudit["Verified"]) && ($arrAudit["Verified"] == "Y")) echo " checked"; ?> class="autoSave"
                                        data-adquestionid="<?php echo $rowQ["ADQuestionID"]; ?>" data-adqauditid="<?php echo $arrAudit["ADQAuditID"]; ?>"
                                        data-field-name="Verified">
                                    Verified<br>
                                    <input type="radio" name="Verified_<?php echo $rowQ["ADQuestionID"]; ?>"
                                        value="C" <?php if (isset($arrAudit["Verified"]) && ($arrAudit["Verified"] == "C")) echo " checked"; ?> class="autoSave"
                                        data-adquestionid="<?php echo $rowQ["ADQuestionID"]; ?>" data-adqauditid="<?php echo $arrAudit["ADQAuditID"]; ?>"
                                        data-field-name="Verified">
                                    Verified With Comments<br>
                                    <input type="radio" name="Verified_<?php echo $rowQ["ADQuestionID"]; ?>"
                                        value="N" <?php if (isset($arrAudit["Verified"]) && ($arrAudit["Verified"] == "N")) echo " checked"; ?> class="autoSave"
                                        data-adquestionid="<?php echo $rowQ["ADQuestionID"]; ?>" data-adqauditid="<?php echo $arrAudit["ADQAuditID"]; ?>"
                                        data-field-name="Verified">
                                    Not Verified - evidence could not be demonstrated<br>
                                    <textarea name="Comments_<?php echo $rowQ["ADQuestionID"]; ?>" placeholder="Comments" rows="10" cols="40" class="autoSave"
                                        data-adquestionid="<?php echo $rowQ["ADQuestionID"]; ?>" data-adqauditid="<?php echo $arrAudit["ADQAuditID"]; ?>"
                                        data-field-name="Comments"><?php echo @$arrAudit["Comments"]; ?></textarea>
                                <?php
                                    $ADQuestionID = $rowQ["ADQuestionID"];
                                    $answer = $arrExist["Ques" . $rowQ["ADQuestionID"]];
                                    $evidence = $arrExist["Evidence" . $rowQ["ADQuestionID"]];
                                    $justification = $arrExist["Justification" . $rowQ["ADQuestionID"]];

                                    include($_SERVER['DOCUMENT_ROOT'] . '/php/templates/msd/change-answer-popup.php');
                                } else {
                                    echo ADQAudit::getStatus($arrAudit["Verified"]);
                                    echo "<p>" . $arrAudit["Comments"] . "</p>";
                                }

                                if (isset($arrExist["ReviewerChangedAnswer" . $rowQ["ADQuestionID"]]) && $arrExist["ReviewerChangedAnswer" . $rowQ["ADQuestionID"]] > 0) {
                                ?>
                                    <div class="alert alert-info">
                                        Reviewer changed answer
                                    </div>
                                <?php
                                }
                                ?>
                            </td>
                        </tr>
                    <?php
                    } else {
                    ?>
                        <tr>
                            <td colspan="<?php echo 2 + $iRefCols; ?>" valign="top"><?php echo $rowQ["Question"]; ?><br><br>
                                <i><?php echo nl2br($rowQ["Explanation"]); ?></i>
                            </td>
                            <td colspan="5" valign="top">
                                <?php echo $arrExist["Ques" . $rowQ["ADQuestionID"]]; ?>
                            </td>
                        </tr>
            <?php
                    }
                }
            }
            ?>
        </table>
        <?php if (!$bLockAuditAnswers) { ?>
            <input type="submit" value="Save Review" class="printhide">
        <?php } ?>
    </form>
<?php
    $htmlexport = ob_get_flush();

    file_put_contents($_SERVER['DOCUMENT_ROOT'] . "/echasl23/pdfexport/" . $sHTMLExportFile . '.html', $sPDFHeaderHTML . $htmlexport . $sPDFFooterHTML);
} else {
    /*
      ?>
      <h3>MSD not completed yet</h3>
      <?php
     *
     */
}
?>
<script type="text/javascript" src="/js/msd.js"></script>