u
This commit is contained in:
@@ -399,6 +399,20 @@ export class BetterSqlite3Provider extends BetterSqlite3Executor {
|
||||
`ALTER TABLE ledger ADD COLUMN warehouse_id INTEGER REFERENCES warehouse(id) ON DELETE NO ACTION`,
|
||||
);
|
||||
}
|
||||
|
||||
const articleCols = this.db.pragma('table_info("article")').map((c) => c.name);
|
||||
if (articleCols.length > 0 && !articleCols.includes('track_stock')) {
|
||||
this.db.exec(
|
||||
`ALTER TABLE article ADD COLUMN track_stock INTEGER NOT NULL DEFAULT 1`,
|
||||
);
|
||||
}
|
||||
|
||||
const warehouseCols = this.db.pragma('table_info("warehouse")').map((c) => c.name);
|
||||
if (warehouseCols.length > 0 && !warehouseCols.includes('sort')) {
|
||||
this.db.exec(
|
||||
`ALTER TABLE warehouse ADD COLUMN sort INTEGER NOT NULL DEFAULT 0`,
|
||||
);
|
||||
}
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ export const {
|
||||
GET_BRAND_BY_COMPANY_AND_ID,
|
||||
GET_CATEGORY_ID_BY_SKU, GET_CATEGORY_TREE_FLAT, GET_ID_BY_SKU,
|
||||
SET_FATHER_SORT,
|
||||
SET_IS_FATHER, UPDATE_BRAND, UPDATE_FATHER_BY_SKU, UPDATE_UNIT,
|
||||
SET_IS_FATHER, UPDATE_BRAND, UPDATE_FATHER_BY_SKU, UPDATE_TRACK_STOCK, UPDATE_UNIT,
|
||||
UPDATE_UNITAMOUNT, UPDATE_UNIT_AND_AMOUNT, UPDATE_WEIGHT,
|
||||
} = queries;
|
||||
|
||||
@@ -83,7 +83,7 @@ WITH RECURSIVE category_tree AS (
|
||||
INNER JOIN category_tree ct ON c.parent_id = ct.id
|
||||
)
|
||||
SELECT DISTINCT a.id, a.sku, at.name, at.slug, u.si AS unitSi,
|
||||
ut.symbol AS unitSymbol, a.unitamount, b.name AS brandName,
|
||||
ut.symbol AS unitSymbol, a.unitamount, a.track_stock, b.name AS brandName,
|
||||
pr.net, t.rate AS taxRate,
|
||||
${JSON_EANS} AS eansJson,
|
||||
${JSON_CATEGORIES} AS categoryIdsJson,
|
||||
@@ -122,6 +122,7 @@ SELECT auth.*,
|
||||
json_object(
|
||||
'id', a.id, 'sku', a.sku, 'name', at.name, 'slug', at.slug,
|
||||
'unitamount', a.unitamount, 'weight', a.weight,
|
||||
'track_stock', a.track_stock,
|
||||
'unitSi', u.si, 'unitBasesi', u.basesi,
|
||||
'unitBasesifactor', u.basesifactor, 'unitSymbol', ut.symbol,
|
||||
'unitName', ut.name,
|
||||
@@ -169,7 +170,7 @@ SELECT auth.*,
|
||||
WHERE s.article_id = a.id ORDER BY s.sort, s.id
|
||||
))),
|
||||
'warehousesJson', json((SELECT COALESCE(json_group_array(json_object(
|
||||
'id', w.id, 'name', w.name, 'stock', COALESCE(stock_calc.stock, 0)
|
||||
'id', w.id, 'name', w.name, 'sort', w.sort, 'stock', COALESCE(stock_calc.stock, 0)
|
||||
)), '[]') FROM warehouse w
|
||||
LEFT JOIN (
|
||||
SELECT l.warehouse_id, SUM(l.amount) AS stock
|
||||
@@ -184,7 +185,7 @@ SELECT auth.*,
|
||||
GROUP BY l.warehouse_id
|
||||
) stock_calc ON stock_calc.warehouse_id = w.id
|
||||
WHERE w.company_id = a.company_id
|
||||
ORDER BY w.name ASC))
|
||||
ORDER BY w.sort ASC, w.name ASC))
|
||||
) AS articleJson
|
||||
FROM auth
|
||||
INNER JOIN article a ON a.id = auth.articleId
|
||||
|
||||
@@ -2,17 +2,19 @@ export const LIST_BY_COMPANY = `
|
||||
SELECT
|
||||
id,
|
||||
company_id,
|
||||
name
|
||||
name,
|
||||
sort
|
||||
FROM warehouse
|
||||
WHERE company_id = @companyId
|
||||
ORDER BY name ASC;
|
||||
ORDER BY sort ASC, name ASC;
|
||||
`;
|
||||
|
||||
export const GET_BY_COMPANY_AND_ID = `
|
||||
SELECT
|
||||
id,
|
||||
company_id,
|
||||
name
|
||||
name,
|
||||
sort
|
||||
FROM warehouse
|
||||
WHERE id = @id AND company_id = @companyId;
|
||||
`;
|
||||
@@ -21,20 +23,39 @@ export const GET_BY_COMPANY_AND_NAME = `
|
||||
SELECT
|
||||
id,
|
||||
company_id,
|
||||
name
|
||||
name,
|
||||
sort
|
||||
FROM warehouse
|
||||
WHERE company_id = @companyId AND name = @name;
|
||||
`;
|
||||
|
||||
export const GET_NEXT_SORT = `
|
||||
SELECT IFNULL(MAX(sort), -1) + 1 AS sort
|
||||
FROM warehouse
|
||||
WHERE company_id = @companyId;
|
||||
`;
|
||||
|
||||
export const CREATE = `
|
||||
INSERT INTO warehouse (company_id, name)
|
||||
VALUES (@companyId, @name)
|
||||
RETURNING id, company_id, name;
|
||||
INSERT INTO warehouse (company_id, name, sort)
|
||||
VALUES (@companyId, @name, @sort)
|
||||
RETURNING id, company_id, name, sort;
|
||||
`;
|
||||
|
||||
export const UPDATE_BY_ID = `
|
||||
UPDATE warehouse
|
||||
SET name = @name
|
||||
SET name = @name, sort = @sort
|
||||
WHERE id = @id AND company_id = @companyId;
|
||||
`;
|
||||
|
||||
export const LIST_IDS_BY_COMPANY = `
|
||||
SELECT id
|
||||
FROM warehouse
|
||||
WHERE company_id = @companyId;
|
||||
`;
|
||||
|
||||
export const UPDATE_SORT = `
|
||||
UPDATE warehouse
|
||||
SET sort = @sort
|
||||
WHERE id = @id AND company_id = @companyId;
|
||||
`;
|
||||
|
||||
|
||||
@@ -216,6 +216,7 @@ CREATE TABLE IF NOT EXISTS article (
|
||||
unit_id INTEGER NOT NULL,
|
||||
unitamount REAL NOT NULL,
|
||||
weight REAL NOT NULL,
|
||||
track_stock INTEGER NOT NULL DEFAULT 1,
|
||||
brand_id INTEGER,
|
||||
articlelist_id INTEGER,
|
||||
optionslist_id INTEGER,
|
||||
@@ -431,6 +432,7 @@ CREATE TABLE IF NOT EXISTS warehouse (
|
||||
id INTEGER PRIMARY KEY,
|
||||
company_id INTEGER NOT NULL,
|
||||
name TEXT NOT NULL COLLATE NOCASE,
|
||||
sort INTEGER NOT NULL DEFAULT 0,
|
||||
UNIQUE (company_id, name),
|
||||
FOREIGN KEY (company_id) REFERENCES company(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user