FormPanelController.js 7.4 KB

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