orders-proc.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. //初始化下标
  2. function resetTrNum(tableId,notClearQuantity) {
  3. $tbody = $("#"+tableId+"");
  4. $tbody.find('>tr').each(function(i){
  5. $(':input, select,button,a', this).each(function(){
  6. var $this = $(this), name = $this.attr('name'),id=$this.attr('id'),onclick_str=$this.attr('onclick'), val = $this.val();
  7. if(name!=null){
  8. if (name.indexOf("#index#") >= 0){
  9. $this.attr("name",name.replace('#index#',i));
  10. }else{
  11. var s = name.indexOf("[");
  12. var e = name.indexOf("]");
  13. var new_name = name.substring(s+1,e);
  14. $this.attr("name",name.replace(new_name,i));
  15. }
  16. //给明细添加弹出框
  17. name = $this.attr('name');
  18. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("pname") >= 0 ){
  19. $this.attr("class","searchbox-inputtext");
  20. $this.unbind("click");
  21. if(notClearQuantity){
  22. $this.bind("click",function(){popClick_embed("orderProductsList\["+i+"\]\.pnumber,orderProductsList\["+i+"\]\.pname,orderProductsList\["+i+"\]\.specType,orderProductsList\["+i+"\]\.measureUnit,orderProductsList\["+i+"\]\.purchasePrice,orderProductsList\["+i+"\]\.goodsId,orderProductsList\["+i+"\]\.categoryname,orderProductsList\["+i+"\]\.supplierId,orderProductsList\["+i+"\]\.supplierName"
  23. ,"goodsCode,goodsName,specification,salesUnit,goodsDesc,id,belongCategoryName,defaultProvider,supplierName","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&initCategoryCode=rootA01,rootA02,rootA03,rootA08,rootA10")
  24. });
  25. }else{
  26. $this.bind("click",function(){popClick_embed("orderProductsList\["+i+"\]\.pnumber,orderProductsList\["+i+"\]\.pname,orderProductsList\["+i+"\]\.specType,orderProductsList\["+i+"\]\.measureUnit,orderProductsList\["+i+"\]\.purchasePrice,orderProductsList\["+i+"\]\.goodsId,orderProductsList\["+i+"\]\.money,orderProductsList\["+i+"\]\.quantity,orderProductsList\["+i+"\]\.supplierId,orderProductsList\["+i+"\]\.supplierName"
  27. ,"goodsCode,goodsName,specification,salesUnit,goodsDesc,id,strEmpty,strEmpty,defaultProvider,supplierName","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&initCategoryCode=rootA01,rootA02,rootA03,rootA08,rootA10")
  28. });
  29. }
  30. }
  31. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("pnumber") >= 0 ){
  32. $this.unbind("change");
  33. $this.bind("change",function(){
  34. $.ajax({
  35. url:"ordersController.do?getProductInfo",
  36. data:{goodsCode:$this.val()},
  37. type:"Post",
  38. dataType:"json",
  39. success:function(data){
  40. if(data.status=="success"){
  41. $tbody.find("tr").eq(i).find(":text").eq(1).val(data.datainfo.pnumber);
  42. $tbody.find("tr").eq(i).find(":text").eq(2).val(data.datainfo.goodsName);
  43. $tbody.find("tr").eq(i).find(":text").eq(3).val(data.datainfo.specification);
  44. $tbody.find("tr").eq(i).find("select").val(data.datainfo.purchaseUnit);
  45. $tbody.find("tr").eq(i).find(":text").eq(4).val('');
  46. $tbody.find("tr").eq(i).find(":text").eq(5).val(data.pricinfo.retailPrice);
  47. $tbody.find("tr").eq(i).find(":text").eq(6).val('');
  48. $tbody.find("tr").eq(i).find(":text").eq(10).val(data.datainfo.id);// 货品主键ID
  49. }else{
  50. $.messager.alert('提示信息',"货品不存在!");
  51. }
  52. }});
  53. });
  54. }
  55. // 金额转换方法 科学计数法 转为 数字
  56. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("money") >= 0 ){
  57. var numTemp = $this.val();
  58. if(numTemp != null && numTemp != ''){
  59. $this.val(new Number(numTemp));
  60. }
  61. }
  62. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("quantityArrived") >= 0 ){
  63. var numTemp = $this.val();
  64. if(numTemp != null && numTemp != ''){
  65. $this.val(new Number(numTemp));
  66. }
  67. }
  68. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("quantityNotArrived") >= 0 ){
  69. var numTemp = $this.val();
  70. if(numTemp != null && numTemp != ''){
  71. $this.val(new Number(numTemp));
  72. }
  73. }
  74. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("quantityReturned") >= 0 ){
  75. var numTemp = $this.val();
  76. if(numTemp != null && numTemp != ''){
  77. $this.val(new Number(numTemp));
  78. }
  79. }
  80. // 数量改鬓添加事件
  81. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("quantity") >= 0 && name.indexOf("Arrived") < 0){
  82. var numTemp = $this.val();
  83. if(numTemp != null && numTemp != ''){
  84. $this.val(new Number(numTemp));
  85. }
  86. $this.unbind();
  87. // 区分浏览器 IE浏览器时
  88. if (window.ActiveXObject || "ActiveXObject" in window){
  89. $this.bind("input",function(){
  90. if(!isNaN($this.val()) && !isNaN($tbody.find("tr").eq(i).find(":text").eq(5).val())){
  91. var money = Math.round($this.val() * $tbody.find("tr").eq(i).find(":text").eq(5).val()*100)/100;
  92. $tbody.find("tr").eq(i).find(":text").eq(6).val(money);
  93. getSumMoney(tableId);
  94. }else{
  95. $tbody.find("tr").eq(i).find(":text").eq(6).val('');
  96. }
  97. });
  98. // 非IE浏览器时
  99. }else{
  100. $this.bind("input",function(){
  101. if(!isNaN($this.val()) && !isNaN($tbody.find("tr").eq(i).find(":text").eq(5).val())){
  102. //var money = $this.val() * $tbody.find("tr").eq(i).find(":text").eq(4).val();
  103. var money = Math.round($this.val() * $tbody.find("tr").eq(i).find(":text").eq(5).val()*100)/100;
  104. $tbody.find("tr").eq(i).find(":text").eq(6).val(money);
  105. getSumMoney(tableId);
  106. }else{
  107. $tbody.find("tr").eq(i).find(":text").eq(6).val('');
  108. }
  109. });
  110. }
  111. }
  112. // 价格改鬓添加事件
  113. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("purchasePrice") >= 0){
  114. var numTemp = $this.val();
  115. if(numTemp != null && numTemp != ''){
  116. $this.val(new Number(numTemp));
  117. }
  118. $this.unbind();
  119. // 区分浏览器 IE浏览器时
  120. if (window.ActiveXObject || "ActiveXObject" in window){
  121. $this.bind("input",function(){
  122. if(!isNaN($this.val()) && !isNaN($tbody.find("tr").eq(i).find(":text").eq(4).val())){
  123. var money = Math.round($this.val() * $tbody.find("tr").eq(i).find(":text").eq(4).val()*100)/100;
  124. $tbody.find("tr").eq(i).find(":text").eq(6).val(money);
  125. getSumMoney(tableId);
  126. }else{
  127. $tbody.find("tr").eq(i).find(":text").eq(6).val('');
  128. }
  129. });
  130. // 非IE浏览器时
  131. }else{
  132. $this.bind("input",function(){
  133. if(!isNaN($this.val()) && !isNaN($tbody.find("tr").eq(i).find(":text").eq(4).val())){
  134. var money = Math.round($this.val() * $tbody.find("tr").eq(i).find(":text").eq(4).val()*100)/100;
  135. $tbody.find("tr").eq(i).find(":text").eq(6).val(money);
  136. getSumMoney(tableId);
  137. }else{
  138. $tbody.find("tr").eq(i).find(":text").eq(6).val('');
  139. }
  140. });
  141. }
  142. }
  143. // 价格改鬓添加事件
  144. if(name.indexOf("orderProductsList") >= 0 && name.indexOf("measureUnit") >= 0 ){
  145. $this.unbind();
  146. $this.bind("change",function(){
  147. var goodsCodeNo = getValue(i,"pnumber");
  148. if(goodsCodeNo != null && goodsCodeNo != ''){
  149. $.ajax({
  150. url:"ordersController.do?getPurchasePriceInfo",
  151. data:{goodsCode:goodsCodeNo,purchaseUnit:$this.val()},
  152. type:"Post",
  153. dataType:"json",
  154. success:function(data){
  155. if(data.status=="success" && data.pricinfo != null){
  156. var purchasePrice = data.pricinfo.retailPrice;//采购零售价
  157. $tbody.find("tr").eq(i).find(":text").eq(5).val(purchasePrice);
  158. var quantity = $tbody.find("tr").eq(i).find(":text").eq(4).val();
  159. $tbody.find("tr").eq(i).find(":text").eq(4).removeAttr("readonly");
  160. if(!isNaN(quantity) && !isNaN(purchasePrice)){
  161. var money = Math.round(quantity * purchasePrice*100)/100;
  162. $tbody.find("tr").eq(i).find(":text").eq(6).val(money);
  163. getSumMoney(tableId);
  164. }else{
  165. $tbody.find("tr").eq(i).find(":text").eq(5).val('');
  166. $tbody.find("tr").eq(i).find(":text").eq(6).val('');
  167. }
  168. }else if(data.msg != null){
  169. $.messager.alert('单位选择错误',data.msg);
  170. $tbody.find("tr").eq(i).find(":text").eq(4).val('');
  171. $tbody.find("tr").eq(i).find(":text").eq(4).attr("readonly","readonly");
  172. $tbody.find("tr").eq(i).find(":text").eq(5).val('');
  173. $tbody.find("tr").eq(i).find(":text").eq(6).val('');
  174. getSumMoney(tableId);
  175. }else{
  176. $.messager.alert('提示信息',"计量单位在货品价格信息中没有设定,请在货品属性中先设定计量单位,或选择其他计量单位。");
  177. $tbody.find("tr").eq(i).find(":text").eq(4).attr("readonly","readonly");
  178. $tbody.find("tr").eq(i).find(":text").eq(5).val('');
  179. $tbody.find("tr").eq(i).find(":text").eq(6).val('');tableId
  180. getSumMoney(tableId);
  181. }
  182. }});
  183. }
  184. });
  185. }
  186. }
  187. if(id!=null){
  188. if (id.indexOf("#index#") >= 0){
  189. $this.attr("id",id.replace('#index#',i));
  190. }else{
  191. var s = id.indexOf("[");
  192. var e = id.indexOf("]");
  193. var new_id = id.substring(s+1,e);
  194. $this.attr("id",id.replace(new_id,i));
  195. }
  196. }
  197. if(onclick_str!=null){
  198. if (onclick_str.indexOf("#index#") >= 0){
  199. $this.attr("onclick",onclick_str.replace(/#index#/g,i));
  200. }else{
  201. }
  202. }
  203. });
  204. $(this).find('div[name=\'xh\']').html(i+1);
  205. });
  206. }
  207. // 总金额 计算方法
  208. function getSumMoney(tableid){
  209. var trList = $("#"+tableId+"").children("tr");
  210. var money = 0;
  211. for (var i=0;i<trList.length;i++) {
  212. var moneyTemp = parseFloat($("#"+tableId+"").find("tr").eq(i).find(":text").eq(6).val()) || 0;
  213. money = money + moneyTemp;
  214. }
  215. // 总金额
  216. $("#totalMoney").val(Math.round(money*100)/100);
  217. // 优惠金额
  218. var discountMoney = parseFloat($("#discountMoney").val()) || 0;
  219. // 应付金额
  220. $("#amountPayable").val(Math.round((money - discountMoney)*100)/100);
  221. }
  222. //
  223. //通用弹出式文件上传
  224. function commonUpload(callback,inputId){
  225. $.dialog({
  226. content: "url:systemController.do?commonUpload",
  227. lock : true,
  228. title:"文件上传",
  229. zIndex:2100,
  230. width:700,
  231. height: 200,
  232. parent:windowapi,
  233. cache:false,
  234. ok: function(){
  235. var iframe = this.iframe.contentWindow;
  236. iframe.uploadCallback(callback,inputId);
  237. return true;
  238. },
  239. cancelVal: '关闭',
  240. cancel: function(){
  241. }
  242. });
  243. }
  244. //通用弹出式文件上传-回调
  245. function commonUploadDefaultCallBack(url,name,inputId){
  246. $("#"+inputId+"_href").attr('href',url).html('下载');
  247. $("#"+inputId).val(url);
  248. }
  249. function browseImages(inputId, Img) {// 图片管理器,可多个上传共用
  250. var finder = new CKFinder();
  251. finder.selectActionFunction = function(fileUrl, data) {//设置文件被选中时的函数
  252. $("#" + Img).attr("src", fileUrl);
  253. $("#" + inputId).attr("value", fileUrl);
  254. };
  255. finder.resourceType = 'Images';// 指定ckfinder只为图片进行管理
  256. finder.selectActionData = inputId; //接收地址的input ID
  257. finder.removePlugins = 'help';// 移除帮助(只有英文)
  258. finder.defaultLanguage = 'zh-cn';
  259. finder.popup();
  260. }
  261. function browseFiles(inputId, file) {// 文件管理器,可多个上传共用
  262. var finder = new CKFinder();
  263. finder.selectActionFunction = function(fileUrl, data) {//设置文件被选中时的函数
  264. $("#" + file).attr("href", fileUrl);
  265. $("#" + inputId).attr("value", fileUrl);
  266. decode(fileUrl, file);
  267. };
  268. finder.resourceType = 'Files';// 指定ckfinder只为文件进行管理
  269. finder.selectActionData = inputId; //接收地址的input ID
  270. finder.removePlugins = 'help';// 移除帮助(只有英文)
  271. finder.defaultLanguage = 'zh-cn';
  272. finder.popup();
  273. }
  274. function decode(value, id) {//value传入值,id接受值
  275. var last = value.lastIndexOf("/");
  276. var filename = value.substring(last + 1, value.length);
  277. $("#" + id).text(decodeURIComponent(filename));
  278. }
  279. function checkUnknownRow(trList){
  280. var msg = '';
  281. for(var row = 0;row < trList.length;row++){
  282. if(trList.eq(row).find(":text").eq(3).val() == '未知规格型号')
  283. msg += '第'+(row+1)+'行,';
  284. }
  285. if(msg.length > 0)
  286. msg = msg.substring(0,msg.length -1)+'为未知规格型号货品,审批前,请先修改所有未知规格型号的工程物料。';
  287. return msg;
  288. }
  289. function getIndex(name){
  290. var indexStart = name.indexOf('[');
  291. var indexEnd=name.indexOf(']');
  292. var index = name.substr(indexStart+1,(indexEnd-indexStart-1));
  293. return index;
  294. }
  295. function setValue(index,key,value){
  296. var input = _getObj(index,key);
  297. input.val(value);
  298. }
  299. function _getObj(index,key){
  300. var obj = $("#add_orderProducts_table").find("[name='orderProductsList\["+index+"\]."+key+"']");
  301. return obj;
  302. }
  303. function getValue(index,key){
  304. return _getObj(index,key).val();
  305. }