Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

sangwenwei 8 bulan lalu
induk
melakukan
3575130150

+ 2 - 1
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceAllTwoController.java

@@ -305,6 +305,7 @@ public class WorkInvoiceAllTwoController extends BaseController {
 				act.setProcInsId(taskInfok.getProcessInstanceId());
 				act.setTask(taskInfok);
 				workInvoice.setAct(act);
+				workInvoice.setHome("allModify");
 				view = "workInvoiceTwoModify";
 
 
@@ -701,7 +702,7 @@ public class WorkInvoiceAllTwoController extends BaseController {
 	/**
 	 * 删除开票管理
 	 */
-	@RequiresPermissions("workinvoiceAllTwo:workinvoiceAllTwo:del")
+	//@RequiresPermissions("workinvoiceAllTwo:workinvoiceAllTwo:del")
 	@RequestMapping(value = "delete")
 	public String delete(WorkInvoice workInvoice, RedirectAttributes redirectAttributes) {
 		workInvoiceService.delete(workInvoice);

+ 3 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceController.java

@@ -571,6 +571,9 @@ public class WorkInvoiceController extends BaseController {
 				}
 			}
 			Boolean redReturnFlag = false;
+			if(null == workInvoice.getRedInvoiceFlag()){
+				workInvoice.setRedInvoiceFlag(0);
+			}
 			//对开票红冲数据做处理
 			if(0 == workInvoice.getRedInvoiceFlag()){
 				//否(不是红冲数据)

+ 2 - 0
src/main/java/com/jeeplus/modules/workinvoice/web/WorkInvoiceTwoController.java

@@ -282,6 +282,8 @@ public class WorkInvoiceTwoController extends BaseController {
 			return "redirect:" + Global.getAdminPath() + "/home/?repage";
 		}else if (StringUtils.isNotBlank(workInvoice.getHome()) && "notifyList".equals(workInvoice.getHome())){
 			return "redirect:" + Global.getAdminPath() + "/workprojectnotify/workProjectNotify/list/?repage";
+		}else if (StringUtils.isNotBlank(workInvoice.getHome()) && "allModify".equals(workInvoice.getHome())){
+			return "redirect:" + Global.getAdminPath() + "/workinvoiceAllTwo/workinvoiceAllTwo/list/?repage";
 		}else {
 			return "redirect:"+Global.getAdminPath()+"/workinvoiceTwo/workinvoiceTwo/?repage";
 		}

+ 22 - 4
src/main/webapp/webpage/modules/workclientinfo/all/workClientInfoForm.jsp

@@ -50,8 +50,11 @@
                   return false;
               }
 
-
-              if(!exitName){
+              var exitName = $("#exitName").val()
+              // 将字符串 "true" 或 "false" 转换为布尔值
+              var exitNameBool = (exitName === "true");
+              if(!exitNameBool){
+                  parent.layer.msg("客户名称或者统一社会信用代码重复,请修改!", {icon: 5});
                   return false;
               }
 			  $("#inputForm").submit();
@@ -186,9 +189,11 @@
                     success:function(data){
                         if(data==="false"){
                             exitName=false
+                            $("#exitName").val(false)
                             $("#ph").html("该客户已存在");
                         }else {
                             exitName=true
+                            $("#exitName").val(true)
                             $("#ph").html('');
                         }
                     }
@@ -211,6 +216,7 @@
                     success:function(data){
                         if(data.code==="false"){
                             exitName=false
+                            $("#exitName").val(false)
                              $("#uscPh").html("该客户已存在");
                             console.log(data);
 
@@ -228,10 +234,19 @@
                             });
 
                         }else {
-                            exitName=true
+                            var exitName = $("#exitName").val()
+                            // 将字符串 "true" 或 "false" 转换为布尔值
+                            var exitNameBool = (exitName === "true");
+                            if(exitNameBool){
+                                $("#exitName").val(true)
+                                exitName=true
+                            }else{
+                                $("#exitName").val(false)
+                                exitName=false
+                            }
                             $("#uscPh").html('');
                         }
-                    }
+                        }
                 });
                 }
             )
