2661 - Added clone options #494

Merged
carlosjr merged 14 commits from 2661-travel_cloneWithEntries into dev 2020-12-31 10:00:45 +00:00
1 changed files with 37 additions and 31 deletions
Showing only changes of commit c2d50c6044 - Show all commits

View File

@ -48,40 +48,46 @@ module.exports = Self => {
let stmts = []; let stmts = [];
let stmt; let stmt;
stmt = new ParameterizedSQL( try {
`CALL travel_cloneWithEntries(?, ?, ?, ?, @vTravelFk)`, [ stmt = new ParameterizedSQL(
id, started, ended, travel.ref]); `CALL travel_cloneWithEntries(?, ?, ?, ?, @vTravelFk)`, [
id, started, ended, travel.ref]);
stmts.push(stmt); stmts.push(stmt);
const index = stmts.push('SELECT @vTravelFk AS id') - 1; const index = stmts.push('SELECT @vTravelFk AS id') - 1;
const sql = ParameterizedSQL.join(stmts, ';'); const sql = ParameterizedSQL.join(stmts, ';');
const result = await conn.executeStmt(sql); const result = await conn.executeStmt(sql);
const [lastInsert] = result[index]; const [lastInsert] = result[index];
const newTravel = await Self.findById(lastInsert.id, { const newTravel = await Self.findById(lastInsert.id, {
fields: [ fields: [
'id', 'id',
'shipped', 'shipped',
'landed', 'landed',
'warehouseInFk', 'warehouseInFk',
'warehouseOutFk', 'warehouseOutFk',
'agencyFk', 'agencyFk',
'ref' 'ref'
] ]
}); });
const oldProperties = await loggable.translateValues(Self, travel); const oldProperties = await loggable.translateValues(Self, travel);
const newProperties = await loggable.translateValues(Self, newTravel); const newProperties = await loggable.translateValues(Self, newTravel);
await models.TravelLog.create({ await models.TravelLog.create({
originFk: newTravel.id, originFk: newTravel.id,
userFk: userId, userFk: userId,
action: 'insert', action: 'insert',
changedModel: 'Travel', changedModel: 'Travel',
changedModelId: newTravel.id, changedModelId: newTravel.id,
oldInstance: oldProperties, oldInstance: oldProperties,
newInstance: newProperties newInstance: newProperties
}); });
return newTravel.id; return newTravel.id;
} catch (error) {
if (error.code === 'ER_DUP_ENTRY')
throw new UserError('A travel with this data already exists');
throw error;
}
}; };
}; };