|
|
@@ -1,39 +1,28 @@
|
|
|
Ext.define('saas.view.money.report.AccountDetails', {
|
|
|
- extend: 'Ext.grid.Panel',
|
|
|
+ extend: 'saas.view.core.report.ReportPanel',
|
|
|
xtype: 'monry-report-accountdetails',
|
|
|
|
|
|
controller: 'money-report-accountdetails',
|
|
|
viewModel: 'money-report-accountdetails',
|
|
|
|
|
|
viewName: 'money-report-accountdetails',
|
|
|
- autoScroll: true,
|
|
|
- frame:true,
|
|
|
- layout:'fit',
|
|
|
- //工具类
|
|
|
- FormUtil: Ext.create('saas.util.FormUtil'),
|
|
|
- BaseUtil: Ext.create('saas.util.BaseUtil'),
|
|
|
|
|
|
// groupField: null,
|
|
|
- dataUrl: '/api/money/report/accountdetails',
|
|
|
+ listUrl: '/api/money/report/accountdetails',
|
|
|
defaultCondition: null,
|
|
|
reportTitle: '核销对账表',
|
|
|
- QueryWidth:0.25,
|
|
|
+ QueryWidth: 0.2,
|
|
|
//筛选:客户/供应商、日期、单据类型(必填)
|
|
|
- tbar: [{
|
|
|
- width: 150,
|
|
|
+ searchItems: [{
|
|
|
name: 'sl_code',
|
|
|
xtype: 'textfield',
|
|
|
- emptyText : '单号'
|
|
|
- },{
|
|
|
- width: 400,
|
|
|
- name: 'date',
|
|
|
- xtype: 'condatefield',
|
|
|
- emptyText : '日期'
|
|
|
+ emptyText: '单号',
|
|
|
+ columnWidth: 0.1
|
|
|
}, {
|
|
|
xtype: 'multicombo',
|
|
|
name: 'sl_kind',
|
|
|
- fieldLabel: '单据类型',
|
|
|
- width: 150,
|
|
|
+ emptyText: '单据类型',
|
|
|
+ columnWidth: 0.1,
|
|
|
datas: [
|
|
|
["采购验收单", "采购验收单"],
|
|
|
["采购验退单", "采购验退单"],
|
|
|
@@ -45,295 +34,67 @@ Ext.define('saas.view.money.report.AccountDetails', {
|
|
|
["其它入库单", "其它入库单"],
|
|
|
["其它出库单", "其它出库单"],
|
|
|
["调拨单", "调拨单"],
|
|
|
- ["库存初始化","库存初始化"]
|
|
|
+ ["库存初始化", "库存初始化"]
|
|
|
]
|
|
|
}, {
|
|
|
- width: 150,
|
|
|
- name: 'pb_code',
|
|
|
- xtype: 'textfield',
|
|
|
- emptyText : '核销单号'
|
|
|
+ name: 'date',
|
|
|
+ xtype: 'condatefield',
|
|
|
+ emptyText: '日期',
|
|
|
+ columnWidth: 0.3
|
|
|
}, {
|
|
|
- xtype : "customerDbfindTrigger",
|
|
|
- width: 200,
|
|
|
- name : "cu_name",
|
|
|
- fieldLabel : "客户",
|
|
|
- emptyText:'请输入客户编号或名称'
|
|
|
+ // name: 'pb_code',
|
|
|
+ // xtype: 'textfield',
|
|
|
+ // emptyText: '核销单号',
|
|
|
+ // columnWidth: 0.1
|
|
|
+ // }, {
|
|
|
+ xtype: "customerDbfindTrigger",
|
|
|
+ name: "cu_name",
|
|
|
+ emptyText: '客户编号/名称',
|
|
|
+ columnWidth: 0.15
|
|
|
}, {
|
|
|
xtype: 'vendorDbfindTrigger',
|
|
|
- width: 200,
|
|
|
name: 've_name',
|
|
|
- fieldLabel: '供应商',
|
|
|
- emptyText :'请输入供应商编号或名称'
|
|
|
+ emptyText: '供应商编号/名称',
|
|
|
+ columnWidth: 0.15
|
|
|
+ }],
|
|
|
+ reportColumns: [{
|
|
|
+ text: 'id',
|
|
|
+ dataIndex: 'pi_id',
|
|
|
+ hidden: true
|
|
|
}, {
|
|
|
- cls:'x-formpanel-btn-blue',
|
|
|
- xtype:'button',
|
|
|
- text:'查询',
|
|
|
- listeners: {
|
|
|
- click:function(b){
|
|
|
- var grid = b.ownerCt.ownerCt;
|
|
|
- var tbar = b.ownerCt;
|
|
|
- grid.condition = '';
|
|
|
- var items = [];
|
|
|
- var fields = tbar.items.items.map(f => f.name);
|
|
|
- Ext.each(fields, function(f, index){
|
|
|
- var field = tbar.down('[name='+f+']');
|
|
|
- if(field){
|
|
|
- items.push(field);
|
|
|
- }
|
|
|
- });
|
|
|
- grid.condition = grid.getCondition(items);
|
|
|
- grid.store.loadPage(1);
|
|
|
- }
|
|
|
- }
|
|
|
- },'->'],
|
|
|
- columns: [
|
|
|
- {
|
|
|
- text: 'id',
|
|
|
- dataIndex: 'pi_id',
|
|
|
- hidden: true
|
|
|
- }, {
|
|
|
- text: '单据编号',
|
|
|
- dataIndex: 'sl_code',
|
|
|
- width: 150
|
|
|
- }, {
|
|
|
- text: '单据类型',
|
|
|
- dataIndex: 'sl_kind',
|
|
|
- width: 110
|
|
|
- }, {
|
|
|
- text: '单据日期',
|
|
|
- dataIndex: 'date',
|
|
|
- xtype:'datecolumn',
|
|
|
- width: 110
|
|
|
- },{
|
|
|
- text:'供应商名称',
|
|
|
- dataIndex:'ve_name',
|
|
|
- width: 200
|
|
|
- },{
|
|
|
- text:'客户名称',
|
|
|
- dataIndex:'cu_name',
|
|
|
- width: 200
|
|
|
- },{
|
|
|
- text:'核销单号',
|
|
|
- dataIndex:'pb_code',
|
|
|
- width: 200
|
|
|
- },{
|
|
|
- text: '本期核销金额',
|
|
|
- dataIndex: 'sl_amount',
|
|
|
- xtype: 'numbercolumn',
|
|
|
- width: 130,
|
|
|
- // renderer : function(v) {
|
|
|
- // var arr = (v + '.').split('.');
|
|
|
- // var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
|
|
|
- // var format = '0.' + xr.join();
|
|
|
- // return Ext.util.Format.number(v, format);
|
|
|
- // },
|
|
|
- // summaryType: 'sum',
|
|
|
- // summaryRenderer: function(v) {
|
|
|
- // var arr = (v + '.').split('.');
|
|
|
- // var xr = (new Array(arr[1].length > 3 ? 3 : arr[1].length)).fill('0');
|
|
|
- // var format = '0.' + xr.join();
|
|
|
- // return Ext.util.Format.number(v, format);
|
|
|
- // }
|
|
|
- },{
|
|
|
- text: '总金额',
|
|
|
- dataIndex: 'total',
|
|
|
- xtype: 'numbercolumn',
|
|
|
- width: 110,
|
|
|
- // renderer : function(v) {
|
|
|
- // var arr = (v + '.').split('.');
|
|
|
- // var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
|
|
|
- // var format = '0,000.' + xr.join();
|
|
|
- // return Ext.util.Format.number(v, format);
|
|
|
- // },
|
|
|
- // summaryType: 'sum',
|
|
|
- // summaryRenderer: function(v) {
|
|
|
- // var arr = (v + '.').split('.');
|
|
|
- // var xr = (new Array(arr[1].length > 2 ? 2 : arr[1].length)).fill('0');
|
|
|
- // var format = '0,000.' + xr.join();
|
|
|
- // return Ext.util.Format.number(v, format);
|
|
|
- // }
|
|
|
- }],
|
|
|
-
|
|
|
- dbSearchFields: [],
|
|
|
- condition:'',
|
|
|
-
|
|
|
- initComponent: function() {
|
|
|
- var me = this;
|
|
|
- if(me.columns){
|
|
|
- var fields = me.columns.map(column => column.dataIndex);
|
|
|
- me.store = Ext.create('Ext.data.Store',{
|
|
|
- fields:fields,
|
|
|
- autoLoad: true,
|
|
|
- pageSize: 11,
|
|
|
- data: [],
|
|
|
- proxy: {
|
|
|
- timeout:8000,
|
|
|
- type: 'ajax',
|
|
|
- url: me.dataUrl,
|
|
|
- actionMethods: {
|
|
|
- read: 'GET'
|
|
|
- },
|
|
|
- reader: {
|
|
|
- type: 'json',
|
|
|
- rootProperty: 'data.list.list',
|
|
|
- totalProperty: 'data.list.total',
|
|
|
- }
|
|
|
- },
|
|
|
- listeners: {
|
|
|
- beforeload: function (store, op) {
|
|
|
- var condition = me.condition;
|
|
|
- if (Ext.isEmpty(condition)) {
|
|
|
- condition = "";
|
|
|
- }
|
|
|
- Ext.apply(store.proxy.extraParams, {
|
|
|
- number: op._page,
|
|
|
- size: store.pageSize,
|
|
|
- condition: JSON.stringify(condition)
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- Ext.apply(me, {
|
|
|
- dockedItems:[{
|
|
|
- xtype: 'pagingtoolbar',
|
|
|
- dock: 'bottom',
|
|
|
- displayInfo: true,
|
|
|
- store: me.store
|
|
|
- }]
|
|
|
- });
|
|
|
- }
|
|
|
- me.callParent(arguments);
|
|
|
- },
|
|
|
-
|
|
|
- getGridSelected:function(type){
|
|
|
- var isErrorSelect = false;
|
|
|
- var checkField = this.statusCodeField;
|
|
|
- var me = this,
|
|
|
- items = me.selModel.getSelection(),
|
|
|
- data = new Array() ;
|
|
|
- Ext.each(items, function(item, index){
|
|
|
- if(!Ext.isEmpty(item.data[me.idField])){
|
|
|
- var o = new Object();
|
|
|
- if(me.idField){
|
|
|
- o['id'] = item.data[me.idField];
|
|
|
- }
|
|
|
- if(me.codeField){
|
|
|
- o['code'] = item.data[me.codeField];
|
|
|
- }
|
|
|
- if(type&&type==item.data[checkField]){
|
|
|
- isErrorSelect = true
|
|
|
- }
|
|
|
- data.push(o);
|
|
|
- }
|
|
|
- });
|
|
|
- if(isErrorSelect){
|
|
|
- return false;
|
|
|
- }
|
|
|
- return data;
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 获得过滤条件
|
|
|
- */
|
|
|
- getCondition: function(items) {
|
|
|
- var me = this,
|
|
|
- conditions = [];
|
|
|
-
|
|
|
- for(var i = 0; i < items.length; i++) {
|
|
|
- var item = items[i];
|
|
|
- var field = item.name,
|
|
|
- func = item.getCondition,
|
|
|
- value = item.value,
|
|
|
- condition;
|
|
|
-
|
|
|
- if(typeof func == 'function') {
|
|
|
- condition = {
|
|
|
- type: 'condition',
|
|
|
- value: func(value)
|
|
|
- }
|
|
|
- }else {
|
|
|
- var xtype = item.xtype || 'textfield',
|
|
|
- type = item.fieldType || me.getDefaultFieldType(xtype),
|
|
|
- operation = item.operation || me.getDefaultFieldOperation(xtype),
|
|
|
- conditionValue = me.getConditionValue(xtype, value);
|
|
|
-
|
|
|
- if(!conditionValue) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- condition = {
|
|
|
- type: type,
|
|
|
- field: field,
|
|
|
- operation: operation,
|
|
|
- value: conditionValue
|
|
|
- }
|
|
|
- }
|
|
|
- conditions.push(condition);
|
|
|
- };
|
|
|
- return conditions;
|
|
|
- },
|
|
|
-
|
|
|
- getDefaultFieldType: function(xtype) {
|
|
|
- var type;
|
|
|
-
|
|
|
- if(Ext.Array.contains(['numberfield'], xtype)) {
|
|
|
- type = 'number';
|
|
|
- }else if(Ext.Array.contains(['datefield', 'condatefield'], xtype)) {
|
|
|
- type = 'date';
|
|
|
- }else if(Ext.Array.contains(['combobox', 'multicombo', 'combo', 'radiofield', 'radio'], xtype)) {
|
|
|
- type = 'enum';
|
|
|
- }else {
|
|
|
- type = 'string';
|
|
|
- }
|
|
|
-
|
|
|
- return type;
|
|
|
- },
|
|
|
-
|
|
|
- getDefaultFieldOperation: function(xtype) {
|
|
|
- var operation;
|
|
|
-
|
|
|
- if(Ext.Array.contains(['numberfield'], xtype)) {
|
|
|
- operation = '=';
|
|
|
- }else if(Ext.Array.contains(['datefield'], xtype)) {
|
|
|
- operation = '=';
|
|
|
- }else if(Ext.Array.contains(['condatefield'], xtype)) {
|
|
|
- operation = 'between';
|
|
|
- }else if(Ext.Array.contains(['combobox', 'multicombo', 'combo'], xtype)) {
|
|
|
- operation = 'in';
|
|
|
- }else {
|
|
|
- operation = 'like';
|
|
|
- }
|
|
|
-
|
|
|
- return operation;
|
|
|
- },
|
|
|
-
|
|
|
- /**
|
|
|
- * 处理部分字段值
|
|
|
- */
|
|
|
- getConditionValue: function(xtype, value) {
|
|
|
- var conditionValue;
|
|
|
- if(xtype == 'datefield') {
|
|
|
- conditionValue = Ext.Date.format(new Date(from), 'Y-m-d H:i:s');
|
|
|
- }else if(xtype == 'condatefield') {
|
|
|
- var from = value.from,
|
|
|
- to = value.to;
|
|
|
-
|
|
|
- conditionValue = Ext.Date.format(new Date(from), 'Y-m-d 00:00:00') + ',' + Ext.Date.format(new Date(to), 'Y-m-d 23:59:59');
|
|
|
- }else if(xtype == 'combobox' || xtype == 'combo') {
|
|
|
- conditionValue = '\'' + value + '\'';
|
|
|
- }else if(xtype == 'multicombo') {
|
|
|
- conditionValue = value.map(function(v) {
|
|
|
- return '\'' + v.value + '\'';
|
|
|
- }).join(',');
|
|
|
- }else {
|
|
|
- conditionValue = value;
|
|
|
- }
|
|
|
-
|
|
|
- return conditionValue;
|
|
|
- },
|
|
|
-
|
|
|
- refresh:function(){
|
|
|
- //debugger
|
|
|
- }
|
|
|
-
|
|
|
+ text: '单据编号',
|
|
|
+ dataIndex: 'sl_code',
|
|
|
+ width: 150
|
|
|
+ }, {
|
|
|
+ text: '单据类型',
|
|
|
+ dataIndex: 'sl_kind',
|
|
|
+ width: 110
|
|
|
+ }, {
|
|
|
+ text: '单据日期',
|
|
|
+ dataIndex: 'date',
|
|
|
+ xtype: 'datecolumn',
|
|
|
+ width: 110
|
|
|
+ }, {
|
|
|
+ text: '供应商名称',
|
|
|
+ dataIndex: 've_name',
|
|
|
+ width: 200
|
|
|
+ }, {
|
|
|
+ text: '客户名称',
|
|
|
+ dataIndex: 'cu_name',
|
|
|
+ width: 200
|
|
|
+ }, {
|
|
|
+ text: '核销单号',
|
|
|
+ dataIndex: 'pb_code',
|
|
|
+ width: 200
|
|
|
+ }, {
|
|
|
+ text: '本期核销金额',
|
|
|
+ dataIndex: 'sl_amount',
|
|
|
+ xtype: 'numbercolumn',
|
|
|
+ width: 130
|
|
|
+ }, {
|
|
|
+ text: '总金额',
|
|
|
+ dataIndex: 'total',
|
|
|
+ xtype: 'numbercolumn',
|
|
|
+ width: 110
|
|
|
+ }],
|
|
|
});
|