@@ -334,9 +349,11 @@
 
                     if(data=="false"){
                         exitName=false
+                        $("#exitName").val(false)
                         $("#ph").html("该客户已存在");
                     }else {
                         exitName=true
+                        $("#exitName").val(true)
                         $("#ph").html('');
                     }
                 }
@@ -446,6 +463,7 @@
                    method="post" class="form-horizontal layui-form">
             <form:hidden path="id"/>
             <form:hidden path="jobTypeShow"/>
+            <input type="hidden" id="exitName" value="">
             <input type="hidden" id="jobTypeStr" name="jobTypeStr" value="">
             <div class="form-group layui-row first">
                 <div class="form-group-label"><h2>基本信息</h2></div>

+ 22 - 2
src/main/webapp/webpage/modules/workclientinfo/workClientInfoForm.jsp

@@ -64,7 +64,12 @@
               }
 
 
-              if(!exitName){
+              var exitName = $("#exitName").val()
+              // 将字符串 "true" 或 "false" 转换为布尔值
+              var exitNameBool = (exitName === "true");
+              console.log("exitName",exitName)
+              if(!exitNameBool){
+                  parent.layer.msg("客户名称或者统一社会信用代码重复,请修改!", {icon: 5});
                   return false;
               }
 			  $("#inputForm").submit();
@@ -206,9 +211,11 @@
                     success:function(data){
                         if(data==="false"){
                             exitName=false
+                            $("#exitName").val(false)
                             $("#ph").html("该客户已存在");
                         }else {
                             exitName=true
+                            $("#exitName").val(true)
                             $("#ph").html('');
                         }
                     }
@@ -233,6 +240,7 @@
                     success:function(data){
                         if(data.code==="false"){
                             exitName=false
+                            $("#exitName").val(false)
                              $("#uscPh").html("该客户已存在");
                             console.log(data);
 
@@ -250,7 +258,16 @@
                             });
 
                         }else {
-                            exitName=true
+                            var exitName = $("#exitName").val()
+                            // 将字符串 "true" 或 "false" 转换为布尔值
+                            var exitNameBool = (exitName === "true");
+                            if(exitNameBool){
+                                $("#exitName").val(true)
+                                exitName=true
+                            }else{
+                                $("#exitName").val(false)
+                                exitName=false
+                            }
                             $("#uscPh").html('');
                         }
                     }
@@ -356,9 +373,11 @@
 
                     if(data=="false"){
                         exitName=false
+                        $("#exitName").val(false)
                         $("#ph").html("该客户已存在");
                     }else {
                         exitName=true
+                        $("#exitName").val(true)
                         $("#ph").html('');
                     }
                 }
@@ -485,6 +504,7 @@
             <form:hidden path="id"/>
             <form:hidden path="jobTypeShow"/>
             <input type="hidden" id="jobTypeStr" name="jobTypeStr" value="">
+            <input type="hidden" id="exitName" value="">
             <div class="form-group layui-row first">
                 <div class="form-group-label"><h2>基本信息</h2></div>
                 <div class="layui-item layui-col-sm6 lw7" id="search">

+ 178 - 5
src/main/webapp/webpage/modules/workinvoice/workInvoiceAllTwoForm.jsp

@@ -77,6 +77,34 @@
 						parent.layer.msg("先添加项目信息!", {icon: 5});
 						return false;
 					}
+
+
+					var newDrawer=$('input:radio[name="newDrawer"]:checked').val();
+					if(null == newDrawer || undefined == newDrawer || '' == newDrawer){
+						parent.layer.msg("请选择开票类型",{icon:0});
+						return false;
+					}
+					if (newDrawer != 2) {
+					} else {
+						var idCard = $("#idCard").val();
+						if(!submitValidateIDCard(idCard)){
+							layer.msg("身份证号不正确,请重新输入",{icon:2});
+							return false;
+						}
+					}
+
+					var money = $("#money").val();
+					var redInvoice=$('input:radio[name="redInvoiceFlag"]:checked').val();
+					if(money < 0 && redInvoice == 0){
+						parent.layer.msg("发票金额为负数,请将是否红字发票请选择是,并选择关联的发票信息",{icon:0});
+						return false;
+
+					}
+					if(money >= 0 && redInvoice == 1){
+						parent.layer.msg("发票金额为正数,不可为红字发票,请将是否红字发票请选择否",{icon:0});
+						return false;
+
+					}
 					if($('#actualDrawerEmailAddress').val()==null||$('#actualDrawerEmailAddress').val()=="") {
 						parent.layer.msg("请填写电子邮箱!", {icon: 5});
 						return false;
@@ -112,6 +140,18 @@
 				$("#contractTypeDoc").attr("class","form-control judgment");
 			}
 
+
+			var redInvoiceFlag = '${workInvoice.redInvoiceFlag}';//后端获取值
+			if(undefined == redInvoiceFlag || null == redInvoiceFlag || '' == redInvoiceFlag || redInvoiceFlag == "0"){
+				document.getElementsByName("redInvoiceFlag")[1].checked = true;
+				$(".redInvoice").hide();
+			}else{
+				document.getElementsByName("redInvoiceFlag")[0].checked = true;
+				$(".redInvoice").show();
+
+			}
+
+
 			var newDrawerRadio = '${workInvoice.newDrawer}';//后端获取值
 			if(undefined == newDrawerRadio || null == newDrawerRadio || '' == newDrawerRadio || newDrawerRadio == "1"){
 				document.getElementsByName("newDrawer")[0].checked = true;
@@ -147,6 +187,17 @@
 					}
 				});
 
+
+				form.on('radio(redInvoiceFlagRadio)',function (event) {
+					var radioVal = $(this).val();
+					if(radioVal == 1 || radioVal == 1){
+						$(".redInvoice").show();
+					}else if(radioVal == 0 || radioVal == 0){
+						$(".redInvoice").hide();
+					}
+					form.render();
+				})
+
 				form.on('radio(newDrawerRadio)',function (event) {
 					var radioVal = $(this).val();
 					console.log(radioVal);
@@ -370,6 +421,44 @@
 				}
 			})
 		}
+
+
+		function setInvoiceValue (obj){
+			$.ajax({
+				type:'post',
+				url:'${ctx}/workinvoiceTwo/workinvoiceTwo/getInvoiceNumberStr',
+				data:{
+					"invoiceId":obj
+				},
+				success:function(data){
+					var d = JSON.parse(data);
+					$("#invoiceNumberStr").val(d.data);
+				}
+			})
+		}
+
+		function moneyChange(obj){
+			console.log("moneyChangeValue", obj.value)
+			//如果发票金额为负数,则表示为红冲金额,需要选择关联的发票信息
+			// 检查发票金额是否为数字
+			if (isNaN(obj.value)) {
+				//发票金额不是有效的数字格式,请输入正确的金额。进行抛出
+				return;
+			}
+			if (obj.value < 0) {
+				// 如果金额为负,则将红冲选择发票框进行展示,并自动将是否红字发票更新为是
+				$('input[name="redInvoiceFlag"][value="1"]').prop("checked", true);
+				$(".redInvoice").show();
+
+			}else{
+				$('input[name="redInvoiceFlag"][value="0"]').prop("checked", true);
+				$(".redInvoice").hide();
+			}
+			// 重新渲染表单,使得 layui 重新应用样式和事件
+			layui.form.render("radio");
+
+		}
+
 		function newBankShow (data){
 			$('#bank').html('<option value="">请选择开户行信息</option>')
 			//对选中开票单位的银行做级联操作
@@ -886,6 +975,59 @@
 				obj.value = obj.value.replace(reg, regStrs[i][1]);
 			}
 		}
