SaleDown.js 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.b2b.sale.SaleDown', {
  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','b2b.sale.SaleDown','core.grid.Panel2','core.toolbar.Toolbar','core.form.FileField','core.form.MultiField','core.button.TurnSale',
  9. 'core.button.Save','core.button.Update','core.button.Add','core.button.Submit','core.button.Print','core.button.Upload',
  10. 'core.button.Audit','core.button.Close','core.button.Delete','core.button.DeleteDetail','core.button.ResSubmit','core.button.TurnCustomer',
  11. 'core.button.ResAudit', 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField','core.grid.YnColumn'
  12. ],
  13. init:function(){
  14. var me = this;
  15. me.alloweditor = true;
  16. this.control({
  17. 'erpGridPanel2': {
  18. afterrender: function(grid){
  19. var status = Ext.getCmp('sa_statuscode');
  20. if(status && status.value != 'ENTERING' && status.value != 'COMMITED'){
  21. Ext.each(grid.columns, function(c){
  22. c.setEditor(null);
  23. });
  24. }
  25. }
  26. },
  27. 'erpUpdateButton': {
  28. afterrender: function(btn){
  29. var status = Ext.getCmp('sa_statuscode');
  30. if(status && status.value == 'TURNSA'){
  31. btn.hide();
  32. }
  33. },
  34. click: function(btn){
  35. this.FormUtil.onUpdate(this);
  36. }
  37. },
  38. 'erpCloseButton': {
  39. click: function(btn){
  40. me.FormUtil.beforeClose(me);
  41. }
  42. },
  43. 'erpTurnCustomerButton': {
  44. beforerender:function(btn){
  45. btn.setText("默认回复");
  46. },
  47. click: function(btn) {
  48. var me = this.FormUtil;
  49. var form = Ext.getCmp('form');
  50. Ext.Ajax.request({
  51. url : basePath + form.replyUrl,
  52. params: {
  53. id: Ext.getCmp('sa_id').value,
  54. caller:caller
  55. },
  56. method : 'post',
  57. callback : function(options,success,response){
  58. me.setLoading(false);
  59. var localJson = new Ext.decode(response.responseText);
  60. if(localJson.success){
  61. //audit成功后刷新页面进入可编辑的页面
  62. showMessage('提示', '回复成功!', 1000);
  63. window.location.reload();
  64. } else {
  65. if(localJson.exceptionInfo){
  66. var str = localJson.exceptionInfo;
  67. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){//特殊情况:操作成功,但是出现警告,允许刷新页面
  68. str = str.replace('AFTERSUCCESS', '');
  69. showMessage("提示", str, 1000);
  70. auditSuccess(function(){
  71. window.location.reload();
  72. });
  73. } else {
  74. showError(str);return;
  75. }
  76. }
  77. }
  78. }
  79. });
  80. }
  81. },
  82. 'erpPrintButton': {
  83. click: function(btn){
  84. me.FormUtil.onPrint(Ext.getCmp('sa_id').value);
  85. }
  86. },
  87. 'erpTurnSaleButton':{
  88. click: function(btn){
  89. var said=Ext.getCmp('sa_id').value;
  90. Ext.Ajax.request({
  91. url: basePath + 'b2b/sale/turnSale.action',
  92. params: {
  93. id: said,
  94. caller: caller
  95. },
  96. method: 'post',
  97. callback: function(opt, s, res) {
  98. var r = new Ext.decode(res.responseText);
  99. if (r.success) {
  100. showMessage('提示', '转销售订单成功!', 1000);
  101. var id = r.id;
  102. var url = 'jsps/scm/sale/sale.jsp?whoami=Sale&formCondition=sa_idIS' + id + '&gridCondition=sd_saidIS' + id;
  103. me.FormUtil.onAdd('Sale' + id, '销售订单' + id, url);
  104. } else if (r.exceptionInfo) {
  105. showError(r.exceptionInfo);
  106. } else {
  107. saveFailure();
  108. }
  109. }
  110. });
  111. }
  112. },
  113. /**
  114. * 更改供应商回复信息
  115. */
  116. '#updatevendorbackInfo': {
  117. click: function(btn) {
  118. var record = btn.ownerCt.ownerCt.getSelectionModel().getLastSelected();
  119. me.UpdateVendorInfo(record);
  120. }
  121. },
  122. });
  123. },
  124. onGridItemClick: function(selModel, record){//grid行选择
  125. if (record.data.sd_id != 0 && record.data.sd_id != null && record.data.sd_id != '') {
  126. var btn = Ext.getCmp('updatevendorbackInfo');
  127. btn && btn.setDisabled(false);
  128. }
  129. this.GridUtil.onGridItemClick(selModel, record);
  130. },
  131. UpdateVendorInfo: function(record) {
  132. win = this.getVendorInfoWindow(record);
  133. win.show();
  134. },
  135. getVendorInfoWindow: function(record) {
  136. var me = this;
  137. var date = record.data.sd_replydate;
  138. /*console.log(date);
  139. if (date != null) {
  140. date = Ext.Date.parse(date, 'Y-m-d');
  141. }
  142. console.log("A"+date);*/
  143. var replyqty=record.data.sd_replyqty;
  144. var qty=record.data.sd_qty;
  145. var num=qty-replyqty;
  146. return Ext.create('Ext.window.Window', {
  147. width: 430,
  148. height: 250,
  149. closeAction: 'destroy',
  150. cls: 'custom-blue',
  151. title: '<h1>回复信息</h1>',
  152. layout: {
  153. type: 'vbox'
  154. },
  155. items: [{
  156. width: '100%',
  157. },
  158. {
  159. margin: '5 0 0 5',
  160. xtype: 'datefield',
  161. fieldLabel: '回复交期',
  162. name: 'DELIVERYREPLY',
  163. format: 'Y-m-d',
  164. value: date,
  165. id: 'DELIVERYREPLY'
  166. },
  167. {
  168. margin: '5 0 0 5',
  169. xtype: 'numberfield',
  170. fieldLabel: '回复数量(剩余)',
  171. name: 'QTYREPLY',
  172. hideTrigger: true,
  173. value: num,
  174. id: 'QTYREPLY'
  175. },
  176. {
  177. margin: '5 0 0 5',
  178. xtype: 'numberfield',
  179. fieldLabel: '已回复数',
  180. name: 'YREPLY',
  181. hideTrigger: true,
  182. editable:false,
  183. value: replyqty,
  184. id: 'YREPLY'
  185. },
  186. {
  187. margin: '5 0 0 5',
  188. xtype: 'textfield',
  189. columnidth: 0.4,
  190. fieldLabel: '回复明细',
  191. name: 'replydetail',
  192. value:record.data.sd_replydetail,
  193. id: 'replydetail'
  194. }
  195. ],
  196. buttonAlign: 'center',
  197. buttons: [{
  198. xtype: 'button',
  199. text: '保存',
  200. width: 60,
  201. iconCls: 'x-button-icon-save',
  202. handler: function(btn) {
  203. var w = btn.up('window');
  204. me.saveVendorInfo(w);
  205. win.close();
  206. win.destroy();
  207. }
  208. },
  209. {
  210. xtype: 'button',
  211. columnWidth: 0.1,
  212. text: '关闭',
  213. width: 60,
  214. iconCls: 'x-button-icon-close',
  215. margin: '0 0 0 10',
  216. handler: function(btn) {
  217. var win = btn.up('window');
  218. win.close();
  219. win.destroy();
  220. }
  221. }]
  222. });
  223. },
  224. saveVendorInfo: function(w) {
  225. var deliveryreply = w.down('field[name=DELIVERYREPLY]').getValue();
  226. var qty = w.down('field[name=QTYREPLY]').getValue();
  227. grid = Ext.getCmp('grid'),
  228. record = grid.getSelectionModel().getLastSelected();
  229. if (!deliveryreply && !qty && !Ext.getCmp('replydetail').value) {
  230. showError('请先设置回复信息');
  231. return;
  232. } else {
  233. var dd = {
  234. sd_id: record.data.sd_id,
  235. sd_replyqty: qty ? qty: 0,
  236. sd_replydate: deliveryreply ? Ext.Date.format(deliveryreply, 'Y-m-d') : null,
  237. sd_replydetail:Ext.getCmp('replydetail').value
  238. };
  239. Ext.Ajax.request({
  240. url: basePath + 'b2b/sale/replyInfo.action',
  241. params: {
  242. data: unescape(Ext.JSON.encode(dd)),
  243. caller: caller
  244. },
  245. method: 'post',
  246. callback: function(opt, s, res) {
  247. var r = new Ext.decode(res.responseText);
  248. if (r.success) {
  249. grid.GridUtil.loadNewStore(grid, {
  250. caller: caller,
  251. condition: gridCondition
  252. });
  253. showMessage('提示', '更新成功!', 1000);
  254. } else if (r.exceptionInfo) {
  255. showError(r.exceptionInfo);
  256. } else {
  257. saveFailure();
  258. }
  259. }
  260. });
  261. }
  262. },
  263. getForm: function(btn){
  264. return btn.ownerCt.ownerCt;
  265. }
  266. });