tijian_tieying/web/dccdc/Views/sq2/sqccbxMessageNew.cshtml

741 lines
31 KiB
Plaintext
Raw Normal View History

2025-02-20 12:14:39 +08:00

@{
ViewBag.Title = "sqccbxMessage";
}
@model dccdc.Models.sqccbxModel
@section scripts{
<script type="text/javascript" src="@Url.Content("~/Scripts/public.js")"></script>
<script type="text/javascript">
//自定义排序
$.ligerDefaults.Grid.sorters['endtSort'] = function (val1, val2) {
return val1 < val2 ? -1 : val1 > val2 ? 1 : 0;
};
$(function () {
$("#layout1").ligerLayout({ leftWidth: 300, topHeight: 170 });
$("#sqsj").ligerDateEditor({ format: "yyyy/MM/dd hh:mm:ss", showTime: true });
//$("#sqsj").ligerGetDateEditorManager().setValue(fun_date(0));
$("#fyly").change(function () {
var select = $("#fyly").val();
$("#fydh").val("");
$("#fydh2").val("");
var url = "";
switch (select) {
case "项目经费": url = "@Url.Action("choosexmjfView", "jingfei")"; break;
case "三重一大": url = "@Url.Action("chooseszydView", "jingfei")"; break;
}
if (url == "")
return;
$.ligerDialog.success("暂不开放!");
return;
openf2 = $.ligerDialog.open({
title: "选择申请单",
url: url,
width: 500,
height: 400
});
})
$("#dydh").focus(function () {
openf2 = $.ligerDialog.open({
title: "选择申请单(单击选中确定)",
url: "@Url.Action("choosccsqView")?type=ccbx",
width: 700,
height: 400
});
})
//var kemuD = @Html.Raw(ViewBag.kemuD);
var jtgjD = @Html.Raw(ViewBag.jtgjD);
$("#grid2").ligerGrid({
height: "100%",
columns: [
{ display: "双击删除", name: "", align: "left", width: 60 },
{
display: "开始时间", name: "begint", align: "left", width: 86, type: 'string'
//type: 'date', format: 'yyyy-MM-dd'
//, editor: { type: 'date' }
},
{
display: "结束时间", name: "endt", align: "left", width: 86, type: 'string'
//type: 'date', format: 'yyyy-MM-dd'
//, editor: { type: 'date' }
},
{ display: "起点", name: "begind", align: "left", width: 100, type: 'string' },
{ display: "终点", name: "endd", align: "left", width: 100, type: 'string' },
{
display: "交通工具", name: "gongju", align: "left", width: 70, type: 'string',
editor: { type: 'select', data: jtgjD, valueField: 'title', textField: 'title' }
},
{
display: "张数", name: "count", align: "right", width: 60, type: 'float', editor: { type: 'float' },
render: function (r, i, v) {
if (v == 0) {
return "";
}
else {
return v;
}
}
},
{
display: "金额", name: "je", align: "right", width: 60, type: 'float', editor: { type: 'float' },
render: function (r, i, v) {
if (v == 0) {
return "";
}
else {
return v;
}
}
},
{
display: "人数", name: "rs", align: "right", width: 60, type: 'float',
render: function (r, i, v) {
if (v == 0) {
return "";
}
else {
return v;
}
}
//, editor: { type: 'float' }
},
//{ display: "包含餐补", name: "havecb", align: "left", width: 60, type: 'string',
// render: function (r, i, v) {
// if (v) {
// return "包含";
// }
// else{
// return "不包含";
// }
// }
//},
{
display: "项目", name: "xiangmu", align: "left", width: 90, type: 'string'
//,editor: { type: 'select', data: kemuD, valueField: 'title', textField: 'title' }
},
{
display: "天数", name: "ts", align: "right", width: 60, type: 'float',
render: function (r, i, v) {
if (v == 0) {
return "";
}
else {
return v;
}
}
//, editor: { type: 'float' }
},
{
display: "标准", name: "bz", align: "right", width: 60, type: 'float',
render: function (r, i, v) {
if (v == 0) {
return "";
}
else {
return v;
}
}
//, editor: { type: 'float' }
},
{
display: "金额", name: "je2", align: "right", width: 60, type: 'float',
render: function (r, i, v) {
if (v == 0) {
return "";
}
else {
return v;
}
}
//, editor: { type: 'float' }
},
{
display: "其他", name: "qt", align: "left", width: 90, type: 'string'
//, editor: { type: 'select', data: kemuD, valueField: 'title', textField: 'title' }
},
{
display: "金额", name: "je3", align: "right", width: 60, type: 'float',
render: function (r, i, v) {
if (v == 0) {
return "";
}
else {
return v;
}
}
//, editor: { type: 'float' }
},
],
url: "@Url.Action("getsqccbxMx")?key=0000000&id=@Request.QueryString["id"]",
rownumber: true,
usePager: false,
enabledEdit: true,
heightDiff: -27,
toolbar: {
items: [
//{ text: '增加', click: edit, icon: 'add' },
//{ line: true },
{ text: '增加车票', click: function(){ message(1,'增加车票')}, icon: 'add' },
{ line: true },
{ text: '增加其他', click: function(){ message(2,'增加其他')}, icon: 'add' },
]
},
onDblClickRow: function (rowdata, rowid, rowobj) {
liger.get("grid2").remove(rowdata);
//自动计算
autojs();
//计算
sum();
},
onAfterEdit: function (e) {
//计算
sum();
}
});
})
function edit(item) {
if(item.text=="增加"){
var rowdata = {};
rowdata.begint = "";
rowdata.endt = "";
rowdata.begind = "";
rowdata.endd = "";
rowdata.havecb = false;
rowdata.gongju = "";
rowdata.count = 0;
rowdata.je = 0;
rowdata.xiangmu = "";
rowdata.rs = 0;
rowdata.ry = "";
rowdata.ts = 0;
rowdata.bz = 0;
rowdata.bz2 = 0;
rowdata.je2 = 0;
rowdata.qt = "";
rowdata.je3 = 0;
//包含交通补助 与原始餐补
rowdata2.bhjtbz = 0;
rowdata2.hbz = 0;
liger.get("grid2").add(rowdata);
sum();
}
}
function message(type,title) {
var url = "@Url.Action("sqccbxMessage2")?type=" + type;
openf2 = $.ligerDialog.open({
title: title,
url: url,
width: 550,
height: 380
});
}
//弹出框选中
var je3zs=0; //住宿总额
function selectedData(type, rowdata) {
console.log(1);
debugger;
if (type == "0") {
openf2.close();
return
}
var rowdata2 = {};
rowdata2.begint = "";
rowdata2.endt = "";
rowdata2.begind = "";
rowdata2.endd = "";
rowdata2.havecb = false;
rowdata2.gongju = "";
rowdata2.count = 0;
rowdata2.je = 0;
rowdata2.xiangmu = "";
rowdata2.rs = 0;
rowdata2.ry = "";
rowdata2.ts = 0;
rowdata2.bz = 0;
rowdata2.bz2 = 0;
rowdata2.je2 = 0;
rowdata2.qt = "";
rowdata2.je3 = 0;
//包含交通补助 与原始餐补
rowdata2.bhjtbz = 0;
rowdata2.hbz = 0;
var rows = liger.get("grid2").getData();
var have = false;
if (type == "1") {
for (var i in rows) {
if (!rows[i].begind && !rows[i].endd && !rows[i].gongju) {
liger.get("grid2").updateCell("begint", rowdata.begint, i);
liger.get("grid2").updateCell("endt", rowdata.endt, i);
liger.get("grid2").updateCell("begind", rowdata.begind, i);
liger.get("grid2").updateCell("endd", rowdata.endd, i);
liger.get("grid2").updateCell("havecb", rowdata.havecb, i);
liger.get("grid2").updateCell("gongju", rowdata.gongju, i);
liger.get("grid2").updateCell("count", rowdata.count, i);
liger.get("grid2").updateCell("je", rowdata.je, i);
liger.get("grid2").updateCell("xiangmu", rowdata.xiangmu, i);
liger.get("grid2").updateCell("rs", rowdata.rs, i);
liger.get("grid2").updateCell("ry", rowdata.ry, i);
liger.get("grid2").updateCell("ts", rowdata.ts, i);
liger.get("grid2").updateCell("bz", rowdata.bz, i);
liger.get("grid2").updateCell("bz2", rowdata.bz2, i);
liger.get("grid2").updateCell("je2", rowdata.je2, i);
rows[i].bhjtbz = rowdata.bhjtbz;
rows[i].hbz = rowdata.bz;
have = true;
break;
}
}
if (!have) {
rowdata2.begint = rowdata.begint;
rowdata2.endt = rowdata.endt;
rowdata2.begind = rowdata.begind;
rowdata2.endd = rowdata.endd;
rowdata2.havecb = rowdata.havecb;
rowdata2.gongju = rowdata.gongju;
rowdata2.count = rowdata.count;
rowdata2.je = rowdata.je;
rowdata2.xiangmu = rowdata.xiangmu;
rowdata2.rs = rowdata.rs;
rowdata2.ry = rowdata.ry;
rowdata2.ts = rowdata.ts;
rowdata2.bz = rowdata.bz;
rowdata2.bz2 = rowdata.bz2;
rowdata2.je2 = rowdata.je2;
rowdata2.bhjtbz = rowdata.bhjtbz;
rowdata2.hbz = rowdata.bz;
liger.get("grid2").add(rowdata2);
}
//排序
rows = liger.get("grid2").getData();
for (var i = rows.length - 1; i >= 0; i--) {
liger.get("grid2").remove(liger.get("grid2").getRow(i));
}
rows.sort(compare('endt'));
for (var i in rows) {
liger.get("grid2").add(rows[i]);
}
//自动计算
autojs();
}
if (type == "2") {
//住宿最大判断
if (rowdata.qt.indexOf("住宿") >= 0 && rowdata.je3 > je3zs) {
$.ligerDialog.error("住宿费最大为:" + je3zs);
return;
}
for (var i in rows) {
if (!rows[i].qt) {
liger.get("grid2").updateCell("qt", rowdata.qt, i);
liger.get("grid2").updateCell("je3", rowdata.je3, i);
have = true;
break;
}
}
if (!have) {
rowdata2.qt = rowdata.qt;
rowdata2.je3 = rowdata.je3;
liger.get("grid2").add(rowdata2);
}
}
sum();
openf2.close();
}
//自动计算 交通补助、餐补、住宿合计
function autojs() {
je3zs = 0;//住宿总额
ts = 0;
rows = liger.get("grid2").getData();
if (rows.length == 0)
return;
var last = rows.length - 1;
var ccrq1 = "";
var ccrq2 = "";
for (var i in rows) {
if (i == 0) {
ccrq1 = rows[i].begint;
}
if (i == last) {
ccrq2 = rows[i].endt;
break;
}
var time1 = new Date((rows[i].endt));
var time2 = new Date((rows[parseInt(i) + 1].endt));
var ts = parseInt(time2 - time1) / 1000 / 60 / 60 / 24;
je3zs += rows[i].rs * ts * rows[i].bz2;
}
//if (console) {
// console.log(ccrq1);
// console.log(ccrq2);
// console.log(ts);
// console.log(je3zs);
//}
var jtbzts = 0;
for (var i in rows) {
if (i == last) {
break;
}
var next = parseInt(i) + 1;
if (i == 0) {
if (rows[i].begint == rows[next].endt) {
if (rows[i].bhjtbz == 1 || rows[next].bhjtbz == 1) {
jtbzts++;
}
}
else {
if (rows[i].bhjtbz == 1 && rows[next].bhjtbz == 1) {
jtbzts++;
jtbzts++;
}
else if (rows[i].bhjtbz == 1 || rows[next].bhjtbz == 1) {
jtbzts++;
}
}
}
else {
//三条以及之后 只有不是当天的 并且包含交通补助的 才增加一天
if (rows[i].begint != rows[next].endt && rows[next].bhjtbz == 1) {
jtbzts++;
}
}
}
if (jtbzts == 0) {
liger.get("grid2").updateCell("xiangmu", "", last);
liger.get("grid2").updateCell("bz", 0, last);
liger.get("grid2").updateCell("ts", 0, last);
liger.get("grid2").updateCell("je2", 0, last);
}
else {
liger.get("grid2").updateCell("xiangmu", "交通补助", last);
liger.get("grid2").updateCell("bz", 80, last);
liger.get("grid2").updateCell("ts", jtbzts, last);
liger.get("grid2").updateCell("je2", 80 * rows[last].rs * jtbzts, last);
}
//处理交通补助
//if (ccrq1 == ccrq2) {
// if (rows[0].bhjtbz == 1 || rows[last].bhjtbz == 1) {
// liger.get("grid2").updateCell("xiangmu", "交通补助", last);
// liger.get("grid2").updateCell("bz", 80, last);
// liger.get("grid2").updateCell("ts", 1, last);
// liger.get("grid2").updateCell("je2", 80 * rows[last].rs, last);
// }
// else {
// liger.get("grid2").updateCell("xiangmu", "", last);
// liger.get("grid2").updateCell("bz", 0, last);
// liger.get("grid2").updateCell("ts", 0, last);
// liger.get("grid2").updateCell("je2", 0, last);
// }
//}
//else {
// if (rows[0].bhjtbz == 1 && rows[last].bhjtbz == 1) {
// liger.get("grid2").updateCell("xiangmu", "交通补助", last);
// liger.get("grid2").updateCell("bz", 80, last);
// liger.get("grid2").updateCell("ts", 2, last);
// liger.get("grid2").updateCell("je2", 80 * rows[last].rs * 2, last);
// }
// else if (rows[0].bhjtbz == 1 || rows[last].bhjtbz == 1) {
// liger.get("grid2").updateCell("xiangmu", "交通补助", last);
// liger.get("grid2").updateCell("bz", 80, last);
// liger.get("grid2").updateCell("ts", 1, last);
// liger.get("grid2").updateCell("je2", 80 * rows[last].rs, last);
// }
// else {
// liger.get("grid2").updateCell("xiangmu", "", last);
// liger.get("grid2").updateCell("bz", 0, last);
// liger.get("grid2").updateCell("ts", 0, last);
// liger.get("grid2").updateCell("je2", 0, last);
// }
//}
//处理餐补(包含餐费与不包含)
for (var i = 0; i < rows.length; i++) {
if (i == rows.length - 1) {
break;
}
if (rows[i].havecb == 1) {
if (rows[parseInt(i) + 1].begint) {
var time1 = new Date(rows[i].endt);
var time2 = new Date(rows[parseInt(i) + 1].begint);
var ts = parseInt(time2 - time1) / 1000 / 60 / 60 / 24;
if (i == 0) //首个地方+1天
ts += 1;
//交通补助对齐 会把人数弄没有
liger.get("grid2").updateCell("xiangmu", "", i);
liger.get("grid2").updateCell("bz", rows[i].hbz, i);
liger.get("grid2").updateCell("ts", ts, i);
liger.get("grid2").updateCell("je2", rows[i].rs * ts * rows[i].hbz, i);
rows[i + 1].scendt = rows[i].endt;
if (rows[i].scendt != rows[i].endt) { //上次结束时间
liger.get("grid2").updateCell("xiangmu", "餐补", i);
}
}
}
else {
liger.get("grid2").updateCell("xiangmu", "", i);
liger.get("grid2").updateCell("bz", 0, i);
liger.get("grid2").updateCell("ts", 0, i);
liger.get("grid2").updateCell("je2", 0, i);
}
}
//交通补助对齐 交通补助从最后一行补充到前面空行或已有的交通补助行
rows = liger.get("grid2").getData(); //重新获取 之前获取的rows 没有最后一行的信息
debugger;
for (var i = 0; i < rows.length; i++) {
if (i == rows.length - 1) {
break;
}
if (rows[i].xiangmu == "" || rows[i].xiangmu == "交通补助") {
liger.get("grid2").updateCell("xiangmu", rows[last].xiangmu, i);
liger.get("grid2").updateCell("bz", rows[last].bz, i);
liger.get("grid2").updateCell("ts", rows[last].ts, i);
liger.get("grid2").updateCell("je2", rows[last].je2, i);
liger.get("grid2").updateCell("xiangmu", "", last);
liger.get("grid2").updateCell("bz", 0, last);
liger.get("grid2").updateCell("ts", 0, last);
liger.get("grid2").updateCell("je2", 0, last);
break;
}
}
}
function sum() {
var rows = liger.get("grid2").getData();
var result = 0;
for (var i in rows) {
result += parseFloat(rows[i].je) + parseFloat(rows[i].je2) + parseFloat(rows[i].je3);
}
$("#je").val(result.toFixed(2));
}
//qrsq确认申请 0暂存 1申请
function save(qrsq) {
liger.get("grid2").endEdit();
var rows = liger.get("grid2").getData();
if (rows.length == 0) {
$.ligerDialog.error("请添加明细!")
return;
}
for (var i in rows) {
if (rows[i].title == "") {
$.ligerDialog.error("名称必填!")
return;
}
}
var id = $("#id").val();
var je = $("#je").val();
var bz = $("#bz").val();
var fydh = $("#fydh").val();
var fydhs = $("#fydhs").val();
var fydh2 = $("#fydh2").val();
var dydh = $("#dydh").val();
if (!je ||!bz) {
$.ligerDialog.error("金额、报销内容必填!")
return;
}
if (!dydh) {
$.ligerDialog.error("出差申请单必填!")
return;
}
if (filecount == 0) {
$.ligerDialog.error("附件必填!")
return;
}
var items = "";
for (var i in rows) {
items += dateFormat(rows[i].begint) + "|" + dateFormat(rows[i].endt) + "|" + rows[i].begind + "|" + rows[i].endd + "|" + rows[i].havecb + "|" + rows[i].gongju + "|" + rows[i].count + "|" + rows[i].je + "|" + rows[i].xiangmu + "|" + rows[i].rs + "|" + rows[i].ry + "|" + rows[i].ts + "|" + rows[i].bz + "|" + rows[i].bz2 + "|" + rows[i].hbz + "|" + rows[i].bhjtbz + "|" + rows[i].je2 + "|" + rows[i].qt + "|" + rows[i].je3 + ",";
}
$.ajax({
url: "@Url.Action("savesqccbx")", type: "post", dataType: "json", data: { id: id, je: je, fyly: "", fydh: fydh, fydhs: fydhs, fydh2: fydh2, dydh: dydh, bz: bz, items: items, qrsq: qrsq },
success: function (d) {
$.ligerDialog.closeWaitting();
if (d.State == "0") {
$.ligerDialog.error("操作失败!");
}
else {
$.ligerDialog.success("操作成功!");
parent.init();
//window.opener.init();
//window.opener = null;
//window.close();
}
},
beforeSend: function () {
$.ligerDialog.waitting("正在进行请稍后……");
}
});
}
//附件
function sqfile(show) {
var openf3 = $.ligerDialog.open({
url: "@Url.Action("sqfile")?show=" + show + "&type=" + encodeURIComponent("出差报销") + "&sqid=" + @Model.id,
title: "附件管理",
width: 700,
height: 300,
allowClose: false
});
}
//附件反馈 (必填)
var filecount = @ViewBag.filecount;
//弹出框选中
function selectedCCSQ(rowdata) {
$("#dydh").val(rowdata.id);
//项目经费赋值
$("#fydh").val(rowdata.fydh);
$("#fydhs").val(rowdata.fydhs);
openf2.close();
}
function fun_date(days) {
var date1 = new Date(),
time1 = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate();//time1表示当前时间
var date2 = new Date(date1);
date2.setDate(date1.getDate() + days);
var y = date2.getFullYear();
var m = date2.getMonth() + 1;
m = m < 10 ? '0' + m : m;
var d = date2.getDate();
d = d < 10 ? ('0' + d) : d;
var time2 = y + "-" + m + "-" + d;
return time2;
}
function dateFormat(olddate) {
var date = new Date();
if (olddate) {
//Date(1532880000000)
if (olddate.toString().indexOf("/Date(") >= 0){
date = new Date(parseInt(olddate.replace("/Date(", "").replace(")/", ""), 10));
var month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
var currentDate = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
return date.getFullYear() + "-" + month + "-" + currentDate;
}
date = new Date(olddate);
}
return date_value = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate() + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();
//yyyy-MM-dd hh:mm:ss
}
function compare(property) {
return function (a, b) {
var value1 = a[property];
var value2 = b[property];
var value = value1 >= value2;
if (value)
return 1;
else
return -1;
//return (new Date(value1.replace(/-/g, "\/"))) > (new Date(value2.replace(/-/g, "\/")));
}
}
//js对象深度克隆
var deepCopy = function (source) {
var result = {};
for (var key in source) {
result[key] = typeof source[key] === 'object' ? deepCopy(source[key]) : source[key];
}
return result;
}
</script>
<style type="text/css">
.ltd {
background-color: white;
}
.t3 .ltd {
text-align: center;
}
.t2 tr td {
padding: 5px 0px 5px 10px;
line-height: 22px;
word-break: break-all;
}
.t3 tr td {
border: 1px solid #bebeff;
padding: 5px 0px 5px 10px;
line-height: 22px;
word-break: break-all;
}
</style>
}
<div class="l-clear"></div>
<div style="width:700px; margin:0 auto">
<div position="top">
@Html.HiddenFor(m => m.id)
@Html.HiddenFor(m => m.fydh)
@Html.HiddenFor(m => m.fydhs)
@Html.HiddenFor(m => m.fydh2)
<h3 style="text-align:center;margin:10px 0 10px 0">德城区疾控中心出差报销申请单</h3>
<table class="t2" style="width:100%" border="0">
<tr style="display:none">
<td class="ltd" width="70px">申 请 人:</td>
<td class="rtd" width="150px">@Html.DisplayFor(m => m.sqr)</td>
<td class="ltd" width="70px">申请状态:</td>
<td class="rtd" width="150px">@Html.DropDownListFor(m => m.zt, ViewData["ztD"] as SelectList, "----请选择----", new { @class = "l-text", @disabled = "disabled" })</td>
<td class="ltd" width="70px">申请日期:</td>
<td class="rtd" width="150px">@Html.DisplayFor(m => m.sqsj)</td>
</tr>
<tr>
<td class="ltd" width="70px">申 请 人:</td>
<td class="rtd" width="150px">@Html.DisplayFor(m => m.sqr)</td>
<td class="ltd" width="70px"></td>
<td class="rtd" width="150px"></td>
<td class="ltd" width="70px"></td>
<td class="rtd" width="150px"></td>
</tr>
<tr>
<td class="ltd" width="70px">申请科室:</td>
<td class="rtd" width="150px">@Html.DisplayFor(m => m.ksmc)</td>
<td class="ltd" width="70px">报销金额:</td>
<td class="rtd" width="150px">@Html.TextBoxFor(m => m.je, new { @class = "l-text l-text-field-number", @type = "number", @readonly = "readonly" })</td>
<td class="ltd" width="70px">出差申请单</td>
<td class="rtd" width="150px">@Html.TextBoxFor(m => m.dydh, new { @class = "l-text", @readonly = "readonly", @style = "color:red" })*</td>
</tr>
<tr>
<td class="ltd" width="70px">报销内容:</td>
<td class="rtd" colspan="5">@Html.TextAreaFor(m => m.bz, new { @rows = "2", @style = "width:97%" })*</td>
</tr>
</table>
</div>
<div id="layout1">
<div position="center" title="">
<div id="grid2"></div>
</div>
<div position="bottom">
<div style="text-align:center;margin-top:10px">
<a href="~/Content/fjsm.jpg" target="_blank">附件说明</a>
<input type="@Request.QueryString["type"]" readonly="readonly" value="附件管理*" class="l-button" onclick="sqfile('')" />
<input type="@Request.QueryString["type"]" value="暂存" readonly="readonly" class="l-button" onclick="save(0)" />
<input type="@Request.QueryString["type"]" value="申请" readonly="readonly" class="l-button" onclick="save(1)" />
</div>
</div>
</div>
</div>