u
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import * as mssqlQueries from '../../providers/mssql/queries/delivery.js';
|
||||
import * as sqliteQueries from '../../providers/sqlite3/queries/delivery.js';
|
||||
import { isForeignKeyConstraintError } from '../../providers/provider.js';
|
||||
import resolveSelectedCompanyAccess from '../companyuser/resolveSelectedCompanyAccess.js';
|
||||
import makeRunner from '../runner.js';
|
||||
|
||||
@@ -16,15 +17,22 @@ export default function del(provider) {
|
||||
const { companyId } = await access(googleAuthId);
|
||||
const runner = makeRunner(provider);
|
||||
|
||||
const result = await runner(queries.DELETE_MANIFEST, {
|
||||
id,
|
||||
companyId,
|
||||
type: queries.DELIVERY_TYPE,
|
||||
});
|
||||
try {
|
||||
const result = await runner(queries.DELETE_MANIFEST, {
|
||||
id,
|
||||
companyId,
|
||||
type: queries.DELIVERY_TYPE,
|
||||
});
|
||||
|
||||
const rowsAffected = result.rowsAffected?.[0] ?? (typeof result.rowsAffected === 'number' ? result.rowsAffected : 0);
|
||||
if (!rowsAffected) {
|
||||
throw new Error('Delivery not found');
|
||||
const rowsAffected = result.rowsAffected?.[0] ?? (typeof result.rowsAffected === 'number' ? result.rowsAffected : 0);
|
||||
if (!rowsAffected) {
|
||||
throw new Error('Delivery not found');
|
||||
}
|
||||
} catch (err) {
|
||||
if (isForeignKeyConstraintError(err)) {
|
||||
throw new Error('Delivery in use in ledger');
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import * as mssqlQueries from '../../providers/mssql/queries/delivery.js';
|
||||
import * as sqliteQueries from '../../providers/sqlite3/queries/delivery.js';
|
||||
import { isForeignKeyConstraintError } from '../../providers/provider.js';
|
||||
import resolveSelectedCompanyAccess from '../companyuser/resolveSelectedCompanyAccess.js';
|
||||
import taxEnsure from '../tax/ensure.js';
|
||||
import { insertLines, normalizeLines, parseDate } from '../manifestLines.js';
|
||||
@@ -108,9 +109,16 @@ export default function update(provider) {
|
||||
});
|
||||
|
||||
if (hasLines) {
|
||||
await runner(queries.DELETE_LINES_BY_MANIFEST, {
|
||||
manifestId: id,
|
||||
});
|
||||
try {
|
||||
await runner(queries.DELETE_LINES_BY_MANIFEST, {
|
||||
manifestId: id,
|
||||
});
|
||||
} catch (err) {
|
||||
if (isForeignKeyConstraintError(err)) {
|
||||
throw new Error('Delivery lines already booked on ledger');
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
|
||||
await insertLines(provider, tx, {
|
||||
manifestId: id,
|
||||
|
||||
Reference in New Issue
Block a user