@ 2025-04-15T19:58:36Z <?php
/**
* @throws \Paycom_Dbal_Exception
* @throws \Exception
*/
private function fetchCertApprovedAndAwaitingVerificationByEeCode(
string $clientCode,
array $eeCodes = array(),
bool $showArchivedEeCert = false
) : array
{
$qb = $this->connection->createQueryBuilder();
$qb->select([
'eeCert.eecode AS eeCode',
'eeCert.verification_status AS verificationStatus',
'approvers.approver_type AS approverType',
'approvers.approver AS approverUserName',
'user.userstatus AS approverStatus',
'emp.supervsr1 AS supervisorEeCode',
'sup_user.username AS supervisorUsername',
'sup_user.userstatus AS supervisorStatus'
])
->from('lms_cm_ee_cert_master', 'master')
->innerJoin(
'master',
'lms_cm_certification',
'cert', $qb->expr()->andX(
$qb->expr()->eq('master.clientcode', 'cert.clientcode'),
$qb->expr()->eq('master.cert_id', 'cert.id')
)
)
->innerJoin(
'master',
'lms_cm_ee_certification',
'eeCert',
$qb->expr()->andX(
$qb->expr()->eq('master.clientcode', 'eeCert.clientcode'),
$qb->expr()->eq('master.eecode', 'eeCert.eecode'),
$qb->expr()->eq('master.id', 'eeCert.ee_cert_master_id')
)
)
->leftJoin(
'eeCert',
'lms_cm_ee_certification',
'eeCert2',
$qb->expr()->andX(
$qb->expr()->eq('eeCert2.clientcode', 'eeCert.clientcode'),
$qb->expr()->eq('eeCert2.eecode', 'eeCert.eecode'),
$qb->expr()->eq('eeCert2.ee_cert_master_id', 'eeCert.ee_cert_master_id'),
$qb->expr()->gt('eeCert2.added_on', 'eeCert.added_on')
)
)
->leftJoin(
'master',
'lms_cm_approvers',
'approvers',
$qb->expr()->andX(
$qb->expr()->eq('master.clientcode', 'approvers.clientcode'),
$qb->expr()->eq('master.cert_id', 'approvers.cert_id'),
$qb->expr()->eq('master.approver_master_id', 'approvers.approver_master_id'),
$qb->expr()->eq('master.sequence', 'approvers.sequence')
)
)
->leftJoin(
'approvers',
'on_clusers',
'user',
$qb->expr()->andX(
$qb->expr()->eq('user.clientcode', 'approvers.clientcode'),
$qb->expr()->eq('user.username', 'approvers.approver')
)
)
->leftJoin(
'master',
'empchild',
'emp',
$qb->expr()->andX(
$qb->expr()->eq('emp.clientcode', 'master.clientcode'),
$qb->expr()->eq('emp.eecode', 'master.eecode')
)
)
->leftJoin(
'emp',
'on_clusers',
'sup_user',
$qb->expr()->andX(
$qb->expr()->eq('sup_user.clientcode', 'emp.clientcode'),
$qb->expr()->eq('sup_user.eecode', 'emp.supervsr1')
)
)
->where($qb->expr()->eq('master.clientcode', $qb->createPositionalParameter($clientCode)))
->andWhere($qb->expr()->isNull('eeCert2.id'))
->andWhere($qb->expr()->eq('master.is_deleted', 0));
if ($this->featuresService->isEeCertArchiveRemoveEditMVPFFEnabled($clientCode)) {
if(!$showArchivedEeCert) {
$qb->andWhere($qb->expr()->eq('master.is_archived', 0));
$qb->andWhere($qb->expr()->eq('cert.is_archived', 0));
}
}
$qb->andWhere($qb->expr()->eq('eeCert.is_deleted', 0));
$qb->andWhere($qb->expr()->eq('cert.is_deleted', 0));
if (!empty($eeCodes)) {
$qb->andWhere($qb->expr()->in(
'eeCert.eecode',
$this->connection->batchQuote($eeCodes)
));
}
$rows = $qb->execute()->fetchAll();
$availableApprovers = $this->certificationApprovalWorkflowRepo->getActiveUsersWithApproveDenyPermission($clientCode);
$certDataIndexedByEeCode = [];
foreach ($rows as $row) {
$eeCode = $row['eeCode'];
if (!isset($certDataIndexedByEeCode[$eeCode])) {
$certDataIndexedByEeCode[$eeCode] = [
'eeCode' => $eeCode,
'approvedCerts' => 0,
'waitOnVerifyCerts' => 0,
'isApproverUnavailable' => false
];
}
$status = (int)$row['verificationStatus'];
if ($status === 1) {
$certDataIndexedByEeCode[$eeCode]['approvedCerts']++;
} elseif ($status === 0) {
$certDataIndexedByEeCode[$eeCode]['waitOnVerifyCerts']++;
$approverUsername = $row['approverType'] === CertificationSetUp::APPROVER_TYPE_PRIMARY_SUPERVISOR
? $row['supervisorUsername']
: $row['approverUserName'];
$approverStatus = $row['approverType'] === CertificationSetUp::APPROVER_TYPE_PRIMARY_SUPERVISOR
? $row['supervisorStatus']
: $row['approverStatus'];
if (empty($approverUsername) || $approverStatus !== 'A' || !in_array($approverUsername, $availableApprovers, true)) {
$certDataIndexedByEeCode[$eeCode]['isApproverUnavailable'] = true;
}
}
}
foreach ($eeCodes as $eeCode) {
if (!isset($certDataIndexedByEeCode[$eeCode])) {
$certDataIndexedByEeCode[$eeCode] = [
'approvedCerts' => 0,
'waitOnVerifyCerts' => 0,
'eeCode' => $eeCode,
'isApproverUnavailable' => false
];
}
}
return $certDataIndexedByEeCode;
}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).
Version System time (s) User time (s) Memory (MiB) 8.4.6 0.013 0.008 17.82 8.4.5 0.008 0.003 17.84 8.4.4 0.015 0.007 17.79 8.4.3 0.008 0.002 17.32 8.4.2 0.007 0.004 18.01 8.4.1 0.008 0.003 17.81 8.3.20 0.008 0.003 16.86 8.3.19 0.005 0.006 16.67 8.3.18 0.013 0.004 16.23 8.3.17 0.013 0.004 16.07 8.3.16 0.016 0.004 18.42 8.3.15 0.011 0.006 15.81 8.3.14 0.012 0.004 16.53 8.3.13 0.008 0.007 16.33 8.3.12 0.010 0.005 16.44 8.3.11 0.013 0.002 16.50 8.3.10 0.017 0.002 16.46 8.3.9 0.013 0.005 16.18 8.3.8 0.011 0.005 16.32 8.3.7 0.012 0.005 16.39 8.3.6 0.015 0.006 16.14 8.3.5 0.015 0.005 15.90 8.3.4 0.013 0.003 17.34 8.3.3 0.012 0.008 17.55 8.3.2 0.019 0.003 17.43 8.3.1 0.009 0.005 17.20 8.3.0 0.017 0.003 17.48 8.2.28 0.013 0.006 16.61 8.2.27 0.010 0.006 16.25 8.2.26 0.020 0.007 16.68 8.2.25 0.017 0.008 16.61 8.2.24 0.011 0.008 16.07 8.2.23 0.012 0.008 16.18 8.2.22 0.012 0.009 16.48 8.2.21 0.011 0.006 15.88 8.2.20 0.015 0.003 16.52 8.2.19 0.016 0.002 16.12 8.2.18 0.019 0.005 16.32 8.2.17 0.014 0.003 17.28 8.2.16 0.011 0.006 17.29 8.2.15 0.020 0.004 17.19 8.2.14 0.020 0.007 17.35 8.2.13 0.015 0.009 17.27 8.2.12 0.023 0.007 17.25 8.2.11 0.010 0.008 17.51 8.2.10 0.017 0.002 17.23 8.2.9 0.017 0.006 17.45 8.2.8 0.013 0.005 16.88 8.2.7 0.017 0.004 17.40 8.2.6 0.015 0.002 16.96 8.2.5 0.013 0.003 16.96 8.2.4 0.011 0.005 17.15 8.2.3 0.017 0.003 17.03 8.2.2 0.015 0.006 16.70 8.2.1 0.009 0.009 17.18 8.2.0 0.018 0.003 16.97
preferences:dark mode live preview ace vim emacs key bindings
134.39 ms | 961 KiB | 7 Q