Source.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.source.Source', {
  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.form.Panel','pm.source.Source','pm.source.SourceGrid','core.button.Load',
  9. 'pm.source.SourceForm','core.button.LoadingSource','common.datalist.Toolbar','core.form.ConDateField',
  10. 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
  11. 'core.button.Upload','core.button.Update','core.button.Delete','core.button.ResAudit','core.button.DeleteDetail',
  12. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.form.YnField'
  13. ],
  14. init:function(){
  15. var me=this;
  16. this.control({
  17. 'erpSaveButton': {
  18. click: function(btn){
  19. this.save(this);
  20. }
  21. },
  22. /*'gridscroller':{
  23. beforerender:function(scroller){
  24. console.log(scroller.dock);
  25. if(scroller.dock=="bottom"){
  26. scroller.padding=" 0 0 0 100";
  27. scroller.height=10;
  28. }
  29. }
  30. },*/
  31. 'button[id=querybutton]':{
  32. click:function(btn){
  33. var rang=Ext.getCmp('condate').value;
  34. if(rang&&rang!=null){
  35. if(caller.indexOf('ForeCast')>0){
  36. condition = " ( sd_startdate "+rang+") AND ";
  37. }else condition = "( sd_delivery "+rang+" ) AND ";
  38. }
  39. var grid=Ext.getCmp('grid');
  40. grid.getCount(caller,condition);
  41. }
  42. },
  43. 'combo[id=type]':{
  44. select:function(combo,records,eOpts){
  45. var value=combo.value;
  46. var grid=Ext.getCmp('grid');
  47. var checked=Ext.getCmp('detail').checked;
  48. if(checked){
  49. caller=value.substring(0,value.length-1)+'D';
  50. }else {
  51. caller=value;
  52. }
  53. var rang=Ext.getCmp('condate').value;
  54. if(rang&&rang!=null){
  55. if(caller.indexOf('ForeCast')>0){
  56. condition = " ( sd_startdate "+rang+") AND ";
  57. }else condition = "( sd_delivery "+rang+" ) AND ";
  58. }
  59. grid.getCount(caller,condition);
  60. }
  61. },
  62. 'condatefield[id=condate]':{
  63. afterrender:function(date){
  64. date.combo.value = 7;
  65. date.setDateFieldValue(7);
  66. date.combo.setRawValue('自定义');
  67. }
  68. },
  69. 'checkbox':{
  70. change:function(checkbox){
  71. var grid=Ext.getCmp('grid');
  72. var type=Ext.getCmp('type').getValue();
  73. if(checkbox.checked){
  74. if(type=='MRPSSaleM'){
  75. caller='MRPSSaleD';
  76. }else {
  77. caller='MRPSForeCastD';
  78. }
  79. } else{
  80. caller=type;
  81. }
  82. var rang=Ext.getCmp('condate').value;
  83. if(rang&&rang!=null){
  84. if(caller.indexOf('ForeCast')>0){
  85. condition = " ( sd_startdate "+rang+") AND ";
  86. }else condition = "( sd_delivery "+rang+" ) AND ";
  87. }
  88. grid.getCount(caller,condition);
  89. }
  90. },
  91. 'dbfindtrigger': {
  92. change: function(trigger){
  93. if(trigger.name == 'team_prjid'){
  94. this.changeGrid(trigger);
  95. }
  96. }
  97. },
  98. 'button[id=load]':{
  99. click : function(btn) {
  100. var grid = Ext.getCmp('grid');
  101. var form = Ext.getCmp('sourceform');
  102. var records = grid.getMultiSelected();
  103. var detailcaller = '';
  104. if (caller == 'MRPSSaleM') {
  105. detailcaller = 'MRPSSaleD';
  106. } else if (caller == 'MRPSForeCastM') {
  107. detailcaller = 'MRPSForeCastD';
  108. }
  109. var keyField = "";
  110. if (caller == 'MRPSSaleM')
  111. keyField = 'sa_id';
  112. else if (caller == 'MRPSSaleD')
  113. keyField = 'sd_id';
  114. else if (caller == 'MRPSForeCastM')
  115. keyField = 'sf_id';
  116. else if (caller == 'MRPSForeCastD')
  117. keyField = 'sd_id';
  118. if (records.length > 0) {
  119. var Store = new Array();
  120. var gridStore = new Array();
  121. var dd;
  122. Ext.each(records, function(record, index) {
  123. dd = new Object();
  124. dd[keyField] = record.data[keyField];
  125. Store[index] = Ext.JSON.encode(dd);
  126. });
  127. var main = parent.Ext.getCmp("content-panel");
  128. var panel = parent.Ext.getCmp(getUrlParam("panelId"));
  129. var grid = panel.currentGrid;
  130. var items = grid.getStore().data.items;
  131. var count = 0;
  132. if (items.length > 0) {
  133. Ext.each(items, function(item, index) {
  134. if (item.data.md_prodcode != '') {
  135. gridStore[index] = Ext.JSON
  136. .encode(item.data);
  137. count++;
  138. }
  139. });
  140. }
  141. main.getActiveTab().setLoading(true);
  142. Ext.Ajax.request({
  143. url : basePath + 'pm/source/LoadSource.action',
  144. params : {
  145. keyValue : keyValue,
  146. mainCode : mainCode,
  147. caller : caller,
  148. detailcaller : detailcaller,
  149. Store : unescape(Store.toString().replace(
  150. /\\/g, "%")),
  151. gridStore : unescape(gridStore.toString()
  152. .replace(/\\/g, "%")),
  153. kind : kind
  154. ,
  155. },
  156. method : 'post',
  157. callback : function(options, success, response) {
  158. main.getActiveTab().setLoading(false);
  159. var localJson = new Ext.decode(response.responseText);
  160. if (localJson.exceptionInfo) {
  161. showError(localJson.exceptionInfo);
  162. return "";
  163. }
  164. if (localJson.success) {
  165. Ext.Msg.alert("提示", "处理成功!", function() {
  166. me.BaseUtil.getActiveTab()
  167. .close();
  168. main.setActiveTab(panel);
  169. });
  170. }
  171. }
  172. });
  173. } else {
  174. showError('你未选择任何载入数据!');
  175. return
  176. }
  177. }
  178. },
  179. 'erpCloseButton': {
  180. click: function(btn){
  181. this.FormUtil.beforeClose(this);
  182. }
  183. },
  184. 'erpUpdateButton': {
  185. click: function(btn){
  186. }
  187. },
  188. 'erpDeleteButton': {
  189. click: function(btn){
  190. this.FormUtil.onDelete(Ext.getCmp('team_id').value);
  191. }
  192. },
  193. 'erpAddButton': {
  194. click: function(){
  195. me.FormUtil.onAdd('addMpsMain', '计划', 'jsps/plm/team/team.jsp');
  196. }
  197. },
  198. });
  199. },
  200. onGridItemClick: function(selModel, record){//grid行选择
  201. this.GridUtil.onGridItemClick(selModel, record);
  202. },
  203. getForm: function(btn){
  204. return btn.ownerCt.ownerCt;
  205. }
  206. });