Skip to content

Instantly share code, notes, and snippets.

@wharley
Created April 18, 2017 13:38
Show Gist options
  • Save wharley/2a997c2a0b670f280b3f4e015a443fa8 to your computer and use it in GitHub Desktop.
Save wharley/2a997c2a0b670f280b3f4e015a443fa8 to your computer and use it in GitHub Desktop.
function processExpense(data) {
return new Promise((resolve, reject) => {
model.Despesa.findAll({
where: {
$and: [
model.Despesa.sequelize.where(model.sequelize.literal('extract(YEAR FROM data_lancamento)'), data.year),
{ num_filial: data.unit }
]
},
attributes: [
[model.sequelize.fn('SUM', model.sequelize.col('valor_real')), 'valor_real'], model.sequelize.literal('extract(MONTH FROM data_lancamento) as mes')
],
include: [{
model: model.TpDespesa,
required: true,
attributes: ['descricao', 'tipo_despesa'],
raw: true,
include: [{
model: model.ClassDespesa,
required: true,
attributes: ['percentual_retencao'],
raw: true
}]
}],
group: [
model.sequelize.literal('extract(MONTH FROM data_lancamento)'),
'descricao',
'tipo_despesa',
'percentual_retencao'
],
order: ['TpDespesa.descricao'],
raw: true
}).then((despesa) => {
const arrExpense = []
let index = 0
despesa.forEach((expense) => {
let search = arrExpense.find((result) => {
return result['TpDespesa.descricao'] == expense['TpDespesa.descricao'] ? result : null
})
if (search) {
arrExpense[arrExpense.indexOf(search)][data.functionMes.getMes(data, expense.mes)] = expense.valor_real
} else {
arrExpense[index] = expense
arrExpense[index][data.functionMes.getMes(data, expense.mes)] = expense.valor_real
index++
}
})
data['pagamento'] = arrExpense;
resolve(data);
}).catch((error) => {
console.log(error)
reject(error)
})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment