hdcdxy.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. $().ready(function (){
  2. $("div[tablename='op_hdcdxy_ydzjfj']").hide(); /* 【月度租金分解】不能直接控制隐藏,否则权限控制不了,先隐藏全部,在显示个体 */
  3. });
  4. /*租赁时间变化事件**/
  5. function zlsjChangeEvent(){
  6. validateZujinBiaozhunDates();
  7. $("[name='s:op_hdcdxy_klzgz:sjd']").trigger("change");
  8. }
  9. /*校验临时场地子表填充数据是否重复**/
  10. function checkDataBeforeInsert(data,tableName){
  11. if(tableName == 'op_hdcdxy_lscd'){
  12. var rows = $(".listRow",$("[tableName='"+tableName+"']")); //左右子表列
  13. for(var i =0,row;row=rows[i++];){
  14. var id = $("[name='s:"+tableName+":lscddm']",$(row)).val(); //唯一值
  15. if(id == data.WLDPDM) { //对话框,返回数据的那列
  16. $.ligerDialog.warn(data.WLDPDM+"已经存在了!","提示信息");
  17. return false
  18. }
  19. }
  20. //校验该铺位是否被租出去
  21. var zuLinStartDate =$("[name='m:op_hdcdxy:zlyxqq']").val();
  22. if(!zuLinStartDate ){ $.ligerDialog.warn("尚未输入租赁开始日期!",'请核查'); return false }
  23. var conf ={aliasName:'validatePuweiIsUsed',pwid:data.WLDPID,sDate:zuLinStartDate};
  24. var json = RunAliasScript(conf);
  25. if(json.isSuccess ==1){
  26. $.ligerDialog.warn(json.msg);return false;
  27. }else if(json.result){
  28. $.ligerDialog.warn("该铺位到期日期为:"+json.result+",请核查!");return false;
  29. }
  30. }
  31. return true;
  32. }
  33. /* 表租金标准信息 添加行事件*/
  34. function op_hdcdxy_zjbzxxAddRowAfterEvent(row){
  35. var preRow = $(row).prev();
  36. var preNx = $("[name$=':xh']",preRow).val();
  37. if(!preNx)preNx = 0;
  38. $("[name$=':xh']",row).val(1+Number(preNx));
  39. validateZujinBiaozhunDates(row)
  40. };
  41. // 校验租金标准 时间
  42. function validateZujinBiaozhunDates(curRow){
  43. //租赁有效期起,止
  44. var zuLinStartDate =$("[name='m:op_hdcdxy:zlyxqq']").val();
  45. var zuLinEndDate =$("[name='m:op_hdcdxy:zlyxqz']").val();
  46. if((!zuLinStartDate || !zuLinEndDate)&&curRow){
  47. $.ligerDialog.warn("尚未输入租赁起止日期!",'请核查');
  48. $(curRow).remove();
  49. return;
  50. }
  51. var rows = $(".listRow:visible",$("[tablename='op_hdcdxy_zjbzxx']"));
  52. for(var i=0,row;row=rows[i++];){
  53. var shiJianDuan = $("[name$=':sjd']",$(row)).val(i); //时间段
  54. if(i>1){
  55. //开始日期等于上个结束日期加1
  56. var startDate = HyUtil.getNewDataStr($("[name$=':jsrq']",$(rows[i-2])).val(),1,1);
  57. $("[name$=':ksrq']",$(row)).val(startDate);
  58. }else{
  59. var differTotalStartDate = FormDate.compareDate($("[name$=':ksrq']",$(row)).val(), zuLinStartDate);
  60. if(differTotalEndDate>=0) {
  61. $.ligerDialog.warn("当前开始日期不能早于 租赁开始日期!",'请核查');
  62. }
  63. $("[name$=':ksrq']",$(row)).val(zuLinStartDate);
  64. }
  65. var differTotalEndDate = FormDate.compareDate($("[name$=':jsrq']",$(row)).val(), zuLinEndDate, "day");
  66. if(differTotalEndDate<0) {
  67. $.ligerDialog.warn("当前结束日期不能晚于 租赁有效期止!",'请核查');
  68. $("[name$=':jsrq']",$(row)).val("")
  69. return ;
  70. }
  71. }
  72. $("[name$=':dj']",curRow).trigger("change");
  73. $("[name='s:op_hdcdxy_klzgz:sjd']").trigger("change");
  74. }
  75. /*修改租金规则*/
  76. function changeZujinGz(obj){
  77. var curRow = $(obj).closest(".listRow");
  78. var danJia = $("[name$=':dj']",curRow);
  79. var zuJin = $("[name$=':zj']",curRow);
  80. var rule = $(obj).val();
  81. if(rule == "2" || rule=="4"){ //纯扣
  82. danJia.val(0);zuJin.val(0);
  83. danJia.attr("readonly","readonly");
  84. zuJin.attr("readonly","readonly");
  85. }else{
  86. danJia.removeAttr("readonly");
  87. zuJin.removeAttr("readonly");
  88. }
  89. danJia.trigger("change");zuJin.trigger("change");
  90. if(rule != "1"){ // 固定金额 不加扣率组
  91. createKoulvzu();
  92. }
  93. addNeedForKouLv();// 判断是否需要增加扣率组和扣率规则必填
  94. }
  95. function createKoulvzu(){
  96. if($(".listRow:visible",$("[tablename$='klz']")).length ==0){
  97. FormUtil.addRow($('div[tablename$="klz"]'));
  98. var appendRow = $(".listRow:visible",$("[tablename$='klz']"))[0];
  99. $("[name$=':klzbh']",appendRow).val(1);
  100. $("[name$=':jckl']",appendRow).val(1);
  101. $("[name$=':ms']",appendRow).val("扣组率1");
  102. }
  103. }
  104. //判断是否需要增加扣率组和扣率规则必填
  105. function addNeedForKouLv(){
  106. var isNeed = false;
  107. $("[name='s:op_hdcdxy_zjbzxx:zjgzID']").each(function (i){
  108. var val = $(this).val();
  109. if(val != 1){
  110. isNeed = true;
  111. return false; // 终止循环
  112. }
  113. });
  114. if(isNeed){
  115. $("div[tablename='op_hdcdxy_klz']").attr("right","b");
  116. if($(".listRow:visible",$("[tablename='op_hdcdxy_klz']")).length ==0){
  117. $("div[tablename='op_hdcdxy_klz']").addClass("validError");
  118. }
  119. $("div[tablename='op_hdcdxy_klzgz']").attr("right","b");
  120. if($(".listRow:visible",$("[tablename='op_hdcdxy_klzgz']")).length ==0){
  121. $("div[tablename='op_hdcdxy_klzgz']").addClass("validError");
  122. }
  123. }else{
  124. $("div[tablename='op_hdcdxy_klz']").attr("right","w");
  125. $("div[tablename='op_hdcdxy_klzgz']").attr("right","w");
  126. $("div[tablename='op_hdcdxy_klz']").removeClass("validError");
  127. $("div[tablename='op_hdcdxy_klzgz']").removeClass("validError");
  128. }
  129. }
  130. //扣率组删除事件
  131. function op_hdcdxy_klzDelRowBeforeEvent(row){
  132. addNeedForKouLv();
  133. }
  134. //扣率组规则删除事件
  135. function op_hdcdxy_klzgzDelRowBeforeEvent(row){
  136. addNeedForKouLv();
  137. }
  138. //扣率组添加事件
  139. function op_hdcdxy_klzAddRowAfterEvent(row){
  140. autoNumForKlzbm(row);
  141. }
  142. // 对扣率组编号自动编码
  143. function autoNumForKlzbm(row){
  144. var preRow = $(row).prev();
  145. var preBh = $("[name$=':klzbh']",preRow).val();
  146. if(!preBh)preBh = 0;
  147. $("[name$=':klzbh']",row).val(1+Number(preBh));
  148. }
  149. /**单价计算总租金
  150. * trigger 'dj'/'zj' 触发者
  151. * */
  152. function calZongZuJin(obj){
  153. var trigger = $(obj).attr("name").split(":")[2];
  154. var curRow = $(obj).closest(".listRow");
  155. var val = FormUtil.commaback($(obj).val());
  156. if(! val>0) return;
  157. var mianJi = $("[name='m:op_hdcdxy:jzmj']").val();
  158. if(!mianJi){ $.ligerDialog.warn(" 合同建筑面积不能为空!",'请核查'); return ; }
  159. var zuJin,danJia;
  160. /* 如果是单价*/
  161. if('dj'== trigger){
  162. danJia = val;
  163. zuJin = mianJi * danJia;
  164. $("[name$=':zj']",curRow).val(FormMath.tofixed(zuJin,2));
  165. }else if('zj' == trigger){
  166. zuJin = val;
  167. danJia =zuJin/mianJi;
  168. $("[name$=':dj']",curRow).val(FormMath.tofixed(danJia,2));
  169. }else return;
  170. var baoDiType =$("[name$=':bdxx']",curRow).val();
  171. var startDate = $("[name$=':ksrq']",curRow).val();
  172. var endDate = $("[name$=':jsrq']",curRow).val();
  173. if(baoDiType =="0"){ //按月
  174. var zongZujin = HyUtil.calMoneyWithMount(startDate,endDate,zuJin);
  175. }else{
  176. var days = FormDate.dateVal(startDate, endDate, "day");
  177. var zongZujin = zuJin*days;
  178. }
  179. zongZujin = FormMath.tofixed(zongZujin,2);
  180. $("[name$=':zzj']",curRow).val(zongZujin).trigger("change");
  181. }
  182. /*生成扣率组规则*/
  183. function createKoulvRules(){
  184. return;
  185. //租金标准信息
  186. var zjbzxx = $(".listRow:visible",$("[tablename='me_zlzjbzxx']"));
  187. var kouLvs = $(".listRow:visible",$("[tablename='me_zlklz']"));
  188. var klzggRows =$(".listRow:visible",$("[tablename='me_zlklzgz']")); //扣率组规则
  189. var klzggTableDiv = $("div[tablename='me_zlklzgg']");
  190. if(zjbzxx.length==0 ||kouLvs.length==0){
  191. $.ligerDialog.warn("租金标准信息或者扣率组尚未完善!",'请核查');return;
  192. }
  193. klzggRows.remove();
  194. var rowIndex=0;
  195. for(var j=0,kouLv;kouLv=kouLvs[j++];){
  196. for(var i=0,row;row=zjbzxx[i++];){
  197. var sjd = $("name$='sjd'",row).val();
  198. var kouLvZu = $("name$='klzbh'",kouLv).val();
  199. FormUtil.addRow(klzggTableDiv);
  200. var curRol = $(".listRow:visible",$("[tablename='me_zlklzgz']"))[rowIndex++];
  201. $("name$='sjd'",curRol).val(sjd);$("name$='sjd'",curRol).trigger("change");
  202. $("name$='lvz'",curRol).val(kouLvZu);$("name$='lvz'",curRol).trigger("change");
  203. }
  204. }
  205. }
  206. /*处理扣率时间段*/
  207. function handelKoulvTime(obj){
  208. var curRow = $(obj).closest(".listRow");
  209. var shijianNo = $("[name$=':sjd']",curRow).val();
  210. if(!shijianNo) return ;
  211. /*取的时间段*/
  212. var shiJianDuanNo =$("[name='s:op_hdcdxy_zjbzxx:sjd'][value="+shijianNo+"]");
  213. if(shiJianDuanNo.length ==0) {
  214. $.ligerDialog.warn("该时间段不存在! “"+shijianNo+"”",'请核查');
  215. $("[name$=':sjd']",curRow).val("");
  216. return ;
  217. }
  218. var shiJianDuanRow = shiJianDuanNo.closest(".listRow");
  219. var StartDate = $("[name$=':ksrq']",shiJianDuanRow).val();
  220. var endDate = $("[name$=':jsrq']",shiJianDuanRow).val();
  221. if(!StartDate || !endDate) {
  222. $.ligerDialog.warn("改时间段信息不完善! “"+shijianNo+"”",'请核查');
  223. $("[name$=':sjd']",curRow).val("");
  224. return ;
  225. }
  226. $("[name$=':ksrq']",curRow).val(StartDate);
  227. $("[name$=':jsrq']",curRow).val(endDate);
  228. initXSJEQvalidateRule();
  229. }
  230. /*处理扣率组*/
  231. function handelKoulvGroup(obj){
  232. var curRow = $(obj).closest(".listRow");
  233. var koulvNo = $(obj).val();
  234. if(!koulvNo) return ;
  235. /*取扣率组*/
  236. var KouLv =$("[name='s:op_hdcdxy_klz:klzbh'][value="+koulvNo+"]");
  237. if(KouLv.length ==0) {
  238. $.ligerDialog.warn("该扣率组不存在! “"+koulvNo+"”",'请核查');
  239. $(obj).val("");
  240. return ;
  241. }
  242. initXSJEQvalidateRule();
  243. }
  244. /*循环判断扣率组,初始化销售金额起,校验扣率组金额*/
  245. function initXSJEQvalidateRule(){
  246. var kouLvRules = $(".listRow:visible",$("[tablename='op_hdcdxy_klzgz']"));
  247. var combineMessage = [];
  248. for(var i=0,rule;rule=kouLvRules[i++];){
  249. var sjd = $("[name$=':sjd']",rule).val(); /*时间段*/
  250. var klz = $("[name$=':klz']",rule).val();/*扣率组*/
  251. if(!sjd || !klz) return;
  252. /*第一次设置开始金额为当前金额为第几行*/
  253. var len=-1;
  254. for(var j=0,r;r=combineMessage[j++];){
  255. if(r.split("-")[0] == sjd+","+klz){
  256. len =Number(r.split("-")[1]);
  257. }
  258. }
  259. if(len==-1){
  260. $("[name$=':zqxsjeq']",rule).val("0");$("[name$=':zqxsjeq']",rule).trigger("change");
  261. }else{
  262. var JJJine = $("[name$=':zqxsjez']",$(kouLvRules[len])).val(); /*上一截止金额*/
  263. $("[name$=':zqxsjeq']",rule).val(JJJine);
  264. }
  265. combineMessage.push(sjd+","+klz+"-"+(i-1));
  266. }
  267. }
  268. /*校验周期销售金额止*/
  269. function  checkZqxsjez(obj){
  270. var curRow = $(obj).closest(".listRow");
  271. var JeQi = $("[name$=':zqxsjeq']",curRow).val();
  272. var jeZhi =$(obj).val();
  273. if(JeQi&&jeZhi)
  274. if( FormUtil.commaback(JeQi) > FormUtil.commaback(jeZhi)){
  275. $.ligerDialog.warn("周期销售金额止:"+jeZhi+ " 不应该小于 周期销售金额起 :"+JeQi+"",'请核查!');
  276. $(obj).val("");
  277. return ;
  278. }
  279. initXSJEQvalidateRule();
  280. }
  281. /*结算标准信息 删除行事件*/
  282. function op_hdcdxy_zjbzxxDelRowBeforeEvent(row){
  283. var xh = $("[name$=':xh']",row).val();
  284. $("[name='s:me_lybdxx:xh'][value=" + xh + "]").closest("tr").remove();/*清除旧的记录*/
  285. }
  286. /*分解所有结算标准信息 */
  287. function decomposeAllJs(tableName,fenjieTable){
  288. var $jsbzxxTrs = $(".listRow:visible",$("[tablename='"+tableName+"']"));
  289. $jsbzxxTrs.each(function (i) {
  290. decomposeSingle($(this),fenjieTable);
  291. });
  292. }
  293. function decomposeAllYzj(){
  294. decomposeAllJs('op_hdcdxy_zjbzxx','op_hdcdxy_ydzjfj');
  295. }
  296. function decomposeSingleYzj(){
  297. decomposeSingleJs('op_hdcdxy_zjbzxx','op_hdcdxy_ydzjfj');
  298. }
  299. /*单个分解*/
  300. function decomposeSingleJs(tableName,fenjieTable){
  301. $jsbzxxTrs = $("input[name$=':fjsj']:checked",$("div[tablename='"+tableName+"']")).closest("tr");
  302. if($jsbzxxTrs.length ==0){
  303. $.ligerDialog.warn("请选择要分解的数据!","提示信息");
  304. return;
  305. }
  306. //分解
  307. decomposeSingle($jsbzxxTrs,fenjieTable);
  308. }
  309. /*【通过分解目标行来分解信息,将结果输出至分解表】
  310. * 被选中的行:selectRow,分解表的表明fenJieTable*/
  311. function decomposeSingle(selectRow,fenJieTable){
  312. var xh = selectRow.find("[name$=':xh']").val();
  313. if(!xh){
  314. $.ligerDialog.warn("请选择要分解的时间段","提示");
  315. return ;
  316. }
  317. //分解表
  318. var fenJieTableDiv = $("div[tablename='"+fenJieTable+"']");
  319. /*将序号与当前选中行所有分解信息删除*/
  320. $("[name$=':xh'][value=" + xh + "]",fenJieTableDiv).closest("tr").remove(); /*清除旧的记录*/
  321. var sjd =$("[name$=':xh']",selectRow).val(); //序号
  322. var ksrq =$("[name$=':ksrq']",selectRow).val();
  323. var jsrq =$("[name$=':jsrq']",selectRow).val();
  324. var type=$("[name$=':bdxx']",selectRow).val();
  325. var zj =FormUtil.commaback($("[name$=':zj']",selectRow).val());
  326. var sfgz =$("[name='m:op_hdcdxy:zjsfgzID']").val();
  327. var jsonData = HyUtil.decompose(sjd,ksrq,jsrq,zj,sfgz,"",type);
  328. /*填充数据*/
  329. for (var i = 0, c; c = jsonData[i++];) {
  330. FormUtil.addRow(fenJieTableDiv);
  331. var rowcount=$("input[name$=':ny']",fenJieTableDiv).length;
  332. $($("input[name$=':xh']",fenJieTableDiv).get(rowcount-1)).val(xh);
  333. $($("input[name$=':ny']",fenJieTableDiv).get(rowcount-1)).val(c.ZQY);
  334. $($("input[name$=':ksrq']",fenJieTableDiv).get(rowcount-1)).val(c.KSRQ);
  335. $($("input[name$=':jsrq']",fenJieTableDiv).get(rowcount-1)).val(c.JSRQ);
  336. $($("input[name$=':je']",fenJieTableDiv).get(rowcount-1)).val(c.YZJ);
  337. $($("input[name$=':scrq']",fenJieTableDiv).get(rowcount-1)).val(c.CDRQ);
  338. }
  339. }
  340. /*显示分解信息列表 */
  341. function showFjsj(obj,fenJieTable){
  342. var fenJieTableDiv =$("div[tablename='"+fenJieTable+"']");
  343. var tableDiv = $(obj).closest("[tablename]");
  344. var selectRow =$("input[name=':fjsj']:checked",tableDiv).closest("tr");
  345. var xhVal = selectRow.find("[name$=':xh']").val();/*选择行*/
  346. HyUtil.showDecompose(fenJieTable,'xh',xhVal);
  347. }
  348. /**分解代码 end**/