123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- /**
- * 辅助核算按钮
- */
- Ext.define('erp.view.core.button.AssMain', {
- extend: 'Ext.Button',
- alias: 'widget.erpAssMainButton',
- iconCls: 'x-button-icon-check',
- cls: 'x-btn-gray',
- id: 'assmainbutton',
- text: $I18N.common.button.erpAssMainButton,
- GridUtil: Ext.create('erp.util.GridUtil'),
- BaseUtil: Ext.create('erp.util.BaseUtil'),
- // disabled:true,
- cacheStoreForm: new Array(),
- cacheStoreGrid: new Array(),
- cacheStore: new Object(),
- //所有数据
- cacheAss: new Object(),
- //asstype改变时,cacheStore改变
- asstype: new Array(),
- asskind: new Array(),
- style: {
- marginLeft: '10px'
- },
- width: 85,
- listeners: {
- click: function() {
- var me = this;
- var form = me.ownerCt.ownerCt,
- id = Ext.getCmp(form.keyField).getValue();
- var win = Ext.getCmp('assmain-' + id);
- if (win) {
- win.show();
- } else {
- var grid = Ext.create('Ext.grid.Panel', {
- id: 'assgrid-main',
- anchor: '100% 100%',
- columns: [{
- text: 'ID',
- hidden: true,
- dataIndex: 'ass_id'
- },
- {
- text: 'ASS_CONID',
- hidden: true,
- dataIndex: 'ass_conid'
- },
- {
- text: '辅助类型',
- dataIndex: 'ass_asstype',
- hidden: true,
- flex: 1
- },
- {
- text: '核算项',
- dataIndex: 'ass_assname',
- flex: 1
- },
- {
- text: '编号表达式',
- dataIndex: 'ass_codefield',
- flex: 1,
- editor: {
- xtype: 'dbfindtrigger'
- }
- },
- {
- text: '名称表达式',
- dataIndex: 'ass_namefield',
- flex: 1
- }],
- store: new Ext.data.Store({
- fields: [{
- name: 'ass_id',
- type: 'number'
- },
- {
- name: 'ass_conid',
- type: 'number'
- },
- {
- name: 'ass_assname',
- type: 'string'
- },
- {
- name: 'ass_asstype',
- type: 'string'
- },
- {
- name: 'ass_codefield',
- type: 'string'
- },
- {
- name: 'ass_namefield',
- type: 'string'
- }]
- }),
- columnLines: true,
- plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
- clicksToEdit: 1
- })],
- listeners: {
- afterrender: function(grid) {
- var dbfinds = new Array();
- dbfinds.push({
- dbGridField: 've_code',
- field: 'ass_codefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 've_name',
- field: 'ass_namefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'dp_code',
- field: 'ass_codefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'dp_name',
- field: 'ass_namefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'em_code',
- field: 'ass_codefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'em_name',
- field: 'ass_namefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'akd_asscode',
- field: 'ass_codefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'akd_assname',
- field: 'ass_namefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'wh_code',
- field: 'ass_codefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'wh_description',
- field: 'ass_namefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'cu_code',
- field: 'ass_codefield',
- trigger: null
- });
- dbfinds.push({
- dbGridField: 'cu_name',
- field: 'ass_namefield',
- trigger: null
- });
- grid.dbfinds = dbfinds;
- grid.plugins[0].on('beforeedit',
- function(e) {
- if (e.field == 'ass_codefield') {
- var column = e.column,
- btn = Ext.getCmp("assmainbutton"),
- type = e.record.get('ass_asstype'),
- kind;
- if (type) {
- kind = btn.asskind[type];
- if (kind) {
- column.setEditor(new erp.view.core.trigger.DbfindTrigger({
- findConfig: kind.ak_addkind == null ? '': ('ak_addkind=\'' + kind.ak_addkind + '\'')
- }));
- column.dbfind = kind.ak_dbfind + '|' + kind.ak_asscode;
- grid.dbfinds = [{
- field: 'ass_codefield',
- dbGridField: kind.ak_asscode
- },
- {
- field: 'ass_namefield',
- dbGridField: kind.ak_assname
- }];
- }
- }
- }
- /*
- if(e.field=='ass_codefield'){
- var record = e.record;
- var column = e.column;
- switch(record.data['ass_asstype']){
- // Vend 供应商 Vendor Vendor ve_code
- // Dept 部门 Department Department dp_code
- // Empl 员工 Emplyee Employee em_code
- // Otc 其它应收客户 AssAddData AssAddData aad_code
- // Otv 其它应付供应商 AssAddData AssAddData aad_code
- // Otp 项目 AssAddData AssAddData aad_code
- // Store 仓库 WareHouse WareHouse wh_code
- // Cust 客户 Customer Customer cu_code
- case "Vend":
- column.dbfind='Vendor|ve_code';
- break;
- case "Dept":
- column.dbfind='Department|dp_code';
- break;
- case "Empl":
- column.dbfind='Employee|em_code';
- break;
- case "Otc":
- column.dbfind='AssKindDetail|akd_asscode';
- break;
- case "Otv":
- column.dbfind='AssKindDetail|akd_asscode';
- break;
- case "Otp":
- column.dbfind='AssKindDetail|akd_asscode';
- break;
- case "Store":
- column.dbfind='WareHouse|wh_code';
- break;
- case "Cust":
- column.dbfind='Customer|cu_code';
- break;
- }
- }
- */
- });
- }
- }
- });
- win = Ext.create('Ext.Window', {
- width: 500,
- height: 360,
- layout: 'anchor',
- id: 'assmain-' + id,
- title: '辅助核算',
- items: [grid],
- buttonAlign: 'center',
- modal: true,
- buttons: [{
- text: $I18N.common.button.erpConfirmButton,
- cls: 'x-btn-blue',
- handler: function(btn) {
- var win = btn.ownerCt.ownerCt,
- ass = win.down('gridpanel');
- var data = new Array();
- ass.store.each(function(item) {
- data.push(item.data);
- });
- if (data.length > 0) {
- me.cacheStoreForm[Ext.getCmp(me.ownerCt.ownerCt.keyField).getValue()] = data;
- }
- win.hide();
- }
- },
- {
- text: $I18N.common.button.erpOffButton,
- cls: 'x-btn-blue',
- handler: function(btn) {
- btn.ownerCt.ownerCt.hide();
- }
- }]
- }).show();
- }
- me.getAssForm(win.down('gridpanel'), id, form.down('#ca_assname').getValue(), form.down('#ca_asstype').getValue());
- }
- },
- getAssData: function(id) {
- var me = this;
- var grid = Ext.getCmp('assgrid-main');
- Ext.each(grid.store.data.items,
- function(item, index) {
- // me.asstype = Ext.isEmpty(item.data['ass_asstype']) ?
- // new Array() : item.data['ass_asstype'].toString().split('#');
- me.asstype.push(item.data['ass_asstype']);
- var type = item.data['ass_asstype'];
- if (me.asskind[type]) {
- item.set('ass_asstype', me.asskind[type].ak_name);
- } else {
- Ext.Ajax.request({
- url: basePath + 'common/getFieldsData.action',
- async: false,
- params: {
- caller: 'AssKind',
- fields: 'ak_name,ak_table,ak_dbfind,ak_asscode,ak_assname,ak_addkind',
- condition: "ak_code='" + type + "'"
- },
- method: 'post',
- callback: function(options, success, response) {
- var localJson = new Ext.decode(response.responseText);
- if (localJson.exceptionInfo) {
- showError(localJson.exceptionInfo);
- return;
- }
- if (localJson.success) {
- var d = localJson.data;
- if (Ext.isEmpty(item.get('ass_asstype'))) item.set('ass_asstype', d.ak_name);
- me.asskind[type] = d;
- }
- }
- });
- }
- });
- var data = new Array();
- Ext.each(grid.store.data.items,
- function() {
- data.push(this.data);
- });
- /* if(data.length > 0){
- me.cacheStore[id] = data;
- }*/
- },
- getAssForm: function(grid, id, assname, asstype) {
- var me = this;
- if (!me.cacheStoreForm[id]) {
- if (id == null || id <= 0) {
- var data = new Array(),
- r = assname.split('#'),
- t = asstype.split('#');
- for (var i = 0; i < r.length; i++) {
- var o = new Object();
- o.ass_conid = id;
- o.ass_assname = r[i];
- o.ass_asstype = t[i];
- data.push(o);
- }
- grid.store.loadData(data);
- } else {
- var condition = "ass_conid=" + id;
- Ext.Ajax.request({
- url: basePath + 'common/getFieldsDatas.action',
- params: {
- caller: me.ownerCt.ownerCt.assCaller,
- fields: 'ass_id,ass_conid,ass_assname,ass_codefield,ass_namefield,ass_asstype',
- condition: condition
- },
- method: 'post',
- callback: function(options, success, response) {
- var res = new Ext.decode(response.responseText);
- if (res.exception || res.exceptionInfo) {
- showError(res.exceptionInfo);
- return;
- }
- var data = Ext.decode(res.data);
- var dd = new Array(),
- r = assname.split('#'),
- t = asstype.split('#');
- for (var i = 0; i < r.length; i++) {
- var o = new Object();
- Ext.Array.each(data,
- function(d) {
- if (d.ASS_ASSNAME == r[i]) {
- o.ass_id = d.ASS_ID;
- o.ass_conid = d.ASS_CONID;
- o.ass_assname = d.ASS_ASSNAME;
- o.ass_asstype = t[i];
- o.ass_codefield = d.ASS_CODEFIELD;
- o.ass_namefield = d.ASS_NAMEFIELD;
- dd.push(o);
- }
- });
- if (o.ass_id == null) {
- o.ass_conid = id;
- o.ass_assname = r[i];
- o.ass_asstype = t[i];
- dd.push(o);
- }
- }
- if (dd.length == 0) {
- dd = [{},
- {},
- {},
- {},
- {},
- {}];
- }
- grid.store.loadData(dd);
- me.getAssData();
- }
- });
- }
- } else {
- grid.store.loadData(me.cacheStoreForm[id]);
- }
- },
- initComponent: function() {
- this.callParent(arguments);
- }
- });
|