Files
GMW/GMW_DB/dbo/Stored Procedures/stp_prtCartTrattatiByUDC.sql
T

111 lines
3.9 KiB
Transact-SQL

/***************************************
* STORED stp_prtCartTrattatiByUDC
*
* ottiene il record del Cartellino Trattati dato l'UDC richiesto x la stampa
*
* Steamware, S.E.L. - G.A.R.
* mod: 2014.02.04
*
****************************************/
CREATE PROCEDURE [dbo].[stp_prtCartTrattatiByUDC]
(
@UDC NVARCHAR(50)
)
AS
-- estraggo i UDC con Relazione nelle note cmq ( x max 10 )
DECLARE @tmp NVARCHAR(500)
DECLARE @NoteTratt NVARCHAR(500)
SET @tmp = ''
-- estraggo gli UDC parent di quello passato ( x max 10 ) per poi stamparlo nel campo NoteTratt
-- prendo solo la parte necessaria dell' UDC per usare meno spazio possibile
-- Prima estraggo i numero trattamenti e li accodo
--SELECT TOP 3 @tmp = @tmp + RIGHT(UDC_PARENT,8) + ' - ' FROM RelazUDC AS r
-- --INNER JOIN dbo.ElencoCartellini AS e ON r.UDC_parent = e.UDC -- il parent deve esistere ( escludo UDC cancellati )
-- WHERE r.UDC_child = @UDC AND LEFT(UDC_parent,5) = 'UTKTR' -- prendo solo i trattamenti
-- ORDER BY r.UDC_parent
SELECT TOP 5 @tmp = @tmp + RIGHT(tr.ValAttr,10) + ' - '
FROM dbo.Attr2UDC AS tr
WHERE tr.UDC = @UDC AND tr.CodAttr = 'NT' -- prendo attributo trattamento
SET @tmp = (SELECT SUBSTRING(@tmp, 0, LEN(@tmp))) + char(10) + char(13) -- tolgo ultimo trattino + a capo
-- sistemo intestazione nel caso non ci siano trattamenti
SET @tmp = CASE @tmp WHEN '' THEN 'UDC : ' ELSE 'Trattamento : ' + @tmp + ' UDC : ' END ;
SELECT TOP 5 @tmp = @tmp + RIGHT(UDC_PARENT,10) + ' - ' FROM RelazUDC AS r
INNER JOIN dbo.ElencoCartellini AS e ON r.UDC_parent = e.UDC -- il parent deve esistere ( escludo i cancellati )
WHERE r.UDC_child = @UDC
ORDER BY r.UDC_parent
SET @NoteTratt = (SELECT SUBSTRING(@tmp, 0, LEN(@tmp))) -- tolgo ultimo trattino
-- ora seleziono i dati veri e propri
SELECT
e.UDC,
e.CodCS,
ISNULL( e.CodCliente,N'' )AS codcliente,
ISNULL( e.RagSociale,N'' )AS ragsociale,
ISNULL( e.Particolare,N'' )AS particolare,
ISNULL( e.DescParticolare,N'' )AS descparticolare,
ISNULL( e.DisegnoGrezzo,N'' )AS disegnogrezzo,
ISNULL( e.Esponente,N'' )AS esponente,
ISNULL( e.CodImpianto,N'' )AS codimpianto,
ISNULL( e.DescImpianto,N'' )AS descimpianto,
ISNULL( e.CodStampo,N'' )AS codstampo,
ISNULL( e.Figura,N'' )AS figura,
ISNULL( e.DataFus,N'' )AS datafus,
ISNULL( e.TurnoFus,0 )AS turnofus,
ISNULL( e.CodImballo,N'' )AS codimballo,
ISNULL( e.CodSoggetto,N'' )AS codsoggetto,
ISNULL( e.NumCont,0 )AS numcont,
ISNULL( e.Tara,0 )AS tara,
ISNULL( e.Qta,0 )AS qta,
ISNULL( e.CodStato,N'' )AS codstato,
ISNULL( e.IdxPosizione,0 )AS idxposizione,
ISNULL( e.PesoTot,0 )AS pesotot,
ISNULL( e.PesoCad,0 )AS pesocad,
e.CreateDate,
e.ModDate,
ISNULL( o.Cognome,N'' )AS cognome,
ISNULL( o.Nome,N'' )AS nome,
ISNULL( sp.DescStato,N'' )AS descstato,
ISNULL( i.DescImballo,N'' )AS descimballo,
a.CodFamiglia,
f.DescFamiglia,
ISNULL( e.Note,N'' )AS Note,
@NoteTratt AS NoteTratt
FROM ElencoCartellini AS e
LEFT OUTER JOIN RilPro.AnagParticolari AS a
ON e.Particolare = a.Particolare
LEFT OUTER JOIN RilPro.AnagFamiglie AS f
ON a.CodFamiglia = f.CodFamiglia
LEFT OUTER JOIN AnagStatiProdotto AS sp
ON e.CodStato = sp.CodStato
LEFT OUTER JOIN RilPro.AnagOperatori AS o
ON e.CodSoggetto = o.CodSoggetto
LEFT OUTER JOIN RilPro.AnagImballi AS i
ON e.CodImballo = i.CodImballo
WHERE e.UDC = @UDC;
RETURN