Last active
February 15, 2016 17:47
-
-
Save grgaortiz/110f886459aab79c1306 to your computer and use it in GitHub Desktop.
Display method for pays comp table
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| public function displayCompensation($instanceDBInt, $clientID, $query, $specialtyGroups, $providers, $currentPeriod) { | |
| // Open conn | |
| $conn = $this->conn($clientID); | |
| $periods = array( | |
| '201601' | |
| , '201602' | |
| , '201603' | |
| , '201604' | |
| , '201605' | |
| , '201606' | |
| , '201607' | |
| , '201608' | |
| , '201609' | |
| , '201610' | |
| , '201611' | |
| , '201612' | |
| ); | |
| // Create tabel headers | |
| $tableHeaders = "<td class='indent' style='font-weight:bold;text-align:left;'>Monthly Summary</td>"; | |
| $quarterCount = 1; | |
| foreach ($periods AS $period) { | |
| if ($quarterCount % 3 == 0) { | |
| $tableHeaders .= "<td class='full' style='text-align:right;font-weight:bold;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;'>" . date("M 'y", strtotime($period . '01')) . "</td>"; | |
| } else { | |
| $tableHeaders .= "<td class='full' style='text-align:right;font-weight:bold;'>" . date("M 'y", strtotime($period . '01')) . "</td>"; | |
| } | |
| $quarterCount++; | |
| } | |
| $tableHeaders .= "<td class='border-right' style='text-align:right;font-weight:bold;'>YTD</td>"; | |
| // Quarterly Numbers | |
| $quarterly_actualWRVUs = array(); | |
| $quarterly_earnedComp = array(); | |
| $quarterly_baseDraw = array(); | |
| // Get master comp data | |
| $providers = str_replace('"', "'", $providers); | |
| $providers = str_replace(" '", "", $providers); | |
| $providers = str_replace("'", "", $providers); | |
| $providers = str_replace('(', "PhysicianName_DWP LIKE '%", $providers); | |
| $providers = str_replace(')', "%'", $providers); | |
| $providerArray = explode("',", $providers); | |
| $providers = implode("' OR ", $providerArray); | |
| $providers = str_replace(array("\r", "\n"), "", $providers); | |
| $providers = preg_replace('!\s+!', ' ', $providers); | |
| if ($providers != '') { | |
| $providers = 'AND (' . $providers . ')'; | |
| } | |
| $specialtyGroups = str_replace('"', "'", $specialtyGroups); | |
| $specialtyGroups = str_replace(" '", "", $specialtyGroups); | |
| $specialtyGroups = str_replace("'", "", $specialtyGroups); | |
| $specialtyGroups = str_replace('(', "SpecialtyGroup LIKE '%", $specialtyGroups); | |
| $specialtyGroups = str_replace(')', "%'", $specialtyGroups); | |
| $specialtyGroupsArray = explode("',", $specialtyGroups); | |
| $specialtyGroups = implode("' OR ", $specialtyGroupsArray); | |
| $specialtyGroups = str_replace(array("\r", "\n"), "", $specialtyGroups); | |
| $specialtyGroups = preg_replace('!\s+!', ' ', $specialtyGroups); | |
| if ($specialtyGroups == '') { | |
| $specialtyGroups = "SpecialtyGroup != ''"; | |
| } | |
| mssql_select_db('db_' . $clientID . '_WebData', $conn); | |
| $compQuery = mssql_query("SELECT | |
| AVG(QualityCompWithholdPercent) AS QualityCompWithholdPercent, | |
| AVG(CAST(Tier1CFThreshold as int)) AS Tier1CFThreshold, | |
| AVG(ThresholdCF) AS ThresholdCF, | |
| AVG(DiscountCF) AS DiscountCF, | |
| AVG(CAST(ProductionCompWithhold as money)) AS ProductionCompWithhold, | |
| LEFT(CONVERT(varchar,MIN(CASE WHEN StartDate IS NULL THEN NULL ELSE StartDate END),112),6) AS StartDate, | |
| MAX(CompPlanActive) AS CompPlanActive | |
| FROM PhysicianComp WHERE year = '2016' AND (" . $specialtyGroups . ") | |
| " . $providers . " "); | |
| $row = mssql_fetch_array($compQuery); | |
| $midlevelQuery = mssql_query("SELECT | |
| ReportPeriod, | |
| MidlevelExpense AS MidlevelExpense, | |
| MidlevelProd AS MidlevelProd, | |
| MonthlyMidlevel_Impactcurr AS MidlevelImpact, | |
| QuarterlyMidlevel_Impactcurr AS QuarterlyMidlevelImpact, | |
| QuarterlyTrueUpUpload, | |
| MonthlyCFTThreshold | |
| FROM PhysicianComp WHERE year = '2016' AND (" . $specialtyGroups . ") | |
| " . $providers . " "); | |
| $activeQueryLimit = ''; | |
| if ($row['CompPlanActive'] == '1') { | |
| $activeQueryLimit = "CompPlanActive = '1' AND "; | |
| } | |
| $baseDrawQuery = mssql_query("SELECT | |
| SUM(MonthlyClinicalBaseDraw) AS ClinicalBaseDraw | |
| FROM PhysicianComp WHERE year = '2016' AND " . $activeQueryLimit . " (" . $specialtyGroups . ") | |
| " . $providers . " "); | |
| $baseDrawRow = mssql_fetch_array($baseDrawQuery); | |
| $midlevelExpenseArray = array( | |
| '201601' => '0' | |
| , '201602' => '0' | |
| , '201603' => '0' | |
| , '201604' => '0' | |
| , '201605' => '0' | |
| , '201606' => '0' | |
| , '201607' => '0' | |
| , '201608' => '0' | |
| , '201609' => '0' | |
| , '201610' => '0' | |
| , '201611' => '0' | |
| , '201612' => '0' | |
| ); | |
| $midlevelProdArray = array( | |
| '201601' => '0' | |
| , '201602' => '0' | |
| , '201603' => '0' | |
| , '201604' => '0' | |
| , '201605' => '0' | |
| , '201606' => '0' | |
| , '201607' => '0' | |
| , '201608' => '0' | |
| , '201609' => '0' | |
| , '201610' => '0' | |
| , '201611' => '0' | |
| , '201612' => '0' | |
| ); | |
| $midlevelImpactArray = array( | |
| '201601' => '0' | |
| , '201602' => '0' | |
| , '201603' => '0' | |
| , '201604' => '0' | |
| , '201605' => '0' | |
| , '201606' => '0' | |
| , '201607' => '0' | |
| , '201608' => '0' | |
| , '201609' => '0' | |
| , '201610' => '0' | |
| , '201611' => '0' | |
| , '201612' => '0' | |
| ); | |
| $midlevelQuarterlyImpactArray = array( | |
| '201601' => '0' | |
| , '201602' => '0' | |
| , '201603' => '0' | |
| , '201604' => '0' | |
| , '201605' => '0' | |
| , '201606' => '0' | |
| , '201607' => '0' | |
| , '201608' => '0' | |
| , '201609' => '0' | |
| , '201610' => '0' | |
| , '201611' => '0' | |
| , '201612' => '0' | |
| ); | |
| $quarterlyTruUpPaidArray = array( | |
| '201601' => '0' | |
| , '201602' => '0' | |
| , '201603' => '0' | |
| , '201604' => '0' | |
| , '201605' => '0' | |
| , '201606' => '0' | |
| , '201607' => '0' | |
| , '201608' => '0' | |
| , '201609' => '0' | |
| , '201610' => '0' | |
| , '201611' => '0' | |
| , '201612' => '0' | |
| ); | |
| $monthlyThresholdArray = array( | |
| '201601' => '0' | |
| , '201602' => '0' | |
| , '201603' => '0' | |
| , '201604' => '0' | |
| , '201605' => '0' | |
| , '201606' => '0' | |
| , '201607' => '0' | |
| , '201608' => '0' | |
| , '201609' => '0' | |
| , '201610' => '0' | |
| , '201611' => '0' | |
| , '201612' => '0' | |
| ); | |
| $midlevelExpense = 0; | |
| $midlevelProd = 0; | |
| $midlevelImpact = 0; | |
| $quarterlyTruUpPaid = 0; | |
| while ($midlevelRow = mssql_fetch_array($midlevelQuery)) { | |
| $midlevelExpense = round($midlevelRow['MidlevelProd']); | |
| $midlevelProd = round($midlevelRow['MidlevelProd']); | |
| $midlevelImpact = round($midlevelRow['MidlevelImpact']); | |
| $midlevelQuarterlyImpact = round($midlevelRow['QuarterlyMidlevelImpact']); | |
| $quarterlyTruUpPaid = $midlevelRow['QuarterlyTrueUpUpload']; | |
| $monthlyThreshold = $midlevelRow['MonthlyCFTThreshold']; | |
| $period = $midlevelRow['ReportPeriod']; | |
| $midlevelExpenseArray[$period] = $midlevelExpense; | |
| $midlevelProdArray[$period] = $midlevelProd; | |
| $midlevelImpactArray[$period] = $midlevelImpact; | |
| $midlevelQuarterlyImpactArray[$period] = $midlevelQuarterlyImpact; | |
| $monthlyThresholdArray[$period] += $monthlyThreshold; | |
| if ($quarterlyTruUpPaid > 0) { | |
| $quarterlyTruUpPaidArray[$period] = $quarterlyTruUpPaid; | |
| } | |
| } | |
| // Defaults | |
| $cumulativeExcessEarnedComp = '0'; | |
| $currentPeriodArrayKey = array_search($currentPeriod, $periods); | |
| // Actual Work RVUs | |
| $fiscalPeriodWRVUs = array( | |
| '201601' => '0' | |
| , '201602' => '0' | |
| , '201603' => '0' | |
| , '201604' => '0' | |
| , '201605' => '0' | |
| , '201606' => '0' | |
| , '201607' => '0' | |
| , '201608' => '0' | |
| , '201609' => '0' | |
| , '201610' => '0' | |
| , '201611' => '0' | |
| , '201612' => '0' | |
| ); | |
| $wrvuCount = 0; | |
| while ($WRVUrow = mssql_fetch_array($query)) { | |
| $actualWRVU = round($WRVUrow['WRVUs_Actual']); | |
| $wrvuCount = $wrvuCount + $actualWRVU; | |
| $period = $WRVUrow['dimDashboardPeriodSK']; | |
| $fiscalPeriodWRVUs[$period] = $actualWRVU; | |
| } | |
| if ($row['CompPlanActive'] > 0) { | |
| $startDate = $row['StartDate']; | |
| } else { | |
| $startDate = '201501'; | |
| } | |
| // Actual Work RVUs | |
| $fiscalPeriodWRVUs = array_values($fiscalPeriodWRVUs); | |
| $actualWRVURunningTotal = 0; | |
| $periodCount = 0; | |
| $quarterCount = 1; | |
| $tableRows = '<tr>'; | |
| $tableRows .= '<td class="indent">Actual Work RVUs</td>'; | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| $WRVUs = $fiscalPeriodWRVUs[$periodCount]; | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">' . number_format($WRVUs) . '</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">' . number_format($WRVUs) . '</td>'; | |
| } | |
| $actualWRVURunningTotal = $actualWRVURunningTotal + $WRVUs; | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| array_push($quarterly_actualWRVUs, $actualWRVURunningTotal); | |
| $periodCount++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">' . number_format($actualWRVURunningTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Estimated WRVU Base | |
| $monthlyThresholdArray = array_values($monthlyThresholdArray); | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td class="indent">WRVU Threshold</td>'; | |
| $quarterCount = 1; | |
| $periodCount = 0; | |
| $estimatedWRVUBaseTotal = 0; | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| $estimatedWRVUBase = $monthlyThresholdArray[$periodCount]; | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">' . number_format($estimatedWRVUBase) . '</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">' . number_format($estimatedWRVUBase) . '</td>'; | |
| } | |
| $estimatedWRVUBaseTotal = $estimatedWRVUBaseTotal + $estimatedWRVUBase; | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| $periodCount++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">' . number_format($estimatedWRVUBaseTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Space | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td colspan="14" class="indent" style="font-weight:bold;text-align:left;"> </td>'; | |
| $tableRows .= '</tr>'; | |
| if ($actualWRVURunningTotal >= $estimatedWRVUBaseTotal) { | |
| $perWRVURate = $row["ThresholdCF"]; | |
| } else { | |
| $perWRVURate = $row["DiscountCF"]; | |
| } | |
| // Rate per Work RVU | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td class="indent">Rate per Work RVU</td>'; | |
| $periodCount = 0; | |
| $quarterCount = 1; | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| $periodCount++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">$' . number_format($perWRVURate, 2) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Earned Comp | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td class="indent">Earned Comp</td>'; | |
| $earnedCompCounter = 0; | |
| $earnedCompTotal = 0; | |
| $quarterCount = 1; | |
| $earnedCompArray = array(); | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| $earnedComp = $fiscalPeriodWRVUs[$earnedCompCounter] * $perWRVURate; | |
| $earnedCompTotal = $earnedCompTotal + $earnedComp; | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| array_push($earnedCompArray, $earnedComp); | |
| array_push($quarterly_earnedComp, $earnedCompTotal); | |
| $earnedCompCounter++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">$' . number_format($earnedCompTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Base Draw | |
| $baseDraw = $baseDrawRow["ClinicalBaseDraw"]; | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td class="indent">Base Draw</td>'; | |
| $quarterCount = 1; | |
| $baseDrawTotal = 0; | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| $baseDrawTotal = $baseDraw; | |
| array_push($quarterly_baseDraw, $baseDraw); | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">$' . number_format($baseDrawTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Quality Bonus | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td class="indent">Quality Bonus Withhold</td>'; | |
| $quarterCount = 1; | |
| $qualityBonusTotal = $earnedCompTotal * $row['QualityCompWithholdPercent']; | |
| $excessEarnedCompCounter = 0; | |
| $qualityBonusArray = array(); | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| $qualityBonus = $earnedCompArray[$excessEarnedCompCounter] * $row['QualityCompWithholdPercent']; | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| //$qualityBonusTotal = $qualityBonusTotal + $qualityBonus; | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| array_push($qualityBonusArray, $qualityBonus); | |
| $excessEarnedCompCounter++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">$' . number_format($qualityBonusTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Excess Earned Comp | |
| $tableRows .= '<tr style="border-top:2px solid #777;">'; | |
| $tableRows .= '<td class="indent">Excess Earned Comp</td>'; | |
| $excessEarnedCompCounter = 0; | |
| $qualityBonusCounter = 0; | |
| $excessEarnedCompTotal = 0; | |
| $excessEarnedCompArray = array(); | |
| $quarterCount = 1; | |
| $excessEarnedCompTotal = $earnedCompTotal - $baseDrawTotal - $qualityBonusTotal; | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| //$excessEarnedCompTotal = $excessEarnedCompTotal + $excessEarnedComp; | |
| //array_push($excessEarnedCompArray, $excessEarnedComp); | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| $qualityBonusCounter++; | |
| $excessEarnedCompCounter++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">$' . number_format($excessEarnedCompTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Space | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td colspan="14" class="indent" style="font-weight:bold;text-align:left;"> </td>'; | |
| $tableRows .= '</tr>'; | |
| // Midlevel Productivity | |
| $midlevelProdValues = array_values($midlevelProdArray); | |
| $midlevelProdRunningTotal = 0; | |
| $periodCount = 0; | |
| $quarterCount = 1; | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td class="indent">Midlevel Productivity</td>'; | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| $midlevelProd = $midlevelProdValues[$periodCount]; | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| $midlevelProdRunningTotal = $midlevelProdRunningTotal + $midlevelProd; | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| $periodCount++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">' . number_format($midlevelProdRunningTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Midlevel Expense | |
| $midlevelExpenseValues = array_values($midlevelExpenseArray); | |
| $midlevelExpenseRunningTotal = 0; | |
| $periodCount = 0; | |
| $quarterCount = 1; | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td class="indent">Midlevel Expense</td>'; | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| $midlevelExpense = $midlevelExpenseValues[$periodCount]; | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| $midlevelExpenseRunningTotal = $midlevelExpenseRunningTotal + $midlevelExpense; | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| $periodCount++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">' . number_format($midlevelExpenseRunningTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Midlevel Impact | |
| $midlevelImpactValues = array_values($midlevelImpactArray); | |
| $midlevelImpactRunningTotal = 0; | |
| $periodCount = 0; | |
| $quarterCount = 1; | |
| $tableRows .= '<tr style="border-top:2px solid #777;">'; | |
| $tableRows .= '<td class="indent">Midlevel Impact</td>'; | |
| foreach ($periods AS $period) { | |
| if ($period <= $currentPeriod && $period >= $startDate) { | |
| $midlevelImpact = $midlevelImpactValues[$periodCount]; | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| $midlevelImpactRunningTotal = $midlevelImpactRunningTotal + $midlevelImpact; | |
| } else { | |
| if ($quarterCount % 3 == 0) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;">-</td>'; | |
| } | |
| } | |
| $periodCount++; | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">' . number_format($midlevelImpactRunningTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Space | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td colspan="14" class="indent" style="font-weight:bold;text-align:left;"> </td>'; | |
| $tableRows .= '</tr>'; | |
| // Space | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td colspan="14" class="indent" style="font-weight:bold;text-align:left;"> </td>'; | |
| $tableRows .= '</tr>'; | |
| // Quarterly - Quarterly True Ups Paid | |
| $tableRows .= '<tr>'; | |
| $tableRows .= '<td class="indent">Quarterly True Ups Paid</td>'; | |
| $quarterCount = 1; | |
| $periodCount = 0; | |
| $quarterlyTruUpPaidTotal = 0; | |
| $quarterlyTruUpPaidValues = array_values($quarterlyTruUpPaidArray); | |
| //error_log(serialize($quarterlyTruUpPaidArray), 1, '[email protected]'); | |
| foreach ($periods AS $period) { | |
| $quarterlyTruUpPaid = $quarterlyTruUpPaidValues[$periodCount]; | |
| $quarterlyTruUpPaidTotal = $quarterlyTruUpPaidTotal + $quarterlyTruUpPaid; | |
| if ($quarterCount % 3 == 0) { | |
| if ($quarterCount == 3 && ($currentPeriodArrayKey <= 2 || $currentPeriodArrayKey > 2) && $period >= $startDate) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">$' . number_format($quarterlyTruUpPaid) . '</td>'; | |
| } elseif ($quarterCount == 6 && $currentPeriodArrayKey >= 5 && $period >= $startDate) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">$' . number_format($quarterlyTruUpPaid) . '</td>'; | |
| } elseif ($quarterCount == 9 && $currentPeriodArrayKey >= 8 && $period >= $startDate) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">$' . number_format($quarterlyTruUpPaid) . '</td>'; | |
| } elseif ($quarterCount == 12 && $currentPeriodArrayKey >= 11 && $period >= $startDate) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">$' . number_format($quarterlyTruUpPaid) . '</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } | |
| } else { | |
| $tableRows .= '<td class="full"></td>'; | |
| } | |
| $quarterCount++; | |
| $periodCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">$' . number_format($quarterlyTruUpPaidTotal) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| // Quarterly - Adjusted Excess Earned Comp | |
| $tableRows .= '<tr style="border-top:2px solid #777;">'; | |
| $tableRows .= '<td class="indent">Estimated Earned Comp Due</td>'; | |
| $quarterCount = 1; | |
| $earnedCompDue = $excessEarnedCompTotal + $midlevelImpactRunningTotal - $quarterlyTruUpPaidTotal; | |
| foreach ($periods AS $period) { | |
| if ($quarterCount % 3 == 0) { | |
| if ($quarterCount == 3 && ($currentPeriodArrayKey <= 2 || $currentPeriodArrayKey > 2) && $period >= $startDate) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;border-bottom:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } elseif ($quarterCount == 6 && $currentPeriodArrayKey >= 5 && $period >= $startDate) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;border-bottom:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } elseif ($quarterCount == 9 && $currentPeriodArrayKey >= 8 && $period >= $startDate) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;border-bottom:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } elseif ($quarterCount == 12 && $currentPeriodArrayKey >= 11 && $period >= $startDate) { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;border-bottom:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } else { | |
| $tableRows .= '<td class="full" style="text-align:right;border-right:1px solid #eee;border-left:1px solid #eee;border-bottom:1px solid #eee;background-color:#f8f8f8;">-</td>'; | |
| } | |
| } else { | |
| $tableRows .= '<td class="full"></td>'; | |
| } | |
| $quarterCount++; | |
| } | |
| $tableRows .= '<td class="border-right" style="text-align:right;">$' . number_format($earnedCompDue) . '</td>'; | |
| $tableRows .= '</tr>'; | |
| return array( | |
| 'tableDisplay' => $tableRows, | |
| 'tableDisplayHeader' => $tableHeaders | |
| ); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment