diff --git a/modules/ticket/back/methods/ticket/setDeleted.js b/modules/ticket/back/methods/ticket/setDeleted.js index cec8096a69..28488ade6a 100644 --- a/modules/ticket/back/methods/ticket/setDeleted.js +++ b/modules/ticket/back/methods/ticket/setDeleted.js @@ -42,6 +42,11 @@ module.exports = Self => { if (!isEditable) throw new UserError(`The sales of this ticket can't be modified`); + const hasRefunds = await checkRefunds(id, myOptions); + + if (hasRefunds) + throw new UserError(`You must delete the refund id %d first`, 'DELETE_REFUND_FIRST', hasRefunds); + // Check if has sales with shelving const isSalesAssistant = await models.Account.hasRole(userId, 'salesAssistant', myOptions); const sales = await models.Sale.find({ @@ -150,4 +155,16 @@ module.exports = Self => { throw e; } }; + + async function checkRefunds(id, options) { + const models = Self.app.models; + let refunds = await models.TicketRefund.find({ + where: {ticketFk: id} + }, options); + + if (refunds.length > 0) + return refunds[0].refundTicketFk; + else + return false; + } };