orders.js 14 KB

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