ShowCmDetail.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.fa.ars.ShowCmDetail', {
  3. extend: 'Ext.app.Controller',
  4. BaseUtil: Ext.create('erp.util.BaseUtil'),
  5. views: ['core.trigger.DbfindTrigger', 'fa.ars.cmQuery.CmDetailGrid', 'fa.ars.cmQuery.ShowCmDetail', 'core.form.MonthDateField',
  6. 'core.form.ConMonthDateField', 'core.form.YearDateField'],
  7. init:function(){
  8. var me = this;
  9. this.control({
  10. 'cmdetailgrid':{
  11. itemclick:this.onGridItemClick
  12. },
  13. 'button[id=close]': {
  14. afterrender: function() {
  15. setTimeout(function(){
  16. me.getCondition();
  17. },200);
  18. }
  19. },
  20. 'button[name=export]': {
  21. click: function() {
  22. var grid = Ext.getCmp('cmdetailgrid');
  23. me.BaseUtil.exportGrid(grid, '应收总账明细'+'-'+yearmonth+'-'+custname+'-'+currency+'_',' 客户名称:'+custname+' 币别:'+currency+' 期间:'+yearmonth);
  24. }
  25. },
  26. 'button[name=query]':{
  27. click:function(btn){
  28. var me = this;
  29. if(Ext.getCmp(btn.getId() + '-filter')){
  30. Ext.getCmp(btn.getId() + '-filter').show();
  31. }else{
  32. var filter = me.createFilterPanel(btn);
  33. filter.show();
  34. }
  35. }
  36. }
  37. });
  38. },
  39. //弹出筛选框
  40. createFilterPanel:function(btn){
  41. var me = this;
  42. var filter = Ext.create('Ext.Window', {
  43. id: btn.getId() + '-filter',
  44. style: 'background:#f1f1f1',
  45. title: '筛选条件',
  46. width: 300,
  47. modal:true,
  48. height: 250,
  49. layout: 'column',
  50. defaults: {
  51. margin: '2 2 2 10'
  52. },
  53. items: [{
  54. xtype: 'checkbox',
  55. id: 'showarmsg',
  56. name: 'showarmsg',
  57. checked:true,
  58. columnWidth: .71,
  59. boxLabel: '显示应收发票信息'
  60. },{
  61. xtype: 'checkbox',
  62. id: 'showotarmsg',
  63. name: 'showotarmsg',
  64. checked:true,
  65. columnWidth: .71,
  66. boxLabel: '显示其它应收信息'
  67. },{
  68. xtype: 'checkbox',
  69. id: 'showrbmsg',
  70. name: 'showrbmsg',
  71. checked:true,
  72. columnWidth: .71,
  73. boxLabel: '显示收款单信息'
  74. },{
  75. xtype: 'checkbox',
  76. id: 'showprerecmsg',
  77. name: 'showprerecmsg',
  78. checked:true,
  79. columnWidth: .71,
  80. boxLabel: '显示预收账款信息'
  81. },{
  82. xtype: 'checkbox',
  83. id: 'showgsmsg',
  84. name: 'showgsmsg',
  85. checked:true,
  86. columnWidth: .71,
  87. boxLabel: '显示发出商品信息'
  88. },{
  89. xtype: 'checkbox',
  90. id: 'showdemsg',
  91. name: 'showdemsg',
  92. columnWidth: .71,
  93. boxLabel: '显示销售发票明细'
  94. }/*,{
  95. xtype: 'checkbox',
  96. id: 'showdemsg',
  97. name: 'showdemsg',
  98. columnWidth: .71,
  99. boxLabel: '显示应收款转销明细'
  100. }*/],
  101. buttonAlign: 'center',
  102. buttons: [{
  103. text: '确定',
  104. width: 60,
  105. cls: 'x-btn-blue',
  106. handler: function(btn) {
  107. var showArDetailVal = Ext.getCmp('showdemsg').getValue();
  108. var grid = Ext.getCmp('cmdetailgrid');
  109. var fl = btn.ownerCt.ownerCt;
  110. var con = me.getConfig(fl);
  111. if(showArDetailVal){
  112. grid.columns = grid.detailColumns;
  113. me.getConditionDetail(con,'fa/ars/CmQueryController/getCmDetailByIdDetail.action');
  114. }else{
  115. grid.columns = grid.defaultColumns;
  116. me.getConditionDetail(con,'fa/ars/CmQueryController/getCmDetailById.action');
  117. }
  118. //隐藏筛选框
  119. fl.hide();
  120. }
  121. },{
  122. text: '关闭',
  123. width: 60,
  124. cls: 'x-btn-blue',
  125. handler: function(btn) {
  126. var fl = btn.ownerCt.ownerCt;
  127. fl.hide();
  128. }
  129. }]
  130. });
  131. return filter;
  132. },
  133. getConfig: function(pl) {
  134. var r = new Object(),v;
  135. Ext.each(pl.items.items, function(item){
  136. if(item.getValue !== undefined) {
  137. v = item.getValue();
  138. if(!Ext.isEmpty(v)) {
  139. r[item.id] = v;
  140. }
  141. }
  142. });
  143. var tb = Ext.getCmp('gl_info_ym');
  144. if(tb)
  145. tb.updateInfo(r);
  146. return r;
  147. },
  148. //得到界面上够选框选择条件 并执行查找 没有勾选显示明细的情况
  149. getCondition:function(){
  150. var me = this;
  151. var cond = {
  152. 'cmid':cmid,
  153. 'yearmonth':yearmonth,
  154. 'currency':currency,
  155. 'custcode':custcode,
  156. 'chkumio':chkumio,
  157. 'config':{
  158. 'showarmsg':true,
  159. 'showotarmsg':true,
  160. 'showrbmsg':true,
  161. 'showgsmsg':true,
  162. 'showprerecmsg':true,
  163. 'showdemsg': false
  164. }
  165. };
  166. me.query(cond);
  167. },
  168. query: function(cond) {
  169. var grid = Ext.getCmp('cmdetailgrid');
  170. grid.setLoading(true);
  171. Ext.Ajax.request({
  172. url: basePath + 'fa/ars/CmQueryController/getCmDetailById.action',
  173. params: {
  174. condition: Ext.encode(cond)
  175. },
  176. callback: function(opt, s, r) {
  177. var res = Ext.decode(r.responseText);
  178. if(grid && res.data) {
  179. grid.store.loadData(res.data);
  180. }
  181. grid.setLoading(false);
  182. }
  183. });
  184. },
  185. //得到界面上够选框选择条件 并执行查找 勾选显示明细的情况
  186. getConditionDetail:function(config,url){
  187. var me = this;
  188. var cond = {
  189. 'cmid':cmid,
  190. 'yearmonth':yearmonth,
  191. 'currency':currency,
  192. 'custcode':custcode,
  193. 'chkumio':chkumio,
  194. 'config':config
  195. };
  196. me.queryDetail(cond,url);
  197. },
  198. queryDetail: function(cond,url) {
  199. var grid = Ext.getCmp('cmdetailgrid');
  200. grid.setLoading(true);
  201. Ext.Ajax.request({
  202. url: basePath + url,
  203. params: {
  204. condition: Ext.encode(cond)
  205. },
  206. callback: function(opt, s, r) {
  207. var res = Ext.decode(r.responseText);
  208. if(grid && res.data) {
  209. var store = Ext.create('Ext.data.Store', {
  210. fields:[{
  211. name: 'tb_code',
  212. type: 'string'
  213. },{
  214. name: 'tb_kind',
  215. type: 'string'
  216. },{
  217. name: 'tb_remark',
  218. type: 'string'
  219. },{
  220. name: 'tb_vouc',
  221. type: 'string'
  222. },{
  223. name: 'tb_date',
  224. type: 'string'
  225. },{
  226. name: 'tb_aramount',
  227. type: 'string'
  228. },{
  229. name: 'tb_inoutno',
  230. type: 'string'
  231. },{
  232. name: 'tb_pdno',
  233. type: 'string'
  234. },{
  235. name: 'tb_ordercode',
  236. type: 'string'
  237. },{
  238. name: 'tb_prodcode',
  239. type: 'string'
  240. },{
  241. name: 'tb_qty',
  242. type: 'string'
  243. },{
  244. name: 'tb_price',
  245. type: 'string'
  246. },{
  247. name: 'tb_rbamount',
  248. type: 'string'
  249. },{
  250. name: 'tb_aramounts',
  251. type: 'string'
  252. },{
  253. name: 'tb_rbamounts',
  254. type: 'string'
  255. },{
  256. name: 'tb_balance',
  257. type: 'string'
  258. },{
  259. name: 'tb_index',
  260. type: 'number'
  261. },{
  262. name: 'tb_id',
  263. type:'number'
  264. }],
  265. data: res.data
  266. });
  267. grid.reconfigure(store,grid.columns);
  268. }
  269. grid.setLoading(false);
  270. }
  271. });
  272. },
  273. onGridItemClick:function(selModel, record){
  274. var value = Number(record.data['tb_id']);
  275. var me = this;
  276. if(value>0){
  277. var url='', k = record.get('tb_kind'), t = record.get('tb_table');
  278. var keyField ='';
  279. var caller = '';
  280. var pfField = '';
  281. if(k == '应收发票'){
  282. url ='jsps/fa/ars/arbill.jsp?whoami=ARBill!IRMA';
  283. keyField = 'ab_id';
  284. pfField = 'abd_abid';
  285. caller = 'ARBill!IRMA';
  286. }else if(k=='收款单'){
  287. url ='jsps/fa/ars/recBalance.jsp?whoami=RecBalance!PBIL';
  288. keyField = 'rb_id';
  289. pfField = 'rbd_rbid';
  290. caller = 'RecBalance!PBIL';
  291. }else if(k=='应收退款单' && t == 'recbalance'){
  292. url ='jsps/fa/ars/recBalanceTK.jsp?whoami=RecBalance!TK';
  293. keyField = 'rb_id';
  294. pfField = 'rbd_rbid';
  295. caller = 'RecBalance!TK';
  296. }else if(k=='其它应收单'){
  297. url ='jsps/fa/ars/arbill.jsp?whoami=ARBill!OTRS';
  298. keyField = 'ab_id';
  299. pfField = 'abd_abid';
  300. caller = 'ARBill!OTRS';
  301. }else if(k=='发出商品'){
  302. url ='jsps/fa/ars/goodsSend.jsp';
  303. keyField = 'gs_id';
  304. pfField = 'gsd_gsid';
  305. caller = 'GoodsSendGs';
  306. }else if(k=='出货单'){
  307. url ='jsps/scm/reserve/prodInOut.jsp?whoami=ProdInOut!Sale';
  308. keyField = 'pi_id';
  309. pfField = 'pd_piid';
  310. caller = 'ProdInOut!Sale';
  311. }else if(k=='销售退货单'){
  312. url ='jsps/scm/reserve/prodInOut.jsp?whoami=ProdInOut!SaleReturn';
  313. keyField = 'pi_id';
  314. pfField = 'pd_piid';
  315. caller = 'ProdInOut!SaleReturn';
  316. }else if(k=='预收款'){
  317. url ='jsps/fa/ars/preRec.jsp?whoami=PreRec!Ars!DERE';
  318. keyField = 'pr_id';
  319. pfField = 'prd_prid';
  320. caller = 'PreRec!Ars!DERE';
  321. }else if(k=='预收冲应收'){
  322. url ='jsps/fa/ars/recBalancePRDetail.jsp?whoami=RecBalance!PTAR';
  323. keyField = 'rb_id';
  324. pfField = 'rbd_rbid';
  325. caller = 'RecBalance!PTAR';
  326. }else if(k=='冲应收款'){
  327. url ='jsps/fa/ars/recBalance.jsp?whoami=RecBalance!IMRE';
  328. keyField = 'rb_id';
  329. pfField = 'rbd_rbid';
  330. caller = 'RecBalance!IMRE';
  331. }else if(k=='应收款转销' && t == 'recbalance'){
  332. url ='jsps/fa/ars/recBalance.jsp?whoami=RecBalance!ARRM';
  333. keyField = 'rb_id';
  334. pfField = 'rbd_rbid';
  335. caller = 'RecBalance!ARRM';
  336. }else if(k=='应收款转销' && t == 'arbill'){
  337. url ='jsps/fa/ars/arbill.jsp?whoami=ARBill!IRMA';
  338. keyField = 'ab_id';
  339. pfField = 'abd_abid';
  340. caller = 'ARBill!IRMA';
  341. }else if(k=='应收冲应付' && t == 'recbalance'){
  342. url ='jsps/fa/ars/recBalanceAP.jsp?whoami=RecBalance!RRCW';
  343. keyField = 'rb_id';
  344. pfField = 'rbd_rbid';
  345. caller = 'RecBalance!RRCW';
  346. }
  347. var formCondition = keyField + "IS" + value ;
  348. var gridCondition = pfField + "IS" + value;
  349. var panelId = caller + keyField + "_" + value + gridCondition;
  350. var panel = Ext.getCmp(panelId);
  351. var main = parent.Ext.getCmp("content-panel");
  352. if(!main){
  353. main = parent.parent.Ext.getCmp("content-panel");
  354. }
  355. if(!panel){
  356. var title = "";
  357. if (value.toString().length>4) {
  358. title = value.toString().substring(value.toString().length-4);
  359. } else {
  360. title = value;
  361. }
  362. var myurl = '';
  363. if(me.BaseUtil.contains(url, '?', true)){
  364. myurl = url + '&formCondition='+formCondition+'&gridCondition='+gridCondition;
  365. } else {
  366. myurl = url + '?formCondition='+formCondition+'&gridCondition='+gridCondition;
  367. }
  368. myurl += "&datalistId=" + main.getActiveTab().id;
  369. panel = {
  370. title :record.data['tb_kind']+'('+title+')',
  371. tag : 'iframe',
  372. tabConfig:{tooltip:me.BaseUtil.getActiveTab().tabConfig.tooltip+'('+keyField + "=" + value+')'},
  373. frame : true,
  374. border : false,
  375. layout : 'fit',
  376. iconCls : 'x-tree-icon-query',
  377. html : '<iframe id="iframe_maindetail_'+caller+"_"+value+'" src="' + myurl + '" height="100%" width="100%" frameborder="0" style="border-width: 0px;padding: 0px;" scrolling="auto"></iframe>',
  378. closable : true,
  379. listeners : {
  380. close : function(){
  381. if(!main){
  382. main = parent.parent.Ext.getCmp("content-panel");
  383. }
  384. main.setActiveTab(main.getActiveTab().id);
  385. }
  386. }
  387. };
  388. this.openTab(panel, panelId);
  389. }else{
  390. main.setActiveTab(panel);
  391. }
  392. }
  393. },
  394. openTab : function (panel,id){
  395. var o = (typeof panel == "string" ? panel : id || panel.id);
  396. var main = parent.Ext.getCmp("content-panel");
  397. /*var tab = main.getComponent(o); */
  398. if(!main) {
  399. main =parent.parent.Ext.getCmp("content-panel");
  400. }
  401. var tab = main.getComponent(o);
  402. if (tab) {
  403. main.setActiveTab(tab);
  404. } else if(typeof panel!="string"){
  405. panel.id = o;
  406. var p = main.add(panel);
  407. main.setActiveTab(p);
  408. }
  409. }
  410. // getCurrentStore: function(value){
  411. // var grid = Ext.getCmp('cmdetailgrid');
  412. // var items = grid.store.data.items;
  413. // var array = new Array();
  414. // var o = null;
  415. // Ext.each(items, function(item, index){
  416. // o = new Object();
  417. // o.selected = false;
  418. // if(index == 0){
  419. // o.prev = null;
  420. // } else {
  421. // o.prev = items[index-1].data[keyField];
  422. // }
  423. // if(index == items.length - 1){
  424. // o.next = null;
  425. // } else {
  426. // o.next = items[index+1].data[keyField];
  427. // }
  428. // var v = item.data[keyField];
  429. // o.value = v;
  430. // if(v == value)
  431. // o.selected = true;
  432. // array.push(o);
  433. // });
  434. // return array;
  435. // }
  436. });