FormPanelController.js 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. Ext.define('saas.view.stock.make.FormPanelController', {
  2. extend: 'saas.view.core.form.FormPanelController',
  3. alias: 'controller.stock-make-formpanel',
  4. init: function (form) {
  5. var me = this;
  6. this.control({
  7. //放大镜赋值关系 以及 tpl模板
  8. 'dbfindtrigger[name=ma_whname]':{
  9. beforerender:function(f){
  10. Ext.apply(f,{
  11. dbfinds:[{
  12. from:'id',to:'ma_whid',ignore:true
  13. },{
  14. from:'wh_code',to:'ma_whcode'
  15. },{
  16. from:'wh_description',to:'ma_whname'
  17. }],
  18. }) ;
  19. }
  20. },
  21. //放大镜赋值关系 以及 tpl模板
  22. 'dbfindtrigger[name=mm_whname]':{
  23. beforerender:function(f){
  24. Ext.apply(f,{
  25. dbfinds:[{
  26. from:'id',to:'mm_whid',ignore:true
  27. },{
  28. from:'wh_code',to:'mm_whcode'
  29. },{
  30. from:'wh_description',to:'mm_whname'
  31. }]
  32. }) ;
  33. }
  34. },
  35. 'multidbfindtrigger[name=mm_prodcode]':{
  36. beforerender:function(f){
  37. Ext.apply(f,{
  38. dbfinds:[{
  39. from:'pr_code',to:'mm_prodcode'
  40. },{
  41. from:'id',to:'mm_prodid'
  42. },{
  43. from:'pr_detail',to:'pr_detail'
  44. },{
  45. from:'pr_spec',to:'pr_spec'
  46. },{
  47. from:'pr_unit',to:'pr_unit'
  48. }],
  49. }) ;
  50. }
  51. },
  52. 'bomDbfindTrigger[name=ma_prodcode]':{
  53. beforerender:function(f){
  54. Ext.apply(f,{
  55. //放大镜赋值设置
  56. dbfinds:[{
  57. from:'bo_motherid',to:'ma_prodid'
  58. },{
  59. from:'bo_mothercode',to:'ma_prodcode'
  60. },{
  61. from:'bo_mothername',to:'ma_proddetail'
  62. },{
  63. from:'pr_spec',to:'ma_prodspec'
  64. },{
  65. from:'pr_unit',to:'ma_produnit'
  66. },{
  67. from:'bo_version',to:'ma_version'
  68. }],
  69. aftertrigger:function(f,record){
  70. me.getBomData(record.data.id)
  71. }
  72. }) ;
  73. }
  74. },
  75. });
  76. },
  77. initCopyData: function(formData) {
  78. var me = this;
  79. var form = this.getView();
  80. var detailCount = form.detailCount;
  81. var main = formData.main;
  82. var auditTexts = form.auditTexts;
  83. // 单号、id清空
  84. main[form._idField] = 0;
  85. main[form._codeField] = '';
  86. // 单据状态为录入状态(未审核)
  87. main[form._statusCodeField] = auditTexts.unAuditCode;
  88. main[form._statusField] = auditTexts.unAuditText;
  89. //录入人,录入日期,审核人,审核日期清空
  90. main['creatorId'] = null;
  91. main['creatorName'] = null;
  92. main['createTime'] = null;
  93. main['updaterId'] = null;
  94. main['updaterName'] = null;
  95. main['updateTime'] = null;
  96. main[form._auditmanField] = null;
  97. main[form._auditdateField] = null;
  98. //数量,单价,金额(主表)
  99. main['ma_qty'] = 0;
  100. main['ma_price'] = 0;
  101. main['ma_total'] = 0;
  102. for(var k in main) {
  103. // 主表日期改为当前日期
  104. if(saas.util.BaseUtil.isDateString(main[k])) {
  105. main[k] = Ext.Date.format(new Date, 'Y-m-d H:i:s');
  106. }
  107. }
  108. for(var j = 0; j < detailCount; j++) {
  109. var detail = formData['detail' + j];
  110. for(var x = 0; x < detail.length; x ++) {
  111. var d = detail[x];
  112. for(var k in d) {
  113. // 从表id清空
  114. delete d['id'];
  115. delete d['mm_price'];
  116. delete d['mm_qty'];
  117. delete d['mm_amount'];
  118. // 从表日期清空
  119. if(saas.util.BaseUtil.isDateString(d[k])) {
  120. d[k] = '';
  121. }
  122. }
  123. }
  124. }
  125. return me.myInitCopyData(formData);;
  126. },
  127. price_change:function(v) {
  128. var me = this,
  129. viewModel = me.getViewModel(),
  130. store = viewModel.get('detail0').detailStore,
  131. type = viewModel.get('ma_type');
  132. if('拆件'==type && v==0){
  133. saas.util.BaseUtil.showErrorToast('成本单价为0!');
  134. }
  135. },
  136. getBomData: function(v) {
  137. var me = this,
  138. form = me.getView(),
  139. viewModel = me.getViewModel(),
  140. store = viewModel.get('detail0').detailStore,
  141. type = viewModel.get('ma_type'),
  142. loadData = new Array();
  143. //请求bom资料
  144. saas.util.BaseUtil.request({
  145. url: form._getBomUrl+'/'+v,
  146. method: 'GET',
  147. })
  148. .then(function(localJson) {
  149. if(localJson.success){
  150. var data = localJson.data.items;
  151. Ext.Array.each(data, function(item, i) {
  152. loadData.push({
  153. mm_detno:item.bd_detno,
  154. mm_prodid:item.productDTO.id,
  155. mm_prodcode:item.productDTO.pr_code,
  156. mm_oneuseqty:item.bd_baseqty,
  157. pr_detail:item.productDTO.pr_detail,
  158. pr_spec:item.productDTO.pr_spec,
  159. pr_unit:item.productDTO.pr_unit,
  160. mm_repprodcode:item.bd_replace,
  161. mm_remark:item.bd_remark,
  162. mm_whid:item.productDTO.pr_whid,
  163. mm_whcode:item.productDTO.pr_whcode,
  164. mm_whname:item.productDTO.pr_whname,
  165. mm_price:type=='拆件'?item.productDTO.pr_purcprice:null
  166. })
  167. });
  168. store.loadData(loadData);
  169. }
  170. })
  171. .catch(function(res) {
  172. console.error(res);
  173. saas.util.BaseUtil.showErrorToast('获取BOM资料失败: ' + res.message);
  174. });
  175. }
  176. });