u
This commit is contained in:
@@ -4,12 +4,16 @@ import {
|
||||
import {
|
||||
DELETE_BY_ARTICLE_AND_PROPERTY_ID as SQLITE_DELETE,
|
||||
} from '../../providers/sqlite3/queries/articleproperty.js';
|
||||
import { INSERT as MSSQL_INSERT_HISTORY } from '../../providers/mssql/queries/articlehistory.js';
|
||||
import { INSERT as SQLITE_INSERT_HISTORY } from '../../providers/sqlite3/queries/articlehistory.js';
|
||||
import resolveArticleBySku from '../article/resolveArticleBySku.js';
|
||||
import makeRunner from '../runner.js';
|
||||
|
||||
export default function deleteArticleProperty(provider) {
|
||||
const resolve = resolveArticleBySku(provider);
|
||||
const deleteSql = provider?.dialect === 'sqlite3' ? SQLITE_DELETE : MSSQL_DELETE;
|
||||
const isSqlite = provider?.dialect === 'sqlite3';
|
||||
const deleteSql = isSqlite ? SQLITE_DELETE : MSSQL_DELETE;
|
||||
const insertHistorySql = isSqlite ? SQLITE_INSERT_HISTORY : MSSQL_INSERT_HISTORY;
|
||||
|
||||
/**
|
||||
* Deletes a property from an article by SKU and propertyId.
|
||||
@@ -22,7 +26,26 @@ export default function deleteArticleProperty(provider) {
|
||||
*/
|
||||
return async (googleAuthId, sku, propertyId, tx) => {
|
||||
const runner = makeRunner(provider, tx);
|
||||
const { articleId } = await resolve(googleAuthId, sku, runner);
|
||||
const { articleId, companyuserId } = await resolve(googleAuthId, sku, runner);
|
||||
|
||||
// Read the property name + value before deleting (for the history entry)
|
||||
const propRes = await runner.query(
|
||||
`SELECT ap.value, pn.name
|
||||
FROM articleproperty ap
|
||||
INNER JOIN propertyname pn ON pn.id = ap.property_id
|
||||
WHERE ap.article_id = @articleId AND ap.property_id = @propertyId`,
|
||||
{ articleId, propertyId },
|
||||
);
|
||||
const prop = propRes.rows[0];
|
||||
|
||||
await runner.query(deleteSql, { articleId, propertyId });
|
||||
|
||||
if (prop) {
|
||||
await runner.query(insertHistorySql, {
|
||||
articleId,
|
||||
companyuserId,
|
||||
text: `Eigenschaft "${prop.name}" (${prop.value}) gelöscht`,
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user