ScmTurnAppropriationOut.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. /**
  2. * 转拨出库按钮
  3. */
  4. Ext.define('erp.view.core.button.ScmTurnAppropriationOut',{
  5. extend: 'Ext.Button',
  6. alias: 'widget.erpScmTurnAppropriationOut',
  7. iconCls: 'x-button-icon-submit',
  8. cls: 'x-btn-gray',
  9. id: 'erpScmTurnAppropriationOut',
  10. text: $I18N.common.button.erpScmTurnAppropriationOut,
  11. style: {
  12. marginLeft: '10px'
  13. },
  14. width: 120,
  15. initComponent : function(){
  16. this.callParent(arguments);
  17. },
  18. handler:function(url){
  19. var grid = Ext.getCmp('batchDealGridPanel');
  20. var items = grid.selModel.getSelection();
  21. Ext.each(items, function(item, index){
  22. if(this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  23. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0){
  24. item.index = this.data[grid.keyField];
  25. grid.multiselected.push(item);
  26. }
  27. });
  28. var form = Ext.getCmp('dealform');
  29. var records = Ext.Array.unique(grid.multiselected);
  30. if(records.length > 0){
  31. if('common/form/vastPost.action' == url) {
  32. this.vastPost(grid, records, url);
  33. return;
  34. }
  35. var params = new Object();
  36. params.id=new Array();
  37. params.caller = caller;
  38. var data = new Array();
  39. var bool = false;
  40. Ext.each(records, function(record, index){
  41. var f = form.fo_detailMainKeyField;
  42. if((grid.keyField && this.data[grid.keyField] != null && this.data[grid.keyField] != ''
  43. && this.data[grid.keyField] != '0' && this.data[grid.keyField] != 0)
  44. ||(f && this.data[f] != null && this.data[f] != ''
  45. && this.data[f] != '0' && this.data[f] != 0)){
  46. bool = true;
  47. var o = new Object();
  48. if(grid.keyField){
  49. o[grid.keyField] = record.data[grid.keyField];
  50. } else {
  51. params.id[index] = record.data[form.fo_detailMainKeyField];
  52. }
  53. if(grid.toField){
  54. Ext.each(grid.toField, function(f, index){
  55. var v = Ext.getCmp(f).value;
  56. if(v != null && v.toString().trim() != '' && v.toString().trim() != 'null'){
  57. o[f] = v;
  58. } else {
  59. o[f] = '';
  60. }
  61. });
  62. }
  63. if(grid.necessaryFields){
  64. Ext.each(grid.necessaryFields, function(f, index){
  65. var v = record.data[f];
  66. if(Ext.isDate(v)){
  67. v = Ext.Date.toString(v);
  68. }
  69. if(Ext.isNumber(v)){
  70. v = (v).toString();
  71. }
  72. o[f] = v;
  73. });
  74. }
  75. data.push(o);
  76. }
  77. });
  78. if(bool){
  79. params.data = unescape(Ext.JSON.encode(data).replace(/\\/g,"%"));;
  80. var main = parent.Ext.getCmp("content-panel");
  81. main.getActiveTab().setLoading(true);//loading...
  82. Ext.Ajax.request({
  83. url : basePath + 'scm/sale/turnProdOut.action?type=ProdInOut!AppropriationOut',
  84. params: params,
  85. method : 'post',
  86. timeout: 6000000,
  87. callback : function(options,success,response){
  88. main.getActiveTab().setLoading(false);
  89. var localJson = new Ext.decode(response.responseText);
  90. if(localJson.exceptionInfo){
  91. var str = localJson.exceptionInfo;
  92. if(str.trim().substr(0, 12) == 'AFTERSUCCESS'){
  93. str = str.replace('AFTERSUCCESS', '');
  94. grid.multiselected = new Array();
  95. Ext.getCmp('dealform').onQuery();
  96. }
  97. showError(str);return;
  98. }
  99. if(localJson.success){
  100. if(localJson.log){
  101. showMessage("提示", localJson.log);
  102. }
  103. Ext.Msg.alert("提示", "处理成功!", function(){
  104. grid.multiselected = new Array();
  105. Ext.getCmp('dealform').onQuery();
  106. });
  107. }
  108. }
  109. });
  110. } else {
  111. showError("没有需要处理的数据!");
  112. }
  113. }
  114. }
  115. });