BadDebitRate.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.ars.BadDebitRate', {
  3. extend: 'Ext.app.Controller',
  4. FormUtil: Ext.create('erp.util.FormUtil'),
  5. GridUtil: Ext.create('erp.util.GridUtil'),
  6. BaseUtil: Ext.create('erp.util.BaseUtil'),
  7. views:[
  8. 'core.grid.Panel4','core.toolbar.Toolbar3','core.button.Save'
  9. ],
  10. init:function(){
  11. var me = this;
  12. me.gridLastSelected = null;
  13. this.control({
  14. 'erpGridPanel4': {
  15. itemclick: this.onGridItemClick
  16. },
  17. 'erpSaveButton': {
  18. click: function(btn){
  19. this.beforeUpdate();
  20. }
  21. }
  22. });
  23. },
  24. onGridItemClick: function(selModel, record){//grid行选择
  25. this.gridLastSelected = record;
  26. var grid = Ext.getCmp('grid');
  27. if(record.data[grid.necessaryField] == null || record.data[grid.necessaryField] == ''){
  28. this.gridLastSelected.findable = true;//空数据可以在输入完code,并移开光标后,自动调出该条数据
  29. } else {
  30. this.gridLastSelected.findable = false;
  31. }
  32. this.GridUtil.onGridItemClickForEditGrid(selModel, record);
  33. },
  34. getForm: function(btn){
  35. return btn.ownerCt.ownerCt;
  36. },
  37. beforeUpdate: function(){
  38. var mm = this;
  39. var s2 = '';
  40. var grids = Ext.ComponentQuery.query('gridpanel');
  41. if(grids.length > 0){//check所有grid是否已修改
  42. Ext.each(grids, function(grid, index){
  43. var msg = grid.GridUtil.checkGridDirty(grid);
  44. if(msg.length > 0){
  45. s2 = s2 + '<br/>' + grid.GridUtil.checkGridDirty(grid);
  46. }
  47. });
  48. }
  49. var params = [];
  50. var rate = 0;
  51. var griddata = grids[0].store.data.items;
  52. if(griddata.length > 0){
  53. Ext.each(griddata,function(data,index){
  54. var rate1 =Ext.Number.from(data.data.bdr_rate,0);
  55. rate = rate+rate1;
  56. });
  57. if(rate!=100){
  58. warnMsg('比率合计不为100%,是否继续保存?',function(btn){
  59. if(btn=='yes'){
  60. var param = grids[0].GridUtil.getGridStore();
  61. params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
  62. mm.update(params);
  63. }else{
  64. return;
  65. }
  66. });
  67. }else{
  68. var param = grids[0].GridUtil.getGridStore();
  69. if(grids[0].necessaryField.length > 0 && (param == null || param == '')){
  70. warnMsg('明细表还未添加数据,是否继续?', function(btn){
  71. if(btn == 'yes'){
  72. params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
  73. mm.update(params);
  74. }else{
  75. return;
  76. }
  77. });
  78. }else{
  79. params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
  80. mm.update(params);
  81. }
  82. }
  83. }
  84. // if(grids.length > 0){
  85. // var param = grids[0].GridUtil.getGridStore();
  86. //
  87. // if(grids[0].necessaryField.length > 0 && (param == null || param == '')){
  88. // warnMsg('明细表还未添加数据,是否继续?', function(btn){
  89. // if(btn == 'yes'){
  90. // params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
  91. // } else {
  92. // return;
  93. // }
  94. // });
  95. // } else {
  96. // params = unescape("[" + param.toString().replace(/\\/g,"%") + "]");
  97. // }
  98. // }
  99. // mm.update(params);
  100. /*
  101. Array.prototype.contains = function(obj) {
  102. var i = this.length;
  103. while (i--) {
  104. if (this[i] === obj) {
  105. return true;
  106. }
  107. }
  108. return false;
  109. };
  110. var grid = Ext.getCmp('grid');
  111. var items = grid.store.data.items;
  112. var rowNo = [];
  113. Ext.each(items,function(item,index){
  114. Ext.each(grid.columns, function(c){
  115. if(item.data[c.dataIndex]!=item.raw[c.dataIndex])
  116. {
  117. if(!rowNo.contains(index+1)){
  118. rowNo.push(index+1);
  119. }
  120. }
  121. });
  122. });
  123. if(rowNo.length==0){
  124. Ext.Msg.alert("你未对数据做任何修改!");
  125. return;
  126. } else {
  127. var result = confirm("第"+rowNo.toString()+"行已经修改,确定更新?")
  128. if(result){
  129. var index = 0;
  130. var jsonGridData = new Array();
  131. var s = grid.getStore().data.items;
  132. for(var i=0;i<s.length;i++){//将grid里面各行的数据获取并拼成jsonGridData
  133. var data = s[i].data;
  134. Ext.each(grid.columns, function(c){
  135. if(c.xtype == 'datecolumn'){
  136. if(Ext.isDate(data[c.dataIndex])){
  137. data[c.dataIndex] = Ext.Date.toString(data[c.dataIndex]);//在这里把GMT日期转化成Y-m-d格式日期
  138. } else {
  139. data[c.dataIndex] = '1970-01-01';//如果用户没输入日期,或输入有误,就给个默认日期,
  140. //或干脆return;并且提示一下用户
  141. }
  142. } else if(c.xtype == 'numbercolumn'){//赋个默认值0吧,不然不好保存
  143. if(data[c.dataIndex] == null || data[c.dataIndex] == ''){
  144. data[c.dataIndex] = '0';
  145. }
  146. }
  147. });
  148. jsonGridData[index++] = Ext.JSON.encode(data);
  149. }
  150. this.update(jsonGridData.toString());
  151. }
  152. else return;
  153. }
  154. */},
  155. update:function(param){
  156. var params = new Object();
  157. params.param = unescape(arguments[0].toString().replace(/\\/g,"%"));
  158. for(var i=2; i<arguments.length; i++) { //兼容多参数
  159. params['param' + i] = unescape(arguments[i].toString().replace(/\\/g,"%"));
  160. }
  161. var mm = this;
  162. Ext.Ajax.request({
  163. url : basePath+'fa/ars/updateBadDebitRate.action',
  164. params: params,
  165. method : 'post',
  166. callback : function(options,success,response){
  167. var localJson = new Ext.decode(response.responseText);
  168. if(localJson.success){
  169. updateSuccess(function(btn){
  170. //update成功后刷新页面进入可编辑的页面
  171. var url = window.location.href;
  172. window.location.href = url;
  173. });
  174. } else if(localJson.exceptionInfo){} else {
  175. updateFailure();
  176. }
  177. }
  178. });
  179. /*
  180. Ext.Ajax.request({
  181. url: basePath+'fa/ars/updateBadDebitRate.action',
  182. params:{
  183. param:param
  184. },
  185. success: function(response){
  186. var text = response.responseText;
  187. result = Ext.decode(text);
  188. if(result.success){
  189. Ext.Msg.alert("保存成功!"); // 尚未国际化,以后订正。
  190. }
  191. }
  192. });
  193. */},
  194. /**
  195. * string:原始字符串
  196. * substr:子字符串
  197. * isIgnoreCase:忽略大小写
  198. */
  199. contains: function(string,substr,isIgnoreCase){
  200. if(isIgnoreCase){
  201. string=string.toLowerCase();
  202. substr=substr.toLowerCase();
  203. }
  204. var startChar=substr.substring(0,1);
  205. var strLen=substr.length;
  206. for(var j=0;j<string.length-strLen+1;j++){
  207. if(string.charAt(j)==startChar){//如果匹配起始字符,开始查找
  208. if(string.substring(j,j+strLen)==substr){//如果从j开始的字符与str匹配,那ok
  209. return true;
  210. }
  211. }
  212. }
  213. return false;
  214. }
  215. });