Merge pull request 'FIX: En movimientos ahora se muestran las categorias y otros detalles faltantes.' (#9) from fix/movimientos-categorias into develop
Reviewed-on: #9
This commit is contained in:
@ -64,7 +64,11 @@
|
||||
<th>Valor</th>
|
||||
<th>Glosa</th>
|
||||
<th>Centro de Costo</th>
|
||||
<th>Categoría</th>
|
||||
<th>Detalle</th>
|
||||
<th>RUT</th>
|
||||
<th>Nombre</th>
|
||||
<th>Identificador</th>
|
||||
<th>Editar</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
@ -18,23 +18,23 @@
|
||||
}
|
||||
|
||||
this.columns = [
|
||||
{title: 'Sigla', defs: {width: 'short', type: 'string'}, searchable: true, export: true}, //0
|
||||
{title: 'Banco', defs: {width: 'long', type: 'string'}, searchable: true, export: true},
|
||||
{title: 'Cuenta', defs: {width: 'short', type: 'string'}, searchable: true, export: true},
|
||||
{title: 'Fecha', defs: {width: 'long', type: 'string'}, searchable: true, export: true},
|
||||
{title: 'ISO Fecha', defs: {visible: false}},
|
||||
{title: 'Mes', defs: {width: 'short', type: 'string'}, searchable: true}, //5
|
||||
{title: 'Año', defs: {width: 'long', type: 'string'}, searchable: true},
|
||||
{title: 'Valor', defs: {className: 'dt-right', width: 'long', type: 'num'}, export: true},
|
||||
{title: 'ISO Valor', defs: {visible: false, type: 'num'}},
|
||||
{title: 'Glosa', defs: {width: 'short', type: 'string'}, export: true},
|
||||
{title: 'Centro de Costo', defs: {width: 'short', type: 'string'}, searchable: true, export: true}, //10
|
||||
{title: 'Categoria', defs: {width: 'short', type: 'string'}},
|
||||
{title: 'Detalle', defs: {width: 'long', type: 'string'}, export: true},
|
||||
{title: 'RUT', defs: {width: 'short', type: 'string'}, export: true},
|
||||
{title: 'Nombre', defs: {width: 'short', type: 'string'}, export: true},
|
||||
{title: 'Identificador', defs: {width: 'short', type: 'string'}, export: true}, //15
|
||||
{title: 'Editar', defs: {width: 'short', type: 'string'}},
|
||||
{title: 'Sigla', defs: {width: 'short', type: 'string'}, process: movimiento => movimiento.cuenta.inmobiliaria.sigla, args: ['movimiento'], searchable: true, export: true}, //0
|
||||
{title: 'Banco', defs: {width: 'long', type: 'string'}, process: movimiento => movimiento.cuenta.banco.nombre, args: ['movimiento'], searchable: true, export: true},
|
||||
{title: 'Cuenta', defs: {width: 'short', type: 'string'}, process: movimiento => movimiento.cuenta.cuenta, args: ['movimiento'], searchable: true, export: true},
|
||||
{title: 'Fecha', defs: {width: 'long', type: 'string'}, process: fecha => this.props.formatters.date.format(fecha), args: ['fecha'], searchable: true, export: true, format: (value) => value.split('-').reverse().join('-')},
|
||||
{title: 'ISO Fecha', defs: {visible: false}, process: fecha => [fecha.getFullYear(), fecha.getMonth() + 1, fecha.getDate()].join('-'), args: ['fecha']},
|
||||
{title: 'Mes', defs: {width: 'short', type: 'string'}, process: fecha => fecha.getMonth() + 1, args: ['fecha'], searchable: true}, //5
|
||||
{title: 'Año', defs: {width: 'long', type: 'string'}, process: fecha => fecha.getFullYear(), args: ['fecha'], searchable: true},
|
||||
{title: 'Valor', defs: {className: 'dt-right', width: 'long', type: 'num'}, process: valor => this.props.formatters.number.format(valor), args: ['valor'], export: true, format: (value) => value.replace(/\./g, '')},
|
||||
{title: 'ISO Valor', defs: {visible: false, type: 'num'}, args: ['valor']},
|
||||
{title: 'Glosa', defs: {width: 'short', type: 'string'}, process: movimiento => movimiento.glosa, args: ['movimiento'], export: true},
|
||||
{title: 'Centro de Costo', defs: {width: 'short', type: 'string'}, process: movimiento => (movimiento.detalles && movimiento.detalles.centro_costo) ? movimiento.detalles.centro_costo.id : '', args: ['movimiento'], searchable: true, export: true}, //10
|
||||
{title: 'Categoría', defs: {width: 'short', type: 'string'}, process: movimiento => (movimiento.detalles) ? movimiento.detalles.categoria : '', args: ['movimiento'], searchable: true, export: true},
|
||||
{title: 'Detalle', defs: {width: 'long', type: 'string'}, process: movimiento => (movimiento.detalles) ? movimiento.detalles.detalle : '', args: ['movimiento'], export: true},
|
||||
{title: 'RUT', defs: {width: 'short', type: 'string'}, process: movimiento => (movimiento.detalles && movimiento.detalles.digito) ? `${this.props.formatters.number.format(movimiento.detalles.rut)}-${movimiento.detalles.digito}` : '', args: ['movimiento'], searchable: true, export: true},
|
||||
{title: 'Nombre', defs: {width: 'short', type: 'string'}, args: ['nombre'], searchable: true, export: true},
|
||||
{title: 'Identificador', defs: {width: 'short', type: 'string'}, process: movimiento => (movimiento.detalles) ? movimiento.detalles.identificador : '', args: ['movimiento'], export: true}, //15
|
||||
{title: 'Editar', defs: {width: 'short', type: 'string'}, args: ['buttonsHTML']},
|
||||
]
|
||||
const N = this.columns.filter(column => typeof column.defs.visible === 'undefined' || column.defs.visible).length
|
||||
const nShort = this.columns.filter(column => column.defs.width === 'short').length
|
||||
@ -134,12 +134,14 @@
|
||||
exportOptions: {
|
||||
columns: exportColumns,
|
||||
format: {
|
||||
body: (data, row, column, node) => {
|
||||
if (column === this.columns.map(({title}) => title).indexOf('Fecha')) {
|
||||
return data.split('-').reverse().join('-')
|
||||
body: (data, row, columnIdx, node) => {
|
||||
const formats = this.columns.filter(columnDef => columnDef.format)
|
||||
const match = formats.map(({title}) => title).indexOf(this.columns[columnIdx].title)
|
||||
if (match > -1) {
|
||||
return formats[match].format(data)
|
||||
}
|
||||
if (column === this.columns.map(({title}) => title).indexOf('Valor')) {
|
||||
return data.replace(/\./g, '')
|
||||
if (typeof data === 'string' && data.includes('<span data-tooltip')) {
|
||||
return data.replace(/<span data-tooltip="(.*)">(.*)<\/span>/, '$2')
|
||||
}
|
||||
return data
|
||||
}
|
||||
@ -214,25 +216,28 @@
|
||||
}
|
||||
}
|
||||
|
||||
const data = {
|
||||
Sigla: movimiento.cuenta.inmobiliaria.sigla,
|
||||
Banco: movimiento.cuenta.banco.nombre,
|
||||
Cuenta: movimiento.cuenta.cuenta,
|
||||
Fecha: this.props.formatters.date.format(fecha),
|
||||
'ISO Fecha': [fecha.getFullYear(), fecha.getMonth() + 1, fecha.getDate()].join('-'),
|
||||
Mes: fecha.getMonth() + 1,
|
||||
'Año': fecha.getFullYear(),
|
||||
Valor: this.props.formatters.number.format(valor),
|
||||
'ISO Valor': valor,
|
||||
Glosa: movimiento.glosa,
|
||||
'Centro de Costo': (movimiento.detalles && movimiento.detalles.centro_costo) ? movimiento.detalles.centro_costo.id : '',
|
||||
Categoria: (movimiento.detalles) ? movimiento.detalles.categoria : '',
|
||||
Detalle: (movimiento.detalles) ? movimiento.detalles.detalle : '',
|
||||
RUT: (movimiento.detalles && movimiento.detalles.digito) ? `${this.props.formatters.number.format(movimiento.detalles.rut)}-${movimiento.detalles.digito}` : '',
|
||||
Nombre: nombre,
|
||||
Identificador: (movimiento.detalles) ? movimiento.detalles.identificador : '',
|
||||
Editar: buttonsHTML,
|
||||
const params = {
|
||||
movimiento,
|
||||
fecha,
|
||||
valor,
|
||||
nombre,
|
||||
buttonsHTML,
|
||||
}
|
||||
|
||||
const data = {}
|
||||
this.columns.forEach(column => {
|
||||
if (column.process) {
|
||||
const args = Object.entries(params).filter(([param, value]) => column.args.includes(param)).map(arr => arr[1])
|
||||
data[column.title] = column.process(...args)
|
||||
return
|
||||
}
|
||||
if (column.args) {
|
||||
data[column.title] = Object.entries(params).filter(([param, value]) => column.args.includes(param)).map(arr => arr[1])[0]
|
||||
return;
|
||||
}
|
||||
data[column.title] = params[column.title.toLowerCase()]
|
||||
})
|
||||
|
||||
const values = []
|
||||
this.columns.forEach(column => {
|
||||
values.push(data[column.title])
|
||||
|
Reference in New Issue
Block a user