| Current Path : /var/www/cesa.co.za/php/includes/ |
| Current File : /var/www/cesa.co.za/php/includes/ADec_tblMemberFirms.php |
<?php
/*
* Contact otto@igotafrica.com for details
*/
include_once('BaseTableClass.php');
/**
* Control the AD Member Firms table
*
* @author Otto Saayman
*/
class ADec_tblMemberFirms extends BaseTableClass
{
public function getAll($year = 0)
{
if ($year <= 0) {
$year = date('Y');
}
return $this->sqlf->getAll("SELECT * FROM ADec_tblMemberFirms WHERE DeclarationYear = " . $year);
}
public function getPIUnderwriters()
{
return $this->sqlf->getAll("SELECT DISTINCT PIUnderwriter FROM ADec_tblMemberFirms ORDER BY PIUnderwriter");
}
public function getPIUnderwritersSelectArray()
{
$objects = $this->getPIUnderwriters();
$return = array();
foreach ($objects as $object) {
$return[$object['PIUnderwriter']] = $object['PIUnderwriter'];
}
$return['Other'] = 'Other';
// var_dump($return);
// exit;
return $return;
}
public function getOrCreate($firmId, $declarationYear)
{
$testSQL = "SELECT * FROM ADec_tblMemberFirms WHERE Prev_FirmID = $firmId AND DeclarationYear = $declarationYear";
if (false && $_SESSION["username"] == 'cesatesting') {
echo '<p>Please ignore debug info: <textarea cols=30>' . $testSQL . '</textarea></p>';
exit;
}
$checkFirm = $this->sqlf->getRow($testSQL);
if (!is_array($checkFirm) || count($checkFirm) <= 0) {
$checkFirm = array(
'Prev_FirmID' => $firmId,
'DeclarationYear' => $declarationYear,
);
$result = $this->sqlf->autoExecute('ADec_tblMemberFirms', $checkFirm, 'INSERT');
if (true && $_SESSION["username"] == 'cesatesting') {
echo '<p>Please ignore debug info: <textarea cols=30>' . print_r($result, true) . '</textarea></p>';
exit;
// ini_set('display_errors', 1);
// error_reporting(E_ALL);
}
}
$testSQL = "SELECT * FROM ADec_tblMemberFirms WHERE Prev_FirmID = $firmId AND DeclarationYear = $declarationYear";
$checkFirm = $this->sqlf->getRow($testSQL);
if (!is_array($checkFirm) || count($checkFirm) <= 0 || !isset($checkFirm['FirmName']) || $checkFirm['FirmName'] == '') {
$memberFirmObj = new MemberFirm($this->sqlf);
$memberFirm = $memberFirmObj->find($firmId);
$checkFirm = array(
'FirmID' => $checkFirm['FirmID'],
'FirmName' => $memberFirm['FirmName'],
'FormOfIncorporation' => $memberFirm['FormOfIncorporation'],
'DateJoined' => $memberFirm['DateJoined'],
'DateTerminated' => $memberFirm['DateTerminated'],
'DirectoryLastUpdate' => $memberFirm['DirectoryLastUpdate'],
'EntryType' => $memberFirm['EntryType'],
'PageRef' => $memberFirm['PageRef'],
'LogoReceived' => $memberFirm['LogoReceived'],
'Photographs' => $memberFirm['Photographs'],
'RunOns' => $memberFirm['RunOns'],
'OrderNumber' => $memberFirm['OrderNumber'],
'InvoiceNumber' => $memberFirm['InvoiceNumber'],
'PaymentReceived' => $memberFirm['PaymentReceived'],
'DeclarationReceived' => $memberFirm['DeclarationReceived'],
'MemberStatus' => $memberFirm['MemberStatus'],
'Acoustics' => $memberFirm['Acoustics'],
'Agricultural' => $memberFirm['Agricultural'],
'BuildingServices' => $memberFirm['BuildingServices'],
'Chemical' => $memberFirm['Chemical'],
'Civil' => $memberFirm['Civil'],
'Development' => $memberFirm['Development'],
'Electrical' => $memberFirm['Electrical'],
'Electronic' => $memberFirm['Electronic'],
'Environmental' => $memberFirm['Environmental'],
'Geotechnical' => $memberFirm['Geotechnical'],
'Industrial' => $memberFirm['Industrial'],
'Mechanical' => $memberFirm['Mechanical'],
'Marine' => $memberFirm['Marine'],
'Mining' => $memberFirm['Mining'],
'Process' => $memberFirm['Process'],
'Structural' => $memberFirm['Structural'],
'Transportation' => $memberFirm['Transportation'],
'Architecture' => $memberFirm['Architecture'],
'RuralDevelopment' => $memberFirm['RuralDevelopment'],
'ProjectManagement' => $memberFirm['ProjectManagement'],
'QuantitySurveying' => $memberFirm['QuantitySurveying'],
'TownPlanning' => $memberFirm['TownPlanning'],
'Multidisciplinary' => $memberFirm['Multidisciplinary'],
'DisputeResolution' => $memberFirm['DisputeResolution'],
'ExpertWitness' => $memberFirm['ExpertWitness'],
'InformationSystems' => $memberFirm['InformationSystems'],
'FacilitiesManagement' => $memberFirm['FacilitiesManagement'],
'GIS' => $memberFirm['GIS'],
'PIUnderwriter' => $memberFirm['PIUnderwriter'],
'LevelOfCover' => $memberFirm['LevelOfCover'],
'LevelOfCoverShort' => $memberFirm['LevelOfCoverShort'],
'Quality Management' => $memberFirm['Quality Management'],
'Date of last peer review' => $memberFirm['Date of last peer review'],
'URL' => $memberFirm['URL'],
'DocumentAccess' => $memberFirm['DocumentAccess'],
'QualityMxSystem' => $memberFirm['QualityMxSystem'],
'ExportDivision' => $memberFirm['ExportDivision'],
'Active' => $memberFirm['Active'],
'School' => $memberFirm['School'],
'LNumber' => $memberFirm['LNumber'],
'ExistingOrExperience' => $memberFirm['ExistingOrExperience'],
'SeekingToExportTo' => $memberFirm['SeekingToExportTo'],
'QMSPlan' => $memberFirm['QMSPlan'],
'QMSDocs' => $memberFirm['QMSDocs'],
'QMSISOComply' => $memberFirm['QMSISOComply'],
'QMSISOCert' => $memberFirm['QMSISOCert'],
'QMSISOCertDate' => $memberFirm['QMSISOCertDate'],
'QMSOffices' => $memberFirm['QMSOffices'],
'QMSConsult' => $memberFirm['QMSConsult'],
'QMSCertBody' => $memberFirm['QMSCertBody'],
'AcousticsName' => $memberFirm['AcousticsName'],
'AgriculturalName' => $memberFirm['AgriculturalName'],
'BuildingServicesName' => $memberFirm['BuildingServicesName'],
'ChemicalName' => $memberFirm['ChemicalName'],
'CivilName' => $memberFirm['CivilName'],
'DevelopmentName' => $memberFirm['DevelopmentName'],
'ElectricalName' => $memberFirm['ElectricalName'],
'ElectronicName' => $memberFirm['ElectronicName'],
'EnvironmentalName' => $memberFirm['EnvironmentalName'],
'GeotechnicalName' => $memberFirm['GeotechnicalName'],
'IndustrialName' => $memberFirm['IndustrialName'],
'MechanicalName' => $memberFirm['MechanicalName'],
'MarineName' => $memberFirm['MarineName'],
'MiningName' => $memberFirm['MiningName'],
'ProcessName' => $memberFirm['ProcessName'],
'StructuralName' => $memberFirm['StructuralName'],
'TransportationName' => $memberFirm['TransportationName'],
'ArchitectureName' => $memberFirm['ArchitectureName'],
'RuralDevelopmentName' => $memberFirm['RuralDevelopmentName'],
'ProjectManagementName' => $memberFirm['ProjectManagementName'],
'QuantitySurveyingName' => $memberFirm['QuantitySurveyingName'],
'TownPlanningName' => $memberFirm['TownPlanningName'],
'MultidisciplinaryName' => $memberFirm['MultidisciplinaryName'],
'DisputeResolutionName' => $memberFirm['DisputeResolutionName'],
'ExpertWitnessName' => $memberFirm['ExpertWitnessName'],
'InformationSystemsName' => $memberFirm['InformationSystemsName'],
'FacilitiesManagementName' => $memberFirm['FacilitiesManagementName'],
'GISName' => $memberFirm['GISName'],
'MainFirmInvoice' => $memberFirm['MainFirmInvoice'],
'GroupFirmsInvoice' => $memberFirm['GroupFirmsInvoice'],
'QMSImplemented' => $memberFirm['QMSImplemented'],
'QMSImplFully' => $memberFirm['QMSImplFully'],
'QMSImplPart' => $memberFirm['QMSImplPart'],
'QMSAssess' => $memberFirm['QMSAssess'],
'QMSUseConsult' => $memberFirm['QMSUseConsult'],
'QMSIntend' => $memberFirm['QMSIntend'],
'MentoringProg' => $memberFirm['MentoringProg'],
'CandidateProg' => $memberFirm['CandidateProg'],
'SubscriptionsContact' => $memberFirm['SubscriptionsContact'],
'SubscriptionsEmail' => $memberFirm['SubscriptionsEmail'],
'HRTrainingContact' => $memberFirm['HRTrainingContact'],
'HRTrainingEmail' => $memberFirm['HRTrainingEmail'],
'MarketingContact' => $memberFirm['MarketingContact'],
'MarketingEmail' => $memberFirm['MarketingEmail'],
'CAUSigned' => $memberFirm['CaUSigned'],
'BBBEE' => $memberFirm['BBBEE'],
'YPFContact' => $memberFirm['YPFContact'],
'YPFEmail' => $memberFirm['YPFEmail'],
'SMME' => $memberFirm['SMME'],
'SMMEAmount' => $memberFirm['ThreeYearsAverageTurnover'],
'BlackOwned' => $memberFirm['BlackOwned'],
'BlackWomenOwned' => $memberFirm['BlackWomenOwned'],
'WomenOwned' => $memberFirm['WomenOwned'],
'BBBEELevel' => $memberFirm['BBBEELevel'],
'SustainabilityPolicy' => $memberFirm['SustainabilityPolicy'],
'SustainabilityIssues' => $memberFirm['SustainabilityIssues'],
'SustainabilityProcess' => $memberFirm['SustainabilityProcess'],
'SustainabilityChampion' => $memberFirm['SustainabilityChampion'],
'SustainabilityChampName' => $memberFirm['SustainabilityChampName'],
'SustainabilityFramework' => $memberFirm['SustainabilityFramework'],
'SustainabilityDiscussed' => $memberFirm['SustainabilityDiscussed'],
'SustainabilityIndicator1' => $memberFirm['SustainabilityIndicator1'],
'SustainabilityIndicator2' => $memberFirm['SustainabilityIndicator2'],
'SustainabilityIndicator3' => $memberFirm['SustainabilityIndicator3'],
'SustainabilityIndicator4' => $memberFirm['SustainabilityIndicator4'],
'SustainabilityIndicator5' => $memberFirm['SustainabilityIndicator5'],
'QMIG' => $memberFirm['QMIG'],
'QMSChampion' => $memberFirm['QMSChampion'],
'QMSChampName' => $memberFirm['QMSChampName'],
'QMSChampEmail' => $memberFirm['QMSChampEmail'],
'SustainabilityChampEmail' => $memberFirm['SustainabilityChampEmail'],
'ProcurementContact' => $memberFirm['ProcurementContact'],
'ProcurementEmail' => $memberFirm['ProcurementEmail'],
'SubscriptionsTel' => $memberFirm['SubscriptionsTel'],
'HRTrainingTel' => $memberFirm['HRTrainingTel'],
'MarketingTel' => $memberFirm['MarketingTel'],
'ProcurementTel' => $memberFirm['ProcurementTel'],
'YPFContactTel' => $memberFirm['YPFContactTel'],
'BlackWomenOwned' => $memberFirm['BlackWomenOwned'],
'SABTACO' => $memberFirm['SABTACO'],
'BBCBE' => $memberFirm['BBCBE'],
'GBCSA' => $memberFirm['GBCSA'],
'TotalStaff' => $memberFirm['TotalStaff'],
'DeclarationYear' => $declarationYear,
);
// echo '<h4>System is undergoing maintenance. Please check back later.</h4>';
// var_dump($checkFirm);
// exit;
$this->sqlf->autoExecute('ADec_tblMemberFirms', $checkFirm, 'UPDATE', 'FirmID = ' . $checkFirm['FirmID'], 'FirmID');
}
$memberOfficesObj = new MemberFirmOffice($this->sqlf);
$aDecMemberOfficesObj = new ADec_tblMemberFirmOffices($this->sqlf);
$memberOffices = $memberOfficesObj->findByFirmID($firmId);
$aDecMemberOffices = $aDecMemberOfficesObj->findByFirmIDYear($checkFirm['FirmID'], $declarationYear);
// echo '<h4>System is undergoing maintenance. Please check ignore the debug information below.</h4>';
// echo count($memberOffices) . ' - ' . count($aDecMemberOffices) . '<br />';
if (is_array($memberOffices) && count($memberOffices) > 0 && (!is_array($aDecMemberOffices) || count($aDecMemberOffices) <= 0)) {
foreach ($memberOffices as $memberOffice) {
$aDecMemberOffice = $memberOffice;
$aDecMemberOffice['Prev_OfficeID'] = $memberOffice['OfficeID'];
$aDecMemberOffice['Prev_FirmID'] = $firmId;
$aDecMemberOffice['FirmID'] = $checkFirm['FirmID'];
$aDecMemberOffice['DeclarationYear'] = $declarationYear;
unset($aDecMemberOffice['OfficeID']);
// var_dump($aDecMemberOffice);
// exit;
$this->sqlf->autoExecute('ADec_tblMemberFirmOffices', $aDecMemberOffice, 'INSERT');
}
} //if
// exit;
$memberFirmSkillObj = new ADec_tblMemberFirmSkills($this->sqlf);
$memberFirmSkillObj->getOrCreate($checkFirm['FirmID'], $firmId, $declarationYear);
}
public static function getBlackOwnedValue($valIn)
{
$valOut = '';
switch ($valIn) {
case '≥10%<25%':
$valOut = 'Equal to or greater than 10 and less than 25%';
break;
case 'Equal to or greater than 10 and less than 25':
$valOut = 'Equal to or greater than 10 and less than 25%';
break;
case 'Equal to or greater than 10 and less than 25%':
$valOut = 'Equal to or greater than 10 and less than 25%';
break;
case '≥25%<51%':
$valOut = 'Equal to or greater than 25 and less than 51%';
break;
case 'Equal to or greater than 25 and less than 51':
$valOut = 'Equal to or greater than 25 and less than 51%';
break;
case 'Equal to or greater than 25 and less than 51%':
$valOut = 'Equal to or greater than 25 and less than 51%';
break;
case '≥51%<100%':
$valOut = 'Equal to or greater than 51 and less than 100%';
break;
case 'Equal to or greater than 51 and less than 100':
$valOut = 'Equal to or greater than 51 and less than 100%';
break;
case 'Equal to or greater than 51 and less than 100%':
$valOut = 'Equal to or greater than 51 and less than 100%';
break;
case '100%':
$valOut = '100%';
break;
case 'Equal to 100':
$valOut = '100%';
break;
default:
$valOut = 'Less than 10%';
break;
}
return $valOut;
}
public static function getAnnualTurnoverValue($valIn, $turnOverValue = 0)
{
if ($turnOverValue > 0) {
if ($turnOverValue < 3000000) {
return 'EME1';
} elseif ($turnOverValue < 6000000) {
return 'EME2';
} elseif ($turnOverValue < 10000000) {
return 'QSE1';
} elseif ($turnOverValue < 15000000) {
return 'QSE2';
} elseif ($turnOverValue < 20000000) {
return 'QSE3';
} elseif ($turnOverValue < 25000000) {
return 'QSE4';
} elseif ($turnOverValue < 35000000) {
return 'GEN1';
} elseif ($turnOverValue < 50000000) {
return 'GEN2';
} elseif ($turnOverValue < 60000000) {
return 'GEN3';
} elseif ($turnOverValue < 70000000) {
return 'GEN4';
} elseif ($turnOverValue < 80000000) {
return 'GEN5';
} elseif ($turnOverValue < 90000000) {
return 'GEN6';
} elseif ($turnOverValue < 100000000) {
return 'GEN7';
}
return 'GEN8';
}
$valOut = 'EME1';
$valArr = explode(' ', $valIn);
if (is_array($valArr) && count($valArr) > 0) {
$valOut = $valArr[0];
}
return $valOut;
}
public static function getBlackWomenOwnedValue($valIn)
{
$valOut = 'Less than 30%';
switch ($valIn) {
case '≥30%<51%':
$valOut = 'Equal to or greater than 30 and less than 51%';
break;
case 'Equal to or greater than 30 and less than 51':
$valOut = 'Equal to or greater than 30 and less than 51%';
break;
case 'Equal to or greater than 30 and less than 51%':
$valOut = 'Equal to or greater than 30 and less than 51%';
break;
case '≥51%<100%':
$valOut = 'Equal to or greater than 50 and less than 100%';
break;
case 'Equal to or greater than 50 and less than 100':
$valOut = 'Equal to or greater than 50 and less than 100%';
break;
case 'Equal to or greater than 50 and less than 100%':
$valOut = 'Equal to or greater than 50 and less than 100%';
break;
case '≥100%':
$valOut = '100%';
break;
case 'Less than 10%':
$valOut = 'Less than 10%';
break;
case 'Equal to or greater than 10 and less than 30%':
$valOut = 'Equal to or greater than 10 and less than 30%';
break;
case 'Equal to or greater than 51 and less than 100%':
$valOut = 'Equal to or greater than 51 and less than 100%';
break;
case '100%':
$valOut = '100%';
break;
}
return $valOut;
}
/**
* Count the number of results captured for the current year
*/
public function countResultsCaptured($declarationYear): int
{
$sql = "SELECT COUNT(*) as Cntr FROM ADec_tblMemberFirms mf
INNER JOIN ADec_Done_Local dl ON mf.FirmID = dl.RefID AND dl.RefType = 'FirmID'
AND dl.RefDoc IN ('UPDATED') AND YEAR(dl.ADecDate) = $declarationYear";
// echo $sql;
$result = $this->sqlf->getRow($sql);
if (is_array($result) && count($result) > 0) {
return $result['Cntr'];
}
return 0;
}
}