SaleForecastChange.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.pm.mps.SaleForecastChange', {
  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.mps.SaleForecastChange','core.grid.Panel2','core.toolbar.Toolbar',
  9. 'core.button.Add','core.button.Submit','core.button.Audit','core.button.Save','core.button.Close','core.button.Print',
  10. 'core.button.Upload','core.button.Update','core.button.Delete','core.button.ResAudit','core.button.DeleteDetail','core.button.ResSubmit',
  11. 'core.trigger.TextAreaTrigger','core.trigger.DbfindTrigger','core.trigger.MultiDbfindTrigger'
  12. ],
  13. init:function(){
  14. var me=this;
  15. this.control({
  16. 'erpGridPanel2': {
  17. itemclick: function(selModel, record){
  18. if(!Ext.getCmp('grid').readOnly){
  19. this.onGridItemClick(selModel, record);
  20. }
  21. }
  22. },
  23. 'field[name=sc_sfcode]': {
  24. afterrender:function(f){
  25. f.setFieldStyle({
  26. 'color': 'blue'
  27. });
  28. f.focusCls = 'mail-attach';
  29. var c = Ext.Function.bind(me.openInvoice, me);
  30. Ext.EventManager.on(f.inputEl, {
  31. mousedown : c,
  32. scope: f,
  33. buffer : 100
  34. });
  35. }
  36. },
  37. 'erpSaveButton': {
  38. click: function(btn){
  39. this.save(this);
  40. }
  41. },
  42. 'dbfindtrigger[name=scd_pddetno]': {
  43. afterrender: function(t){
  44. t.gridKey = "sc_sfcode";
  45. t.mappinggirdKey = "sf_code";
  46. t.gridErrorMessage = "请先选择预测单!";
  47. }
  48. },
  49. 'multidbfindtrigger[name=scd_pddetno]': {
  50. afterrender: function(t){
  51. t.gridKey = "sc_sfcode";
  52. t.mappinggirdKey = "sf_code";
  53. t.gridErrorMessage = "请先选择预测单!";
  54. }
  55. },
  56. 'dbfindtrigger[name=sc_sfcode]':{
  57. afterrender:function(t){
  58. var code=getUrlParam('code');
  59. if(code) t.setValue(code);
  60. }
  61. },
  62. 'erpCloseButton': {
  63. click: function(btn){
  64. this.FormUtil.beforeClose(this);
  65. }
  66. },
  67. 'erpUpdateButton': {
  68. click: function(btn){
  69. var grid = Ext.getCmp('grid'), items = grid.store.data.items, bool = true;
  70. Ext.Array.each(items, function(item){
  71. if(!Ext.isEmpty(item.data['scd_prodcode'])){
  72. if(Ext.isEmpty(item.data['scd_newdelivery'])){
  73. item.set('scd_newdelivery', Ext.getCmp('scd_olddelivery'));
  74. }
  75. if(Ext.isEmpty(item.data['scd_newenddate'])){
  76. item.set('scd_newenddate', Ext.getCmp('scd_oldenddate'));
  77. }
  78. }
  79. });
  80. if(bool)
  81. this.FormUtil.onUpdate(this);
  82. }
  83. },
  84. 'erpDeleteButton': {
  85. click: function(btn){
  86. this.FormUtil.onDelete(Ext.getCmp('sc_id').value);
  87. }
  88. },
  89. 'erpAddButton': {
  90. click: function(){
  91. me.FormUtil.onAdd('addSaleForecastChange', '新增销售预测变更单', 'jsps/pm/mps/saleForecastChange.jsp');
  92. }
  93. },
  94. 'erpSubmitButton': {
  95. afterrender: function(btn){
  96. var status = Ext.getCmp("sc_statuscode");
  97. if(status && status.value != 'ENTERING'){
  98. btn.hide();
  99. }
  100. },
  101. click: function(btn){
  102. var grid = Ext.getCmp('grid'), items = grid.store.data.items, bool = true;
  103. Ext.Array.each(items, function(item){
  104. if(!Ext.isEmpty(item.data['scd_prodcode'])){
  105. if(!Ext.isEmpty(item.data['scd_prodcode'])){
  106. if(Ext.isEmpty(item.data['scd_newdelivery'])){
  107. item.set('scd_newdelivery', Ext.getCmp('scd_olddelivery'));
  108. }
  109. if(Ext.isEmpty(item.data['scd_newenddate'])){
  110. item.set('scd_newenddate', Ext.getCmp('scd_oldenddate'));
  111. }
  112. }
  113. }
  114. });
  115. if(bool)
  116. me.FormUtil.onSubmit(Ext.getCmp("sc_id").value);
  117. }
  118. },
  119. 'erpResSubmitButton': {
  120. afterrender: function(btn){
  121. var status = Ext.getCmp("sc_statuscode");
  122. if(status && status.value != 'COMMITED'){
  123. btn.hide();
  124. }
  125. },
  126. click: function(btn){
  127. me.FormUtil.onResSubmit(Ext.getCmp("sc_id").value);
  128. }
  129. },
  130. 'erpAuditButton': {
  131. afterrender: function(btn){
  132. var status = Ext.getCmp("sc_statuscode");
  133. if(status && status.value != 'COMMITED'){
  134. btn.hide();
  135. }
  136. },
  137. click: function(btn){
  138. me.FormUtil.onAudit(Ext.getCmp("sc_id").value);
  139. }
  140. },
  141. 'erpResAuditButton': {
  142. afterrender: function(btn){
  143. var status = Ext.getCmp("sc_statuscode");
  144. if(status && status.value != 'AUDITED'){
  145. btn.hide();
  146. }
  147. },
  148. click: function(btn){
  149. me.FormUtil.onResAudit(Ext.getCmp("sc_id").value);
  150. }
  151. }
  152. });
  153. },
  154. onGridItemClick: function(selModel, record){//grid行选择
  155. this.GridUtil.onGridItemClick(selModel, record);
  156. },
  157. getForm: function(btn){
  158. return btn.ownerCt.ownerCt;
  159. },
  160. save: function(btn){
  161. var me = this;
  162. if(Ext.getCmp('sc_code').value == null || Ext.getCmp('sc_code').value == ''){
  163. me.BaseUtil.getRandomNumber();
  164. }
  165. var grid = Ext.getCmp('grid'), items = grid.store.data.items, bool = true;
  166. Ext.Array.each(items, function(item){
  167. if(!Ext.isEmpty(item.data['scd_prodcode'])){
  168. if(Ext.isEmpty(item.data['scd_newdelivery'])){
  169. item.set('scd_newdelivery', Ext.getCmp('scd_olddelivery'));
  170. }
  171. if(Ext.isEmpty(item.data['scd_newenddate'])){
  172. item.set('scd_newenddate', Ext.getCmp('scd_oldenddate'));
  173. }
  174. }
  175. });
  176. if(bool)
  177. me.FormUtil.beforeSave(me);
  178. },
  179. openInvoice: function(e, el, obj) {
  180. var f = obj.scope, form = f.ownerCt,
  181. i = form.down('#sc_sfid');
  182. if(i && i.value) {
  183. url = 'jsps/scm/sale/saleForecast.jsp?formCondition=sf_idIS' + i.value + '&gridCondition=sd_sfidIS' + i.value;
  184. openUrl(url);
  185. }
  186. }
  187. });