diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/WageScheduleController.cs b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/WageScheduleController.cs
index 687ba14e8..60ae3adb9 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/WageScheduleController.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Controllers/WageScheduleController.cs
@@ -30,6 +30,15 @@ namespace Learun.Application.Web.Areas.EducationalAdministration.Controllers
return View();
}
///
+ /// 主页面
+ ///
+ ///
+ [HttpGet]
+ public ActionResult IndexPrint()
+ {
+ return View();
+ }
+ ///
/// 我的工资条
///
///
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/WageSchedule/IndexPrint.cshtml b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/WageSchedule/IndexPrint.cshtml
new file mode 100644
index 000000000..9dcdd645d
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/WageSchedule/IndexPrint.cshtml
@@ -0,0 +1,57 @@
+@{
+ ViewBag.Title = "工资条";
+ Layout = "~/Views/Shared/_Index.cshtml";
+}
+
+@Html.AppendJsFile("/Areas/EducationalAdministration/Views/WageSchedule/IndexPrint.js")
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/WageSchedule/IndexPrint.js b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/WageSchedule/IndexPrint.js
new file mode 100644
index 000000000..c05f4d4f6
--- /dev/null
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Areas/EducationalAdministration/Views/WageSchedule/IndexPrint.js
@@ -0,0 +1,269 @@
+/* * 版 本 Learun-ADMS V7.0.6 力软敏捷开发框架(http://www.learun.cn)
+ * Copyright (c) 2013-2020 力软信息技术(苏州)有限公司
+ * 创建人:超级管理员
+ * 日 期:2022-11-07 11:54
+ * 描 述:工资条
+ */
+var refreshGirdData;
+var bootstrap = function ($, learun) {
+ "use strict";
+ var page = {
+ init: function () {
+ page.initGird();
+ page.bind();
+ },
+ bind: function () {
+ $('#multiple_condition_query').lrMultipleQuery(function (queryJson) {
+ page.search(queryJson);
+ }, 220, 400);
+ //年份
+ $('#IssueYear').lrselect({
+ allowSearch: true,
+ url: top.$.rootUrl + '/PersonnelManagement/MP_ManagementPlan/GetAcademicYear',
+ value: 'value',
+ text: 'text'
+ });
+ $('#IssueMonth').lrDataItemSelect({ code: 'MPMonth' });
+ $('#PeopleType').lrselect({
+ placeholder: "请选择人员类别",
+ allowSearch: true,
+ url: top.$.rootUrl + '/EducationalAdministration/WageSchedule/PeopleType',
+ value: 'PeopleType',
+ text: 'PeopleType'
+ });
+ $('#PostType').lrselect({
+ placeholder: "请选择岗位等级",
+ allowSearch: true,
+ url: top.$.rootUrl + '/EducationalAdministration/WageSchedule/PostType',
+ value: 'PostType',
+ text: 'PostType'
+ });
+ $('#PayGrade').lrselect({
+ placeholder: "请选择薪级",
+ allowSearch: true,
+ url: top.$.rootUrl + '/EducationalAdministration/WageSchedule/PayGrade',
+ value: 'PayGrade',
+ text: 'PayGrade'
+ });
+ // 刷新
+ $('#lr_refresh').on('click', function () {
+ location.reload();
+ });
+ // 新增
+ $('#lr_add').on('click', function () {
+ learun.layerForm({
+ id: 'form',
+ title: '新增',
+ url: top.$.rootUrl + '/EducationalAdministration/WageSchedule/Form',
+ width: 800,
+ height: 800,
+ callBack: function (id) {
+ return top[id].acceptClick(refreshGirdData);
+ }
+ });
+ });
+ // 编辑
+ $('#lr_edit').on('click', function () {
+ var keyValue = $('#gridtable').jfGridValue('Id');
+ if (learun.checkrow(keyValue)) {
+ var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark');
+ if (CheckMark.indexOf('1') != -1) {
+ learun.alert.warning("选中记录中包含已审核项目!");
+ return;
+ }
+ learun.layerForm({
+ id: 'form',
+ title: '编辑',
+ url: top.$.rootUrl + '/EducationalAdministration/WageSchedule/Form?keyValue=' + keyValue,
+ width: 800,
+ height: 800,
+ callBack: function (id) {
+ return top[id].acceptClick(refreshGirdData);
+ }
+ });
+ }
+ });
+ // 删除
+ $('#lr_delete').on('click', function () {
+ var keyValue = $('#gridtable').jfGridValue('Id');
+ var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark');
+ if (learun.checkrow(keyValue)) {
+ if (CheckMark.indexOf('1') != -1) {
+ learun.alert.warning("选中记录中包含已审核项目!");
+ return;
+ }
+ learun.layerConfirm('是否确认删除该项!', function (res) {
+ if (res) {
+ learun.deleteForm(top.$.rootUrl + '/EducationalAdministration/WageSchedule/DeleteForm', { keyValue: keyValue }, function () {
+ refreshGirdData();
+ });
+ }
+ });
+ }
+ });
+ //审核
+ $('#lr_check').on('click', function () {
+ var keyValue = $('#gridtable').jfGridValue('Id');
+ if (learun.checkrow(keyValue)) {
+ var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark');
+ if (CheckMark.indexOf('1') != -1) {
+ learun.alert.warning("选中记录中包含已审核项目!");
+ return;
+ }
+ learun.layerConfirm('是否确认审核该项?', function (res) {
+ if (res) {
+ learun.postForm(top.$.rootUrl + '/EducationalAdministration/WageSchedule/CheckForm', { keyValue: keyValue, Status: '1' }, function () {
+ refreshGirdData();
+ });
+ }
+ });
+ }
+ });
+ //去审
+ $('#lr_uncheck').on('click', function () {
+ var keyValue = $('#gridtable').jfGridValue('Id');
+ if (learun.checkrow(keyValue)) {
+ var CheckMark = $('#gridtable').jfGridValue('F_EnabledMark');
+ var CheckMarkArr = CheckMark.split(',');
+ if ($.inArray('0', CheckMarkArr) != -1 || $.inArray('', CheckMarkArr) != -1) {
+ learun.alert.warning("选中记录中包含未审核项目!");
+ return;
+ }
+ learun.layerConfirm('是否确认取消审核该项?', function (res) {
+ if (res) {
+ learun.postForm(top.$.rootUrl + '/EducationalAdministration/WageSchedule/CheckForm', { keyValue: keyValue, Status: '2' }, function () {
+ refreshGirdData();
+ });
+ }
+ });
+ }
+ });
+ //审核全部
+ $('#lr_checkall').on('click', function () {
+ learun.layerConfirm('是否确认全部审核?', function (res) {
+ if (res) {
+ learun.postForm(top.$.rootUrl + '/EducationalAdministration/WageSchedule/CheckForm', { keyValue: null, Status: '0' }, function () {
+ refreshGirdData();
+ });
+ }
+ });
+ });
+ ///上传
+ $('#lr_import').on('click',
+ function () {
+ learun.layerForm({
+ id: 'form',
+ title: '导入',
+ url: top.$.rootUrl + '/EducationalAdministration/WageSchedule/ImportForm',
+ width: 600,
+ height: 400,
+ btn: null,
+ callBack: function (id) {
+ return top[id].acceptClick(refreshGirdData);
+ }
+ });
+ });
+ },
+ initGird: function () {
+ $('#gridtable').jfGrid({
+ url: top.$.rootUrl + '/EducationalAdministration/WageSchedule/GetPageList',
+ headData: [
+ { label: '序号', name: 'No', width: 70, align: "left" },
+ { label: '姓名', name: 'EmpName', width: 70, align: "left" },
+ { label: '工资卡号', name: 'WageCardNo', width: 130, align: "left" },
+ { label: '人员类别', name: 'PeopleType', width: 70, align: "left" },
+ { label: '岗位等级', name: 'PostType', width: 70, align: "left" },
+ { label: '薪级', name: 'PayGrade', width: 50, align: "left" },
+ { label: '应发合计', name: 'TotalGrossPay', width: 70, align: "left", statistics: true },
+ //{
+ // label: '基本工资', name: '基本工资', width: 130, align: "center", statistics: true,
+ // children: [
+ { label: '岗位工资', name: 'PostWage', width: 70, align: "left", statistics: true },
+ { label: '薪级工资', name: 'PayGradeWage', width: 70, align: "left", statistics: true },
+ { label: '百分之十', name: 'TenPercent', width: 70, align: "left", statistics: true },
+ //{ label: '小计', name: 'BasePay', width: 70, align: "left", statistics: true }
+ // ]
+ //},
+ //{
+ // label: '绩效工资', name: '绩效工资', width: 70, align: "center", statistics: true,
+ // children: [
+ { label: '基础绩效', name: 'BasicsPerformance', width: 70, align: "left", statistics: true },
+ { label: '奖励绩效', name: 'AwardPerformance', width: 70, align: "left", statistics: true },
+ // ]
+ //},
+ //{
+ // label: '单列绩效', name: '单列绩效', width: 70, align: "center", statistics: true,
+ // children: [
+ { label: '基础绩效', name: 'SeparateBasicsPerformance', width: 70, align: "left", statistics: true },
+ { label: '奖励绩效', name: 'SeparateAwardPerformance', width: 70, align: "left", statistics: true },
+ // ]
+ //},
+ //{
+ // label: '津贴补贴', name: '津贴补贴', width: 130, align: "center", statistics: true,
+ // children: [
+ { label: '艰边津贴', name: 'RoughEdgeAllowance', width: 70, align: "left", statistics: true },
+ { label: '民族津贴', name: 'NationAllowance', width: 70, align: "left", statistics: true },
+ { label: '教龄补贴', name: 'TeachAllowance', width: 70, align: "left", statistics: true },
+ { label: '特级教师津贴', name: 'SuperfineTeacherResearch', width: 80, align: "left", statistics: true },
+ // ]
+ //},
+ //{
+ //label: '改革性补贴', name: '改革性补贴', width: 70, align: "center", statistics: true,
+ //children: [
+ { label: '交通补贴', name: 'Transportation', width: 70, align: "left", statistics: true },
+ { label: '物业补贴', name: 'RealeState', width: 70, align: "left", statistics: true },
+ { label: '工改保留补贴', name: 'WorkKeep', width: 90, align: "left", statistics: true },
+ // ]
+ //},
+ { label: '女职工卫生费', name: 'GirlStaffSanitation', width: 90, align: "left", statistics: true },
+ { label: '乡镇补贴', name: 'TownshipSubsidy', width: 130, align: "center", statistics: true },
+ { label: '住房补贴', name: 'HousingAllowance', width: 80, align: "left", statistics: true },
+ { label: '住房公积金', name: 'HousingFundAllowance', width: 80, align: "left", statistics: true },
+ { label: '其他', name: 'OtherOne', width: 70, align: "left", statistics: true },
+ { label: '代扣合计', name: 'DeductionsSubtotal', width: 70, align: "left", statistics: true },
+ //{
+ // label: '代扣代缴', name: '代扣代缴', width: 130, align: "center", statistics: true,
+ // children: [
+ { label: '公积金', name: 'AccumulationFund', width: 70, align: "left", statistics: true },
+ { label: '养老保险', name: 'EndowmentInsurance', width: 70, align: "left", statistics: true },
+ { label: '职业年金', name: 'OccupationalAnnuities', width: 70, align: "left", statistics: true },
+ { label: '医疗保险', name: 'MedicalInsurance', width: 70, align: "left", statistics: true },
+ { label: '失业保险', name: 'UnemploymentInsurance', width: 70, align: "left", statistics: true },
+ { label: '工会工费', name: 'LaborUnionWage', width: 70, align: "left", statistics: true },
+ { label: '个人所得税', name: 'PersonalIncomeTax', width: 70, align: "left", statistics: true },
+ { label: '其他', name: 'Other', width: 70, align: "left", statistics: true },
+ // ]
+ //},
+ //{ label: '财政直达', name: 'FiscalDirect', width: 70, align: "left", statistics: true },
+ //{ label: '银行代扣', name: 'BankWithholding', width: 70, align: "left", statistics: true },
+ { label: '实发合计', name: 'NetCombined', width: 70, align: "left", statistics: true },
+ //{ label: '创建用户', name: 'CreateUser', width: 70, align: "left" },
+ //{ label: '创建时间', name: 'CreateTime', width: 130, align: "left" },
+ { label: '发放月份', name: 'IssueMonth', width: 70, align: "left" },
+ { label: '发放年份', name: 'IssueYear', width: 70, align: "left" },
+ {
+ label: "审核状态", name: "F_EnabledMark", width: 70, align: "center",
+ formatter: function (cellvalue) {
+ return cellvalue == "1" ? "已审核" : "未审核";
+ }
+ },
+ ],
+ mainId: 'Id',
+ isPage: true,
+ rows: 300,
+ sidx: 'IssueYear desc, IssueMonth desc, CreateTime desc ',
+ isMultiselect: true
+ });
+ page.search();
+ },
+ search: function (param) {
+ param = param || {};
+ param.Sqlparam = "";
+ $('#gridtable').jfGridSet('reload', { queryJson: JSON.stringify(param) });
+ }
+ };
+ refreshGirdData = function () {
+ $('#gridtable').jfGridSet('reload');
+ };
+ page.init();
+}
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Content/excel/SalarySheetImport.xls b/Learun.Framework.Ultimate V7/Learun.Application.Web/Content/excel/SalarySheetImport.xls
index fd3079009..37bff3328 100644
Binary files a/Learun.Framework.Ultimate V7/Learun.Application.Web/Content/excel/SalarySheetImport.xls and b/Learun.Framework.Ultimate V7/Learun.Application.Web/Content/excel/SalarySheetImport.xls differ
diff --git a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
index fcc8ee05a..ea3d283fd 100644
--- a/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
+++ b/Learun.Framework.Ultimate V7/Learun.Application.Web/Learun.Application.Web.csproj
@@ -1430,6 +1430,7 @@
+
@@ -8023,6 +8024,7 @@
+
diff --git a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/WageSchedule/WageScheduleService.cs b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/WageSchedule/WageScheduleService.cs
index c53eb3602..90f6ea6d0 100644
--- a/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/WageSchedule/WageScheduleService.cs
+++ b/Learun.Framework.Ultimate V7/Learun.Framework.Module/Learun.Application.Module/Learun.Application.TwoDevelopment/EducationalAdministration/WageSchedule/WageScheduleService.cs
@@ -70,7 +70,7 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
var strSql = new StringBuilder();
strSql.Append(" SELECT t.*,u.F_Account,u.F_RealName FROM WageSchedule t ");
strSql.Append($" left join {baseDataName}.dbo.LR_Base_User u on t.empname=u.F_RealName ");
- strSql.Append(" where 1=1 ");
+ strSql.Append(" where 1=1 and u.F_Description='教师' and u.F_DeleteMark = 0");
var userInfo = LoginUserInfo.Get();
var queryParam = queryJson.ToJObject();
// 虚拟参数
@@ -354,22 +354,25 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
try
{
//检测是否有空值
- if (dr[1].ToString() == "" || dr[2].ToString() == "" || dr[3].ToString() == "" || dr[4].ToString() == "" || dr[5].ToString() == "" || dr[6].ToString() == "" || dr[26].ToString() == "" || dr[35].ToString() == "")
+ if (dr[1].ToString() == "" || dr[3].ToString() == "" || dr[4].ToString() == "" || dr[5].ToString() == "" || dr[6].ToString() == "" || dr[26].ToString() == "" || dr[35].ToString() == "")
{
throw (new Exception("行内必填项数据有空值,不能为空!"));
}
- if (dr[36].ToString() == "" || dr[37].ToString() == "")
- {
- throw (new Exception("发放年月不能为空"));
- }
if (EmpInfoEntities.Count(m => m.EmpName.ToUpper() == dr[1].ToString().ToUpper()) == 0)
{
throw (new Exception("【姓名】不存在,请核对!"));
}
-
+ if (dr[2].ToString() == "")
+ {
+ throw (new Exception("【工资卡号】不能为空"));
+ }
+ if (dr[36].ToString() == "" || dr[37].ToString() == "")
+ {
+ throw (new Exception("发放【年、月】不能为空"));
+ }
if (wageScheduleEntityList.Count(x => x.IssueYear == dr[37].ToString() && x.IssueMonth == dr[36].ToInt() && x.EmpName == dr[1].ToString()) > 0)
{
- throw (new Exception("当月信息已重复,信息已忽略"));
+ throw (new Exception("导入信息已重复,信息已忽略"));
}
//写入要导入的数据
@@ -418,8 +421,8 @@ namespace Learun.Application.TwoDevelopment.EducationalAdministration
};
wageScheduleEntityList.Add(wageScheduleEntity);
- //删除表中原有姓名,月份,年的数据
- //db.Delete(x => x.EmpName == wageScheduleEntity.EmpName && x.IssueMonth == wageScheduleEntity.IssueMonth && x.IssueYear == wageScheduleEntity.IssueYear);
+ //删除表中旧数据 及同年同月同名同姓之人
+ db.Delete(x => x.EmpName == wageScheduleEntity.EmpName && x.IssueMonth == wageScheduleEntity.IssueMonth && x.IssueYear == wageScheduleEntity.IssueYear);
snum++;
}
catch (Exception ex)
diff --git a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json
index 50095daed..f8918303f 100644
--- a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json
+++ b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages.json
@@ -1158,13 +1158,13 @@
{
"path": "pages/Payslip/Payslip/list",
"style": {
- "navigationBarTitleText": "财政工资条"
+ "navigationBarTitleText": "我的工资"
}
},
{
"path": "pages/Payslip/Payslip/single",
"style": {
- "navigationBarTitleText": "财政工资条"
+ "navigationBarTitleText": "我的工资"
}
},
// 外聘工资条
diff --git a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/Payslip/Payslip/list.vue b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/Payslip/Payslip/list.vue
index 6192ef664..396d1ef44 100644
--- a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/Payslip/Payslip/list.vue
+++ b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/Payslip/Payslip/list.vue
@@ -25,15 +25,29 @@
+
+
+
+ 应发合计
+ ¥{{list.length > 0 ? list[0].TotalGrossPay || 0 : 0}}
+
+
+
+ 代扣合计
+ ¥{{list.length > 0 ? list[0].DeductionsSubtotal || 0 : 0}}
+
+
+
+
+
-
+
-
+
基本工资
岗位工资:
@@ -66,7 +80,7 @@
百分之十:
{{ displayListItem(item, 'TenPercent') }}
-
+ 绩效工资
基础绩效:
{{ displayListItem(item, 'BasicsPerformance') }}
@@ -75,7 +89,7 @@
奖励绩效:
{{ displayListItem(item, 'AwardPerformance') }}
-
+ 单列绩效
基础绩效:
{{ displayListItem(item, 'SeparateBasicsPerformance') }}
@@ -84,7 +98,7 @@
奖励绩效:
{{ displayListItem(item, 'SeparateAwardPerformance') }}
-
+ 津贴补贴
艰边津贴:
{{ displayListItem(item, 'RoughEdgeAllowance') }}
@@ -101,7 +115,7 @@
特级教师津贴:
{{ displayListItem(item, 'SuperfineTeacherResearch') }}
-
+ 改革性补贴
交通补贴:
{{ displayListItem(item, 'Transportation') }}
@@ -171,7 +185,7 @@
其他:
{{ displayListItem(item, 'Other') }}
-
+
-
-
+
-
+ -->
@@ -572,7 +585,15 @@
reset() {
this.queryData = this.COPY(this.defaultQueryData)
this.searchChange()
- }
+ },
+
+ // 点击跳转到详情页
+ GoTosingle(type){
+ let _this = this
+ uni.navigateTo({
+ url: './single?type='+type+'&item='+encodeURIComponent(JSON.stringify(_this.list))
+ });
+ }
}
}
@@ -586,6 +607,8 @@
padding-left: 0;
padding-right: 0;
padding-top: 0;
+ padding-bottom: 0;
+ border-top: none !important;
}
.customlist-item-field{
padding-left: 10px;
@@ -662,7 +685,16 @@
font-size: 16px;
line-height: 36px;
background: #f1f1f1;
- margin-top: 5px;
padding-left: 5px;
}
+ .item-titlewrap{
+ color: #000;
+ font-size: 16px;
+ line-height: 50px;
+ background: #f1f1f1;
+ padding:0 10px;
+ border-bottom: 1rpx solid #ddd;
+ display: flex;
+ justify-content: space-between;
+ }
\ No newline at end of file
diff --git a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/Payslip/Payslip/single.vue b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/Payslip/Payslip/single.vue
index 7aaba5065..1010ff97f 100644
--- a/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/Payslip/Payslip/single.vue
+++ b/Learun.Framework.Ultimate V7/LearunApp-2.2.0/pages/Payslip/Payslip/single.vue
@@ -1,43 +1,44 @@
- 基本信息
- {{itemtitle}} -->
+
-
- -->
+
+
+
基本工资
-
+ title="基础性绩效"
+ />
+
+ 单列绩效
+
+
津贴补贴
+ />
-
-
-
-
-
改革性补贴
-
+ title="女职工卫生费"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 代扣代缴
-
+ /> -->