LoadSaleDetailDet.js 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.mps.LoadSaleDetailDet', {
  3. extend: 'Ext.app.Controller',
  4. requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil', 'erp.util.RenderUtil'],
  5. views:[
  6. 'common.batchDeal.Viewport','common.batchDeal.Form','common.batchDeal.GridPanel','core.button.AllThrow',
  7. 'core.trigger.DbfindTrigger','core.form.FtField','core.form.FtFindField','core.form.ConDateField',
  8. 'core.trigger.TextAreaTrigger','core.form.YnField', 'core.form.MonthDateField','core.form.ConMonthDateField',
  9. 'core.grid.YnColumn'
  10. ],
  11. FormUtil:Ext.create('erp.util.FormUtil'),
  12. init:function(){
  13. var me = this;
  14. me.resized = false;
  15. this.control({
  16. 'erpBatchDealFormPanel': {
  17. alladded: function(form){
  18. var grid = Ext.getCmp('batchDealGridPanel');
  19. me.resize(form, grid);
  20. }
  21. },
  22. 'erpBatchDealGridPanel': {
  23. afterrender: function(grid){
  24. var form = Ext.getCmp('dealform');
  25. me.resize(form, grid);
  26. if(type=='MPS') grid.defaultCondition+=Ext.isEmpty(grid.defaultCondition)?" sd_id not in (select md_sdid from mpsdetail where md_mainid="+keyValue+")":" AND sd_id not in (select md_sdid from mpsdetail where md_mainid="+keyValue+")";
  27. else if (type=='APS') grid.defaultCondition+=Ext.isEmpty(grid.defaultCondition)?" sdd_id not in (select ad_sddid from apsdetail where ad_amid="+keyValue+")":" AND sdd_id not in (select ad_sddid from apsdetail where ad_amid="+keyValue+")";
  28. }
  29. },
  30. 'erpVastDealButton': {
  31. click: function(btn){
  32. me.vastDeal(btn.ownerCt.ownerCt.dealUrl);
  33. }
  34. },
  35. 'erpVastAnalyseButton': {
  36. click: function(btn){
  37. me.vastDeal(btn.ownerCt.ownerCt.dealUrl);
  38. }
  39. },
  40. 'erpVastPrintButton': {
  41. click: function(btn){
  42. me.vastDeal(btn.ownerCt.ownerCt.dealUrl);
  43. }
  44. },
  45. 'erpVastAllotButton':{
  46. click:function(btn){
  47. me.vastDeal(btn.ownerCt.ownerCt.dealUrl);
  48. }
  49. },
  50. 'erpEndCRMButton':{
  51. click:function(btn){
  52. me.vastDeal('crm/chanceTurnEnd.action');
  53. }
  54. },
  55. 'erpAllThrowButton':{
  56. beforerender:function(btn){
  57. btn.text ="全部装载";
  58. btn.handler=function(){
  59. var condition=Ext.getCmp('dealform').getCondition();
  60. me.ThrowBycondition();
  61. };
  62. }
  63. },
  64. 'monthdatefield': {
  65. afterrender: function(f) {
  66. var type = '', con = null;
  67. if(f.name == 'vo_yearmonth' && caller == 'Voucher!Audit!Deal') {
  68. type = 'MONTH-A';
  69. con = Ext.getCmp('condatefield');
  70. } else if(f.name == 'vo_yearmonth' && caller == 'Voucher!ResAudit!Deal') {
  71. type = 'MONTH-A';
  72. con = Ext.getCmp('condatefield');
  73. }
  74. if(type != '') {
  75. this.getCurrentMonth(f, type, con);
  76. }
  77. }
  78. }
  79. });
  80. },
  81. resize: function(form, grid){
  82. if(!this.resized && form && grid && form.items.items.length > 0){
  83. var height = window.innerHeight;
  84. if(Ext.isIE){
  85. height = screen.height*0.75;
  86. }
  87. var cw = 0;
  88. Ext.each(form.items.items, function(){
  89. if(!this.hidden && this.xtype != 'hidden') {
  90. cw += this.columnWidth;
  91. }
  92. });
  93. cw = Math.ceil(cw);
  94. if(cw == 0){
  95. cw = 5;
  96. } else if(cw > 2 && cw <= 5){
  97. cw -= 1;
  98. } else if(cw > 5 && cw < 8){
  99. cw = 4;
  100. }
  101. cw = Math.min(cw, 5);
  102. form.setHeight(height*cw/10 + 10);
  103. grid.setHeight(height*(10 - cw)/10 - 10);
  104. this.resized = true;
  105. }
  106. },
  107. countGrid: function(){
  108. //重新计算合计栏值
  109. var grid = Ext.getCmp('batchDealGridPanel');
  110. Ext.each(grid.columns, function(column){
  111. if(column.summary){
  112. var sum = 0;
  113. Ext.each(grid.store.data.items, function(item){
  114. if(item.value != null && item.value != ''){
  115. sum += Number(item.value);
  116. }
  117. });
  118. Ext.getCmp(column.dataIndex + '_sum').setText(column.text + '(sum):' + sum);
  119. } else if(column.average) {
  120. var average = 0;
  121. Ext.each(grid.store.data.items, function(item){
  122. if(item.value != null && item.value != ''){
  123. average += Number(item.value);
  124. }
  125. });
  126. average = average/grid.store.data.items.length;
  127. Ext.getCmp(column.dataIndex + '_average').setText(column.text + '(average):' + average);
  128. } else if(column.count) {
  129. var count = 0;
  130. Ext.each(grid.store.data.items, function(item){
  131. if(item.value != null && item.value != ''){
  132. count++;
  133. }
  134. });
  135. Ext.getCmp(column.dataIndex + '_count').setText(column.text + '(count):' + count);
  136. }
  137. });
  138. },
  139. ThrowBycondition:function(){
  140. var condition=Ext.getCmp('dealform').getCondition();
  141. var me=this;
  142. me.FormUtil.setLoading(true);
  143. var params=new Object();
  144. params.keyValue=keyValue;
  145. params.type=type;
  146. params.condition=condition;
  147. Ext.Ajax.request({
  148. url : basePath + "pm/mps/loadSaleDetailDet.action",
  149. params: params,
  150. method : 'post',
  151. callback : function(options,success,response){
  152. me.FormUtil.setLoading(false);
  153. var localJson = new Ext.decode(response.responseText);
  154. if(localJson.exceptionInfo){
  155. showError(localJson.exceptionInfo);
  156. return "";
  157. }
  158. if(localJson.success){
  159. if(localJson.log){
  160. showMessage("提示", localJson.log);
  161. }
  162. Ext.Msg.alert("提示", "装载成功!", function(){
  163. Ext.getCmp('dealform').onQuery();
  164. });
  165. }
  166. }
  167. });
  168. },
  169. vastDeal: function(url){
  170. var grid = Ext.getCmp('batchDealGridPanel');
  171. var items = grid.selModel.getSelection();
  172. Ext.each(items, function(item, index){
  173. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  174. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  175. item.index = this.data[grid.keyField];
  176. grid.multiselected.push(item);
  177. }
  178. });
  179. var form = Ext.getCmp('dealform');
  180. var records = Ext.Array.unique(grid.multiselected);
  181. if(records.length > 0){
  182. var params = new Object();
  183. params.caller = caller;
  184. var data = new Array();
  185. var bool = false;
  186. Ext.each(records, function(record, index){
  187. var f = form.fo_detailMainKeyField;
  188. if((grid.keyField && this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  189. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0)
  190. ||(f && this.data[f] != null && this.data[f] != ''
  191. && this.data[f] != '0' && this.data[f] != 0)){
  192. bool = true;
  193. var o = new Object();
  194. if(grid.keyField){
  195. o[grid.keyField] = record.data[grid.keyField];
  196. } else {
  197. params.id[index] = record.data[form.fo_detailMainKeyField];
  198. }
  199. if(grid.toField){
  200. Ext.each(grid.toField, function(f, index){
  201. var v = Ext.getCmp(f).value;
  202. if(v != null && v.toString().trim() != '' && v.toString().trim() != 'null'){
  203. o[f] = v;
  204. }
  205. });
  206. }
  207. if(grid.necessaryFields){
  208. Ext.each(grid.necessaryFields, function(f, index){
  209. var v = record.data[f];
  210. if(Ext.isDate(v)){
  211. v = Ext.Date.toString(v);
  212. }
  213. o[f] = v;
  214. });
  215. }
  216. data.push(o);
  217. }
  218. });
  219. if(bool){
  220. params.data = unescape(Ext.JSON.encode(data).replace(/\\/g,"%"));
  221. params.keyValue=keyValue;
  222. params.type=type;
  223. var main = parent.parent.Ext.getCmp("content-panel");
  224. main.getActiveTab().setLoading(true);//loading...
  225. Ext.Ajax.request({
  226. url : basePath + url,
  227. params: params,
  228. method : 'post',
  229. timeout: 6000000,
  230. callback : function(options,success,response){
  231. main.getActiveTab().setLoading(false);
  232. var localJson = new Ext.decode(response.responseText);
  233. if(localJson.exceptionInfo){
  234. var str = localJson.exceptionInfo;
  235. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){
  236. str = str.replace('AFTERSUCCESS', '');
  237. grid.multiselected = new Array();
  238. Ext.getCmp('dealform').onQuery();
  239. }
  240. showError(str);return;
  241. }
  242. if(localJson.success){
  243. if(localJson.log){
  244. showMessage("提示", localJson.log);
  245. }
  246. Ext.Msg.alert("提示", "处理成功!", function(){
  247. grid.multiselected = new Array();
  248. Ext.getCmp('dealform').onQuery();
  249. });
  250. }
  251. }
  252. });
  253. } else {
  254. showError("没有需要处理的数据!");
  255. }
  256. }
  257. },
  258. getCurrentMonth: function(f, type, con) {
  259. Ext.Ajax.request({
  260. url: basePath + 'fa/getMonth.action',
  261. params: {
  262. type: type
  263. },
  264. callback: function(opt, s, r) {
  265. var rs = Ext.decode(r.responseText);
  266. if(rs.data) {
  267. f.setValue(rs.data.PD_DETNO);
  268. if(con != null) {
  269. con.setMonthValue(rs.data.PD_DETNO);
  270. }
  271. }
  272. }
  273. });
  274. }
  275. });