2661 - Added clone options #494
|
@ -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;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue