SendNotifyChange.js 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. Ext.QuickTips.init();
  2. Ext.define('erp.controller.scm.sale.SendNotifyChange', {
  3. extend: 'Ext.app.Controller',
  4. requires: ['erp.util.FormUtil', 'erp.util.GridUtil', 'erp.util.BaseUtil'],
  5. views:[
  6. 'core.form.Panel','scm.sale.SendNotifyChange','core.grid.Panel2','core.toolbar.Toolbar','core.form.MultiField',
  7. 'core.button.Save','core.button.Add','core.button.Submit','core.button.Print',
  8. 'core.button.ResAudit','core.button.Audit','core.button.Close','core.button.Delete','core.button.Update',
  9. 'core.button.DeleteDetail','core.button.ResSubmit',
  10. 'core.trigger.DbfindTrigger','core.trigger.TextAreaTrigger','core.form.YnField'
  11. ],
  12. init:function(){
  13. var me = this;
  14. this.FormUtil = Ext.create('erp.util.FormUtil');
  15. this.GridUtil = Ext.create('erp.util.GridUtil');
  16. this.BaseUtil = Ext.create('erp.util.BaseUtil');
  17. this.control({
  18. 'erpGridPanel2': {
  19. itemclick: this.onGridItemClick
  20. },
  21. 'field[name=sc_sncode]': {
  22. afterrender:function(f){
  23. f.setFieldStyle({
  24. 'color': 'blue'
  25. });
  26. f.focusCls = 'mail-attach';
  27. var c = Ext.Function.bind(me.openInvoice, me);
  28. Ext.EventManager.on(f.inputEl, {
  29. mousedown : c,
  30. scope: f,
  31. buffer : 100
  32. });
  33. }
  34. },
  35. 'erpSaveButton': {
  36. click: function(btn){
  37. var form = me.getForm(btn);
  38. var grid = Ext.getCmp('grid'), items = grid.store.data.items,
  39. bool = true;
  40. Ext.Array.each(items, function(item){
  41. if(!Ext.isEmpty(item.data['scd_snddetno'])){
  42. if (item.data['scd_qty'] > item.data['scd_oldqty']) {
  43. bool = false;
  44. showError('明细表第' + item.data['scd_detno'] + '行的新数量大于原数量');
  45. return;
  46. }
  47. if(item.data['scd_qty']<item.data['snd_yqty']){
  48. showError('明细表第' + item.data['scd_detno'] + '行新数量小于已转数量');
  49. bool = false;
  50. return;
  51. }
  52. }
  53. });
  54. if(bool){
  55. if(Ext.getCmp(form.codeField).value == null || Ext.getCmp(form.codeField).value == ''){
  56. me.BaseUtil.getRandomNumber();//自动添加编号
  57. }
  58. this.FormUtil.beforeSave(this);
  59. }
  60. }
  61. },
  62. 'erpDeleteButton' : {
  63. click: function(btn){
  64. me.FormUtil.onDelete(Ext.getCmp('sc_id').value);
  65. }
  66. },
  67. 'erpUpdateButton': {
  68. click: function(btn){
  69. var grid = Ext.getCmp('grid'), items = grid.store.data.items,
  70. bool = true;
  71. Ext.Array.each(items, function(item){
  72. if(!Ext.isEmpty(item.data['scd_snddetno'])){
  73. if (item.data['scd_qty'] > item.data['scd_oldqty']) {
  74. bool = false;
  75. showError('明细表第' + item.data['scd_detno'] + '行的新数量大于原数量');
  76. return;
  77. }
  78. if(item.data['scd_qty']<item.data['snd_yqty']){
  79. showError('明细表第' + item.data['scd_detno'] + '行新数量小于已转数量');
  80. bool = false;
  81. return;
  82. }
  83. }
  84. });
  85. if(bool){
  86. this.FormUtil.onUpdate(this);
  87. }
  88. }
  89. },
  90. 'erpAddButton': {
  91. click: function(){
  92. me.FormUtil.onAdd('addSendNotifyChange', '新增出货通知变更单', 'jsps/scm/sale/sendNotifyChange.jsp');
  93. }
  94. },
  95. 'erpCloseButton': {
  96. click: function(btn){
  97. me.FormUtil.beforeClose(me);
  98. }
  99. },
  100. 'erpSubmitButton': {
  101. afterrender: function(btn){
  102. var status = Ext.getCmp('sc_statuscode');
  103. if(status && status.value != 'ENTERING'){
  104. btn.hide();
  105. }
  106. },
  107. click: function(btn){
  108. var grid = Ext.getCmp('grid');
  109. var items = grid.store.data.items;
  110. var bool = true;
  111. Ext.each(items, function(item){
  112. if(!Ext.isEmpty(item.data['scd_snddetno'])){
  113. if (item.data['scd_qty'] > item.data['scd_oldqty']) {
  114. bool = false;
  115. showError('明细表第' + item.data['scd_detno'] + '行的新数量大于原数量');
  116. return;
  117. }
  118. if(item.data['scd_qty']<item.data['snd_yqty']){
  119. showError('明细表第' + item.data['scd_detno'] + '行新数量小于已转数量');
  120. bool = false;
  121. return;
  122. }
  123. }
  124. });
  125. if(bool){
  126. me.FormUtil.onSubmit(Ext.getCmp('sc_id').value);
  127. }
  128. }
  129. },
  130. 'erpResSubmitButton': {
  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.onResSubmit(Ext.getCmp('sc_id').value);
  139. }
  140. },
  141. 'erpAuditButton': {
  142. afterrender: function(btn){
  143. var status = Ext.getCmp('sc_statuscode');
  144. if(status && status.value != 'COMMITED'){
  145. btn.hide();
  146. }
  147. },
  148. click: function(btn){
  149. var grid = Ext.getCmp('grid');
  150. var items = grid.store.data.items;
  151. var bool = true;
  152. Ext.each(items, function(item){
  153. if(!Ext.isEmpty(item.data['scd_snddetno'])){
  154. if (item.data['scd_qty'] > item.data['scd_oldqty']) {
  155. bool = false;
  156. showError('明细表第' + item.data['scd_detno'] + '行的新数量大于原数量');
  157. return;
  158. }
  159. if(item.data['scd_qty']<item.data['snd_yqty']){
  160. showError('明细表第' + item.data['scd_detno'] + '行新数量小于已转数量');
  161. bool = false;
  162. return;
  163. }
  164. }
  165. });
  166. if(bool)
  167. me.FormUtil.onAudit(Ext.getCmp('sc_id').value);
  168. }
  169. },
  170. 'erpResAuditButton': {
  171. afterrender: function(btn){
  172. var status = Ext.getCmp('sc_statuscode');
  173. if(status && status.value != 'AUDITED'){
  174. btn.hide();
  175. }
  176. },
  177. click: function(btn){
  178. me.FormUtil.onResAudit(Ext.getCmp('sc_id').value);
  179. }
  180. },
  181. /*'erpPrintButton': {
  182. click:function(btn){
  183. var reportName="PURCChange";
  184. var condition='{PurchaseChange.sc_id}='+Ext.getCmp('pc_id').value+'';
  185. var id=Ext.getCmp('pc_id').value;
  186. me.FormUtil.onwindowsPrint(id,reportName,condition);
  187. }
  188. },*/
  189. 'dbfindtrigger[name=scd_snddetno]': {
  190. afterrender: function(t){
  191. t.gridKey = "sc_sncode";
  192. t.mappinggirdKey = "sn_code";
  193. t.gridErrorMessage = "请先选择出货通知!";
  194. }
  195. },
  196. 'dbfindtrigger[name=scd_newpaymentscode]': {
  197. focus: function(t){
  198. t.setHideTrigger(false);
  199. t.setReadOnly(false);//用disable()可以,但enable()无效
  200. var grid = Ext.getCmp('grid');
  201. var column = grid.down('gridcolumn[dataIndex=scd_newpaymentscode]');
  202. if(column && column.dbfind && column.dbfind.indexOf('CustomerPayments') > -1) {
  203. var record = grid.selModel.getLastSelected();
  204. var code = record.data['scd_cuid'];
  205. if(code == null || code == ''){
  206. showError("请先选择订单单号!");
  207. t.setHideTrigger(true);
  208. t.setReadOnly(true);
  209. } else {
  210. t.dbBaseCondition = "cp_cuid='" + code + "'";
  211. }
  212. }
  213. }
  214. }
  215. });
  216. },
  217. onGridItemClick: function(selModel, record){//grid行选择
  218. this.GridUtil.onGridItemClick(selModel, record);
  219. },
  220. getForm: function(btn){
  221. return btn.ownerCt.ownerCt;
  222. },
  223. openInvoice: function(e, el, obj) {
  224. var f = obj.scope, form = f.ownerCt,
  225. i = form.down('#sn_id');
  226. if(i && i.value) {
  227. url = 'jsps/scm/sale/sendNotify.jsp?formCondition=sn_idIS' + i.value + '&gridCondition=snd_snidIS' + i.value;
  228. openUrl(url);
  229. }
  230. }
  231. });