export const CHECK_MANIFESTARTICLE_ACCESS = ` SELECT ma.id, ma.sku, ma.amount AS lineAmount, ma.pu AS linePu, ma.net, ma.rebate, ma.taxrate, m.id AS manifestId, m.number AS manifestNumber, m.type AS manifestType, m.external_number AS externalNumber, e.name AS supplierName FROM manifestarticle ma INNER JOIN manifest m ON ma.manifest_id = m.id LEFT JOIN entity e ON e.id = m.entity_id WHERE ma.id = @manifestarticleId AND m.company_id = @companyId; `; export const CHECK_WAREHOUSE_ACCESS = ` SELECT id, name FROM warehouse WHERE id = @warehouseId AND company_id = @companyId; `; export const GET_DEFAULT_WAREHOUSE = ` SELECT id, name FROM warehouse WHERE company_id = @companyId ORDER BY sort ASC, name ASC, id ASC LIMIT 1; `; export const CHECK_MANIFESTARTICLE_BOOKED = ` SELECT COALESCE(SUM(amount), 0) AS bookedAmount FROM ledger WHERE manifestarticle_id = @manifestarticleId AND warehouse_id IS NULL; `; export const FIND_ARTICLES_FOR_HISTORY = ` SELECT DISTINCT asup.article_id AS articleId FROM articlesupplier asup INNER JOIN entity e ON e.id = asup.entity_id INNER JOIN customergroup cg ON cg.id = e.customergroup_id WHERE asup.sku = @sku AND cg.company_id = @companyId UNION SELECT id AS articleId FROM article WHERE sku = @sku AND company_id = @companyId; `; export const INSERT_ARTICLE_HISTORY = ` INSERT INTO articlehistory (article_id, companyuser_id, date, text, meta) VALUES (@articleId, @companyuserId, COALESCE(@date, strftime('%Y-%m-%dT%H:%M:%fZ', 'now')), @text, @meta); `; export const GET_LATEST_ROW = ` SELECT id, manifestarticle_id, warehouse_id, transaction_type, amount, transaction_text, hash_version, prev_hash, created_at FROM ledger ORDER BY id DESC LIMIT 1; `; export const INSERT_ROW = ` INSERT INTO ledger ( manifestarticle_id, warehouse_id, transaction_type, amount, transaction_text, hash_version, prev_hash ) VALUES ( @manifestarticleId, @warehouseId, @transactionType, @amount, @transactionText, @hashVersion, @prevHash ) RETURNING id, manifestarticle_id, warehouse_id, transaction_type, amount, transaction_text, hash_version, prev_hash, created_at; `; export const LIST_BY_MANIFESTARTICLE = ` SELECT l.id, l.manifestarticle_id, l.warehouse_id, ma.sku, l.transaction_type, l.amount, l.transaction_text, l.hash_version, l.prev_hash, l.created_at FROM ledger l INNER JOIN manifestarticle ma ON l.manifestarticle_id = ma.id INNER JOIN manifest m ON ma.manifest_id = m.id WHERE l.manifestarticle_id = @manifestarticleId AND m.company_id = @companyId AND (@transactionType IS NULL OR l.transaction_type = @transactionType) AND (@warehouseId IS NULL OR l.warehouse_id = @warehouseId) ORDER BY l.id ASC; `; export const LIST_BY_SKU = ` SELECT l.id, l.manifestarticle_id, l.warehouse_id, ma.sku, l.transaction_type, l.amount, l.transaction_text, l.hash_version, l.prev_hash, l.created_at FROM ledger l INNER JOIN manifestarticle ma ON l.manifestarticle_id = ma.id INNER JOIN manifest m ON ma.manifest_id = m.id WHERE ma.sku = @sku AND m.company_id = @companyId AND (@transactionType IS NULL OR l.transaction_type = @transactionType) AND (@warehouseId IS NULL OR l.warehouse_id = @warehouseId) ORDER BY l.id ASC; `; export const GET_ARTICLE_TRACK_STOCK = ` SELECT a.id, a.sku, a.track_stock FROM article a WHERE a.company_id = @companyId AND ( a.sku = @sku OR EXISTS (SELECT 1 FROM articlesupplier asup WHERE asup.article_id = a.id AND asup.sku = @sku) ) LIMIT 1; `; export const GET_ARTICLE_WAREHOUSE_STOCK = ` SELECT COALESCE(SUM(l.amount), 0) AS stock FROM ledger l INNER JOIN manifestarticle ma ON ma.id = l.manifestarticle_id INNER JOIN manifest m ON m.id = ma.manifest_id WHERE l.warehouse_id = @warehouseId AND m.company_id = @companyId AND ( ma.sku = @sku OR ma.sku IN (SELECT asup.sku FROM articlesupplier asup WHERE asup.article_id = @articleId) ); `;