Created
June 27, 2017 02:33
-
-
Save anonymous/e00354ed337a8009a0577cf193ed659b to your computer and use it in GitHub Desktop.
This file contains 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
<?php | |
error_reporting(E_ERROR | E_PARSE); | |
class WageReportPage extends Page | |
{ | |
} | |
class WageReportPage_Controller extends Page_Controller | |
{ | |
static $allowed_actions = array("GenerateWageReports"); | |
public function GenerateWageReports() | |
{ | |
if ($_SERVER['REMOTE_ADDR'] == "127.0.0.1") { | |
$month = Date("m", Page_Controller::StrToTimeFix("-1 Months")); | |
$year = Date("Y", Page_Controller::StrToTimeFix("-1 Months")); | |
$day = Date("t", Page_Controller::StrToTimeFix("-1 Months")); | |
//TODO: Remove Me | |
echo "Running Report for DATE: ".$day. "/".$month."/".$year."\n"; | |
foreach (Team::get()->exclude(array("Name" => "Company Team 1"))->exclude(array("Name" => "WoW Team 1")) as $team) { | |
foreach ($team->Reps() as $rep) { | |
//only generate wage reports for non managers non exited reps | |
if (!$rep->Member()->Exited() && Manager::get()->Filter(array("MemberID" => $rep->MemberID))->Count() == 0 && $rep->Member()->DummyAccount == 0) { | |
$member = $rep->Member(); | |
//Check to see if there is a wage report for this date already. If so, remove it. | |
if ($wr = WageReport::get()->Filter(array( | |
"MemberID" => $member->ID, | |
"Year" => $year, | |
"Month" => $month | |
))->First() | |
) { | |
$wr->delete(); | |
} | |
//If there is no wage report for this member lets make a new one. | |
if (WageReport::get()->Filter(array( | |
"MemberID" => $member->ID, | |
"Year" => $year, | |
"Month" => $month | |
))->Count() == 0 | |
) { | |
$wr = WageReport::create(); | |
SalesFiguresPage_Controller::GetStatistics($member, $year, $month, $day, null, 8); | |
$wr->TargetBonus = $member->tb > 0 ? $member->tb : 0; | |
$wr->TargetBonusPayed = $member->MonthTargetPercent >= 100 || $member->YTDPercent >= 100 ? $month : 0; | |
$wr->BountyBonus = $member->BountyBonus; | |
$conv = 0; | |
$mo = ManageObject::get()->Filter(array( | |
"ObjectID" => $rep->ID, | |
"ManagementType" => "Rep" | |
))->First(); | |
if ($sf = DW_SalesFigures::get()->Filter(array( | |
"ManageObjectID" => $mo->ID, | |
"Year" => $year, | |
"Month" => $month | |
))->Sort(array("Day" => "Desc"))->First() | |
) { | |
if ($sf->MTDTurnover < 15000) { | |
$conv = 0; | |
} elseif ($sf->MTDTurnover < 20000) { | |
$conv = 0.35; | |
} elseif ($sf->MTDTurnover < 25000) { | |
$conv = 0.45; | |
} elseif ($sf->MTDTurnover < 30000) { | |
$conv = 0.55; | |
} elseif ($sf->MTDTurnover < 35000) { | |
$conv = 0.65; | |
} elseif ($sf->MTDTurnover < 40000) { | |
$conv = 0.75; | |
} elseif ($sf->MTDTurnover < 45000) { | |
$conv = 1; | |
} elseif ($sf->MTDTurnover < 50000) { | |
$conv = 1.1; | |
} elseif ($sf->MTDTurnover >= 50000) { | |
$conv = 1.2; | |
} | |
} | |
$wr->Commission = $member->Commission * $conv; | |
$wr->CommissionPool = $member->Commission; | |
$wr->StatusBonus = $member->StatusBonus; | |
$wr->Turnover = 1; | |
//set up payment | |
$payment = 0; | |
if ($member->MonthTargetPercent >= 100) {//if made mtd target | |
$payment += $wr->TargetBonus; | |
$wr->TargetBonusPayment += $wr->TargetBonus; | |
}; | |
if ($member->MonthTargetPercent < 100 && $member->YTDPercent >= 100) {//if not made mtd target but made ytd target | |
$payment += $wr->TargetBonus; | |
$wr->CatchupBonusPayment += $wr->TargetBonus;//add target bonus to catchup bonus | |
}; | |
/* if ($member->YTDPercent >= 100) { | |
//catch up on any lost target bonuses | |
if ($member->WageReports()->Count() > 0) { | |
foreach ($member->WageReports()->Filter(array("Year" => $year)) as $wri) { | |
if ($wri->Month <= $month && $wri->Year == $year && ($wri->TargetBonusPayed == 0 || $wri->TargetBonusPayed == $month)) { | |
$payment += $wri->TargetBonus; | |
$wr->CatchupBonusPayment += $wri->TargetBonus; | |
$wri->TargetBonusPayed = $month; | |
$wri->write(); | |
} | |
} | |
} | |
}*/ | |
$wr->Month = $month; | |
$wr->Year = $year; | |
$wr->MemberID = $member->ID; | |
$wr->Test="Hello, World!"; | |
$wr->write(); | |
} | |
} | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment