瀏覽代碼

修改津补贴工作津贴的判断方法

sugangqiang 1 年之前
父節點
當前提交
65229c5539

+ 21 - 10
app/admin/controller/TalentAllowance.php

@@ -1157,12 +1157,17 @@ class TalentAllowance extends AdminController {
     private function valideAllowanceType(&$info, $projectList, $monthMap, $monthAndDayMap) {
         $set = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"];
         /*         * 2.判定工作月份、五险和个税是否满足重叠6个月要求* */
-        $workdaySet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_ATTENDANCE], $info, "上年度工作月份", "①");
-        $pensionSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_PENSION], $info, "养老保险", "②");
-        $unemploymentSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_UNEMPLOYMENT], $info, "失业保险", "③");
-        $medicaSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_MEDICA], $info, "医疗保险", "④");
-        $taxSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_TAX], $info, "个税", "⑤");
+        $contractSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_CONTRACT], $info, "上年度合同月份", "①");
+        $workdaySet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_ATTENDANCE], $info, "上年度工作月份", "②");
+        $wageSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_WAGES], $info, "上年度工资发放月份", "③");
+        $pensionSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_PENSION], $info, "养老保险", "④");
+        $unemploymentSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_UNEMPLOYMENT], $info, "失业保险", "⑤");
+        $medicaSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_MEDICA], $info, "医疗保险", "⑥");
+        $taxSet = $this->chkMonths($monthMap[AllowanceProjectEnum::PROJECT_TAX], $info, "个税", "⑦");
+        $set = array_intersect($set, $contractSet);
         $set = array_intersect($set, $workdaySet);
+        $set = array_intersect($set, $wageSet);
+        $checkSet = $set;
         $set = array_intersect($set, $pensionSet);
         $set = array_intersect($set, $unemploymentSet);
         $set = array_intersect($set, $medicaSet);
@@ -1171,18 +1176,18 @@ class TalentAllowance extends AdminController {
             return (int) $a - (int) $b;
         });
         if ($info["recommendAllowanceType"] == 1) {
-            if (count($set) < 6) {
+            if (count($checkSet) < 6) {
                 //如果全部满足6个月,但是重叠时间不满足6个月,开始检测是否符合交通补贴要求
                 $info["recommendAllowanceType"] = 2;
-                $info["recommendAllowanceMsg"] = $info["recommendAllowanceMsg"] . "\n社会保险、个税、上年度工作月份交集月份不满足6个月(" . implode(",", $set) . "),无法享受工作津贴(×)";
+                $info["recommendAllowanceMsg"] = $info["recommendAllowanceMsg"] . "\n上年度工作合同月份、考勤月份、工资发放月份交集月份不满足6个月(" . implode(",", $checkSet) . "),无法享受工作津贴(×)";
             } else {
                 //检查连续缴纳月份是否满足6个月
                 $count = 1;
-                foreach ($set as $s) {
+                foreach ($checkSet as $s) {
                     $currentVal = intval($s);
                     $nextVal = $currentVal + 1;
                     $nextKey = str_pad($nextVal, 2, "0", STR_PAD_LEFT);
-                    if (in_array($nextKey, $set)) {
+                    if (in_array($nextKey, $checkSet)) {
                         $count++;
                         if ($count >= 6) {
                             break;
@@ -1193,7 +1198,7 @@ class TalentAllowance extends AdminController {
                 }
                 if ($count < 6) {
                     $info["recommendAllowanceType"] = 2;
-                    $info["recommendAllowanceMsg"] = $info["recommendAllowanceMsg"] . "\n社会保险、个税、上年度工作月份交集月份不满足连续缴纳6个月(" . implode(",", $set) . "),无法享受工作津贴(×)";
+                    $info["recommendAllowanceMsg"] = $info["recommendAllowanceMsg"] . "\n上年度工作合同月份、考勤月份、工资发放月份不满足连续缴纳6个月(" . implode(",", $checkSet) . "),无法享受工作津贴(×)";
                 }
             }
         }
@@ -1332,6 +1337,7 @@ class TalentAllowance extends AdminController {
 
     //合并所有项目的月份
     private function mergeMonth($detailList) {
+        $contractList = [];
         $taxList = [];
         $wagesList = [];
         $pensionList = [];
@@ -1341,6 +1347,10 @@ class TalentAllowance extends AdminController {
         $workdayList = [];
         foreach ($detailList as $detail) {
             $projectMap = $detail["projectMap"];
+            if ($detail["months"]) {
+                $tmp = array_filter(explode(",", $detail["months"]));
+                $contractList = array_merge($contractList, $tmp);
+            }
             if ($projectMap[AllowanceProjectEnum::PROJECT_TAX] && \StrUtil::isNotEmpAndNull($projectMap[AllowanceProjectEnum::PROJECT_TAX]["months"])) {
                 $tmp = array_filter(explode(",", $projectMap[AllowanceProjectEnum::PROJECT_TAX]["months"]));
                 $taxList = array_merge($taxList, $tmp);
@@ -1371,6 +1381,7 @@ class TalentAllowance extends AdminController {
             }
         }
         $map = [
+            AllowanceProjectEnum::PROJECT_CONTRACT => $contractList,
             AllowanceProjectEnum::PROJECT_TAX => $taxList,
             AllowanceProjectEnum::PROJECT_WAGES => $wagesList,
             AllowanceProjectEnum::PROJECT_SB_PENSION => $pensionList,

+ 23 - 12
app/common/api/TalentAllowanceApi.php

@@ -150,13 +150,18 @@ class TalentAllowanceApi {
      * */
     private static function valideAllowanceType(&$info, $projectList, $monthMap, $monthAndDayMap) {
         $set = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"];
-        /*         * 2.判定工作月份、五险和个税是否满足重叠6个月要求* */
-        $workdaySet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_ATTENDANCE], $info, "上年度工作月份", "①");
-        $pensionSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_PENSION], $info, "养老保险", "②");
-        $unemploymentSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_UNEMPLOYMENT], $info, "失业保险", "③");
-        $medicaSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_MEDICA], $info, "医疗保险", "④");
-        $taxSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_TAX], $info, "个税", "⑤");
+        /*         * 2.判定合同月份、工作月份、五险和个税是否满足重叠6个月要求* */
+        $contractSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_CONTRACT], $info, "上年度合同月份", "①");
+        $workdaySet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_ATTENDANCE], $info, "上年度工作月份", "②");
+        $wageSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_WAGES], $info, "上年度工资发放月份", "③");
+        $pensionSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_PENSION], $info, "养老保险", "④");
+        $unemploymentSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_UNEMPLOYMENT], $info, "失业保险", "⑤");
+        $medicaSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_SB_MEDICA], $info, "医疗保险", "⑥");
+        $taxSet = self::chkMonths($monthMap[AllowanceProjectEnum::PROJECT_TAX], $info, "个税", "⑦");
+        $set = array_intersect($set, $contractSet);
         $set = array_intersect($set, $workdaySet);
