@@ -181,15 +181,11 @@ namespace Learun.Application.Web.Areas.ReceiveSendFeeManagement.Controllers | |||
var FinaChargeStuYearData = finaChargeStuYearIBLL.GetFinaChargeStuYearEntity(keyValue); | |||
//学生缴费明细 | |||
var FinaChargeStuItemList = finaChargeStuYearIBLL.GetFinaChargeStuItemList(keyValue); | |||
foreach (var finaChargeStuYearItemEntity in FinaChargeStuItemList) | |||
{ | |||
finaChargeStuYearItemEntity.FSBlance = Math.Abs(finaChargeStuYearItemEntity.FSBlance.Value); | |||
} | |||
var jsonData = new | |||
{ | |||
StuInfoFreshData = FinaChargeStuYearData, | |||
FinaChargesStandardList = FinaChargeStuItemList, | |||
PayFeeTotal = Math.Abs(FinaChargeStuYearData.FSBlance.Value), | |||
PayFeeTotal = FinaChargeStuYearData.NeedToPay, | |||
SJAmount = FinaChargeStuYearData.SJAmount | |||
}; | |||
return Success(jsonData); | |||
@@ -58,6 +58,54 @@ var bootstrap = function ($, learun) { | |||
url: top.$.rootUrl + '/ReceiveSendFeeManagement/FinaChargeStuBalance/GetPageList', | |||
headData: [ | |||
{ label: "学号", name: "StuNo", width: 100, align: "left" }, | |||
{ label: "姓名", name: "StuName", width: 100, align: "left" }, | |||
{ | |||
label: "性别", name: "GenderNo", width: 80, align: "left", | |||
formatter: function (cellvalue) { | |||
return cellvalue == true ? "男" : "女"; | |||
} | |||
}, | |||
{ label: "身份证号", name: "IdentityCardNo", width: 150, align: "left" }, | |||
{ | |||
label: "系所", name: "DeptNo", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdDeptInfo', | |||
key: value, | |||
keyId: 'deptno', | |||
callback: function (_data) { | |||
callback(_data['deptname']); | |||
} | |||
}); | |||
} | |||
}, | |||
{ | |||
label: "专业", name: "MajorNo", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo', | |||
key: value, | |||
keyId: 'majorno', | |||
callback: function (_data) { | |||
callback(_data['majorname']); | |||
} | |||
}); | |||
} | |||
}, | |||
{ | |||
label: "班级", name: "ClassNo", width: 100, align: "left", | |||
formatterAsync: function (callback, value, row, op, $cell) { | |||
learun.clientdata.getAsync('custmerData', { | |||
url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'bjsj', | |||
key: value, | |||
keyId: 'classno', | |||
callback: function (_data) { | |||
callback(_data['classname']); | |||
} | |||
}); | |||
} | |||
}, | |||
{ label: "年级", name: "Grade", width: 80, align: "left" }, | |||
{ label: "缴费年度", name: "FSYear", width: 100, align: "left" }, | |||
{ label: "收费项目编号", name: "ChargeItemCode", width: 100, align: "left" }, | |||
{ label: "收费项目名称", name: "ChargeItemName", width: 100, align: "left" }, | |||
@@ -32,7 +32,8 @@ var bootstrap = function ($, learun) { | |||
{ label: "超出应收额", name: "NowBlance", width: 100, align: "left"}, | |||
], | |||
mainId:'Id', | |||
isPage: true | |||
isPage: true, | |||
sidx: 'ChargeItemCode' | |||
}); | |||
page.search(); | |||
}, | |||
@@ -107,8 +107,8 @@ var bootstrap = function ($, learun) { | |||
html += '<tr style="border-top: 10px solid blue;"><td class=\"tableLeft\">缴费项目</td><td class=\"tableLeft\">收费标准</td><td class=\"tableLeft\">本次实缴</td></tr>'; | |||
$.each(data['FinaChargesStandardList'], function (i, item) { | |||
html += '<tr><td class=\"tableLeft\">' + item.ChargeItemName + '</td><td>' + item.Standard + '元</td><td>' + | |||
'<input id="' + item.ChargeItemCode + '" onkeyup="if(this.value > ' + item.FSBlance + '){this.value=' + item.FSBlance + '}" onafterpaste="if(this.value > ' + item.FSBlance + '){this.value=' + item.FSBlance +'}" ' + | |||
' max="' + item.FSBlance + '" min="0" data-amount="' + item.Standard + '" data-name="' + item.ChargeItemName + '" type="number" class="form-control paydetail" value="' + item.FSBlance + '" /></td></tr>'; | |||
'<input id="' + item.ChargeItemCode + '" onkeyup="if(this.value > ' + item.NeedToPay + '){this.value=' + item.NeedToPay + '}" onafterpaste="if(this.value > ' + item.NeedToPay + '){this.value=' + item.NeedToPay +'}" ' + | |||
' max="' + item.NeedToPay + '" min="0" data-amount="' + item.Standard + '" data-name="' + item.ChargeItemName + '" type="number" class="form-control paydetail" value="' + item.NeedToPay + '" /></td></tr>'; | |||
}); | |||
html += '<tr><td class=\"tableLeft\">应缴合计</td><td>' + data['PayFeeTotal'] + '元</td><td><span id="PayMoney">' + PayFeeTotal + '</span></td></tr>'; | |||
@@ -79,15 +79,11 @@ namespace Learun.Application.WebApi.Modules | |||
var FinaChargeStuYearData = finaChargeStuYearIBLL.GetFinaChargeStuYearEntity(keyValue); | |||
//学生缴费明细 | |||
var FinaChargeStuItemList = finaChargeStuYearIBLL.GetFinaChargeStuItemList(keyValue); | |||
foreach (var finaChargeStuYearItemEntity in FinaChargeStuItemList) | |||
{ | |||
finaChargeStuYearItemEntity.FSBlance = Math.Abs(finaChargeStuYearItemEntity.FSBlance.Value); | |||
} | |||
var jsonData = new | |||
{ | |||
StuInfoFreshData = FinaChargeStuYearData, | |||
FinaChargesStandardList = FinaChargeStuItemList, | |||
PayFeeTotal = Math.Abs(FinaChargeStuYearData.FSBlance.Value), | |||
PayFeeTotal =FinaChargeStuYearData.NeedToPay, | |||
SJAmount = FinaChargeStuYearData.SJAmount | |||
}; | |||
return Success(jsonData); | |||
@@ -109,6 +109,22 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
} | |||
#endregion | |||
#region 扩展字段 | |||
[NotMapped] | |||
public string StuName { get; set; } | |||
[NotMapped] | |||
public bool? GenderNo { get; set; } | |||
[NotMapped] | |||
public string IdentityCardNo { get; set; } | |||
[NotMapped] | |||
public string DeptNo { get; set; } | |||
[NotMapped] | |||
public string MajorNo { get; set; } | |||
[NotMapped] | |||
public string ClassNo { get; set; } | |||
[NotMapped] | |||
public string Grade { get; set; } | |||
[NotMapped] | |||
public string Mobile { get; set; } | |||
#endregion | |||
} | |||
} | |||
@@ -30,8 +30,8 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
try | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT * "); | |||
strSql.Append(" FROM FinaChargeStuBalance t "); | |||
strSql.Append("SELECT t.*,b.StuName,b.GenderNo,b.IdentityCardNo,b.DeptNo,b.MajorNo,b.ClassNo,b.Grade,b.Mobile "); | |||
strSql.Append(" FROM FinaChargeStuBalance t left join FinaChargeStudent b on t.StuNo=b.StuNo "); | |||
strSql.Append(" WHERE 1=1 "); | |||
var queryParam = queryJson.ToJObject(); | |||
// 虚拟参数 | |||
@@ -37,7 +37,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
try | |||
{ | |||
var strSql = new StringBuilder(); | |||
strSql.Append("SELECT t*,b.StuName,b.GenderNo,b.IdentityCardNo,b.DeptNo,b.MajorNo,b.ClassNo,b.Grade,b.Mobile "); | |||
strSql.Append("SELECT t.*,b.StuName,b.GenderNo,b.IdentityCardNo,b.DeptNo,b.MajorNo,b.ClassNo,b.Grade,b.Mobile "); | |||
strSql.Append(" FROM FinaChargeStuOrder t left join FinaChargeStudent b on t.StuNo=b.StuNo "); | |||
strSql.Append(" WHERE 1=1 "); | |||
var queryParam = queryJson.ToJObject(); | |||
@@ -260,7 +260,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
//获取已有年度学生缴费记录 | |||
var oldFinaChargeStuYearList = BaseRepository("CollegeMIS").FindList<FinaChargeStuYearEntity>(); | |||
//获取已有年度学生缴费明细记录 | |||
var oldFinaChargeStuYearItemList = BaseRepository("CollegeMIS").FindList<FinaChargeStuYearItemEntity>("select a.*,b.StuNo from FinaChargeStuYearItem a left join FinaChargeStuYear b on a.FSYId=b.FSYId where ChargeItemType=1 and F_DeleteMark=0 and RefundStatus=0"); | |||
var oldFinaChargeStuYearItemList = BaseRepository("CollegeMIS").FindList<FinaChargeStuYearItemEntity>("select a.*,b.StuNo,c.StuName from FinaChargeStuYearItem a left join FinaChargeStuYear b on a.FSYId=b.FSYId left join FinaChargeStudent c on b.StuNo=c.StuNo where ChargeItemType=1 and F_DeleteMark=0 and RefundStatus=0"); | |||
foreach (DataRow dr in dt.Rows) | |||
{ | |||
var db = this.BaseRepository("CollegeMIS").BeginTrans(); | |||
@@ -316,7 +316,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
throw new Exception("【缴费方式】只能为现金或贷款,请核对!"); | |||
} | |||
int itemcodeint = 0; | |||
if (!int.TryParse(itemcodeentity.F_ItemCode, out itemcodeint)) | |||
if (!int.TryParse(itemcodeentity.F_ItemValue, out itemcodeint)) | |||
{ | |||
throw new Exception("【线下缴费方式字典(PayTypeOffLine)】值code只能为整数,请核对!"); | |||
} | |||
@@ -113,7 +113,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
try | |||
{ | |||
return this.BaseRepository("CollegeMIS").FindEntity<FinaChargeStuYearEntity>("select b.*,a.FSYear,a.YJAmount,a.SJAmount,a.FSBlance,a.PayFeeStatus from FinaChargeStuYear a left join FinaChargeStudent b on a.StuNo=b.StuNo where a.FSYId='" + keyValue + "'", null); | |||
return this.BaseRepository("CollegeMIS").FindEntity<FinaChargeStuYearEntity>("select b.*,a.FSYear,a.YJAmount,a.SJAmount,a.NeedToPay,a.FSBlance,a.PayFeeStatus from FinaChargeStuYear a left join FinaChargeStudent b on a.StuNo=b.StuNo where a.FSYId='" + keyValue + "'", null); | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -137,7 +137,7 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
{ | |||
try | |||
{ | |||
return this.BaseRepository("CollegeMIS").FindList<FinaChargeStuYearItemEntity>("select a.StuNo,b.* from FinaChargeStuYear a left join FinaChargeStuYearItem b on a.FSYId=b.FSYId where b.F_DeleteMark=0 and b.FSBlance<0 and a.FSYId='" + keyValue + "' order by ChargeItemCode"); | |||
return this.BaseRepository("CollegeMIS").FindList<FinaChargeStuYearItemEntity>("select a.StuNo,b.* from FinaChargeStuYear a left join FinaChargeStuYearItem b on a.FSYId=b.FSYId where b.F_DeleteMark=0 and a.FSYId='" + keyValue + "' order by ChargeItemCode"); | |||
} | |||
catch (Exception ex) | |||
{ | |||
@@ -366,6 +366,9 @@ namespace Learun.Application.TwoDevelopment.ReceiveSendFeeManagement | |||
finaChargeStuYearItem.priority = finaChargesStandardEntity.priority; | |||
finaChargeStuYearItem.Standard = finaChargesStandardEntity.Standard; | |||
finaChargeStuYearItem.NeedToPay = finaChargeStuYearItem.Standard; | |||
var loginUserInfo = LoginUserInfo.Get(); | |||
finaChargeStuYearItem.F_CreateUserId = loginUserInfo.userId; | |||
finaChargeStuYearItem.F_CreateUserName = loginUserInfo.realName; | |||
db.Insert(finaChargeStuYearItem); | |||
//更新主表 | |||
oldFinaChargeStuYearEntity.YJAmount+= finaChargeStuYearItem.Standard; | |||
@@ -32,15 +32,19 @@ | |||
{{ item.FSYear }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">应缴金额:</text> | |||
<text class="customlist-item-field-title">收费标准:</text> | |||
{{ item.YJAmount }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">实缴金额:</text> | |||
<text class="customlist-item-field-title">缴费金额:</text> | |||
{{ item.SJAmount }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">缴费年度余额:</text> | |||
<text class="customlist-item-field-title">应缴余额:</text> | |||
{{ item.NeedToPay }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
<text class="customlist-item-field-title">超出应收额:</text> | |||
{{ item.FSBlance }} | |||
</view> | |||
<view class="customlist-item-field"> | |||
@@ -59,8 +63,7 @@ | |||
<!-- 侧边栏,用于设置查询条件 --> | |||
<scroll-view :class="sideOpen ? 'show' : ''" class="sidepage" scroll-y> | |||
<view v-if="ready" class="padding"> | |||
<l-input v-model="queryData.StuNo" title="学号" placeholder="请填写学号" right /> | |||
<l-input v-model="queryData.FSYear" title="缴费年度" placeholder="请填写缴费年度" right /> | |||
<!-- 重置查询条件按钮 --> | |||
<view class="padding-tb"><l-button @click="searchChange" line="orange" class="block" block>查询</l-button></view> | |||
</view> | |||
@@ -160,6 +163,8 @@ export default { | |||
this.user = this.GET_GLOBAL('loginUser'); | |||
this.queryData.StuNo = this.user.account; | |||
this.queryData.F_CheckMark=1; | |||
var dateyearnow=new Date(); | |||
this.queryData.FSYear=dateyearnow.getFullYear(); | |||
// 拉取加载列表和数据源 | |||
await Promise.all([ | |||
@@ -103,7 +103,7 @@ export default{ | |||
fieldsData:[ | |||
{type:'label',field:'ChargeItemName',name:'缴费项目'}, | |||
{type:'label',field:'Standard',name:'收费标准'}, | |||
{type:'input',field:'FSBlance',name:'本次实缴',edit:true}, | |||
{type:'input',field:'NeedToPay',name:'本次实缴',edit:true}, | |||
] | |||
}, | |||
qrCodeUrl:'', | |||
@@ -150,7 +150,7 @@ export default{ | |||
return; | |||
} | |||
this.FinaChargesStandardList = res.FinaChargesStandardList.map((item)=>{ | |||
item.copy_SJAmount = item.FSBlance | |||
item.copy_SJAmount = item.NeedToPay | |||
return item | |||
}) | |||
this.StuInfoFreshData = res.StuInfoFreshData | |||
@@ -210,12 +210,12 @@ export default{ | |||
let list = [],isNull=false,tooMuch=false; | |||
this.FinaChargesStandardList.forEach(item=>{ | |||
let value = 0 | |||
if(/^-?\d+(,\d{3})*(\.\d{1,2})?$/.test(item.FSBlance)&&Number(item.FSBlance)>=0){ | |||
value = Number(item.FSBlance) | |||
if(/^-?\d+(,\d{3})*(\.\d{1,2})?$/.test(item.NeedToPay)&&Number(item.NeedToPay)>=0){ | |||
value = Number(item.NeedToPay) | |||
}else{ | |||
isNull=true | |||
} | |||
if(Number(item.FSBlance)>Number(item.copy_SJAmount)) | |||
if(Number(item.NeedToPay)>Number(item.copy_SJAmount)) | |||
{ | |||
tooMuch=true; | |||
@@ -246,7 +246,6 @@ export default{ | |||
param.FSYear=this.StuInfoFreshData.FSYear; | |||
param.PayMoney = this.payfeetotal; | |||
let postData = { strEntity: JSON.stringify(param), detailList: JSON.stringify(list) } | |||
console.log({ strEntity: param, detailList: list }); | |||
this.changeIpnutEdit(false) | |||
this.LOADING('正在生成付款信息请稍等…'); | |||
this.HTTP_POST('/ReceiveSendFeeManagement/FinaChargeStuYearApi/generateqrcode', postData ).then((res)=> { | |||
@@ -272,15 +271,15 @@ export default{ | |||
getpayfeetotal(){ | |||
let value = 0 | |||
this.FinaChargesStandardList.map(item=>{ | |||
let strValue = item.FSBlance.toString() | |||
let strValue = item.NeedToPay.toString() | |||
// if(strValue.split(".")[1]&&strValue.split(".")[1].length>2){ | |||
// item.SJAmount = strValue.match(/^\d+(?:\.\d{0,2})?/) | |||
// } | |||
if(/^-?\d+(,\d{3})*(\.\d{1,2})?$/.test(item.FSBlance)){ | |||
if(strValue.indexOf(".") == -1&&Number(item.FSBlance)%1 === 0){ | |||
item.FSBlance = Number(item.FSBlance) | |||
if(/^-?\d+(,\d{3})*(\.\d{1,2})?$/.test(item.NeedToPay)){ | |||
if(strValue.indexOf(".") == -1&&Number(item.NeedToPay)%1 === 0){ | |||
item.NeedToPay = Number(item.NeedToPay) | |||
} | |||
value = this.numSub(value,Number(item.FSBlance)) | |||
value = this.numSub(value,Number(item.NeedToPay)) | |||
// value += Number(item.SJAmount) | |||
} | |||
}) | |||
@@ -289,7 +288,7 @@ export default{ | |||
changeIpnutEdit(edit){ | |||
let item = JSON.parse(JSON.stringify(this.item)) | |||
item.fieldsData = item.fieldsData.map((item1)=>{ | |||
if(["FSBlance"].includes(item1.field)){ | |||
if(["NeedToPay"].includes(item1.field)){ | |||
item1.edit = edit | |||
} | |||
return item1 | |||