GZMachinesWeb/.svn/pristine/8e/8e0b3e2136d0af0d5c2f6e4ca0f...

774 lines
20 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %>
<!DOCTYPE html>
<html>
<head>
<%@include file="../baseset.jsp" %>
<%@include file="../systemset.jsp" %>
<%@include file="../webPortalCommonSet.jsp" %>
<title></title>
<style type="text/css">
#baseInfo{
/* border:1px solid; */
text-align: center;
width:96%;
margin:0 2% 0 2%;
}
#baseInfo tr{
height: 3em;
}
#baseInfo tr>input{
width:96%;
}
#machineTable th{
padding:5px;
vertical-align:middle;
}
.inp{
width:100%;
}
.inp2{
width:68%;
}
#img{
width:100%;
height:150px;
}
#baseInfo td{
border: solid 1px #d3d1d1;
}
.img{
z-index:1;
width:100px;
height:100px;
border:solid 1px black;
}
.img_div{
display: inline-block;
padding:10px;
}
.status{
width:8%;
position: absolute;
z-index:999;
top: 20%;
left: 50%;
opacity: 1;
}
.t{
hidden:hidden;
}
.valid[readonly]{
background-color: #ed9d9d !important;
color: black !important;
}
</style>
</head>
<body>
<div>
<table id="baseInfo" cellspacing="0" cellpadding="0" border="0" class="customTable">
<tbody class="a">
<tr style="height:1.5em;">
<td colspan="8"></td>
</tr>
<tr>
<td width="10%">
<a href="#" title="过滤" onclick="unitTree();" class="lrspace3 aBtnNoTD" data-toggle="modal">结算单位&nbsp;
<i class='icon-zoom-in color-p bigger-140' style="color:blue"></i>
</a>
</td>
<td width="15%">
<input type="hidden" id="unitId" value="0" >
<input type="text" id="unitName" value="" />
</td>
<td width="10%">
<a href="#" title="过滤" onclick="projectTree();" class="lrspace3 aBtnNoTD" data-toggle="modal">结算工程&nbsp;
<i class='icon-zoom-in color-p bigger-140' style="color:blue"></i>
</a>
</td>
<td width="15%" style="text-align: left;">
<input type="hidden" id="projectId" value="">
<input type="text" id="projectName" value="" />
</td>
<td width="10%"><span>协议号:</span></td>
<td width="15%" style="text-align: left;">
<input type="hidden" id="agreementId" value="">
<input id="agreementCode" type="text" style="width:80%;" class="inp" disabled="disabled" value="">
</td>
<td width="10%"><span>截至日期:</span></td>
<td width="15%" style="text-align: left;">
<input id="sltEndDate" class="inp" style="text-align: center;" class="t" jyValidate="required"
value="${fns:currentDateTimeAddOrSub('%y-%M-%d')}" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',onpicked:sFunc})" type="text" readonly="readonly" >
</td>
</tr>
<tr class="">
<td width="10%"><span>当前结算总金额:</span></td>
<td width="15%" style="text-align: left;">
<input id="total" type="text" style="width:80%;" class="inp" disabled="disabled" value="0">:元
</td>
<td width="10%"><span>工器具租赁总金额:</span></td>
<td width="15%" style="text-align: left;">
<input id="tm" type="text" style="width:80%;" class="inp subm" disabled="disabled" value="0">:元
</td>
<td width="10%"><span>设备租赁总金额:</span></td>
<td width="15%" style="text-align: left;">
<input id="mm" type="text" style="width:80%;" class="inp subm" disabled="disabled" value="0">:元
</td>
<!-- <td width="10%"><span>赔偿总金额:</span></td>
<td width="15%" style="text-align: left;">
<input id="cm" type="text" style="width:80%;" class="inp subm" disabled="disabled" value="0">:元
</td> -->
<td width="10%"><span>自定义总金额:</span></td>
<td width="15%" style="text-align: left;">
<input id="cum" type="text" style="width:80%;" class="inp subm" disabled="disabled" value="0">:元
</td>
</tr>
<tr>
<td colspan="8"><span style="font-size: 2em;">自定义名目</span> <a class="btn btn-success radius" title="点击添加" onclick="addExtraItem()" >添加</a></td>
</tr>
<tr class="as" hidden="hidden">
<td width="10%">
<select onchange="selectAddOrSub(this)">
<option value="0">--增加项--</option>
<option value="1">--减免项--</option>
</select>
</td>
<td width="10%"><span>金额:</span></td>
<td width="10%"><input type="number" class="cusM" style="width:80%;" value="0" onblur="validMoney(this)">:元</td>
<td width="10%"><span>自定义备注:</span></td>
<td width="60%" colspan="4">
<input type="text" style="width:80%;"> <a class="btn btn-success radius" title="点击删除该项" onclick="delExtraItem(this)" >删除</a>
</td>
</tr>
<tr >
<td width="10%"><span>结算人(租赁方:</span></td>
<td width="15%" style="text-align: left;">
<input id="sltMan" type="text" class="inp" >
</td>
<td width="10%"><span>结算人联系电话:</span></td>
<td width="15%" style="text-align: left;">
<input id="sltManPhone" type="text" class="inp" >
</td>
<td width="10%"><span>备注:</span></td>
<td width="15%" colspan="3" style="text-align: left;">
<textarea id="remarks" rows="2" cols="" class="inp"></textarea>
</td>
</tr>
<tr>
<td colspan="8" width="13%">
<div class="cl pd-5 bg-1 bk-gray" style="padding-top:5px;">
<span class="l" style="width: 60%;text-align: left;" id="sForm">
<input type="text" id="keyWord" name="keyWord" placeholder="请输入搜索关键词...">
<a class="btn btn-success radius" data-title="点击查询" onclick="" href="javascript:;" >
查询
</a>
</span>
<span class="r" style="width: 38%;text-align: right;">
</span>
</div>
</td>
</tr>
<tr>
<td colspan="8">
<form id="baseForm" class="form-inline" method="POST">
<table id="machineTable" class="table table-striped table-bordered table-hover" >
<thead>
<tr>
<th style="width:3%" class="center">
<label><input type="checkbox" class="ace" ><span class="lbl"></span></label>
</th>
<th style="width:4%" class="center hidden-480">序号</th>
<th style="width:10%" class="center">机具名称</th>
<th style="width:8%" class="center">机具规格</th>
<th style="width:7%" class="center">数量(单位)</th>
<th style="width:9%" class="center">设备编码</th>
<th style="width:7%" class="center">租赁单价</th>
<th style="width:8%" class="center">起租日期</th>
<th style="width:4%" class='center'>状态</th>
<th style="width:8%" class='center'>退租日期</th>
<th style="width:10%" class="center">上次结算日期</th>
<th style="width:6%" class='center'>结算日长</th>
<th style="width:8%" class='center'>小计金额(元)</th>
</tr>
</thead>
<tbody id="list">
<tr><td colspan="14" class="center" style='color:red;font-size:2em;' >请先选择需要结算的工程!!!</td></tr>
</tbody>
</table>
</form>
</td>
</tr>
</tbody>
</table>
<div class="col-sm-3">
<div class="dataTables_info customBtn" >
&emsp;<a href="#" title="导出" onclick="exportData();" class="lrspace3" ><i class='icon-download color-blue bigger-220'></i></a>
</div>
</div>
</div>
<script type="text/javascript">
var agreementId = $("#agreementId").val();
var machines ={};//机具容器
var p; //父页面对象,多层关闭时使用
/**
* @author
* @date 2020-12-02
* @function 提交申请审核结果
* @returns
*/
function submitApply(){
var agreementId = $("#agreementId").val();
if(!JY.Object.notNull(agreementId)){
var a = layer.confirm("<h4 style='color:red;'>请先选择结算工程!</h4>",{btn: ['关闭']},function(){
layer.close(a);
});
return;
}
var obj = {};
var arr = [];
if(JY.Validate.newForm("baseInfo")){
var s1 = $(".show_as").size();
var size = $(".cb:checkbox:checked").size();
if(s1 + size == 0){
var idxMsg = layer.confirm("<h4 style='color:red;'>您没有选择任何结算的设备、工器具或自定义款项!</h4>",{btn: ['关闭']},function(){
layer.close(idxMsg);
});
return;
}
$(".show_as").each(function(){
var subtotal = $(this).find("input").eq(0).val();
var remarks = $(this).find("input").eq(1).val();
var stype = $(this).find("select").eq(0).val();
var oo = {};
oo.subtotal = parseFloat(subtotal);
oo.remarks = remarks.trim();
if(stype == 1 || stype == "1"){
oo.costType = "1";
oo.subtotal= -1 * oo.subtotal;
}else{
oo.costType = "0";
}
arr.push(oo);
});
var iii = layer.confirm("<h4 style='color:red;'>注意:本次结算截至日期为:" + $("#sltEndDate").val() + ",您确定生成此次的工程租赁结算清单列表吗?</h4>",{btn: ['确定','取消']},function(){
layer.close(iii);
var agreementId = $("#agreementId").val();
var tm = parseFloat($("#tm").val());
var mm = parseFloat($("#mm").val());
var baseMoney = tm+mm;
var lastMoney = parseFloat($("#total").val());
//var cpsMoney = parseFloat($("#cm").val());
var addMoney = 0;
var subMoney = 0;
$(".cusM").each(function(){
var v = $(this).parent().parent().find("select").eq(0).val();
if(v == 1 || v == "1"){
subMoney += parseFloat($(this).val());
subMoney = checkIsExistDataDrift(subMoney);
}else{
addMoney += parseFloat($(this).val());
addMoney = checkIsExistDataDrift(addMoney);
}
})
obj.typeMoney = tm;
obj.machineMoney = mm;
obj.agreement = {id:agreementId};
obj.baseMoney = baseMoney;
obj.lastMoney = lastMoney;
//obj.cpsMoney = cpsMoney;
obj.addMoney = addMoney;
obj.subMoney = subMoney;
obj.status = "1";
obj.sltMan = $("#sltMan").val();
sltDate = $("#sltEndDate").val();
obj.sltManPhone = $("#sltManPhone").val();
obj.remarks = $("#remarks").val();
$(".cb:checkbox:checked").each(function(){
var o = {};
o = paramConversionToObjOfForm2($(this).parent().parent().parent());
o.startDate = o.zs;
o.endDate = o.ze;
delete o.lastSltDate;
delete o.zs;
delete o.ze;
delete o.status;
delete o.id;
delete o.isCount;
arr.push(o);
});
obj.items = arr;
console.log(obj);
var idx = layer.msg('正在提交保存,请稍等...', {
icon: 16
,shade: 0.01
,time:'-1'
});
$.ajax({
type:"POST",
url:bonuspath +'/backstage/projectSettlement/insertSlt',
data: JSON.stringify(obj),
contentType:"application/json",
dataType:"json",
success:function(data){
layer.close(idx);
console.log(data);
if(data.res == 1){
var idxMsg = layer.confirm(data.resMsg,{btn: ['关闭']},function(){
layer.close(idxMsg);
parent.getbaseList();
var i = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(i);
});
}else{
var indexMsg = layer.confirm(data.resMsg, {btn: ['关闭']},function(){
layer.close(indexMsg);
});
}
},
error:function(data){
layer.msg("数据加载失败!",{icon:2,time:2000})
layer.close(idx);
}
})
});
}
}
/**
* @author
* @date 2020-06-22
* @function 条件查询
* @returns
*/
function search(){
/* alert(1)
window.location.reload(); */
$("#search").trigger("click")
}
/**
* @author
* @date 2020-05-24
* @function 启动执行
* @returns
*/
$(function () {
$.fn.modal.Constructor.prototype.enforceFocus = function(){};
$("#keyWord").keydown(function(e) {
keycode = e.which || e.keyCode;
if (keycode == 13) {
search();
}
});
p = window.parent;
});
function validNum(that,price){
var newPrice = $(that).val();
if(newPrice == '' || isNaN(newPrice)){
$(that).val(price);
}else{
if(parseFloat(newPrice) < 0){
$(that).val("0");
}else{
$(that).val(newPrice);
}
}
countMoney()
}
function validMoney(that){
var num = $(that).val();
if(!JY.Object.notNull(num)){
num = 0;
}else if(isNaN(num)){
num = 0;
}else if(parseFloat(num) < 0){
num = 0;
}
$(that).val(num);
var total = 0;
$(".cusM").each(function(){
var type = $(this).parent().parent().find("select").eq(0).val();
if(type == 1 || type == "1"){
total-=parseFloat($(this).val());
total = checkIsExistDataDrift(total);
}else{
total+=parseFloat($(this).val());
total = checkIsExistDataDrift(total);
}
})
$("#cum").val(total);
countTotalMoney();
}
function selectAddOrSub(){
var total = 0;
$(".cusM").each(function(){
var type = $(this).parent().parent().find("select").eq(0).val();
if(type == 1 || type == "1"){
total-=parseFloat($(this).val());
total = checkIsExistDataDrift(total);
}else{
total+=parseFloat($(this).val());
total = checkIsExistDataDrift(total);
}
})
$("#cum").val(total);
countTotalMoney();
}
function checkStatusChange(that,type){
var total = 0;
if(type == 1 || type == '1'){
total = $("#tm").val();
}else{
total = $("#mm").val();
}
var t = 0;
st = $(that).parent().parent().parent().find(".subtotal").eq(0).text();
if($(that).is(':checked')){
t = parseFloat(total)+parseFloat(st);
t = checkIsExistDataDrift(t);
}else{
t = parseFloat(total)-parseFloat(st);
t = checkIsExistDataDrift(t);
}
if(type == 1 || type == '1'){
$("#tm").val(t);
}else{
$("#mm").val(t);
}
countTotalMoney();
}
function sFunc(event){
var prevDate = event.cal.oldValue;
var currDate = $("#sltEndDate").val();
if(prevDate != currDate){
countMoney();
}
}
var dls=[];
var sts=[];
var dl="";
var st="";
var iddl;
function countMoney(){
var currDate = $("#sltEndDate").val();
var maArr=[];
$(".mas").each(function(){
maArr.push(paramConversionToObjOfForm2(this));
})
var len = maArr.length;
var total = 0;
var tm = 0;
var mm = 0;
for(var i = 0;i < len;i++){
var countStartDate = "";
var countEndDate = "";
if(maArr[i].hasOwnProperty('lastSltDate')){
countStartDate = maArr[i].lastSltDate;
}else{
countStartDate = maArr[i].startDate;
}
if(maArr[i].hasOwnProperty('backDate')){
if(maArr[i].backDate >= currDate ){
countEndDate = currDate;
}else{
countEndDate = maArr[i].backDate;
}
}else{
countEndDate = currDate;
}
var id = maArr[i].id;
dl = DateMinus(countStartDate,countEndDate)+1;
if(dl > 0){
$("#dl"+maArr[i].id).text(dl);
st = parseFloat(maArr[i].price)*dl*parseFloat(maArr[i].num);
st = checkIsExistDataDrift(st)
if(maArr[i].isCount == 1 || maArr[i].isCount == '1'){
tm+=st;
tm = checkIsExistDataDrift(tm);
}else{
mm+=st;
mm = checkIsExistDataDrift(mm);
}
$("#zs"+maArr[i].id).val(countStartDate);
$("#ze"+maArr[i].id).val(countEndDate);
$("#st"+maArr[i].id).text(st);
$("#inp"+maArr[i].id).removeAttr("disabled");
$("#inp"+maArr[i].id).prop("checked",true);
}else{
$("#inp"+maArr[i].id).removeAttr("checked");
$("#inp"+maArr[i].id).attr("disabled","disabled");
$("#dl"+maArr[i].id).text('---');
$("#st"+maArr[i].id).text('---');
}
/* dls[i]=dl;
sts[i]=st; */
if (iddl != undefined || iddl != 'undefined') {
iddl = id + "," + dl+","+st+";" + iddl;
}
}
$("#tm").val(tm);
$("#mm").val(mm);
countTotalMoney();
}
/**
* 检查是否存在数据飘逸
*/
function checkIsExistDataDrift(num){
var strNum = num.toString();
var endStr = strNum.substring(strNum.indexOf(".")+1);
var startStr = strNum.substring(0,strNum.indexOf("."));
if(endStr.indexOf("999999") >= 0){
console.log("出现99999:",num);
var start = endStr.indexOf("999999");
if(start == 0){
num = parseFloat(startStr)+1
}else{
endStr = endStr.substring(0,start);
endStr = (parseFloat(endStr)+1).toString();
num = parseFloat(startStr+"."+endStr);
}
}else if(endStr.indexOf("000000") >= 0 ){
console.log("出现000000:",num);
var start = endStr.indexOf("000000");
if(start == 0){
num = parseFloat(startStr);
}else{
num = parseFloat(strNum.substring(0,strNum.indexOf("000000")));
}
}
return num;
}
function countTotalMoney(){
var total = 0;
$(".subm").each(function(){
total += parseFloat($(this).val());
total = checkIsExistDataDrift(total);
})
$("#total").val(total);
}
function addExtraItem(){
$(".as:last").after($(".as").eq(0).prop("outerHTML"));
$(".as:last").addClass("show_as");
$(".show_as").find("input").attr("jyValidate","required");
$(".show_as").find("input:even").attr("jyValidate","over0");
$(".as:last").show();
}
function delExtraItem(that){
$(that).parent().parent().remove();
selectAddOrSub()
}
function DateMinus(date1,date2){
  var sdate = new Date(date1); 
  var now = new Date(date2); 
  var days = now.getTime() - sdate.getTime(); 
  var day = parseInt(days / (1000 * 60 * 60 * 24)); 
  return day; 
}
/**
* @author
* @date 2020-12-3
* @function 工程选择事件
* @returns
*/
function selectProject(){
var agreementId = $("#agreementId").val();
if(JY.Object.notNull(agreementId)){
//alert(agreementId)
findUnSltMaTypeList(agreementId);
}else{
$("#total").val(0);
$("#list").html("<tr><td colspan='14' class='center' style='color:red;font-size:2em;' >请先选择需要结算的工程!!!</td></tr>");
}
}
/**
* @author
* @date 2020-05-24
* @function 初始化页面ajax请求 返回html页面
* @returns
*/
function findUnSltMaTypeList(agreementId){
var abc = {};
abc = getObjParam("sForm");
abc.agreement = {id:agreementId};
var idx = layer.msg('正在加载数据,请稍等...', {
icon: 16
,shade: 0.01
,time:'-1'
});
$.ajax({
type:"POST",
url:bonuspath +'/backstage/projectSettlement/findUnSltMaTypeList',
data: JSON.stringify(abc),
dataType:"html",
contentType:"application/json",
success:function(data){
console.log(data);
$("#list").html(data);
countMoney();
layer.close(idx);
}
})
}
function setUnitForm(){
var unitId = localStorage.getItem("unitId");
var unitName = localStorage.getItem("unitName");
$("#unitId").val(unitId);
$("#unitName").val(unitName);
}
function unitTree(){
localStorage.setItem("isOpen","1");
localStorage.setItem("unitId","");
localStorage.setItem("unitName","");
localStorage.setItem("unitTreeName",$("#unitName").val());
layer.open({
type: 2,
title:['选择结算单位','background-color: #438EB9;color:#fff'],
shadeClose:true,
shade:false,
maxmin: true,
area: ['400px', '400px'],
content: bonuspath+'/backstage/company/unitTreePlus'
});
}
function setProjectForm(){
var projectId = localStorage.getItem("projectId");
var projectName = localStorage.getItem("projectName");
$("#projectId").val(projectId);
$("#projectName").val(projectName);
getAgreementNum();
}
function projectTree(){
var unitId = $("#unitId").val();
if(unitId == 0){
JY.Model.info("请选择单位");
}else{
localStorage.setItem("unitId",unitId);
localStorage.setItem("projectId","");
localStorage.setItem("projectName","");
localStorage.setItem("projectTreeName",$("#projectName").val());
layer.open({
type: 2,
title:['工程名称','background-color: #438EB9;color:#fff'],
shadeClose:true,
shade:false,
maxmin: true,
area: ['400px', '400px'],
content: bonuspath+'/backstage/project/projectTree'
});
}
}
function getAgreementNum(){
var unitId = $("#unitId").val();
var projectId = $("#projectId").val();
JY.Ajax.doRequest(null, bonuspath + '/backstage/agreement/getAgreementCode',
{companyId:unitId,projectId:projectId}, function(data) {
//alert(JSON.stringify(data));
var l = data.obj;
if(l == null){
$("#agreementCode").val("尚未签订协议");
}else{
$("#agreementCode").val(l.code);
$("#agreementId").val(l.id);
selectProject()
}
}
);
}
function exportData(){
var id = $("#agreementId").val();
$("#baseForm").attr("action",bonuspath +'/backstage/projectSettlement/export?id='+id+"&iddl="+iddl);
$("#baseForm").attr("target","downloadFrame");//iframe的名字
$("#baseForm").submit();
/* window.location.href=bonuspath+"/backstage/projectSettlement/export?agreementId"+agreementId; */
}
</script>
</body>
</html>