Freeze stato gestione picking e storico
This commit is contained in:
@@ -21,46 +21,66 @@ __version__ = module_version(__name__)
|
||||
|
||||
SQL_STORICO_PL = """
|
||||
WITH base AS (
|
||||
SELECT *
|
||||
SELECT
|
||||
*,
|
||||
NULLIF(LTRIM(RTRIM(CAST(Pallet AS varchar(32)))), '') AS PalletKey
|
||||
FROM dbo.py_XMag_ViewPackingListStorico
|
||||
),
|
||||
agg AS (
|
||||
pallets AS (
|
||||
SELECT
|
||||
Documento,
|
||||
PalletKey,
|
||||
MAX(CASE WHEN Cella <> 9999 OR Cella IS NULL THEN 1 ELSE 0 END) AS HasResiduo,
|
||||
MAX(CASE WHEN Cella = 9999 THEN 1 ELSE 0 END) AS HasSpedito
|
||||
FROM base
|
||||
WHERE PalletKey IS NOT NULL
|
||||
GROUP BY Documento, PalletKey
|
||||
),
|
||||
meta AS (
|
||||
SELECT
|
||||
Documento,
|
||||
MAX(DataDocumento) AS DataDocumento,
|
||||
MAX(StatoDocumento) AS StatoDocumento,
|
||||
MAX(NAZIONE) AS NAZIONE,
|
||||
MAX(CodNazione) AS CodNazione,
|
||||
COUNT(DISTINCT Pallet) AS TotUDC,
|
||||
SUM(CASE WHEN Cella = 9999 THEN 1 ELSE 0 END) AS RigheSpedite,
|
||||
SUM(CASE WHEN Cella <> 9999 OR Cella IS NULL THEN 1 ELSE 0 END) AS RigheResidue,
|
||||
COUNT(*) AS RigheTotali,
|
||||
MIN(Ordinamento) AS PrimoOrdine,
|
||||
MAX(IDStato) AS IDStato
|
||||
FROM base
|
||||
GROUP BY Documento
|
||||
),
|
||||
agg AS (
|
||||
SELECT
|
||||
Documento,
|
||||
COUNT(*) AS TotUDC,
|
||||
SUM(CASE WHEN p.HasResiduo = 0 AND p.HasSpedito = 1 THEN 1 ELSE 0 END) AS RigheSpedite,
|
||||
SUM(CASE WHEN p.HasResiduo = 1 THEN 1 ELSE 0 END) AS RigheResidue
|
||||
FROM pallets p
|
||||
GROUP BY Documento
|
||||
)
|
||||
SELECT
|
||||
Documento,
|
||||
DataDocumento,
|
||||
StatoDocumento,
|
||||
NAZIONE,
|
||||
CodNazione,
|
||||
TotUDC,
|
||||
RigheResidue,
|
||||
RigheSpedite,
|
||||
RigheTotali,
|
||||
m.Documento,
|
||||
m.DataDocumento,
|
||||
m.StatoDocumento,
|
||||
m.NAZIONE,
|
||||
m.CodNazione,
|
||||
COALESCE(a.TotUDC, 0) AS TotUDC,
|
||||
COALESCE(a.RigheResidue, 0) AS RigheResidue,
|
||||
COALESCE(a.RigheSpedite, 0) AS RigheSpedite,
|
||||
m.RigheTotali,
|
||||
CASE
|
||||
WHEN StatoDocumento = 'D' THEN 'Chiusa'
|
||||
WHEN RigheResidue = 0 THEN 'Esaurita'
|
||||
WHEN RigheSpedite > 0 THEN 'In corso'
|
||||
WHEN m.StatoDocumento = 'D' AND COALESCE(a.RigheResidue, 0) > 0 THEN 'Chiusa ERP con residui'
|
||||
WHEN m.StatoDocumento = 'D' THEN 'Chiusa'
|
||||
WHEN COALESCE(a.RigheResidue, 0) = 0 THEN 'Esaurita'
|
||||
WHEN COALESCE(a.RigheSpedite, 0) > 0 THEN 'In corso'
|
||||
ELSE 'Da lavorare'
|
||||
END AS StatoOperativo,
|
||||
IDStato,
|
||||
PrimoOrdine
|
||||
FROM agg
|
||||
WHERE (:documento IS NULL OR CAST(Documento AS varchar(32)) LIKE CONCAT('%', :documento, '%'))
|
||||
ORDER BY Documento DESC;
|
||||
m.IDStato,
|
||||
m.PrimoOrdine
|
||||
FROM meta m
|
||||
LEFT JOIN agg a ON a.Documento = m.Documento
|
||||
WHERE (:documento IS NULL OR CAST(m.Documento AS varchar(32)) LIKE CONCAT('%', :documento, '%'))
|
||||
ORDER BY m.Documento DESC;
|
||||
"""
|
||||
|
||||
SQL_STORICO_PL_DETAILS = """
|
||||
|
||||
Reference in New Issue
Block a user