| Current Path : /var/www/cesa.co.za/php/includes/ |
| Current File : /var/www/cesa.co.za/php/includes/TrainingProvider.php |
<?php
include_once('BaseTableClass.php');
class TrainingProvider extends BaseTableClass {
public function checkCreateTable() {
$tableCreateSQL = "DROP TABLE IF EXISTS `TrainingProviders`;
CREATE TABLE IF NOT EXISTS `TrainingProviders` (
`ProviderID` int(11) NOT NULL AUTO_INCREMENT,
`CompanyName` varchar(255) DEFAULT NULL,
`ContactTitle` varchar(255) DEFAULT NULL,
`ContactInitials` varchar(255) DEFAULT NULL,
`ContactFirstName` varchar(255) DEFAULT NULL,
`ContactSurname` varchar(255) DEFAULT NULL,
`Designation` varchar(255) DEFAULT NULL,
`IDNumber` varchar(255) DEFAULT NULL,
`PhoneNumber` varchar(255) DEFAULT NULL,
`MobileNumber` varchar(255) DEFAULT NULL,
`FaxNumber` varchar(255) DEFAULT NULL,
`EmailAddress` varchar(255) DEFAULT NULL,
`Password` varchar(255) DEFAULT NULL,
`PhysicalAddress1` varchar(255) DEFAULT NULL,
`PhysicalAddress2` varchar(255) DEFAULT NULL,
`PhysicalCity` varchar(255) DEFAULT NULL,
`PhysicalCode` varchar(255) DEFAULT NULL,
`PhysicalProvince` varchar(255) DEFAULT NULL,
`PhysicalCountry` varchar(255) DEFAULT NULL,
`PostalAddress1` varchar(255) DEFAULT NULL,
`PostalAddress2` varchar(255) DEFAULT NULL,
`PostalCity` varchar(255) DEFAULT NULL,
`PostalCode` varchar(255) DEFAULT NULL,
`PostalProvince` varchar(255) DEFAULT NULL,
`PostalCountry` varchar(255) DEFAULT NULL,
`Website` varchar(255) DEFAULT NULL,
`CompanyRegNo` varchar(255) DEFAULT NULL,
`VATNumber` varchar(255) DEFAULT NULL,
`BBBEELevel` varchar(255) DEFAULT NULL,
`CSDNo` varchar(255) DEFAULT NULL,
`Reference1Company` varchar(255) DEFAULT NULL,
`Reference1Contact` varchar(255) DEFAULT NULL,
`Reference1Cell` varchar(255) DEFAULT NULL,
`Reference1Email` varchar(255) DEFAULT NULL,
`Reference2Company` varchar(255) DEFAULT NULL,
`Reference2Contact` varchar(255) DEFAULT NULL,
`Reference2Cell` varchar(255) DEFAULT NULL,
`Reference2Email` varchar(255) DEFAULT NULL,
`Reference3Company` varchar(255) DEFAULT NULL,
`Reference3Contact` varchar(255) DEFAULT NULL,
`Reference3Cell` varchar(255) DEFAULT NULL,
`Reference3Email` varchar(255) DEFAULT NULL,
`InterestWebinar` char(1) DEFAULT NULL,
`InterestClassroom` char(1) DEFAULT NULL,
`InterestVideo` char(1) DEFAULT NULL,
`InterestPublications` char(1) DEFAULT NULL,
`DateUpdated` datetime DEFAULT NULL,
`UpdatedBy` varchar(255) DEFAULT NULL,
`Archived` tinyint(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`ProviderID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
--
-- Triggers `TrainingProviders`
--
DROP TRIGGER IF EXISTS `trg_TrainingProviders_after_delete`;
DELIMITER $$
CREATE TRIGGER `trg_TrainingProviders_after_delete` AFTER DELETE ON `TrainingProviders` FOR EACH ROW BEGIN
INSERT INTO ErrorLog (errmessage, is_info, must_report, created_at, updated_at)
VALUES (
CONCAT('Training Provider record deleted: ProviderID: ', OLD.`ProviderID`, '; ContactFirstName: ', OLD.`ContactFirstName`, '; ContactTitle: ',
OLD.`ContactTitle`, '; ContactInitials: ', OLD.`ContactInitials`, '; ContactFirstName: ', OLD.`ContactFirstName`, '; ContactSurname: ',
OLD.`ContactSurname`, '; IDNumber: ', OLD.`IDNumber`, '; MobileNumber: ', OLD.`MobileNumber`, '; EmailAddress: ', OLD.`EmailAddress`), 1, 1, NOW(),
NOW()
);";
}
/**
* Find training provider by company name
* @param string $companyName
* @return array|false
*/
public function findByCompanyName($companyName) {
global $conni;
$companyName = mysqli_real_escape_string($conni, $companyName);
$sql = "SELECT * FROM TrainingProviders WHERE CompanyName = '" . $companyName . "' AND (Archived = 0 OR Archived IS NULL) LIMIT 1";
return $this->sqlf->getRow($sql);
}
/**
* Get select list array for training providers
* @return array
*/
public function getSelectList() {
$sql = "SELECT ProviderID, CompanyName FROM TrainingProviders WHERE (Archived = 0 OR Archived IS NULL) ORDER BY CompanyName";
$result = $this->sqlf->getAll($sql);
$trainingProviders = array();
if (is_array($result)) {
foreach ($result as $row) {
$trainingProviders[$row['CompanyName']] = $row['ProviderID'];
}
}
return $trainingProviders;
}
}
function trainingProviderListOptionsLoad(&$objThis)
{
// Add custom column for documents
$objThis->ListOptions->Add("documentSummary");
$objThis->ListOptions->Items["documentSummary"]->CssClass = "text-nowrap";
$objThis->ListOptions->Items["documentSummary"]->Visible = true;
}
function trainingProviderListOptionsRendering(&$objThis)
{
global $sqlf, $TrainingProviders;
// TODO: Print the properties of the $objThis->ProviderID object
// echo '<pre>';
// print_r($TrainingProviders->ProviderID);
// echo '</pre>';
$docString = '';
if ($TrainingProviders->ProviderID->CurrentValue > 0) {
$trainingProviderDocObj = new TrainingProviderDoc($sqlf);
$trainingProviderBEEDocs = $trainingProviderDocObj->getByProviderID($TrainingProviders->ProviderID->CurrentValue, 'B-BBEE certificate');
if (is_array($trainingProviderBEEDocs) && count($trainingProviderBEEDocs) > 0) {
if (strlen($trainingProviderBEEDocs[0]['DateIssued']) > 0 && strlen($trainingProviderBEEDocs[0]['DocFile']) > 0) {
$docDateIssued = new DateTime($trainingProviderBEEDocs[0]['DateIssued']);
$docString = '<span class="phpmaker"><a
href="/echasl23/providerdocs/' . $trainingProviderBEEDocs[0]['DocFile'] . '"
target="_blank">' . $trainingProviderBEEDocs[0]['DocType']
. ' (' . $docDateIssued->format('d-m-Y') . ')</a></span>';
$docString = $docDateIssued->format('d-m-Y');
} else {
$docString = 'No B-BBEE date issued';
}
} else {
$docString = 'No B-BBEE doc found';
}
}
$objThis->ListOptions->Items["documentSummary"]->Body = $docString
// . "<button type='button' class='btn btn-primary btn-sm'
// onclick='showDocs(\"" . $TrainingProviders->ProviderID->CurrentValue . "\")'><i class='fas fa-file-alt'></i>
// View Docs</button>"
;
}
function trainingProviderListPageHead(&$objThis)
{
// Add modal HTML
?>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
<div class="modal fade" id="docsModal" tabindex="-1" role="dialog" style="display: none;">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Training Provider Documents</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body" id="docsContent">
Loading...
</div>
</div>
</div>
</div>
<?php
}
function trainingProviderListPageFooter(&$objThis)
{
// Add JavaScript for handling the modal
?>
<script>
function showDocs(id) {
$('#docsModal').modal('show');
$.ajax({
url: '/echasl23/ajax/get_provider_docs.php',
type: 'POST',
data: {
provider_id: id
},
success: function(response) {
$('#docsContent').html(response);
},
error: function() {
$('#docsContent').html('Error loading documents');
}
});
}
</script>
<?php
}