+		function validateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				layer.msg("身份证号不正确,请重新输入",{icon:2});
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					layer.msg("身份证号不正确,请重新输入",{icon:2});
+					return false;
+				}
+			}
+		}
+		function submitValidateIDCard(idCard) {
+			// 15位和18位身份证正则表达式
+			const idCardPattern = /^(^[1-9]\d{7}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}$)|(^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X|x)$)$/;
+
+			// 判断身份证号格式是否正确
+			if (!idCardPattern.test(idCard)) {
+				return false;
+			}
+
+			// 如果是18位身份证,需要验证最后一位校验码
+			if (idCard.length === 18) {
+				if(!validateChecksum(idCard)){
+					return false;
+				}
+			}
+			return true
+		}
+
+		function validateChecksum(idCard) {
+			const weights = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 加权因子
+			const checksumDigits = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; // 校验码
+
+			// 计算加权和
+			let sum = 0;
+			for (let i = 0; i < 17; i++) {
+				sum += parseInt(idCard[i]) * weights[i];
+			}
+
+			// 计算校验码
+			const checkDigit = checksumDigits[sum % 11];
+
+			// 比较身份证号的最后一位与计算的校验码
+			return checkDigit === idCard[17].toUpperCase();
+		}
+
 	</script>
 </head>
 <body>
@@ -1058,9 +1200,18 @@
 				<div class="layui-form-item count2">
 					<div class="layui-item layui-col-sm6">
 						<label class="layui-form-label"><span class="require-item">*</span>姓名:</label>
-						<div class="layui-input-block  with-icon">
-							<sys:treeselect id="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
-											cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>
+						<div class="layui-input-block">
+							<form:input id="newDrawerId" path="newDrawerId" htmlEscape="false"  placeholder="请输入姓名"  class="form-control layui-input"/>
+
+								<%--<sys:treeselect id="newDrawer" name="newDrawerId" value="${workInvoice.newDrawerId}" labelName="newDrawerName" labelValue="${workInvoice.newDrawerName}"
+                                                cssStyle="background-color: #fff" title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control judgment layui-input" allowClear="true" notAllowSelectParent="true"/>--%>
+						</div>
+					</div>
+
+					<div class="layui-item layui-col-sm6">
+						<label class="layui-form-label"><span class="require-item">*</span>身份证号:</label>
+						<div class="layui-input-block">
+							<form:input path="idCard" htmlEscape="false" onchange="validateIDCard(this.value);" class="form-control idCard layui-input required"/>
 						</div>
 					</div>
 				</div>
@@ -1081,11 +1232,33 @@
 					</div>
 				</div>
 
-				<div class="layui-item layui-col-sm12">
+				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label double-line"><span class="require-item">*</span>发票金额(元):</label>
 					<div class="layui-input-block">
 							<%--<form:input id=""  path="money" htmlEscape="false" class="form-control number judgment layui-input"/>--%>
-						<input name="money" htmlEscape="false" placeholder="请输入发票金额" maxlength="12" onkeyup="num(this)" value="${workInvoice.money}" class="form-control judgment number layui-input"/>
+						<input id="money" name="money" htmlEscape="false" placeholder="请输入发票金额" maxlength="12" onkeyup="num(this)" onchange="moneyChange(this)" value="${workInvoice.money}" class="form-control judgment number layui-input"/>
+					</div>
+				</div>
+
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>是否红字发票:</label>
+					<div class="layui-input-block">
+						<input type="radio" name="redInvoiceFlag" lay-filter="redInvoiceFlagRadio" title="是" value="1">
+						<input type="radio" name="redInvoiceFlag" lay-filter="redInvoiceFlagRadio" title="否" value="0">
+					</div>
+				</div>
+
+				<div class="layui-item layui-col-sm6 redInvoice">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>关联红字发票:</label>
+					<div class="layui-input-block with-icon">
+						<sys:selectinvoice url="${ctx}/workinvoiceTwo/workinvoiceTwo/selectInvoice" id="redInvoiceRelevancyId" name="redInvoiceRelevancyId"  value="${workInvoice.redInvoiceRelevancyId}"  title="选择关联红字发票" labelName="redInvoiceRelevancyNumber" cssStyle="background-color: #fff"
+										   labelValue="${workInvoice.redInvoiceRelevancyNumber}" cssClass="form-control judgment layui-input" fieldLabels="单位" fieldKeys="number" searchLabel="红字发票" searchKey="number" ></sys:selectinvoice>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 redInvoice">
+					<label class="layui-form-label">关联发票号:</label>
+					<div class="layui-input-block">
+						<input id="invoiceNumberStr" htmlEscape="false" readonly="true" class="form-control layui-input" value=""/>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm12 with-textarea">