yijia-webman/app/controller/SalaryController.php

144 lines
5.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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, //是否有社保10无,
],
[
"name" => "李禹江", //姓名
"wages" => 3000, //工资,无社保
"late_num" => 0, //迟到次数
"card_num" => 0, //缺卡次数
"leave" => 6.5, //请假天数
"commission" => 0, //提成
"haveSocial" => 0, //是否有社保10
"collection" => 900, //收款金额
],
[
"name" => "尹财波", //姓名
"wages" => 7500, //工资,无社保
"late_num" => 0, //迟到次数
"card_num" => 0, //缺卡次数
"leave" => 0, //请假天数
"commission" => 0, //提成
"haveSocial" => 0, //是否有社保10
],
[
"name" => "郑继领", //姓名
"wages" => 3000, //工资,无社保
"late_num" => 0, //迟到次数
"card_num" => 0, //缺卡次数
"leave" => 0, //请假天数
"commission" => 0, //提成
"haveSocial" => 0, //是否有社保10
"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;
}
}