contract.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. //初始化下标
  2. function resetTrNum(tableId) {
  3. $tbody = $("#"+tableId+"");
  4. var projectid = $('#projectid').val();
  5. $tbody.find('>tr').each(function(i){
  6. $(':input, select,button,a', this).each(function(){
  7. var $this = $(this), name = $this.attr('name'),id=$this.attr('id'),onclick_str=$this.attr('onclick'), val = $this.val();
  8. if(name!=null){
  9. if (name.indexOf("#index#") >= 0){
  10. $this.attr("name",name.replace('#index#',i));
  11. }else{
  12. var s = name.indexOf("[");
  13. var e = name.indexOf("]");
  14. var new_name = name.substring(s+1,e);
  15. $this.attr("name",name.replace(new_name,i));
  16. }
  17. //给明细添加弹出框
  18. if(name.indexOf("contractItemList") >= 0 && name.indexOf("gname") >= 0 ){
  19. $this.attr("class","searchbox-inputtext");
  20. $this.unbind("click");
  21. $this.bind("click",function(){popClick_embed("contractItemList\["+i+"\]\.unit,contractItemList\["+i+"\]\.gname,contractItemList\["+i+"\]\.goodsid"
  22. ,"salesUnit,goodsName,id","ordersController.do?selectReferGoods&classname=cn.com.lzt.goodsinfo.entity.TBGoodsInfoEntity&codefield=goodsCode&categoryfield=belongCategoryCode&categoryNamefield=belongCategoryName&namefield=goodsName&purchaseUnit=salesUnit&specification=specification&goodsDesc=goodsDesc&strEmpty=strEmpty")
  23. });
  24. }
  25. //给明细添加弹出框
  26. if(name.indexOf("contractItemList") >= 0 && name.indexOf("sname") >= 0 ){
  27. $this.attr("class","searchbox-inputtext");
  28. $this.unbind("click");
  29. $this.bind("click",function(){popClick_embed("contractItemList\["+i+"\]\.sname,contractItemList\["+i+"\]\.serviceid"
  30. ,"name,id","projectServiceController.do?selectedlist&projectid="+projectid+"&classname=cn.com.lzt.projectservice.entity.ProjectServiceEntity&codefield=code&namefield=name")
  31. });
  32. }
  33. // 数量改变添加事件
  34. if(name.indexOf("contractItemList") >= 0 && name.indexOf("quantity") >= 0){
  35. var numTemp = $this.val();
  36. if(numTemp != null && numTemp != ''){
  37. $this.val(new Number(numTemp));
  38. }
  39. $this.unbind();
  40. // 区分浏览器 IE浏览器时
  41. // if (window.ActiveXObject || "ActiveXObject" in window){
  42. // $this.bind("input",function(){
  43. // if(!isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val())){
  44. // var money = Math.round($this.val() * $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val()*100)/100;
  45. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val(money);
  46. // getSumMoney();
  47. // }else{
  48. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val('');
  49. // }
  50. // });
  51. // // 非IE浏览器时
  52. // }else{
  53. $this.bind("input",function(){
  54. if(!isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val())){
  55. //var money = $this.val() * $("#add_orderDetails_table").find("tr").eq(i).find(":text").eq(4).val();
  56. var money = Math.round($this.val() * $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val()*100)/100;
  57. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val(money);
  58. getSumMoney();
  59. }else{
  60. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val('');
  61. }
  62. });
  63. // }
  64. }
  65. // 金额改变添加事件,反算单价
  66. if(name.indexOf("contractItemList") >= 0 && name.indexOf("amount") >= 0){
  67. var numTemp = $this.val();
  68. if(numTemp != null && numTemp != ''){
  69. $this.val(new Number(numTemp));
  70. }
  71. $this.unbind();
  72. // 区分浏览器 IE浏览器时
  73. // if (window.ActiveXObject || "ActiveXObject" in window){
  74. // $this.bind("input",function(){
  75. // if(!isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val())){
  76. // var quantity = $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val()==""?0:$("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val();
  77. // var price = Math.round($this.val() / $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val()*100)/100;
  78. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val(price);
  79. // getSumMoney();
  80. // }else{
  81. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val('');
  82. // }
  83. // });
  84. // // 非IE浏览器时
  85. // }else{
  86. $this.bind("input",function(){
  87. var quantity = $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val()==""?0:$("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val();
  88. if(quantity > 0 && !isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val())){
  89. var price = Math.round($this.val() / quantity *100)/100;
  90. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val(price);
  91. getSumMoney();
  92. }else{
  93. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(1).val('');
  94. }
  95. });
  96. // }
  97. }
  98. // 价格改变添加事件
  99. if(name.indexOf("contractItemList") >= 0 && name.indexOf("price") >= 0){
  100. var numTemp = $this.val();
  101. if(numTemp != null && numTemp != ''){
  102. $this.val(new Number(numTemp));
  103. }
  104. $this.unbind();
  105. // 区分浏览器 IE浏览器时
  106. // if (window.ActiveXObject || "ActiveXObject" in window){
  107. // $this.bind("input",function(){
  108. // if(!isNaN($this.val()) && !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val())){
  109. // var money = Math.round($this.val() * $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val()*100)/100;
  110. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val(money);
  111. // getSumMoney();
  112. // }else{
  113. // $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val('');
  114. // }
  115. // });
  116. // // 非IE浏览器时
  117. // }else{
  118. $this.bind("input",function(){
  119. if(!isNaN($this.val())){ //&& !isNaN($("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val())
  120. var money = Math.round($this.val() * $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(2).val()*100)/100;
  121. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val(money);
  122. getSumMoney();
  123. }else{
  124. $("#add_contractItem_table").find("tr").eq(i).find(":text").eq(3).val('');
  125. }
  126. });
  127. // }
  128. }
  129. // 支付条款金额改变添加事件
  130. if(name.indexOf("contractPayruleList") >= 0 && name.indexOf("amount") >= 0){
  131. var numTemp = $this.val();
  132. if(numTemp != null && numTemp != ''){
  133. $this.val(new Number(numTemp));
  134. }
  135. $this.unbind();
  136. $this.change(function(event){
  137. var trList = $("#add_contractPayrule_table").children("tr");
  138. var money = 0;
  139. for (var line=0;line<trList.length;line++) {
  140. var moneyTemp = parseFloat($("#add_contractPayrule_table").find("tr").eq(line).find(":text").eq(1).val()) || 0;
  141. money = money + moneyTemp;
  142. }
  143. // 总金额
  144. var total = new Number($("#totalamount").val());
  145. if(total < money){
  146. event.currentTarget.value = event.currentTarget.validform_lastval || 0;
  147. tip("支付条款金额合计不能大于合同金额,请重新填写");
  148. }
  149. if(total > 0 && !isNaN(event.currentTarget.value)){
  150. var persent = Math.round(event.currentTarget.value / total *100 * 100)/100;
  151. $("#add_contractPayrule_table").find("tr").eq(i).find(":text").eq(2).val(persent);
  152. }else{
  153. $("#add_contractPayrule_table").find("tr").eq(i).find(":text").eq(2).val('');
  154. }
  155. });
  156. }
  157. }
  158. if(id!=null){
  159. if (id.indexOf("#index#") >= 0){
  160. $this.attr("id",id.replace('#index#',i));
  161. }else{
  162. var s = id.indexOf("[");
  163. var e = id.indexOf("]");
  164. var new_id = id.substring(s+1,e);
  165. $this.attr("id",id.replace(new_id,i));
  166. }
  167. }
  168. if(onclick_str!=null){
  169. if (onclick_str.indexOf("#index#") >= 0){
  170. $this.attr("onclick",onclick_str.replace(/#index#/g,i));
  171. }else{
  172. }
  173. }
  174. });
  175. $(this).find('div[name=\'xh\']').html(i+1);
  176. });
  177. }
  178. //通用弹出式文件上传
  179. function commonUpload(callback,inputId){
  180. $.dialog({
  181. content: "url:systemController.do?commonUpload",
  182. lock : true,
  183. title:"文件上传",
  184. zIndex:getzIndex(),
  185. width:700,
  186. height: 200,
  187. parent:windowapi,
  188. cache:false,
  189. ok: function(){
  190. var iframe = this.iframe.contentWindow;
  191. iframe.uploadCallback(callback,inputId);
  192. return true;
  193. },
  194. cancelVal: '关闭',
  195. cancel: function(){
  196. }
  197. });
  198. }
  199. //通用弹出式文件上传-回调
  200. function commonUploadDefaultCallBack(url,name,inputId){
  201. $("#"+inputId+"_href").attr('href',url).html('下载');
  202. $("#"+inputId).val(url);
  203. }
  204. function browseImages(inputId, Img) {// 图片管理器,可多个上传共用
  205. }
  206. function browseFiles(inputId, file) {// 文件管理器,可多个上传共用
  207. }
  208. function decode(value, id) {//value传入值,id接受值
  209. var last = value.lastIndexOf("/");
  210. var filename = value.substring(last + 1, value.length);
  211. $("#" + id).text(decodeURIComponent(filename));
  212. }
  213. //选择项目名称,列表================
  214. function openDepartmentSelect() {
  215. //$.dialog.setting.zIndex = getzIndex();
  216. var orgIds = $("#projectid").val();
  217. /* var orgCode = $("#orgCode").val();*/
  218. $.dialog({
  219. //content: 'url:userWageController.do?projectDepartTableAll&ids='+orgIds, zIndex: getzIndex(), title: '项目名称列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
  220. content: 'url:publicpageController.do?projectSelect&ids='+orgIds, zIndex: getzIndex(), title: '项目名称列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
  221. {name: '确定', callback: function (){
  222. var iframe = this.iframe.contentWindow;
  223. if(iframe.getReason().length>0){
  224. var strData=eval(iframe.getReason());
  225. for(var key in strData[0]){
  226. if(key=="strId"){
  227. $("#projectid").val(strData[0][key]);
  228. }else if(key=="strName"){
  229. $("#projectName").val(strData[0][key]);
  230. }
  231. }
  232. $("#projectname").focus();
  233. }
  234. afterProjectEdit();
  235. }, focus: true},
  236. {name: '取消', callback: function (){afterProjectEdit();}}
  237. ]}).zindex();
  238. }
  239. function callbackClean(){
  240. $('#projectName').val('');
  241. $('#projectid').val('');
  242. afterProjectEdit();
  243. }
  244. //选择供应商
  245. function openPartnerSelect() {
  246. //$.dialog.setting.zIndex = getzIndex();
  247. var partnerIds = $("#partnerid").val();
  248. /* var orgCode = $("#orgCode").val();*/
  249. $.dialog({
  250. content: 'url:partnerController.do?supplierAll&ids='+partnerIds, zIndex: getzIndex(), title: '供应商列表', lock: true, width: '600px', height: '350px', opacity: 0.4, button: [
  251. {name: '确定', callback: function (){
  252. var iframe = this.iframe.contentWindow;
  253. if(iframe.getReason().length>0){
  254. var strData=eval(iframe.getReason());
  255. for(var key in strData[0]){
  256. if(key=="strId"){
  257. $("#partnerid").val(strData[0][key]);
  258. }else if(key=="strPartnerName"){
  259. $("#partnerName").val(strData[0][key]);
  260. }
  261. }
  262. $("#partnerName").focus();
  263. }
  264. }, focus: true},
  265. {name: '取消', callback: function (){}}
  266. ]}).zindex();
  267. }
  268. function callbackCleanPartner(){
  269. $('#partnerName').val('');
  270. $('#partnerid').val('');
  271. }
  272. function changeToCHN(event) {
  273. var chn = convertCurrency(event.currentTarget.value);
  274. //event.currentTarget.validform_lastval
  275. var label = document.getElementById("totalamountCHN");
  276. label.innerText = chn;
  277. }
  278. //总金额 计算方法
  279. function getSumMoney(){
  280. var trList = $("#add_contractItem_table").children("tr");
  281. var money = 0;
  282. for (var line=0;line<trList.length;line++) {
  283. var moneyTemp = parseFloat($("#add_contractItem_table").find("tr").eq(line).find(":text").eq(3).val()) || 0;
  284. money = money + moneyTemp;
  285. }
  286. // 总金额
  287. $("#totalamount").val(Math.round(money*100)/100);
  288. //event.currentTarget.validform_lastval
  289. var label = document.getElementById("totalamountCHN");
  290. label.innerText = convertCurrency($("#totalamount").val());
  291. }
  292. function afterProjectEdit(){
  293. resetTrNum('add_contractItem_table');
  294. }
  295. function beforeSubmit(){
  296. var startdate = $("#startdate").val();
  297. var enddate = $("#enddate").val();
  298. if(enddate < startdate){
  299. tip("合同截止日期必须大于开始日期");
  300. return false;
  301. }
  302. return true;
  303. }