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.217.117
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
v3.cesa.co.za /
src /
MemberBundle /
Services /
Delete
Unzip
Name
Size
Permission
Date
Action
.htaccess
237
B
-r-xr-xr-x
2026-08-17 03:12
ADecMemberFirmManager.php
5.42
KB
-rwxrwxr-x
2026-04-02 11:48
ADecMemberFirmTransformationManager.php
3.47
KB
-rwxrwxr-x
2026-05-25 12:28
HRForumManager.php
8.77
KB
-rwxrwxr-x
2026-04-02 11:48
MemberFirmManager.php
73.65
KB
-rwxrwxr-x
2026-05-18 12:51
MemberFirmTransformationManager.php
3.56
KB
-rwxrwxr-x
2026-04-02 12:06
Save
Rename
<?php namespace App\MemberBundle\Services; use Symfony\Component\DependencyInjection\ContainerInterface; use Monolog\Logger; use App\ContactBundle\Services\MessageManager; use App\MemberBundle\Entity\MemberFirm; use App\CoreBundle\Services\Utils; /** * Member Firm List Old manager * * @author Otto Saayman <otto@igotafrica.com> * @package MemberBundle * @subpackage MemberFirm * @version 0.0.1 */ final class MemberFirmManager { /** * Service Container * @var object */ private $container = null; /** * Entity manager * @var object */ private $em; /** * Class construct * * @param ContainerInterface $container * @param Logger $logger * @return void */ public function __construct( ContainerInterface $container ) { $this->setContainer($container); $this->setEm($container->get('doctrine')->getManager('default')); return; } /** * Get Container * * @return ContainerInterface $container */ public function getContainer() { return $this->container; } /** * Set Container * * @param ContainerInterface $container * @return void */ public function setContainer($container) { $this->container = $container; } /** * Get Entity Manager * * @return string */ public function getEm() { return $this->em; } /** * Set Container * * @param string $em * @return void */ public function setEm($em) { $this->em = $em; } /** * Get a Member Firm * * @return MemberFirm */ public function find($id) { if (strlen($id) <= 0) { return null; } return $this->em->getRepository(MemberFirm::class)->find($id); } /** * Get a Member Firm by parameters * * @param array $params * @return MemberFirm */ public function findOneBy($params) { return $this->em->getRepository(MemberFirm::class)->findOneBy($params); } /** * Get a Member Firm by parameters * * @param array $params * @return array */ public function findBy($params) { return $this->em->getRepository(MemberFirm::class)->findBy($params); } /** * Get all Member Firms * * @return array */ public function findAll() { return $this->em->getRepository(MemberFirm::class)->findAll(); } /** * Get all Member Firm IDs * * @return array */ public function findAllIds() { return $this->em->getRepository(MemberFirm::class)->findAllIds(); } /** * Save a Member Firm * * @params MemberFirm $memberFirm * @return MemberFirm */ public function save(MemberFirm &$memberFirm) { $this->em->persist($memberFirm); $this->em->flush(); return $memberFirm; } /** * Save a Member Firm * * @params MemberFirm $memberFirm * @return MemberFirm */ public function findOrAdd( &$toBeAdded, &$toBeUpdated, $allMembers, $email, $status, $firstName = '', $lastName = '', $tag = '' ) { if (!Utils::isEmailAddressValid($email)) { return; } if (strlen($tag) <= 0) { echo 'No tag for ' . $email . '<br />' . "\r\n"; return; } $email = str_replace('.coza', '.co.za', $email); //check if attendee is in list $mustAdd = true; $mustTag = true; $updateMailId = ''; foreach ($allMembers as $mailId => $member) { if (trim(strtolower($member['email_address'])) == trim(strtolower($email))) { $mustAdd = false; $updateMailId = $mailId; } if (!is_countable($member['tags']) || count($member['tags']) <= 0) { continue; } foreach ($member['tags'] as $oneTag) { // var_dump($oneTag); // echo "\r\n" . ' tag!' . "\r\n"; if ($oneTag['name'] == $tag) { $mustTag = false; } } } //foreach if ($mustAdd) { foreach ($toBeAdded as $checkOne) { if (trim(strtolower($checkOne['email_address'])) == trim(strtolower($email))) { $mustAdd = false; } } } if ($mustAdd) { $toBeAdded[] = [ 'email_address' => $email, 'status' => $status, 'merge_fields' => ['FNAME' => $firstName, 'LNAME' => $lastName], 'tags' => ["Member", $tag] ]; echo 'Added ' . count($toBeAdded) . ' - ' . $email . '<br />' . "\r\n"; } elseif ($mustTag && strlen($updateMailId) > 0) { $toBeUpdated[] = [ 'subscriber_id' => $updateMailId, 'email_address' => $email, // 'tags' => ["Member", $tag] 'tags' => [['name' => $tag, 'status' => 'active'], ['name' => "Member", 'status' => 'active']] ]; echo 'Updated ' . count($toBeAdded) . ' - ' . $email . '<br />' . "\r\n"; } } /** * Save a Member Firm * * @return void */ public function mailChimpSynch() { $mcCreds = MessageManager::getMCCredentials(); $messageManager = $this->getContainer()->get('contact_message.manager'); $tempValueManager = $this->getContainer()->get('temp_value.manager'); $startAt = 1; //$tempValueManager->getTempValue('mailchimp_member_synch_start', 1); echo 'Member firm synch starts now<br />' . "\r\n"; // exit; $allMembers = $messageManager->getAllEMailsFromMailChimp($mcCreds['api_key'], $mcCreds['main_audience']); echo "Found " . count($allMembers) . " members in MailChimp <br />" . "\r\n"; // echo '<br /><br />'; // exit; $toBeAdded = []; $toBeUpdated = []; $memberFirms = $this->findAllIds(); $endAt = count($memberFirms) + 10; //$startAt + 50; $recordCount = 1; echo 'Running member synch: ' . $startAt . ' ' . $endAt . '<br />' . "\r\n"; // exit; foreach ($memberFirms as $memberFirmId) { if ($recordCount < $startAt) { continue; } if ($startAt > $endAt) { break; } $memberFirm = $this->find($memberFirmId['id']); if (!is_object($memberFirm)) { echo 'Firm not found: ' . $memberFirmId['id'] . '<br />' . "\r\n"; continue; } if (!in_array(strtolower($memberFirm->getMemberStatus()), array('member', 'retired member', 'honorary member'))) { echo 'Firm status not valid member: ' . $memberFirmId['id'] . '<br />' . "\r\n"; continue; } $subscribed = 'subscribed'; if (!is_null($memberFirm->getMarketingEmail()) && strlen($memberFirm->getMarketingEmail()) > 0) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $memberFirm->getMarketingEmail(), $subscribed, $memberFirm->getMarketingContact(), '', 'Member Marketing' ); } if (!is_null($memberFirm->getSubscriptionsEmail()) && strlen($memberFirm->getSubscriptionsEmail()) > 0) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $memberFirm->getSubscriptionsEmail(), $subscribed, $memberFirm->getSubscriptionsContact(), '', 'Member Subscriptions' ); } if (!is_null($memberFirm->getHrTrainingEmail()) && strlen($memberFirm->getHrTrainingEmail()) > 0) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $memberFirm->getHrTrainingEmail(), $subscribed, $memberFirm->getHrTrainingContact(), '', 'Member HR and Training' ); } if (!is_null($memberFirm->getYpfEmail()) && strlen($memberFirm->getYpfEmail()) > 0) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $memberFirm->getYpfEmail(), $subscribed, $memberFirm->getYpfContact(), '', 'Member YPF' ); } if (!is_null($memberFirm->getQmsChampEmail()) && strlen($memberFirm->getQmsChampEmail()) > 0) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $memberFirm->getQmsChampEmail(), $subscribed, $memberFirm->getQmsChampName(), '', 'Member QMS Champion' ); } if (!is_null($memberFirm->getSustainabilityChampEmail()) && strlen($memberFirm->getSustainabilityChampEmail()) > 0) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $memberFirm->getSustainabilityChampEmail(), $subscribed, $memberFirm->getSustainabilityChampName(), '', 'Member Sustainability Champion' ); } if (!is_null($memberFirm->getProcurementEmail()) && strlen($memberFirm->getProcurementEmail()) > 0) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $memberFirm->getProcurementEmail(), $subscribed, $memberFirm->getProcurementContact(), '', 'Member Procurement' ); } foreach ($memberFirm->getMemberOffice() as $office) { foreach ($office->getMemberContact() as $contact) { if (!is_null($contact->getEmail()) && strlen($contact->getEmail()) > 0) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $contact->getEmail(), $subscribed, $contact->getContactFirstName(), $contact->getContactSurname(), 'Member Office Contact' ); if ($contact->isMandatedPrincipal()) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $contact->getEmail(), $subscribed, $contact->getContactFirstName(), $contact->getContactSurname(), 'Member Mandated Principal Office Contact' ); } if ($contact->isPrincipal()) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $contact->getEmail(), $subscribed, $contact->getContactFirstName(), $contact->getContactSurname(), 'Member Principal Office Contact' ); } if ($contact->isOfficeHead()) { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $contact->getEmail(), $subscribed, $contact->getContactFirstName(), $contact->getContactSurname(), 'Member Office Head' ); } if (!is_null($contact->getYpf()) && strtolower($contact->getYpf()) == 'y') { $this->findOrAdd( $toBeAdded, $toBeUpdated, $allMembers, $contact->getEmail(), $subscribed, $contact->getContactFirstName(), $contact->getContactSurname(), 'Member YPF' ); } } } //foreach member contact } //foreach member office if (count($toBeAdded) > 200) { $messageManager->addToMailChimp($mcCreds['api_key'], $mcCreds['main_audience'], $toBeAdded); // var_dump($toBeAdded); // exit; // var_dump($toBeAdded); // exit; $toBeAdded = array(); } if (count($toBeUpdated) > 200) { $messageManager->updateTagsMailChimp($mcCreds['api_key'], $mcCreds['main_audience'], $toBeUpdated); // var_dump($toBeAdded); // exit; // var_dump($toBeUpdated); // exit; $toBeUpdated = array(); } $recordCount++; $startAt++; } //foreach member firm echo 'Member synch done: ' . $startAt . ' ' . $startAt . '<br />' . "\r\n"; $tempValueManager->setTempValue('mailchimp_member_synch_start', $startAt); if (count($toBeAdded) > 0) { $messageManager->addToMailChimp($mcCreds['api_key'], $mcCreds['main_audience'], $toBeAdded); } if (count($toBeUpdated) > 0) { $messageManager->updateTagsMailChimp($mcCreds['api_key'], $mcCreds['main_audience'], $toBeUpdated); } } public function processStats($members) { $statsStart = array( '10' => array('num' => 0, 'turnover' => 0.00), '30' => array('num' => 0, 'turnover' => 0.00), '51' => array('num' => 0, 'turnover' => 0.00), '1130' => array('num' => 0, 'turnover' => 0.00), '1025' => array('num' => 0, 'turnover' => 0.00), '30' => array('num' => 0, 'turnover' => 0.00), '2550' => array('num' => 0, 'turnover' => 0.00), '3050' => array('num' => 0, 'turnover' => 0.00), '5199' => array('num' => 0, 'turnover' => 0.00), '31100' => array('num' => 0, 'turnover' => 0.00), '51100' => array('num' => 0, 'turnover' => 0.00), '100' => array('num' => 0, 'turnover' => 0.00), ); $demos = [ 'ma' => 0, 'mc' => 0, 'mi' => 0, 'mw' => 0, 'mf' => 0, 'fa' => 0, 'fc' => 0, 'fi' => 0, 'fw' => 0, 'ff' => 0, 'male' => 0, 'female' => 0, ]; $staffDemographics = [ 'tm' => $demos, 'sm' => $demos, 'pro' => $demos, 'skilled' => $demos, 'semi' => $demos, 'unskill' => $demos, 'temp' => $demos, 'totals' => $demos, 'male_total' => 0, 'female_total' => 0, 'total' => 0, 'black_owned_total' => 0, ]; $countStaff = ['num' => 0, 'staff' => 0, 'transformation' => $staffDemographics]; $turnOverCategoriesArray = [ 'NotSpecified' => $countStaff, 'EME1' => $countStaff, 'EME2' => $countStaff, 'QSE1' => $countStaff, 'QSE2' => $countStaff, 'QSE3' => $countStaff, 'QSE4' => $countStaff, 'GEN1' => $countStaff, 'GEN2' => $countStaff, 'GEN3' => $countStaff, 'GEN4' => $countStaff, 'GEN5' => $countStaff, 'GEN6' => $countStaff, 'GEN7' => $countStaff, 'GEN8' => $countStaff, ]; $bbbeeLevelArray = [ 'Level1' => 0, 'Level2' => 0, 'Level3' => 0, 'Level4' => 0, 'Level5' => 0, 'Level6' => 0, 'Level7' => 0, 'Level8' => 0, ]; $statistics = array( 'black_women_owned' => $statsStart, 'black_owned' => $statsStart, 'women_owned' => $statsStart, 'total' => array('num' => 0, 'turnover' => 0.00, 'online' => 0, 'offline' => 0), 'total_black_owned' => array('num' => 0, 'turnover' => 0.00), 'total_not_black_owned' => array('num' => 0, 'turnover' => 0.00), 'turnover' => array( 'overall' => $turnOverCategoriesArray, 'black_owned' => $turnOverCategoriesArray, 'not_black_owned' => $turnOverCategoriesArray, ), 'staff' => $staffDemographics, 'bbbeeLevels' => $bbbeeLevelArray, 'staff_levels_to_check' => [], 'total_captured' => 0, 'member_rows' => [], ); $fieldTransformed = [ 'BlackOwned' => 'black_owned', 'BlackWomenOwned' => 'black_women_owned', 'BlackWomenOwnedVal' => 'black_women_owned_val', 'WomenOwned' => 'women_owned', 'TotalStaff' => 'total_staff', 'ThreeYearsAverageTurnover' => 'three_years_average_turnover', 'SMME' => 'smme', 'TransTopMA' => 'trans_top_ma', 'TransTopMC' => 'trans_top_mc', 'TransTopMI' => 'trans_top_mi', 'TransTopMW' => 'trans_top_mw', 'TransTopMN' => 'trans_top_mf', 'TransTopFA' => 'trans_top_fa', 'TransTopFC' => 'trans_top_fc', 'TransTopFI' => 'trans_top_fi', 'TransTopFW' => 'trans_top_fw', 'TransTopFN' => 'trans_top_ff', 'TransSeniorMA' => 'trans_senior_ma', 'TransSeniorMC' => 'trans_senior_mc', 'TransSeniorMI' => 'trans_senior_mi', 'TransSeniorMW' => 'trans_senior_mw', 'TransSeniorMN' => 'trans_senior_mf', 'TransSeniorFA' => 'trans_senior_fa', 'TransSeniorFC' => 'trans_senior_fc', 'TransSeniorFI' => 'trans_senior_fi', 'TransSeniorFW' => 'trans_senior_fw', 'TransSeniorFN' => 'trans_senior_ff', 'TransProfMA' => 'trans_prof_ma', 'TransProfMC' => 'trans_prof_mc', 'TransProfMI' => 'trans_prof_mi', 'TransProfMW' => 'trans_prof_mw', 'TransProfMN' => 'trans_prof_mf', 'TransProfFA' => 'trans_prof_fa', 'TransProfFC' => 'trans_prof_fc', 'TransProfFI' => 'trans_prof_fi', 'TransProfFW' => 'trans_prof_fw', 'TransProfFN' => 'trans_prof_ff', 'TransSkilledMA' => 'trans_skilled_ma', 'TransSkilledMC' => 'trans_skilled_mc', 'TransSkilledMI' => 'trans_skilled_mi', 'TransSkilledMW' => 'trans_skilled_mw', 'TransSkilledMN' => 'trans_skilled_mf', 'TransSkilledFA' => 'trans_skilled_fa', 'TransSkilledFC' => 'trans_skilled_fc', 'TransSkilledFI' => 'trans_skilled_fi', 'TransSkilledFW' => 'trans_skilled_fw', 'TransSkilledFN' => 'trans_skilled_ff', 'TransSemiMA' => 'trans_semi_ma', 'TransSemiMC' => 'trans_semi_mc', 'TransSemiMI' => 'trans_semi_mi', 'TransSemiMW' => 'trans_semi_mw', 'TransSemiMN' => 'trans_semi_mf', 'TransSemiFA' => 'trans_semi_fa', 'TransSemiFC' => 'trans_semi_fc', 'TransSemiFI' => 'trans_semi_fi', 'TransSemiFW' => 'trans_semi_fw', 'TransSemiFN' => 'trans_semi_ff', 'TransUnskillMA' => 'trans_unskill_ma', 'TransUnskillMC' => 'trans_unskill_mc', 'TransUnskillMI' => 'trans_unskill_mi', 'TransUnskillMW' => 'trans_unskill_mw', 'TransUnskillMN' => 'trans_unskill_mf', 'TransUnskillFA' => 'trans_unskill_fa', 'TransUnskillFC' => 'trans_unskill_fc', 'TransUnskillFI' => 'trans_unskill_fi', 'TransUnskillFW' => 'trans_unskill_fw', 'TransUnskillFN' => 'trans_unskill_ff', 'TransTempMA' => 'trans_temp_ma', 'TransTempMC' => 'trans_temp_mc', 'TransTempMI' => 'trans_temp_mi', 'TransTempMW' => 'trans_temp_mw', 'TransTempMN' => 'trans_temp_mf', 'TransTempFA' => 'trans_temp_fa', 'TransTempFC' => 'trans_temp_fc', 'TransTempFI' => 'trans_temp_fi', 'TransTempFW' => 'trans_temp_fw', 'TransTempFN' => 'trans_temp_ff', 'BBBEELevel' => 'bbbee_level', 'ManualCaptured' => 'manual_captured', ]; foreach ($members as $member) { $memberId = 0; if (isset($member['id']) && intval($member['id']) > 0) { $memberId = intval($member['id']); } elseif (isset($member['FirmID']) && intval($member['FirmID']) > 0) { $memberId = intval($member['FirmID']); $member['id'] = $memberId; } elseif (isset($member['Prev_FirmID']) && intval($member['Prev_FirmID']) > 0) { $memberId = intval($member['Prev_FirmID']); $member['id'] = $memberId; } if (!isset($member['firm_name']) && isset($member['FirmName'])) { $member['firm_name'] = $member['FirmName']; } if (!isset($member['declaration_received']) && isset($member['DeclarationReceived'])) { $member['declaration_received'] = $member['DeclarationReceived']; } if (!isset($member['smme']) && isset($member['SMME'])) { $member['smme'] = $member['SMME']; } // $statistics['member_rows'][] = $member; // var_dump(array_keys($member)); // exit; // echo $member['TransProfMA'] . '<br />'; //Transform fields foreach ($fieldTransformed as $old => $new) { if (!isset($member[$new]) && isset($member[$old])) { $member[$new] = $member[$old]; } } //Black Owned if (!isset($member['black_owned']) || is_null($member['black_owned']) || strlen($member['black_owned']) <= 0) { $member['black_owned'] = 'Less than 10%'; } //Black Women Owned if (!isset($member['black_women_owned']) || is_null($member['black_women_owned']) || strlen($member['black_women_owned']) <= 0) { $member['black_women_owned'] = 'Less than 10%'; } //Women Owned if (!isset($member['women_owned']) || is_null($member['women_owned']) || strlen($member['women_owned']) <= 0) { $member['women_owned'] = 'Less than 10%'; } // echo $member['black_women_owned'] . '<br />'; //Total staff if (!isset($member['total_staff'])) { $member['total_staff'] = 0; } //Turnover Categories if (!isset($member['three_years_average_turnover'])) { $member['three_years_average_turnover'] = 0; } if (!isset($member['smme']) || strlen($member['smme']) <= 0) { $member['smme'] = 'EME1'; } if ((!isset($member['black_women_owned']) || strlen($member['black_women_owned']) <= 0) && isset($member['black_women_owned_val']) && strlen($member['black_women_owned_val']) > 0 ) { $member['black_women_owned'] = $member['black_women_owned_val']; } //Transform fields foreach ($fieldTransformed as $old => $new) { if (!isset($member[$new])) { $member[$new] = 0; } } if (in_array($member['smme'], ['EME', 'E', 's', 'u'])) { $member['smme'] = 'EME1'; } elseif (in_array($member['smme'], ['QSE', 'Q', 'm'])) { $member['smme'] = 'QSE1'; } elseif (in_array($member['smme'], ['GEN', 'G', 'l'])) { $member['smme'] = 'GEN1'; } if ($member['three_years_average_turnover'] >= 100000000) { $member['smme'] = 'GEN8'; } elseif ($member['three_years_average_turnover'] >= 90000000) { $member['smme'] = 'GEN7'; } elseif ($member['three_years_average_turnover'] >= 80000000) { $member['smme'] = 'GEN6'; } elseif ($member['three_years_average_turnover'] >= 70000000) { $member['smme'] = 'GEN5'; } elseif ($member['three_years_average_turnover'] >= 60000000) { $member['smme'] = 'GEN4'; } elseif ($member['three_years_average_turnover'] >= 50000000) { $member['smme'] = 'GEN3'; } elseif ($member['three_years_average_turnover'] >= 35000000) { $member['smme'] = 'GEN2'; } elseif ($member['three_years_average_turnover'] >= 25000000) { $member['smme'] = 'GEN1'; } elseif ($member['three_years_average_turnover'] >= 20000000) { $member['smme'] = 'QSE4'; } elseif ($member['three_years_average_turnover'] >= 15000000) { $member['smme'] = 'QSE3'; } elseif ($member['three_years_average_turnover'] >= 10000000) { $member['smme'] = 'QSE2'; } elseif ($member['three_years_average_turnover'] >= 6000000) { $member['smme'] = 'QSE1'; } elseif ($member['three_years_average_turnover'] >= 3000000) { $member['smme'] = 'EME2'; } elseif ($member['three_years_average_turnover'] > 0) { $member['smme'] = 'EME1'; } elseif ($member['smme'] == '') { $member['smme'] = 'NotSpecified'; } if ($member['bbbee_level'] == 1) { $statistics['bbbeeLevels']['Level1'] += 1; } elseif ($member['bbbee_level'] == 2) { $statistics['bbbeeLevels']['Level2'] += 1; } elseif ($member['bbbee_level'] == 3) { $statistics['bbbeeLevels']['Level3'] += 1; } elseif ($member['bbbee_level'] == 4) { $statistics['bbbeeLevels']['Level4'] += 1; } elseif ($member['bbbee_level'] == 5) { $statistics['bbbeeLevels']['Level5'] += 1; } elseif ($member['bbbee_level'] == 6) { $statistics['bbbeeLevels']['Level6'] += 1; } elseif ($member['bbbee_level'] == 7) { $statistics['bbbeeLevels']['Level7'] += 1; } else { $statistics['bbbeeLevels']['Level8'] += 1; } if (!isset($statistics['turnover']['black_owned'][$member['smme']])) { $statistics['turnover']['black_owned'][$member['smme']] = [ 'num' => 0, 'staff' => 0, 'turnover' => 0, ]; } if (!isset($statistics['turnover']['not_black_owned'][$member['smme']])) { $statistics['turnover']['not_black_owned'][$member['smme']] = [ 'num' => 0, 'staff' => 0, 'turnover' => 0, ]; } $member['black_owned'] = trim($member['black_owned']); if (in_array($member['black_owned'], array( 'Less than 10%', '<10%', 'Less than 10', 'N', 'No', 'Less than 10', '0' ))) { $statistics['black_owned']['10']['num']++; $statistics['black_owned']['10']['turnover'] += $member['three_years_average_turnover']; $statistics['black_owned']['51']['num']++; $statistics['black_owned']['51']['turnover'] += $member['three_years_average_turnover']; $statistics['turnover']['not_black_owned'][$member['smme']]['num'] += 1; $statistics['turnover']['not_black_owned'][$member['smme']]['staff'] += $member['total_staff']; $statistics['total_not_black_owned']['num']++; $statistics['total_not_black_owned']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['black_owned'], array( 'Equal to or greater than 10 and less than 25%', '≥10%<25%', 'L', 'Less than 30', 'Equal to or greater than 10 and less than 25' ))) { $statistics['black_owned']['1025']['num']++; $statistics['black_owned']['1025']['turnover'] += $member['three_years_average_turnover']; $statistics['black_owned']['51']['num']++; $statistics['black_owned']['51']['turnover'] += $member['three_years_average_turnover']; $statistics['turnover']['not_black_owned'][$member['smme']]['num'] += 1; $statistics['turnover']['not_black_owned'][$member['smme']]['staff'] += $member['total_staff']; $statistics['total_not_black_owned']['num']++; $statistics['total_not_black_owned']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['black_owned'], array( 'Equal to or greater than 25 and less than 51%', '≥25%<51%', 'Equal to or greater than 25 and less than 51', 'Equal to or greater than 30 and less than 51' ))) { $statistics['black_owned']['2550']['num']++; $statistics['black_owned']['2550']['turnover'] += $member['three_years_average_turnover']; $statistics['black_owned']['51']['num']++; $statistics['black_owned']['51']['turnover'] += $member['three_years_average_turnover']; $statistics['turnover']['not_black_owned'][$member['smme']]['num'] += 1; $statistics['turnover']['not_black_owned'][$member['smme']]['staff'] += $member['total_staff']; $statistics['total_not_black_owned']['num']++; $statistics['total_not_black_owned']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['black_owned'], array( 'Equal to or greater than 51 and less than 100%', '≥51%<100%', 'E', 'Equal to or greater than 51 and less than 100' ))) { $statistics['black_owned']['5199']['num']++; $statistics['black_owned']['5199']['turnover'] += $member['three_years_average_turnover']; $statistics['black_owned']['51100']['num']++; $statistics['black_owned']['51100']['turnover'] += $member['three_years_average_turnover']; $statistics['turnover']['black_owned'][$member['smme']]['num'] += 1; $statistics['turnover']['black_owned'][$member['smme']]['staff'] += $member['total_staff']; $statistics['total_black_owned']['num']++; $statistics['total_black_owned']['turnover'] += $member['three_years_average_turnover']; $statistics['staff']['black_owned_total'] += $member['total_staff']; } elseif (in_array($member['black_owned'], array('100%', 'B', 'Equal to 100', 'Black Owned', '1'))) { $statistics['black_owned']['100']['num']++; $statistics['black_owned']['100']['turnover'] += $member['three_years_average_turnover']; $statistics['black_owned']['51100']['num']++; $statistics['black_owned']['51100']['turnover'] += $member['three_years_average_turnover']; $statistics['turnover']['black_owned'][$member['smme']]['num'] += 1; $statistics['turnover']['black_owned'][$member['smme']]['staff'] += $member['total_staff']; $statistics['total_black_owned']['num']++; $statistics['total_black_owned']['turnover'] += $member['three_years_average_turnover']; $statistics['staff']['black_owned_total'] += $member['total_staff']; } $member['black_women_owned'] = trim($member['black_women_owned']); if (in_array($member['black_women_owned'], array('Less than 10%'))) { $statistics['black_women_owned']['10']['num']++; $statistics['black_women_owned']['10']['turnover'] += $member['three_years_average_turnover']; $statistics['black_women_owned']['30']['num']++; $statistics['black_women_owned']['30']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array( $member['black_women_owned'], array('Less than 30', 'Less than 30%', '<30', '<30%', 'Equal to or greater than 10 and less than 30%') )) { $statistics['black_women_owned']['30']['num']++; $statistics['black_women_owned']['30']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['black_women_owned'], array( 'Equal to or greater than 30 and less than 51%', '≥30%<51%', 'Equal to or greater than 30 and less than 51' ))) { $statistics['black_women_owned']['3050']['num']++; $statistics['black_women_owned']['3050']['turnover'] += $member['three_years_average_turnover']; $statistics['black_women_owned']['31100']['num']++; $statistics['black_women_owned']['31100']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['black_women_owned'], array( 'Equal to or greater than 51 and less than 100%', '≥51%<100%', 'Equal to or greater than 51 and less than 100' ))) { $statistics['black_women_owned']['5199']['num']++; $statistics['black_women_owned']['5199']['turnover'] += $member['three_years_average_turnover']; $statistics['black_women_owned']['31100']['num']++; $statistics['black_women_owned']['31100']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['black_women_owned'], array('100%', 'Equal to 100'))) { $statistics['black_women_owned']['100']['num']++; $statistics['black_women_owned']['100']['turnover'] += $member['three_years_average_turnover']; $statistics['black_women_owned']['31100']['num']++; $statistics['black_women_owned']['31100']['turnover'] += $member['three_years_average_turnover']; } $member['women_owned'] = trim($member['women_owned']); if (in_array($member['women_owned'], array('Less than 10%'))) { $statistics['women_owned']['10']['num']++; $statistics['women_owned']['10']['turnover'] += $member['three_years_average_turnover']; $statistics['women_owned']['30']['num']++; $statistics['women_owned']['30']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array( $member['women_owned'], array('Less than 30', 'Less than 30%', '<30', '<30%', 'Equal to or greater than 10 and less than 30%') )) { $statistics['women_owned']['30']['num']++; $statistics['women_owned']['30']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['women_owned'], array( 'Equal to or greater than 30 and less than 51%', '≥30%<51%', 'Equal to or greater than 30 and less than 51' ))) { $statistics['women_owned']['3050']['num']++; $statistics['women_owned']['3050']['turnover'] += $member['three_years_average_turnover']; $statistics['women_owned']['31100']['num']++; $statistics['women_owned']['31100']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['women_owned'], array( 'Equal to or greater than 51 and less than 100%', '≥51%<100%', 'Equal to or greater than 51 and less than 100' ))) { $statistics['women_owned']['5199']['num']++; $statistics['women_owned']['5199']['turnover'] += $member['three_years_average_turnover']; $statistics['women_owned']['31100']['num']++; $statistics['women_owned']['31100']['turnover'] += $member['three_years_average_turnover']; } elseif (in_array($member['women_owned'], array('100%', 'Equal to 100'))) { $statistics['women_owned']['100']['num']++; $statistics['women_owned']['100']['turnover'] += $member['three_years_average_turnover']; $statistics['women_owned']['31100']['num']++; $statistics['women_owned']['31100']['turnover'] += $member['three_years_average_turnover']; } $statistics['total']['num']++; $statistics['total']['turnover'] += $member['three_years_average_turnover']; if (isset($member['manual_captured']) && $member['manual_captured'] == 1) { $statistics['total']['offline']++; } else { $statistics['total']['online']++; } if (!isset($statistics['turnover']['overall'][$member['smme']])) { $statistics['turnover']['overall'][$member['smme']] = [ 'num' => 0, 'staff' => 0, 'turnover' => 0, ]; } $statistics['turnover']['overall'][$member['smme']]['staff'] += $member['total_staff']; $statistics['turnover']['overall'][$member['smme']]['num'] += 1; if (!isset($statistics['turnover']['overall'][$member['smme']]['transformation'])) { $statistics['turnover']['overall'][$member['smme']]['transformation'] = [ 'tm' => [ 'ma' => 0, 'mc' => 0, 'mi' => 0, 'mw' => 0, 'mf' => 0, 'fa' => 0, 'fc' => 0, 'fi' => 0, 'fw' => 0, 'ff' => 0, ], 'sm' => [ 'ma' => 0, 'mc' => 0, 'mi' => 0, 'mw' => 0, 'mf' => 0, 'fa' => 0, 'fc' => 0, 'fi' => 0, 'fw' => 0, 'ff' => 0, ], 'pro' => [ 'ma' => 0, 'mc' => 0, 'mi' => 0, 'mw' => 0, 'mf' => 0, 'fa' => 0, 'fc' => 0, 'fi' => 0, 'fw' => 0, 'ff' => 0, ], 'skilled' => [ 'ma' => 0, 'mc' => 0, 'mi' => 0, 'mw' => 0, 'mf' => 0, 'fa' => 0, 'fc' => 0, 'fi' => 0, 'fw' => 0, 'ff' => 0, ], 'semi' => [ 'ma' => 0, 'mc' => 0, 'mi' => 0, 'mw' => 0, 'mf' => 0, 'fa' => 0, 'fc' => 0, 'fi' => 0, 'fw' => 0, 'ff' => 0, ], 'unskill' => [ 'ma' => 0, 'mc' => 0, 'mi' => 0, 'mw' => 0, 'mf' => 0, 'fa' => 0, 'fc' => 0, 'fi' => 0, 'fw' => 0, 'ff' => 0, ], 'temp' => [ 'ma' => 0, 'mc' => 0, 'mi' => 0, 'mw' => 0, 'mf' => 0, 'fa' => 0, 'fc' => 0, 'fi' => 0, 'fw' => 0, 'ff' => 0, ], ]; } // Top Management $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['ma'] += $member['trans_top_ma']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['mc'] += $member['trans_top_mc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['mi'] += $member['trans_top_mi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['mw'] += $member['trans_top_mw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['mf'] += $member['trans_top_mf']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['fa'] += $member['trans_top_fa']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['fc'] += $member['trans_top_fc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['fi'] += $member['trans_top_fi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['fw'] += $member['trans_top_fw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['tm']['ff'] += $member['trans_top_ff']; // Senior Management $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['ma'] += $member['trans_senior_ma']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['mc'] += $member['trans_senior_mc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['mi'] += $member['trans_senior_mi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['mw'] += $member['trans_senior_mw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['mf'] += $member['trans_senior_mf']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['fa'] += $member['trans_senior_fa']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['fc'] += $member['trans_senior_fc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['fi'] += $member['trans_senior_fi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['fw'] += $member['trans_senior_fw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['sm']['ff'] += $member['trans_senior_ff']; // Professional $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['ma'] += $member['trans_prof_ma']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['mc'] += $member['trans_prof_mc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['mi'] += $member['trans_prof_mi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['mw'] += $member['trans_prof_mw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['mf'] += $member['trans_prof_mf']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['fa'] += $member['trans_prof_fa']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['fc'] += $member['trans_prof_fc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['fi'] += $member['trans_prof_fi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['fw'] += $member['trans_prof_fw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['pro']['ff'] += $member['trans_prof_ff']; // Skilled $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['ma'] += $member['trans_skilled_ma']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['mc'] += $member['trans_skilled_mc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['mi'] += $member['trans_skilled_mi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['mw'] += $member['trans_skilled_mw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['mf'] += $member['trans_skilled_mf']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['fa'] += $member['trans_skilled_fa']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['fc'] += $member['trans_skilled_fc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['fi'] += $member['trans_skilled_fi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['fw'] += $member['trans_skilled_fw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['skilled']['ff'] += $member['trans_skilled_ff']; // Semi-Skilled $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['ma'] += $member['trans_semi_ma']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['mc'] += $member['trans_semi_mc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['mi'] += $member['trans_semi_mi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['mw'] += $member['trans_semi_mw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['mf'] += $member['trans_semi_mf']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['fa'] += $member['trans_semi_fa']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['fc'] += $member['trans_semi_fc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['fi'] += $member['trans_semi_fi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['fw'] += $member['trans_semi_fw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['semi']['ff'] += $member['trans_semi_ff']; // Unskilled $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['ma'] += $member['trans_unskill_ma']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['mc'] += $member['trans_unskill_mc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['mi'] += $member['trans_unskill_mi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['mw'] += $member['trans_unskill_mw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['mf'] += $member['trans_unskill_mf']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['fa'] += $member['trans_unskill_fa']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['fc'] += $member['trans_unskill_fc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['fi'] += $member['trans_unskill_fi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['fw'] += $member['trans_unskill_fw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['unskill']['ff'] += $member['trans_unskill_ff']; // Temp $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['ma'] += $member['trans_temp_ma']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['mc'] += $member['trans_temp_mc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['mi'] += $member['trans_temp_mi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['mw'] += $member['trans_temp_mw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['mf'] += $member['trans_temp_mf']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['fa'] += $member['trans_temp_fa']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['fc'] += $member['trans_temp_fc']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['fi'] += $member['trans_temp_fi']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['fw'] += $member['trans_temp_fw']; $statistics['turnover']['overall'][$member['smme']]['transformation']['temp']['ff'] += $member['trans_temp_ff']; //Transformation // Top Management $statistics['staff']['tm']['ma'] += $member['trans_top_ma']; $statistics['staff']['tm']['mc'] += $member['trans_top_mc']; $statistics['staff']['tm']['mi'] += $member['trans_top_mi']; $statistics['staff']['tm']['mw'] += $member['trans_top_mw']; $statistics['staff']['tm']['mf'] += $member['trans_top_mf']; $statistics['staff']['tm']['fa'] += $member['trans_top_fa']; $statistics['staff']['tm']['fc'] += $member['trans_top_fc']; $statistics['staff']['tm']['fi'] += $member['trans_top_fi']; $statistics['staff']['tm']['fw'] += $member['trans_top_fw']; $statistics['staff']['tm']['ff'] += $member['trans_top_ff']; $statistics['staff']['tm']['male'] += $member['trans_top_ma'] + $member['trans_top_mc'] + $member['trans_top_mi'] + $member['trans_top_mw'] + $member['trans_top_mf']; $statistics['staff']['tm']['female'] += $member['trans_top_fa'] + $member['trans_top_fc'] + $member['trans_top_fi'] + $member['trans_top_fw'] + $member['trans_top_ff']; // Senior Management $statistics['staff']['sm']['ma'] += $member['trans_senior_ma']; $statistics['staff']['sm']['mc'] += $member['trans_senior_mc']; $statistics['staff']['sm']['mi'] += $member['trans_senior_mi']; $statistics['staff']['sm']['mw'] += $member['trans_senior_mw']; $statistics['staff']['sm']['mf'] += $member['trans_senior_mf']; $statistics['staff']['sm']['fa'] += $member['trans_senior_fa']; $statistics['staff']['sm']['fc'] += $member['trans_senior_fc']; $statistics['staff']['sm']['fi'] += $member['trans_senior_fi']; $statistics['staff']['sm']['fw'] += $member['trans_senior_fw']; $statistics['staff']['sm']['ff'] += $member['trans_senior_ff']; $statistics['staff']['sm']['male'] += $member['trans_senior_ma'] + $member['trans_senior_mc'] + $member['trans_senior_mi'] + $member['trans_senior_mw'] + $member['trans_senior_mf']; $statistics['staff']['sm']['female'] += $member['trans_senior_fa'] + $member['trans_senior_fc'] + $member['trans_senior_fi'] + $member['trans_senior_fw'] + $member['trans_senior_ff']; // Professional $statistics['staff']['pro']['ma'] += $member['trans_prof_ma']; $statistics['staff']['pro']['mc'] += $member['trans_prof_mc']; $statistics['staff']['pro']['mi'] += $member['trans_prof_mi']; $statistics['staff']['pro']['mw'] += $member['trans_prof_mw']; $statistics['staff']['pro']['mf'] += $member['trans_prof_mf']; $statistics['staff']['pro']['fa'] += $member['trans_prof_fa']; $statistics['staff']['pro']['fc'] += $member['trans_prof_fc']; $statistics['staff']['pro']['fi'] += $member['trans_prof_fi']; $statistics['staff']['pro']['fw'] += $member['trans_prof_fw']; $statistics['staff']['pro']['ff'] += $member['trans_prof_ff']; $statistics['staff']['pro']['male'] += $member['trans_prof_ma'] + $member['trans_prof_mc'] + $member['trans_prof_mi'] + $member['trans_prof_mw'] + $member['trans_prof_mf']; $statistics['staff']['pro']['female'] += $member['trans_prof_fa'] + $member['trans_prof_fc'] + $member['trans_prof_fi'] + $member['trans_prof_fw'] + $member['trans_prof_ff']; // Skilled $statistics['staff']['skilled']['ma'] += $member['trans_skilled_ma']; $statistics['staff']['skilled']['mc'] += $member['trans_skilled_mc']; $statistics['staff']['skilled']['mi'] += $member['trans_skilled_mi']; $statistics['staff']['skilled']['mw'] += $member['trans_skilled_mw']; $statistics['staff']['skilled']['mf'] += $member['trans_skilled_mf']; $statistics['staff']['skilled']['fa'] += $member['trans_skilled_fa']; $statistics['staff']['skilled']['fc'] += $member['trans_skilled_fc']; $statistics['staff']['skilled']['fi'] += $member['trans_skilled_fi']; $statistics['staff']['skilled']['fw'] += $member['trans_skilled_fw']; $statistics['staff']['skilled']['ff'] += $member['trans_skilled_ff']; $statistics['staff']['skilled']['male'] += $member['trans_skilled_ma'] + $member['trans_skilled_mc'] + $member['trans_skilled_mi'] + $member['trans_skilled_mw'] + $member['trans_skilled_mf']; $statistics['staff']['skilled']['female'] += $member['trans_skilled_fa'] + $member['trans_skilled_fc'] + $member['trans_skilled_fi'] + $member['trans_skilled_fw'] + $member['trans_skilled_ff']; // Semi-Skilled $statistics['staff']['semi']['ma'] += $member['trans_semi_ma']; $statistics['staff']['semi']['mc'] += $member['trans_semi_mc']; $statistics['staff']['semi']['mi'] += $member['trans_semi_mi']; $statistics['staff']['semi']['mw'] += $member['trans_semi_mw']; $statistics['staff']['semi']['mf'] += $member['trans_semi_mf']; $statistics['staff']['semi']['fa'] += $member['trans_semi_fa']; $statistics['staff']['semi']['fc'] += $member['trans_semi_fc']; $statistics['staff']['semi']['fi'] += $member['trans_semi_fi']; $statistics['staff']['semi']['fw'] += $member['trans_semi_fw']; $statistics['staff']['semi']['ff'] += $member['trans_semi_ff']; $statistics['staff']['semi']['male'] += $member['trans_semi_ma'] + $member['trans_semi_mc'] + $member['trans_semi_mi'] + $member['trans_semi_mw'] + $member['trans_semi_mf']; $statistics['staff']['semi']['female'] += $member['trans_semi_fa'] + $member['trans_semi_fc'] + $member['trans_semi_fi'] + $member['trans_semi_fw'] + $member['trans_semi_ff']; // Unskilled $statistics['staff']['unskill']['ma'] += $member['trans_unskill_ma']; $statistics['staff']['unskill']['mc'] += $member['trans_unskill_mc']; $statistics['staff']['unskill']['mi'] += $member['trans_unskill_mi']; $statistics['staff']['unskill']['mw'] += $member['trans_unskill_mw']; $statistics['staff']['unskill']['mf'] += $member['trans_unskill_mf']; $statistics['staff']['unskill']['fa'] += $member['trans_unskill_fa']; $statistics['staff']['unskill']['fc'] += $member['trans_unskill_fc']; $statistics['staff']['unskill']['fi'] += $member['trans_unskill_fi']; $statistics['staff']['unskill']['fw'] += $member['trans_unskill_fw']; $statistics['staff']['unskill']['ff'] += $member['trans_unskill_ff']; $statistics['staff']['unskill']['male'] += $member['trans_unskill_ma'] + $member['trans_unskill_mc'] + $member['trans_unskill_mi'] + $member['trans_unskill_mw'] + $member['trans_unskill_mf']; $statistics['staff']['unskill']['female'] += $member['trans_unskill_fa'] + $member['trans_unskill_fc'] + $member['trans_unskill_fi'] + $member['trans_unskill_fw'] + $member['trans_unskill_ff']; // Temp $statistics['staff']['temp']['ma'] += $member['trans_temp_ma']; $statistics['staff']['temp']['mc'] += $member['trans_temp_mc']; $statistics['staff']['temp']['mi'] += $member['trans_temp_mi']; $statistics['staff']['temp']['mw'] += $member['trans_temp_mw']; $statistics['staff']['temp']['mf'] += $member['trans_temp_mf']; $statistics['staff']['temp']['fa'] += $member['trans_temp_fa']; $statistics['staff']['temp']['fc'] += $member['trans_temp_fc']; $statistics['staff']['temp']['fi'] += $member['trans_temp_fi']; $statistics['staff']['temp']['fw'] += $member['trans_temp_fw']; $statistics['staff']['temp']['ff'] += $member['trans_temp_ff']; $statistics['staff']['temp']['male'] += $member['trans_temp_ma'] + $member['trans_temp_mc'] + $member['trans_temp_mi'] + $member['trans_temp_mw'] + $member['trans_temp_mf']; $statistics['staff']['temp']['female'] += $member['trans_temp_fa'] + $member['trans_temp_fc'] + $member['trans_temp_fi'] + $member['trans_temp_fw'] + $member['trans_temp_ff']; // Totals $statistics['staff']['totals']['ma'] += $member['trans_top_ma'] + $member['trans_senior_ma'] + $member['trans_prof_ma'] + $member['trans_skilled_ma'] + $member['trans_semi_ma'] + $member['trans_unskill_ma'] + $member['trans_temp_ma']; $statistics['staff']['totals']['mc'] += $member['trans_top_mc'] + $member['trans_senior_mc'] + $member['trans_prof_mc'] + $member['trans_skilled_mc'] + $member['trans_semi_mc'] + $member['trans_unskill_mc'] + $member['trans_temp_mc']; $statistics['staff']['totals']['mi'] += $member['trans_top_mi'] + $member['trans_senior_mi'] + $member['trans_prof_mi'] + $member['trans_skilled_mi'] + $member['trans_semi_mi'] + $member['trans_unskill_mi'] + $member['trans_temp_mi']; $statistics['staff']['totals']['mw'] += $member['trans_top_mw'] + $member['trans_senior_mw'] + $member['trans_prof_mw'] + $member['trans_skilled_mw'] + $member['trans_semi_mw'] + $member['trans_unskill_mw'] + $member['trans_temp_mw']; $statistics['staff']['totals']['mf'] += $member['trans_top_mf'] + $member['trans_senior_mf'] + $member['trans_prof_mf'] + $member['trans_skilled_mf'] + $member['trans_semi_mf'] + $member['trans_unskill_mf'] + $member['trans_temp_mf']; $statistics['staff']['totals']['fa'] += $member['trans_top_fa'] + $member['trans_senior_fa'] + $member['trans_prof_fa'] + $member['trans_skilled_fa'] + $member['trans_semi_fa'] + $member['trans_unskill_fa'] + $member['trans_temp_fa']; $statistics['staff']['totals']['fc'] += $member['trans_top_fc'] + $member['trans_senior_fc'] + $member['trans_prof_fc'] + $member['trans_skilled_fc'] + $member['trans_semi_fc'] + $member['trans_unskill_fc'] + $member['trans_temp_fc']; $statistics['staff']['totals']['fi'] += $member['trans_top_fi'] + $member['trans_senior_fi'] + $member['trans_prof_fi'] + $member['trans_skilled_fi'] + $member['trans_semi_fi'] + $member['trans_unskill_fi'] + $member['trans_temp_fi']; $statistics['staff']['totals']['fw'] += $member['trans_top_fw'] + $member['trans_senior_fw'] + $member['trans_prof_fw'] + $member['trans_skilled_fw'] + $member['trans_semi_fw'] + $member['trans_unskill_fw'] + $member['trans_temp_fw']; $statistics['staff']['totals']['ff'] += $member['trans_top_ff'] + $member['trans_senior_ff'] + $member['trans_prof_ff'] + $member['trans_skilled_ff'] + $member['trans_semi_ff'] + $member['trans_unskill_ff'] + $member['trans_temp_ff']; $totalMale = $member['trans_top_ma'] + $member['trans_senior_ma'] + $member['trans_prof_ma'] + $member['trans_skilled_ma'] + $member['trans_semi_ma'] + $member['trans_unskill_ma'] + $member['trans_temp_ma'] + $member['trans_top_mc'] + $member['trans_senior_mc'] + $member['trans_prof_mc'] + $member['trans_skilled_mc'] + $member['trans_semi_mc'] + $member['trans_unskill_mc'] + $member['trans_temp_mc'] + $member['trans_top_mi'] + $member['trans_senior_mi'] + $member['trans_prof_mi'] + $member['trans_skilled_mi'] + $member['trans_semi_mi'] + $member['trans_unskill_mi'] + $member['trans_temp_mi'] + $member['trans_top_mw'] + $member['trans_senior_mw'] + $member['trans_prof_mw'] + $member['trans_skilled_mw'] + $member['trans_semi_mw'] + $member['trans_unskill_mw'] + $member['trans_temp_mw'] + $member['trans_top_mf'] + $member['trans_senior_mf'] + $member['trans_prof_mf'] + $member['trans_skilled_mf'] + $member['trans_semi_mf'] + $member['trans_unskill_mf'] + $member['trans_temp_mf']; $totalFemale = $member['trans_top_fa'] + $member['trans_senior_fa'] + $member['trans_prof_fa'] + $member['trans_skilled_fa'] + $member['trans_semi_fa'] + $member['trans_unskill_fa'] + $member['trans_temp_fa'] + $member['trans_top_fc'] + $member['trans_senior_fc'] + $member['trans_prof_fc'] + $member['trans_skilled_fc'] + $member['trans_semi_fc'] + $member['trans_unskill_fc'] + $member['trans_temp_fc'] + $member['trans_top_fi'] + $member['trans_senior_fi'] + $member['trans_prof_fi'] + $member['trans_skilled_fi'] + $member['trans_semi_fi'] + $member['trans_unskill_fi'] + $member['trans_temp_fi'] + $member['trans_top_fw'] + $member['trans_senior_fw'] + $member['trans_prof_fw'] + $member['trans_skilled_fw'] + $member['trans_semi_fw'] + $member['trans_unskill_fw'] + $member['trans_temp_fw'] + $member['trans_top_ff'] + $member['trans_senior_ff'] + $member['trans_prof_ff'] + $member['trans_skilled_ff'] + $member['trans_semi_ff'] + $member['trans_unskill_ff'] + $member['trans_temp_ff']; $statistics['staff']['male_total'] += $totalMale; $statistics['staff']['female_total'] += $totalFemale; $statistics['staff']['total'] += $member['total_staff']; if ($memberId > 0 && !isset($statistics['member_rows'][$memberId])) { $statistics['member_rows'][$memberId] = $member; } if ($memberId > 0 && $member['total_staff'] != $totalMale + $totalFemale) { $statistics['staff_levels_to_check'][$memberId] = $member; $statistics['staff_levels_to_check'][$memberId]['total_female'] = $totalFemale; $statistics['staff_levels_to_check'][$memberId]['total_male'] = $totalMale; $statistics['staff_levels_to_check'][$memberId]['total_staff'] = $member['total_staff']; // echo $member['id'] . ' - ' . $member['firm_name'] . ' - ' . $member['total_staff'] . ' : ' . $totalMale . ' : ' . $totalFemale . '<br />'; } if (isset($member['ADecID']) && $member['ADecID'] > 0) { $statistics['total_captured'] += 1; } // echo $member['TransProfMA'] . ' : ' . $member['trans_prof_ma'] . '<br />'; } //foreach member $statistics['black_owned_turnover_data'] = [ [ 'label' => 'Black Owned', 'data' => [ $statistics['turnover']['black_owned']['EME1']['num'], $statistics['turnover']['black_owned']['EME2']['num'], $statistics['turnover']['black_owned']['QSE1']['num'], $statistics['turnover']['black_owned']['QSE2']['num'], $statistics['turnover']['black_owned']['QSE3']['num'], $statistics['turnover']['black_owned']['QSE4']['num'], $statistics['turnover']['black_owned']['GEN1']['num'], $statistics['turnover']['black_owned']['GEN2']['num'], $statistics['turnover']['black_owned']['GEN3']['num'], $statistics['turnover']['black_owned']['GEN4']['num'], $statistics['turnover']['black_owned']['GEN5']['num'], $statistics['turnover']['black_owned']['GEN6']['num'], $statistics['turnover']['black_owned']['GEN7']['num'], $statistics['turnover']['black_owned']['GEN8']['num'], ] ], [ 'label' => 'Not Black Owned', 'data' => [ $statistics['turnover']['not_black_owned']['EME1']['num'], $statistics['turnover']['not_black_owned']['EME2']['num'], $statistics['turnover']['not_black_owned']['QSE1']['num'], $statistics['turnover']['not_black_owned']['QSE2']['num'], $statistics['turnover']['not_black_owned']['QSE3']['num'], $statistics['turnover']['not_black_owned']['QSE4']['num'], $statistics['turnover']['not_black_owned']['GEN1']['num'], $statistics['turnover']['not_black_owned']['GEN2']['num'], $statistics['turnover']['not_black_owned']['GEN3']['num'], $statistics['turnover']['not_black_owned']['GEN4']['num'], $statistics['turnover']['not_black_owned']['GEN5']['num'], $statistics['turnover']['not_black_owned']['GEN6']['num'], $statistics['turnover']['not_black_owned']['GEN7']['num'], $statistics['turnover']['not_black_owned']['GEN8']['num'], ] ] ]; $statistics['black_owned_staff_data'] = [ [ 'label' => 'Black Owned', 'data' => [ $statistics['turnover']['black_owned']['EME1']['staff'], $statistics['turnover']['black_owned']['EME2']['staff'], $statistics['turnover']['black_owned']['QSE1']['staff'], $statistics['turnover']['black_owned']['QSE2']['staff'], $statistics['turnover']['black_owned']['QSE3']['staff'], $statistics['turnover']['black_owned']['QSE4']['staff'], $statistics['turnover']['black_owned']['GEN1']['staff'], $statistics['turnover']['black_owned']['GEN2']['staff'], $statistics['turnover']['black_owned']['GEN3']['staff'], $statistics['turnover']['black_owned']['GEN4']['staff'], $statistics['turnover']['black_owned']['GEN5']['staff'], $statistics['turnover']['black_owned']['GEN6']['staff'], $statistics['turnover']['black_owned']['GEN7']['staff'], $statistics['turnover']['black_owned']['GEN8']['staff'], ] ], [ 'label' => 'Not Black Owned', 'data' => [ $statistics['turnover']['not_black_owned']['EME1']['staff'], $statistics['turnover']['not_black_owned']['EME2']['staff'], $statistics['turnover']['not_black_owned']['QSE1']['staff'], $statistics['turnover']['not_black_owned']['QSE2']['staff'], $statistics['turnover']['not_black_owned']['QSE3']['staff'], $statistics['turnover']['not_black_owned']['QSE4']['staff'], $statistics['turnover']['not_black_owned']['GEN1']['staff'], $statistics['turnover']['not_black_owned']['GEN2']['staff'], $statistics['turnover']['not_black_owned']['GEN3']['staff'], $statistics['turnover']['not_black_owned']['GEN4']['staff'], $statistics['turnover']['not_black_owned']['GEN5']['staff'], $statistics['turnover']['not_black_owned']['GEN6']['staff'], $statistics['turnover']['not_black_owned']['GEN7']['staff'], $statistics['turnover']['not_black_owned']['GEN8']['staff'], ] ] ]; $statistics['bbbee_levels_data'] = [ [ 'label' => 'Member Firms', 'data' => [ $statistics['bbbeeLevels']['Level1'], $statistics['bbbeeLevels']['Level2'], $statistics['bbbeeLevels']['Level3'], $statistics['bbbeeLevels']['Level4'], $statistics['bbbeeLevels']['Level5'], $statistics['bbbeeLevels']['Level6'], $statistics['bbbeeLevels']['Level7'], $statistics['bbbeeLevels']['Level8'], ] ] ]; $staffLevels = ['tm', 'sm', 'pro', 'skilled', 'semi', 'unskill', 'temp']; foreach ($staffLevels as $staffLevel) { $statistics['staff_to_cat_data_' . $staffLevel] = [ 'labels' => [ 'Male - African', 'Male - Coloured', 'Male - Indian', 'Male - White', 'Male - Foreign', 'Female - African', 'Female - Coloured', 'Female - Indian', 'Female - White', 'Female - Foreign', ], 'datasets' => [] ]; foreach ($turnOverCategoriesArray as $toLevel => $countStaff) { $statistics['staff_to_cat_data_' . $staffLevel]['datasets'][] = [ 'label' => $toLevel, 'data' => [ $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['ma'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['mc'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['mi'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['mw'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['mf'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['fa'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['fc'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['fi'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['fw'], $statistics['turnover']['overall'][$toLevel]['transformation'][$staffLevel]['ff'], ], 'stack' => $toLevel, ]; } } return $statistics; } /** * Save a Member Firm * * @return array */ public function getTransformationStatistics() { $return = []; $transformationManager = $this->getContainer()->get('member_firm_transformation.manager'); $return['members']['member_list'] = $this->em->getRepository(MemberFirm::class)->getList(); foreach ($return['members']['member_list'] as $key => $member) { $memberFirm = $this->find($member['id']); if (is_object($memberFirm)) { // echo $memberFirm->getId() . '<br />'; $memberTransform = $transformationManager->findOneByArray(array('member_firm' => $memberFirm)); // var_dump(array_keys($memberTransform)); // exit; if (is_array($memberTransform) && count($memberTransform) > 0) { $return['members']['member_list'][$key] = array_merge($return['members']['member_list'][$key], $memberTransform[0]); } } } // echo count($return['members']['member_list']) . '<br />'; $return['members']['statistics'] = $this->processStats($return['members']['member_list']); $return = $this->getContainer()->get('adec_member_firm.manager')->getLists($return); return $return; } }