tijian_tieying/web/dccdc/Views/sq2/sqccbxMessageNew.cshtml
2025-02-20 12:14:39 +08:00

741 lines
31 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@{
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>