+        $set = array_intersect($set, $wageSet);
+        $checkSet = $set;
         $set = array_intersect($set, $pensionSet);
         $set = array_intersect($set, $unemploymentSet);
         $set = array_intersect($set, $medicaSet);
@@ -165,18 +170,18 @@ class TalentAllowanceApi {
             return (int) $a - (int) $b;
         });
         if ($info["recommendAllowanceType"] == 1) {
-            if (count($set) < 6) {
+            if (count($checkSet) < 6) {
                 //如果全部满足6个月,但是重叠时间不满足6个月,开始检测是否符合交通补贴要求
                 $info["recommendAllowanceType"] = 2;
-                $info["recommendAllowanceMsg"][] = "社会保险、个税、上年度工作月份交集月份不满足6个月(" . implode(",", $set) . "),无法享受工作津贴(×)";
+                $info["recommendAllowanceMsg"][] = "上年度工作合同月份、考勤月份、工资发放月份交集月份不满足6个月(" . implode(",", $checkSet) . "),无法享受工作津贴(×)";
             } else {
                 //检查连续缴纳月份是否满足6个月
                 $count = 1;
-                foreach ($set as $s) {
+                foreach ($checkSet as $s) {
                     $currentVal = intval($s);
                     $nextVal = $currentVal + 1;
                     $nextKey = str_pad($nextVal, 2, "0", STR_PAD_LEFT);
-                    if (in_array($nextKey, $set)) {
+                    if (in_array($nextKey, $checkSet)) {
                         $count++;
                         if ($count >= 6) {
                             break;
@@ -187,7 +192,7 @@ class TalentAllowanceApi {
                 }
                 if ($count < 6) {
                     $info["recommendAllowanceType"] = 2;
-                    $info["recommendAllowanceMsg"][] = "社会保险、个税、上年度工作月份交集月份不满足连续缴纳6个月(" . implode(",", $set) . "),无法享受工作津贴(×)";
+                    $info["recommendAllowanceMsg"][] = "上年度工作合同月份、考勤月份、工资发放月份交集月份不满足连续缴纳6个月(" . implode(",", $checkSet) . "),无法享受工作津贴(×)";
                 }
             }
         }
@@ -270,7 +275,7 @@ class TalentAllowanceApi {
                 $info["recommendMonths"] = implode(",", $recommendMonths);
                 $info["recommendAllowanceMsg"][] = "通过与人才证书有效期取交集得到最终可享受月份:";
                 $info["recommendAllowanceMsg"][] = "<span style='color:red;font-weight:bold;'>" . implode(",", $recommendMonths) . "</span>;";
-                $info["recommendAllowanceMsg"][] = "经过计算:人才津贴为<span style='color:red;font-weight:bold;'>" . $jobMoney . "</span>;";
+                $info["recommendAllowanceMsg"][] = "经过计算:兑现月份" . count($recommendMonths) . "个月,人才津贴为<span style='color:red;font-weight:bold;'>" . $jobMoney . "</span>;";
                 $info["recommendMoney"] = $jobMoney;
                 $info["recommendMoneyDesc"] = implode("+", $msgBulider);
 
@@ -328,6 +333,7 @@ class TalentAllowanceApi {
 
     //合并所有项目的月份
     private static function mergeMonth($detailList) {
+        $contractList = [];
         $taxList = [];
         $wagesList = [];
         $pensionList = [];
@@ -337,6 +343,10 @@ class TalentAllowanceApi {
         $workdayList = [];
         foreach ($detailList as $detail) {
             $projectMap = $detail["projectMap"];
+            if ($detail["months"]) {
+                $tmp = array_filter(explode(",", $detail["months"]));
+                $contractList = array_merge($contractList, $tmp);
+            }
             if ($projectMap[AllowanceProjectEnum::PROJECT_TAX] && \StrUtil::isNotEmpAndNull($projectMap[AllowanceProjectEnum::PROJECT_TAX]["months"])) {
                 $tmp = array_filter(explode(",", $projectMap[AllowanceProjectEnum::PROJECT_TAX]["months"]));
                 $taxList = array_merge($taxList, $tmp);
@@ -367,6 +377,7 @@ class TalentAllowanceApi {
             }
         }
         $map = [
+            AllowanceProjectEnum::PROJECT_CONTRACT => $contractList,
             AllowanceProjectEnum::PROJECT_TAX => $taxList,
             AllowanceProjectEnum::PROJECT_WAGES => $wagesList,
             AllowanceProjectEnum::PROJECT_SB_PENSION => $pensionList,

+ 2 - 2
public/static/modular/gate/talentAllowance/common/talentAllowance_info_supple.js

@@ -48,7 +48,7 @@ TalentAllowanceInfoDlg.initContractColumns = function () {
             {title: '合同起始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle', width: "120px", 'class': 'uitd_showTip'},
             {title: '合同截止时间', field: 'endTime', visible: true, align: 'center', valign: 'middle', width: "120px", 'class': 'uitd_showTip'},
             {title: '入职时间', field: 'entryTime', visible: true, align: 'center', valign: 'middle', width: "100px"},
-            {title: '离职时间(未离职则模拟离职)', field: 'quitTime', visible: true, align: 'center', valign: 'middle', width: "100px", 'class': 'uitd_showTip'},
+            {title: '本年度工作截止时间', field: 'quitTime', visible: true, align: 'center', valign: 'middle', width: "100px", 'class': 'uitd_showTip'},
             {title: '人才标签', field: 'talentTypeName', visible: true, align: 'center', valign: 'middle', width: "100px", 'class': 'uitd_showTip'},
             {title: '首次来晋行政介绍信时间', field: 'letterTime', visible: true, align: 'center', valign: 'middle', width: "120px"},
             {title: '操作', field: 'id', visible: true, align: 'left', valign: 'middle', width: "120px",
@@ -74,7 +74,7 @@ TalentAllowanceInfoDlg.initContractColumns = function () {
             {title: '合同起始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle', width: "120px"},
             {title: '合同截止时间', field: 'endTime', visible: true, align: 'center', valign: 'middle', width: "120px", 'class': 'uitd_showTip'},
             {title: '入职时间', field: 'entryTime', visible: true, align: 'center', valign: 'middle', width: "100px"},
-            {title: '离职时间(未离职则模拟离职)', field: 'quitTime', visible: true, align: 'center', valign: 'middle', width: "100px"},
+            {title: '本年度工作截止时间', field: 'quitTime', visible: true, align: 'center', valign: 'middle', width: "100px"},
             {title: '操作', field: 'id', visible: true, align: 'left', valign: 'middle', width: "120px",
                 formatter: function (value, row, index) {
                     var html = "";