144 lines
5.3 KiB
PHP
144 lines
5.3 KiB
PHP
|
<?php
|
|||
|
|
|||
|
namespace app\controller;
|
|||
|
|
|||
|
use support\Request;
|
|||
|
|
|||
|
class SalaryController
|
|||
|
{
|
|||
|
public function index(Request $request)
|
|||
|
{
|
|||
|
$month = "2024年11月";
|
|||
|
$social = 469.14; //个人社保部分
|
|||
|
$staffs = [
|
|||
|
[
|
|||
|
"name" => "徐从伟", //姓名
|
|||
|
"wages" => 6000, //工资 //试用期90%,正式工资5500
|
|||
|
"late_num" => 0, //迟到次数
|
|||
|
"card_num" => 0, //缺卡次数
|
|||
|
"leave" => 1, //请假天数
|
|||
|
"commission" => 0, //提成
|
|||
|
"haveSocial" => 1, //是否有社保1:有;0:无,
|
|||
|
],
|
|||
|
[
|
|||
|
"name" => "李禹江", //姓名
|
|||
|
"wages" => 3000, //工资,无社保
|
|||
|
"late_num" => 0, //迟到次数
|
|||
|
"card_num" => 0, //缺卡次数
|
|||
|
"leave" => 6.5, //请假天数
|
|||
|
"commission" => 0, //提成
|
|||
|
"haveSocial" => 0, //是否有社保1:有;0:无
|
|||
|
"collection" => 900, //收款金额
|
|||
|
],
|
|||
|
[
|
|||
|
"name" => "尹财波", //姓名
|
|||
|
"wages" => 7500, //工资,无社保
|
|||
|
"late_num" => 0, //迟到次数
|
|||
|
"card_num" => 0, //缺卡次数
|
|||
|
"leave" => 0, //请假天数
|
|||
|
"commission" => 0, //提成
|
|||
|
"haveSocial" => 0, //是否有社保1:有;0:无
|
|||
|
],
|
|||
|
[
|
|||
|
"name" => "郑继领", //姓名
|
|||
|
"wages" => 3000, //工资,无社保
|
|||
|
"late_num" => 0, //迟到次数
|
|||
|
"card_num" => 0, //缺卡次数
|
|||
|
"leave" => 0, //请假天数
|
|||
|
"commission" => 0, //提成
|
|||
|
"haveSocial" => 0, //是否有社保1:有;0:无
|
|||
|
"collection" => 31268, //收款金额
|
|||
|
],
|
|||
|
];
|
|||
|
$total = 0; //所有金额
|
|||
|
|
|||
|
$socialNumber = 0; //社保人数
|
|||
|
$str = $month . "工资明细:<br /><br /><br />";
|
|||
|
foreach ($staffs as $s) {
|
|||
|
$haveCommission = true; //是否计算提成
|
|||
|
$perTotal = $s["wages"]; //个人合计
|
|||
|
|
|||
|
$str .= $s["name"] . ",{$month} 工资明细:<br />";
|
|||
|
$str .= "基本工资:" . $s["wages"] . "<br /><br />";
|
|||
|
$num = $s["late_num"] + $s["card_num"] - 3;
|
|||
|
$dayWage = $s["wages"] / 22;
|
|||
|
$hourlyWage = $dayWage / 8;
|
|||
|
if ($num > 0) {
|
|||
|
$deduction = round($hourlyWage * $num, 2);
|
|||
|
} else {
|
|||
|
$deduction = 0;
|
|||
|
}
|
|||
|
|
|||
|
//$wagesStr = '应发工资(' . $s['wages'];
|
|||
|
$wagesStr = "应发工资(" . $perTotal;
|
|||
|
$str .= "迟到次数:" .
|
|||
|
$s["late_num"] .
|
|||
|
"<br />缺卡次数:" .
|
|||
|
$s["card_num"] .
|
|||
|
"<br />";
|
|||
|
$str .= "请假天数:" . $s["leave"] . "<br />";
|
|||
|
if ($s["leave"] > 0) {
|
|||
|
$deduction += round($dayWage * $s["leave"], 2);
|
|||
|
}
|
|||
|
if ($deduction > 0) {
|
|||
|
$str .= "扣款:" . $deduction . "元<br />";
|
|||
|
$wagesStr .= " - " . $deduction;
|
|||
|
$perTotal = $perTotal - $deduction;
|
|||
|
}
|
|||
|
|
|||
|
if ($s["haveSocial"]) {
|
|||
|
$str .= "<br />";
|
|||
|
$str .= "社保扣款:" . $social . "元<br />";
|
|||
|
$str .= "<br />";
|
|||
|
$wagesStr .= " - " . $social;
|
|||
|
$perTotal = $perTotal - $social;
|
|||
|
$socialNumber++;
|
|||
|
}
|
|||
|
//销售收款计算提成
|
|||
|
if (isset($s["collection"]) && $s["collection"] > 0) {
|
|||
|
$commission = 0;
|
|||
|
if ($s["collection"] > 80000) {
|
|||
|
$commission = $s["collection"] * 0.15;
|
|||
|
} elseif ($s["collection"] > 60000) {
|
|||
|
$commission = $s["collection"] * 0.14;
|
|||
|
} elseif ($s["collection"] > 40000) {
|
|||
|
$commission = $s["collection"] * 0.12;
|
|||
|
} elseif ($s["collection"] > 20000) {
|
|||
|
$commission = $s["collection"] * 0.1;
|
|||
|
} else {
|
|||
|
$commission = $s["collection"] * 0.08;
|
|||
|
}
|
|||
|
if ($commission > 0) {
|
|||
|
$s["commission"] = $commission;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if ($s["commission"] > 0) {
|
|||
|
$str .= "收款:" . $s["collection"] . "<br />";
|
|||
|
$str .= "提成:" . $s["commission"] . "<br />";
|
|||
|
if ($haveCommission) {
|
|||
|
$wagesStr .= " + " . $s["commission"];
|
|||
|
$perTotal = $perTotal + $s["commission"];
|
|||
|
} else {
|
|||
|
$str .= "提成不计算!按保底90%计算工资<br />";
|
|||
|
}
|
|||
|
$str .= "<br />";
|
|||
|
}
|
|||
|
$perTotal = round($perTotal, 2);
|
|||
|
|
|||
|
$wagesStr .= ") = " . $perTotal . "元";
|
|||
|
$str .= $wagesStr . "<br />";
|
|||
|
$str .= "<br /><br /><br /><br />";
|
|||
|
|
|||
|
$total += $perTotal;
|
|||
|
}
|
|||
|
|
|||
|
$socialTotal = ($socialNumber + 2) * 1505.63;
|
|||
|
|
|||
|
$str .= "社保总金额:" . $socialTotal . " 元<br /><br />";
|
|||
|
|
|||
|
$str .= "工资总金额:" . $total . " 元 <br /><br />";
|
|||
|
$str .= "总金额:" . $total + $socialTotal . " 元";
|
|||
|
return $str;
|
|||
|
}
|
|||
|
}
|