orders-own.js 14 KB

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