Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
php /
includes /
Delete
Unzip
Name
Size
Permission
Date
Action
error_handling
[ DIR ]
drwxr-sr-x
2025-07-07 15:54
mail
[ DIR ]
drwxr-sr-x
2025-06-14 11:17
ADQAnswers.php
3.16
KB
-rw-r--r--
2026-06-03 05:55
ADQAudit.php
6.51
KB
-rw-r--r--
2026-06-03 05:55
ADQAuditAnswers.php
1.21
KB
-rw-r--r--
2026-06-03 05:55
ADQFirms.php
18.41
KB
-rw-r--r--
2025-12-31 10:56
ADQuestionnairesAnswers.php
1.05
KB
-rw-r--r--
2026-06-03 05:55
ADQuestionnairesAudit.php
2.01
KB
-rw-r--r--
2026-06-03 05:55
ADecQuestionnaires.php
3.31
KB
-rw-r--r--
2026-06-03 05:55
ADecQuestions.php
541
B
-rw-r--r--
2026-06-03 05:55
ADec_Contacts.php
1.61
KB
-rw-r--r--
2026-06-03 05:55
ADec_OfficeContacts.php
7.43
KB
-rw-r--r--
2026-06-03 05:55
ADec_PIUnderwriters.php
742
B
-rw-r--r--
2026-06-03 05:55
ADec_Transformation.php
817
B
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirmOffices.php
1.49
KB
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirmSkills.php
2.38
KB
-rw-r--r--
2026-06-03 05:55
ADec_tblMemberFirms.php
19.37
KB
-rw-r--r--
2026-06-03 05:55
AnonRespondees.php
4.25
KB
-rw-r--r--
2026-06-05 11:41
AwardsEntries.php
2.4
KB
-rw-r--r--
2026-06-06 10:48
BaseTableClass.php
950
B
-rw-r--r--
2026-04-26 08:24
BatchJob.php
4.46
KB
-rw-r--r--
2026-06-03 05:55
BceAssignmentFeedbackFormsReportService.php
6.77
KB
-rw-r--r--
2026-05-25 13:06
CCEAssignment.php
12.44
KB
-rw-r--r--
2026-05-26 14:26
CCEAssignmentMarking.php
26.26
KB
-rw-r--r--
2026-08-14 12:06
CCEBooks.php
524
B
-rw-r--r--
2026-06-03 05:55
CCEConvenorAuth.php
3.06
KB
-rw-r--r--
2026-08-19 11:18
CCECourseSchedules.php
579
B
-rw-r--r--
2026-06-03 05:55
CCEDocCategories.php
529
B
-rw-r--r--
2026-06-03 05:55
CCEDocuments.php
8.15
KB
-rw-r--r--
2026-08-20 12:16
CCEExam.php
15.87
KB
-rw-r--r--
2026-06-03 06:35
CCEExamQuestion.php
1.76
KB
-rw-r--r--
2026-06-03 05:55
CCEFacilitatorUser.php
931
B
-rw-r--r--
2026-06-03 05:55
CCEMessageLog.php
951
B
-rw-r--r--
2026-06-03 05:55
CCEMessages.php
8.88
KB
-rw-r--r--
2026-07-01 13:20
CCEModuleMarksService.php
7.16
KB
-rw-r--r--
2026-05-26 10:30
CCEModules.php
1.16
KB
-rw-r--r--
2026-06-03 05:55
CCEResourceGroups.php
591
B
-rw-r--r--
2026-06-03 05:55
CCEResources.php
896
B
-rw-r--r--
2026-06-03 05:55
CCESetup.php
256
B
-rw-r--r--
2026-02-09 16:20
CCEStAssigExtension.php
2.07
KB
-rw-r--r--
2026-06-03 05:55
CCEStAssigExtensionRequest.php
6.65
KB
-rw-r--r--
2026-06-03 05:55
CCEStudentAssignment.php
16.61
KB
-rw-r--r--
2026-07-15 14:44
CCEStudentCourses.php
611
B
-rw-r--r--
2026-06-03 05:55
CCEStudentDisplayOrder.php
4.96
KB
-rw-r--r--
2026-05-26 09:32
CCEStudents.php
8.4
KB
-rw-r--r--
2026-08-19 11:18
CCETemplates.php
896
B
-rw-r--r--
2026-06-03 05:55
CCEWeeklySessions.php
2.27
KB
-rw-r--r--
2026-02-09 16:25
CPDSPReview.php
624
B
-rw-r--r--
2026-06-03 05:55
CPDServiceProvider.php
4.57
KB
-rw-r--r--
2026-06-12 11:48
CPDTrainingMaterial.php
3.96
KB
-rw-r--r--
2026-06-12 11:48
CceUploadedFileService.php
34.9
KB
-rw-r--r--
2026-06-24 12:03
Certificates.php
8.93
KB
-rw-r--r--
2026-08-18 15:42
Contact.php
690
B
-rw-r--r--
2026-06-03 05:55
ErrorLog.php
1.22
KB
-rw-r--r--
2026-08-24 10:12
EventSchedules.php
5.39
KB
-rw-r--r--
2025-12-20 10:03
FileUploads.php
2.1
KB
-rw-r--r--
2026-06-03 05:55
HTMLHelper.php
17.2
KB
-rw-r--r--
2026-06-03 05:55
KeyValue.php
4.9
KB
-rw-r--r--
2026-04-25 09:34
Mailer.php
12.78
KB
-rw-r--r--
2026-07-15 09:50
MarketingAttendees.php
36.87
KB
-rw-r--r--
2026-08-14 12:06
MarketingPayments.php
2.52
KB
-rw-r--r--
2026-06-03 05:55
MemberContact.php
1.04
KB
-rw-r--r--
2026-06-03 05:55
MemberFirm.php
17.71
KB
-rw-r--r--
2026-06-03 05:55
MemberFirmOffices.php
752
B
-rw-r--r--
2026-06-03 05:55
MemberFirmSkill.php
18.04
KB
-rw-r--r--
2026-06-03 05:55
MemberPortalTransformationProxy.php
4.44
KB
-rw-r--r--
2026-05-20 09:08
MemberPortalUrls.php
1.82
KB
-rw-r--r--
2026-05-20 09:53
MsgAttachFileService.php
4.92
KB
-rw-r--r--
2026-06-22 08:37
OfficeContact.php
1.01
KB
-rw-r--r--
2026-06-03 05:55
Picklists.php
539
B
-rw-r--r--
2026-06-03 05:55
Questionnaires.php
849
B
-rw-r--r--
2026-01-23 12:39
SchoolAttendeeBulkMailerService.php
34.26
KB
-rw-r--r--
2026-08-11 10:45
SchoolAttendees.php
73.21
KB
-rw-r--r--
2026-08-11 10:45
SchoolCourses.php
7.98
KB
-rw-r--r--
2026-08-19 11:59
SchoolEvents.php
45.54
KB
-rw-r--r--
2026-08-18 15:42
SchoolPayments.php
4.48
KB
-rw-r--r--
2026-04-13 09:33
SchoolPresenters.php
1.86
KB
-rw-r--r--
2026-01-23 12:43
SchoolWeeksCoursesDashboardProxy.php
10.69
KB
-rw-r--r--
2026-08-14 12:32
TrainingProvider.php
8.06
KB
-rw-r--r--
2026-01-23 12:43
TrainingProviderDoc.php
554
B
-rw-r--r--
2026-06-03 05:55
Transformation.php
10.87
KB
-rw-r--r--
2026-05-13 09:36
UnempPractitioners.php
1.43
KB
-rw-r--r--
2026-06-03 05:55
Utils.php
13.72
KB
-rw-r--r--
2026-07-23 07:28
WeeklySessionsParser.php
7.87
KB
-rw-r--r--
2026-02-09 16:20
cceMessageAttachmentUpload.inc.php
5.12
KB
-rw-r--r--
2026-06-03 05:55
cceMessageEditor.inc.php
9.26
KB
-rw-r--r--
2026-07-01 13:20
cce_file_download_endpoint.php
1.75
KB
-rw-r--r--
2026-06-24 08:38
cstUnreadMessages.php
2.1
KB
-rw-r--r--
2026-07-01 13:20
cstWeeksCourses.php
1.84
KB
-rw-r--r--
2026-08-14 12:06
load_phpmailer.php
742
B
-rw-r--r--
2026-07-17 14:57
maill.php
19.45
KB
-rw-r--r--
2026-08-19 12:23
require_ewmysql.php
1.2
KB
-rw-r--r--
2026-08-24 10:12
sqlFunctions.php
10.48
KB
-rw-r--r--
2026-08-24 10:12
Save
Rename
<?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ /** * Description of MemberFirmSkill * * @author otto */ class MemberFirmSkill extends BaseTableClass { public function findAll() { return $this->sqlf->getAll("SELECT * FROM tblMemberFirmSkills"); } public function findByFirmId($MemberFirmId) { return $this->sqlf->getAll("SELECT * FROM tblMemberFirmSkills WHERE FirmID = " . $MemberFirmId); } public function updateAll() { $MemberFirmSkills = $this->findAll(); foreach ($MemberFirmSkills as $MemberFirmSkill) { $updateTotalStaffSQL = "UPDATE `tblMemberFirmSkills` " . "SET `TotalStaff` = (SELECT (SUM(ProfessionalStaff) + SUM(NonProfTechStaff) + SUM(OtherStaff)) AS TotalStaff " . "FROM tblMemberFirmSkillOffices WHERE tblMemberFirmSkillOffices.FirmID = tblMemberFirmSkills.FirmID)" . "WHERE tblMemberFirmSkills.FirmID = " . $MemberFirmSkill['FirmID']; $this->sqlf->execute($updateTotalStaffSQL); } } public function upsert($MemberFirmSkill) { $where = ''; $action = 'INSERT'; if (isset($MemberFirmSkill['FirmID']) && $MemberFirmSkill['FirmID'] > 0) { $where = 'FirmID = ' . $MemberFirmSkill['FirmID']; $action = 'UPDATE'; } return $this->sqlf->autoExecute('tblMemberFirmSkills', $MemberFirmSkill, $action, $where, 'FirmID'); } public function getExportData() { $sql = "SELECT tblMemberFirmSkills.FirmID, tblMemberFirmSkills.FirmName, tblMemberFirmSkills.SMME, tblMemberFirmSkills.BlackOwned, tblMemberFirmSkills.BlackWomenOwned, GROUP_CONCAT(tblMemberFirmSkillOffices.Country, '; ') AS Country, GROUP_CONCAT(tblMemberFirmSkillOffices.Province, '; ') AS Province, SUM(tblMemberFirmSkillOffices.ProfessionalStaff) AS ProfessionalStaffTotal, SUM(tblMemberFirmSkillOffices.NonProfTechStaff) AS NonProfTechStaffTotal, SUM(tblMemberFirmSkillOffices.OtherStaff) AS OtherStaffTotal, tblMemberFirmSkills.TotalStaff, CASE WHEN tblMemberFirmSkills.TotalStaffShort IS NOT NULL THEN TotalStaffShort WHEN tblMemberFirmSkills.TotalStaff < 5 THEN '<5' WHEN tblMemberFirmSkills.TotalStaff < 10 THEN '≥5<10' WHEN tblMemberFirmSkills.TotalStaff < 25 THEN '≥10<25' WHEN tblMemberFirmSkills.TotalStaff < 50 THEN '≥25<50' WHEN tblMemberFirmSkills.TotalStaff < 100 THEN '≥50<100' WHEN tblMemberFirmSkills.TotalStaff < 200 THEN '≥100<200' WHEN tblMemberFirmSkills.TotalStaff < 300 THEN '≥200<300' ELSE '≥300' END AS TotalStaffShort, tblMemberFirmSkills.FormOfIncorporation, tblMemberFirmSkills.DateJoined, tblMemberFirmSkills.DateTerminated, tblMemberFirmSkills.DirectoryLastUpdate, tblMemberFirmSkills.EntryType, tblMemberFirmSkills.PageRef, tblMemberFirmSkills.LogoReceived, tblMemberFirmSkills.Photographs, tblMemberFirmSkills.RunOns, tblMemberFirmSkills.OrderNumber, tblMemberFirmSkills.InvoiceNumber, tblMemberFirmSkills.PaymentReceived, tblMemberFirmSkills.DeclarationReceived, tblMemberFirmSkills.MemberStatus, tblMemberFirmSkills.Acoustics, tblMemberFirmSkills.Agricultural, tblMemberFirmSkills.BuildingServices, tblMemberFirmSkills.Chemical, tblMemberFirmSkills.Civil, tblMemberFirmSkills.Development, tblMemberFirmSkills.Electrical, tblMemberFirmSkills.Electronic, tblMemberFirmSkills.Environmental, tblMemberFirmSkills.Geotechnical, tblMemberFirmSkills.Industrial, tblMemberFirmSkills.Mechanical, tblMemberFirmSkills.Marine, tblMemberFirmSkills.Mining, tblMemberFirmSkills.Process, tblMemberFirmSkills.Structural, tblMemberFirmSkills.Transportation, tblMemberFirmSkills.Architecture, tblMemberFirmSkills.RuralDevelopment, tblMemberFirmSkills.ProjectManagement, tblMemberFirmSkills.QuantitySurveying, tblMemberFirmSkills.TownPlanning, tblMemberFirmSkills.Multidisciplinary, tblMemberFirmSkills.DisputeResolution, tblMemberFirmSkills.ExpertWitness, tblMemberFirmSkills.InformationSystems, tblMemberFirmSkills.FacilitiesManagement, tblMemberFirmSkills.GIS, tblMemberFirmSkills.PIUnderwriter, tblMemberFirmSkills.LevelOfCover, CASE WHEN tblMemberFirmSkills.LevelOfCoverShort IS NOT NULL THEN LevelOfCoverShort WHEN tblMemberFirmSkills.LevelOfCover < 2000000 THEN '<R2m' WHEN tblMemberFirmSkills.LevelOfCover < 5000000 THEN '≥R2m<R5m' WHEN tblMemberFirmSkills.LevelOfCover < 10000000 THEN '≥R5m<R10m' WHEN tblMemberFirmSkills.LevelOfCover < 25000000 THEN '≥R10m<R25m' WHEN tblMemberFirmSkills.LevelOfCover < 50000000 THEN '≥R25m<R50m' WHEN tblMemberFirmSkills.LevelOfCover < 100000000 THEN '≥R50m<R100m' WHEN tblMemberFirmSkills.LevelOfCover < 200000000 THEN '≥R100m<R200m' ELSE '≥R200m' END AS LevelOfCoverShort, tblMemberFirmSkills.`Quality Management`, tblMemberFirmSkills.`Date of last peer review`, tblMemberFirmSkills.URL, tblMemberFirmSkills.DocumentAccess, tblMemberFirmSkills.QualityMxSystem, tblMemberFirmSkills.ExportDivision, tblMemberFirmSkills.Active, tblMemberFirmSkills.School, tblMemberFirmSkills.LNumber, tblMemberFirmSkills.ExistingOrExperience, tblMemberFirmSkills.SeekingToExportTo, tblMemberFirmSkills.QMSPlan, tblMemberFirmSkills.QMSDocs, tblMemberFirmSkills.QMSISOComply, UPPER(tblMemberFirmSkills.QMSISOCert) AS QMSISOCert, tblMemberFirmSkills.QMSISOCertDate, tblMemberFirmSkills.QMSOffices, tblMemberFirmSkills.QMSConsult, tblMemberFirmSkills.QMSCertBody, tblMemberFirmSkills.AcousticsName, tblMemberFirmSkills.AgriculturalName, tblMemberFirmSkills.BuildingServicesName, tblMemberFirmSkills.ChemicalName, tblMemberFirmSkills.CivilName, tblMemberFirmSkills.DevelopmentName, tblMemberFirmSkills.ElectricalName, tblMemberFirmSkills.ElectronicName, tblMemberFirmSkills.EnvironmentalName, tblMemberFirmSkills.GeotechnicalName, tblMemberFirmSkills.IndustrialName, tblMemberFirmSkills.MechanicalName, tblMemberFirmSkills.MarineName, tblMemberFirmSkills.MiningName, tblMemberFirmSkills.ProcessName, tblMemberFirmSkills.StructuralName, tblMemberFirmSkills.TransportationName, tblMemberFirmSkills.ArchitectureName, tblMemberFirmSkills.RuralDevelopmentName, tblMemberFirmSkills.ProjectManagementName, tblMemberFirmSkills.QuantitySurveyingName, tblMemberFirmSkills.TownPlanningName, tblMemberFirmSkills.MultidisciplinaryName, tblMemberFirmSkills.DisputeResolutionName, tblMemberFirmSkills.ExpertWitnessName, tblMemberFirmSkills.InformationSystemsName, tblMemberFirmSkills.FacilitiesManagementName, tblMemberFirmSkills.GISName, tblMemberFirmSkills.MainFirmInvoice, tblMemberFirmSkills.GroupFirmsInvoice, tblMemberFirmSkills.QMSImplemented, tblMemberFirmSkills.QMSImplFully, tblMemberFirmSkills.QMSImplPart, tblMemberFirmSkills.QMSAssess, tblMemberFirmSkills.QMSUseConsult, tblMemberFirmSkills.QMSIntend, tblMemberFirmSkills.BEPMEDS, tblMemberFirmSkills.WebHide, tblMemberFirmSkills.MentoringProg, tblMemberFirmSkills.CandidateProg, tblMemberFirmSkills.SubscriptionsContact, tblMemberFirmSkills.SubscriptionsEmail, tblMemberFirmSkills.HRTrainingContact, tblMemberFirmSkills.HRTrainingEmail, tblMemberFirmSkills.MarketingContact, tblMemberFirmSkills.MarketingEmail, tblMemberFirmSkills.CaUSigned, tblMemberFirmSkills.BBBEE, tblMemberFirmSkills.YPFContact, tblMemberFirmSkills.YPFEmail, tblMemberFirmSkills.SMME, tblMemberFirmSkills.BlackOwned, CASE WHEN tblMemberFirmSkills.BlackOwned = 'Equal to 100' THEN '100%' WHEN tblMemberFirmSkills.BlackOwned = 'Less than 30' THEN '<30%' WHEN tblMemberFirmSkills.BlackOwned = 'Less than 10' THEN '<10%' WHEN tblMemberFirmSkills.BlackOwned = 'Equal to or greater than 51 and less than 100' THEN '≥51%<100%' WHEN tblMemberFirmSkills.BlackOwned = 'Equal to or greater than 30 and less than 51' THEN '≥30%<51%' WHEN tblMemberFirmSkills.BlackOwned = 'Equal to or greater than 10 and less than 25' THEN '≥10%<25%' WHEN tblMemberFirmSkills.BlackOwned = 'Equal to or greater than 25 and less than 51' THEN '≥25%<51%' ELSE tblMemberFirmSkills.BlackOwned END AS BlackOwnedShort, tblMemberFirmSkills.BBBEELevel, tblMemberFirmSkills.SustainabilityPolicy, tblMemberFirmSkills.SustainabilityIssues, tblMemberFirmSkills.SustainabilityProcess, tblMemberFirmSkills.SustainabilityChampion, tblMemberFirmSkills.SustainabilityChampName, tblMemberFirmSkills.Comments, tblMemberFirmSkills.SustainabilityFramework, tblMemberFirmSkills.SustainabilityDiscussed, tblMemberFirmSkills.SustainabilityIndicator1, tblMemberFirmSkills.SustainabilityIndicator2, tblMemberFirmSkills.SustainabilityIndicator3, tblMemberFirmSkills.SustainabilityIndicator4, tblMemberFirmSkills.SustainabilityIndicator5, tblMemberFirmSkills.QMIG, tblMemberFirmSkills.QMSChampion, tblMemberFirmSkills.QMSChampName, tblMemberFirmSkills.QMSChampEmail, tblMemberFirmSkills.SustainabilityChampEmail, tblMemberFirmSkills.ProcurementContact, tblMemberFirmSkills.ProcurementEmail, tblMemberFirmSkills.SubscriptionsTel, tblMemberFirmSkills.HRTrainingTel, tblMemberFirmSkills.MarketingTel, tblMemberFirmSkills.ProcurementTel, tblMemberFirmSkills.YPFContactTel, tblMemberFirmSkills.BlackWomenOwned, CASE WHEN tblMemberFirmSkills.BlackWomenOwned = 'Equal to 100' THEN '100%' WHEN tblMemberFirmSkills.BlackWomenOwned = 'Less than 30' THEN '<30%' WHEN tblMemberFirmSkills.BlackWomenOwned = 'Less than 10' THEN '<10%' WHEN tblMemberFirmSkills.BlackWomenOwned = 'Equal to or greater than 51 and less than 100' THEN '≥51%<100%' WHEN tblMemberFirmSkills.BlackWomenOwned = 'Equal to or greater than 30 and less than 51' THEN '≥30%<51%' WHEN tblMemberFirmSkills.BlackWomenOwned = 'Equal to or greater than 10 and less than 25' THEN '≥10%<25%' WHEN tblMemberFirmSkills.BlackWomenOwned = 'Equal to or greater than 25 and less than 51' THEN '≥25%<51%' ELSE tblMemberFirmSkills.BlackWomenOwned END AS BlackWomenOwnedShort, tblMemberFirmSkills.SABTACO, tblMemberFirmSkills.BBCBE, tblMemberFirmSkills.GBCSA, tblMemberFirmSkills.GoToPersonName, tblMemberFirmSkills.GoToPersonTel, tblMemberFirmSkills.GoToPersonEmail, GROUP_CONCAT(tblMemberFirmSkillOffices.OfficeName SEPARATOR '; ') AS OfficeName, GROUP_CONCAT(tblMemberFirmSkillOffices.TownCity SEPARATOR '; ') AS TownCity, GROUP_CONCAT(tblMemberFirmSkillOffices.Country SEPARATOR '; ') AS Country, GROUP_CONCAT(tblMemberFirmSkillOffices.Suburb SEPARATOR '; ') AS Suburb, GROUP_CONCAT(tblMemberFirmSkillOffices.Province SEPARATOR '; ') AS Province, SUM(tblMemberFirmSkillOffices.ProfessionalStaff) AS Branches_ProfessionalStaff, SUM(tblMemberFirmSkillOffices.NonProfTechStaff) AS Branches_NonProfTechStaff, SUM(tblMemberFirmSkillOffices.OtherStaff) AS Branches_OtherStaff FROM tblMemberFirmSkills JOIN tblMemberFirmSkillOffices USING (FirmID) WHERE tblMemberFirmSkills.MemberStatus = 'Member' AND tblMemberFirmSkills.FirmID <> 1312 GROUP BY tblMemberFirmSkills.FirmID, tblMemberFirmSkills.FirmName, tblMemberFirmSkills.SMME, tblMemberFirmSkills.BlackOwned, tblMemberFirmSkills.BlackOwned, tblMemberFirmSkills.BlackWomenOwned, tblMemberFirmSkills.FormOfIncorporation, tblMemberFirmSkills.DateJoined, tblMemberFirmSkills.DateTerminated, tblMemberFirmSkills.DirectoryLastUpdate, tblMemberFirmSkills.EntryType, tblMemberFirmSkills.PageRef, tblMemberFirmSkills.LogoReceived, tblMemberFirmSkills.Photographs, tblMemberFirmSkills.RunOns, tblMemberFirmSkills.OrderNumber, tblMemberFirmSkills.InvoiceNumber, tblMemberFirmSkills.PaymentReceived, tblMemberFirmSkills.DeclarationReceived, tblMemberFirmSkills.MemberStatus, tblMemberFirmSkills.Acoustics, tblMemberFirmSkills.Agricultural, tblMemberFirmSkills.BuildingServices, tblMemberFirmSkills.Chemical, tblMemberFirmSkills.Civil, tblMemberFirmSkills.Development, tblMemberFirmSkills.Electrical, tblMemberFirmSkills.Electronic, tblMemberFirmSkills.Environmental, tblMemberFirmSkills.Geotechnical, tblMemberFirmSkills.Industrial, tblMemberFirmSkills.Mechanical, tblMemberFirmSkills.Marine, tblMemberFirmSkills.Mining, tblMemberFirmSkills.Process, tblMemberFirmSkills.Structural, tblMemberFirmSkills.Transportation, tblMemberFirmSkills.Architecture, tblMemberFirmSkills.RuralDevelopment, tblMemberFirmSkills.ProjectManagement, tblMemberFirmSkills.QuantitySurveying, tblMemberFirmSkills.TownPlanning, tblMemberFirmSkills.Multidisciplinary, tblMemberFirmSkills.DisputeResolution, tblMemberFirmSkills.ExpertWitness, tblMemberFirmSkills.InformationSystems, tblMemberFirmSkills.FacilitiesManagement, tblMemberFirmSkills.GIS, tblMemberFirmSkills.PIUnderwriter, tblMemberFirmSkills.LevelOfCover, tblMemberFirmSkills.`Quality Management`, tblMemberFirmSkills.`Date of last peer review`, tblMemberFirmSkills.URL, tblMemberFirmSkills.DocumentAccess, tblMemberFirmSkills.QualityMxSystem, tblMemberFirmSkills.ExportDivision, tblMemberFirmSkills.Active, tblMemberFirmSkills.School, tblMemberFirmSkills.LNumber, tblMemberFirmSkills.ExistingOrExperience, tblMemberFirmSkills.SeekingToExportTo, tblMemberFirmSkills.QMSPlan, tblMemberFirmSkills.QMSDocs, tblMemberFirmSkills.QMSISOComply, tblMemberFirmSkills.QMSISOCert, tblMemberFirmSkills.QMSISOCertDate, tblMemberFirmSkills.QMSOffices, tblMemberFirmSkills.QMSConsult, tblMemberFirmSkills.QMSCertBody, tblMemberFirmSkills.AcousticsName, tblMemberFirmSkills.AgriculturalName, tblMemberFirmSkills.BuildingServicesName, tblMemberFirmSkills.ChemicalName, tblMemberFirmSkills.CivilName, tblMemberFirmSkills.DevelopmentName, tblMemberFirmSkills.ElectricalName, tblMemberFirmSkills.ElectronicName, tblMemberFirmSkills.EnvironmentalName, tblMemberFirmSkills.GeotechnicalName, tblMemberFirmSkills.IndustrialName, tblMemberFirmSkills.MechanicalName, tblMemberFirmSkills.MarineName, tblMemberFirmSkills.MiningName, tblMemberFirmSkills.ProcessName, tblMemberFirmSkills.StructuralName, tblMemberFirmSkills.TransportationName, tblMemberFirmSkills.ArchitectureName, tblMemberFirmSkills.RuralDevelopmentName, tblMemberFirmSkills.ProjectManagementName, tblMemberFirmSkills.QuantitySurveyingName, tblMemberFirmSkills.TownPlanningName, tblMemberFirmSkills.MultidisciplinaryName, tblMemberFirmSkills.DisputeResolutionName, tblMemberFirmSkills.ExpertWitnessName, tblMemberFirmSkills.InformationSystemsName, tblMemberFirmSkills.FacilitiesManagementName, tblMemberFirmSkills.GISName, tblMemberFirmSkills.MainFirmInvoice, tblMemberFirmSkills.GroupFirmsInvoice, tblMemberFirmSkills.QMSImplemented, tblMemberFirmSkills.QMSImplFully, tblMemberFirmSkills.QMSImplPart, tblMemberFirmSkills.QMSAssess, tblMemberFirmSkills.QMSUseConsult, tblMemberFirmSkills.QMSIntend, tblMemberFirmSkills.BEPMEDS, tblMemberFirmSkills.WebHide, tblMemberFirmSkills.MentoringProg, tblMemberFirmSkills.CandidateProg, tblMemberFirmSkills.SubscriptionsContact, tblMemberFirmSkills.SubscriptionsEmail, tblMemberFirmSkills.HRTrainingContact, tblMemberFirmSkills.HRTrainingEmail, tblMemberFirmSkills.MarketingContact, tblMemberFirmSkills.MarketingEmail, tblMemberFirmSkills.CaUSigned, tblMemberFirmSkills.BBBEE, tblMemberFirmSkills.YPFContact, tblMemberFirmSkills.YPFEmail, tblMemberFirmSkills.SMME, tblMemberFirmSkills.BlackOwned, tblMemberFirmSkills.BBBEELevel, tblMemberFirmSkills.SustainabilityPolicy, tblMemberFirmSkills.SustainabilityIssues, tblMemberFirmSkills.SustainabilityProcess, tblMemberFirmSkills.SustainabilityChampion, tblMemberFirmSkills.SustainabilityChampName, tblMemberFirmSkills.Comments, tblMemberFirmSkills.SustainabilityFramework, tblMemberFirmSkills.SustainabilityDiscussed, tblMemberFirmSkills.SustainabilityIndicator1, tblMemberFirmSkills.SustainabilityIndicator2, tblMemberFirmSkills.SustainabilityIndicator3, tblMemberFirmSkills.SustainabilityIndicator4, tblMemberFirmSkills.SustainabilityIndicator5, tblMemberFirmSkills.QMIG, tblMemberFirmSkills.QMSChampion, tblMemberFirmSkills.QMSChampName, tblMemberFirmSkills.QMSChampEmail, tblMemberFirmSkills.SustainabilityChampEmail, tblMemberFirmSkills.ProcurementContact, tblMemberFirmSkills.ProcurementEmail, tblMemberFirmSkills.SubscriptionsTel, tblMemberFirmSkills.HRTrainingTel, tblMemberFirmSkills.MarketingTel, tblMemberFirmSkills.ProcurementTel, tblMemberFirmSkills.YPFContactTel, tblMemberFirmSkills.BlackWomenOwned, tblMemberFirmSkills.SABTACO, tblMemberFirmSkills.BBCBE, tblMemberFirmSkills.GBCSA, tblMemberFirmSkills.GoToPersonName, tblMemberFirmSkills.GoToPersonTel, tblMemberFirmSkills.GoToPersonEmail ORDER BY tblMemberFirmSkills.FirmName"; return $this->sqlf->getAll($sql); } public static function getMandatedPrincipalByFirmId($firmId) { global $conni; $sql = "SELECT `tblMemberFirmSkillOffices`.`Telephone`, `tblMemberFirmSkillOffices`.`Email` AS OfficeEmail, `MemberContacts`.`ContactDesignation`, `MemberContacts`.`ContactInitials`, " . "`MemberContacts`.`ContactSurname`, `MemberContacts`.`Email` " . "FROM `tblMemberFirmSkillOffices` " . "JOIN `MemberContacts` USING (OfficeID) " . "WHERE `MemberContacts`.`MandatedPrincipal` = 1 AND tblMemberFirmSkillOffices.FirmID=" . $firmId; // echo $sql; // exit; $recMP = mysqli_query($conni, $sql); if ($recMP && $rowA = mysqli_fetch_assoc($recMP)) { return $rowA; } return array(); } public function getADNotComplete() { $sql = "SELECT * " . "FROM `tblMemberFirmSkills` MF " . "INNER JOIN ADec_tblMemberFirmSkills ADMF ON MF.FirmID = ADMF.Prev_FirmID " . "INNER JOIN tblMemberFirmSkillOffices MFO " . "INNER JOIN MemberContacts MC ON MFO.OfficeID = MC.OfficeID AND MF.FirmID = MFO.FirmID " . "WHERE MC.Email Is Not Null AND MC.Mail = 0 " . "AND TRIM(MC.Email) <> '' " . "AND (MC.Email like '%@%.%') " . "AND (MC.MandatedPrincipal=1) " . "AND ((MF.DeclarationReceived > '2005-12-31' AND MF.MemberStatus = 'member') OR MF.MemberStatus = 'retired member' OR MF.MemberStatus = 'honorary member') " . "AND MF.`MemberStatus` = 'Member' AND ADMF.ADecStatus = 'U'"; echo $sql . '<br />'; // exit; $notCompletes = $this->sqlf->getAll($sql); return $notCompletes; } }