floriday/routines/views/supplyOffer.sql

173 lines
5.4 KiB
SQL

CREATE OR REPLACE VIEW supplyOffer AS
SELECT sl.supplyLineId,
ti.name tradeItemName,
i.product_name vbnProductName,
o.commercialName organizationName,
sl.`type`,
sl.salesUnit,
CAST(slvp.pricePerPiece AS DECIMAL(10, 3)) pricePerPiece,
sl.numberOfPieces,
ti.vbnProductCode,
slpc.packageVbnPackageCode,
(
SELECT tic.vbnCode
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 1
AND it.`expiry_date` IS NULL
LIMIT 1
) tag1,
(
SELECT v.type_description
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
JOIN edi.value v ON v.type_value = tic.vbnValueCode
AND tic.vbnCode = v.type_id
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 1
AND it.`expiry_date` IS NULL
LIMIT 1
) value1,
(
SELECT tic.vbnCode
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 2
AND it.`expiry_date` IS NULL
LIMIT 1
) tag2,
(
SELECT v.type_description
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
JOIN edi.value v ON v.type_value = tic.vbnValueCode
AND tic.vbnCode = v.type_id
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 2
AND it.`expiry_date` IS NULL
LIMIT 1
) value2,
(
SELECT tic.vbnCode
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 3
AND it.`expiry_date` IS NULL
LIMIT 1
) tag3,
(
SELECT v.type_description
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
JOIN edi.value v ON v.type_value = tic.vbnValueCode
AND tic.vbnCode = v.type_id
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 3
AND it.`expiry_date` IS NULL
LIMIT 1
) value3,
(
SELECT tic.vbnCode
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 4
AND it.`expiry_date` IS NULL
LIMIT 1
) tag4,
(
SELECT v.type_description
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
JOIN edi.value v ON v.type_value = tic.vbnValueCode
AND tic.vbnCode = v.type_id
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 4
AND it.`expiry_date` IS NULL
LIMIT 1
) value4,
(
SELECT tic.vbnCode
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 5
AND it.`expiry_date` IS NULL
LIMIT 1
) tag5,
(
SELECT v.type_description
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
JOIN edi.value v ON v.type_value = tic.vbnValueCode
AND tic.vbnCode = v.type_id
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 5
AND it.`expiry_date` IS NULL
LIMIT 1
) value5,
(
SELECT tic.vbnCode
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 6
AND it.`expiry_date` IS NULL
LIMIT 1
) tag6,
(
SELECT v.type_description
FROM tradeItemCharacteristic tic
JOIN edi.item_feature it ON it.feature = tic.vbnCode
JOIN edi.value v ON v.type_value = tic.vbnValueCode
AND tic.vbnCode = v.type_id
WHERE tic.tradeItemId = ti.tradeItemId
AND it.presentation_order = 6
AND it.`expiry_date` IS NULL
LIMIT 1
) value6,
sl.deliveryPeriodStartDateTime,
sl.deliveryPeriodEndDateTime,
sl.orderPeriodStartDateTime,
sl.orderPeriodEndDateTime,
IF(slpc.supplyLineId IS NULL, FALSE, TRUE) hasPackingConfiguration,
b.description bucketDescription,
b.x_size,
b.y_size,
b.z_size,
(b.x_size * b.y_size * b.z_size) / 1000000000 volume,
slpc.piecesPerPackage,
slpc.packagesPerLayer,
slpc.layersPerLoadCarrier,
slpc.transportHeightInCm,
slpc.loadCarrierType,
slpc.additionalPricePerPieceCurrency,
slpc.additionalPricePerPieceValue,
w.name warehouseName,
tip.url imageUrl,
igto.expenseFk,
igto.intrastatFk,
igto.originFk,
IFNULL(idt.itemTypeFk, igto.itemTypeFk) itemTypeFk,
sl.lastSync
FROM supplyLine sl
JOIN supplyLineVolumePrice slvp ON slvp.supplyLineId = sl.supplyLineId
JOIN organization o ON o.organizationId = sl.organizationId
JOIN tradeItem ti ON ti.tradeItemId = sl.tradeItemId
LEFT JOIN tradeItemPhoto tip ON tip.tradeItemId = ti.tradeItemId
AND tip.`primary`
JOIN warehouse w ON w.warehouseId = sl.warehouseId
JOIN supplyLinePackingConfiguration slpc ON slpc.supplyLineId = sl.supplyLineId
LEFT JOIN edi.bucket b ON b.bucket_id = slpc.packageVbnPackageCode
JOIN edi.item i ON i.id = ti.vbnProductCode
LEFT JOIN edi.item_groupToOffer igto ON igto.group_code = i.group_id
LEFT JOIN edi.item_defaultType idt ON idt.item_id = i.id
WHERE sl.status = 'AVAILABLE'
AND NOT sl.isDeleted
AND NOT ti.isDeleted
AND NOW() BETWEEN sl.orderPeriodStartDateTime AND sl.orderPeriodEndDateTime
AND sl.numberOfPieces > 0
GROUP BY sl.supplyLineId