Untitled
unknown
plain_text
a year ago
13 kB
11
Indexable
***** ERRORE IN ESECUZIONE *****
ERROR [42S02] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'dbo.fn_B_RS_MovMagTes_KitInGaranzia'.
CREATE FUNCTION [dbo].[fn_B_RS_MovMagTes_AbbinaGaranzia]
/*
00 Procedure : fn_B_RS_MovMagTes_AbbinaGaranzia
01 Class : 1000000000
02 Level : **
03 Author : IDEA INFORMATICA - Giorgio Cappi
04 Date : Jan 20, 2015
05 Version : 3.1.1
06 Purpose :
07 Input :
08
09 Returns : Resultset
10 Remarks :
10 GG - 02/04/24: Utilizzato mmrPrezzoFatturaIvaT al posto del prezzoNetto poiche' il prezzo netto non tiene conto degli sconti di testata
10 GG - 02/05/24: In caso di MovMagRigheSave il campo mmrPrezzoFatturaIvaT non e' sempre valorizzato correttamente,
10 quindi torno a prendere in considerazione anche il mmrPrezzoNetto.
*/
(
/*PINI*/
@MovIdSelezione char(9),
@MovIdCorrente char(9),
@TipoGaranzia smallint
/*PEND*/
)
/*END*/
RETURNS TABLE
AS
RETURN
(SELECT
mmtMovId
,MovMagRighe.mmrArticolo
,MovMagRighe.mmrID
,MovMagRighe.mmrDescrizione
,MovMagRighe.mmrCodLungo
,Descrizione = ARTSel.artCodLungo + ' ' + ARTSel.artCodCommerciale + ' ' + MovMagRighe.mmrDescrizione + ' ' + ARTSel.artMarchio
,mmtCausale
,mmtRifDoc
,mmtDataReg
,mmtMmtId
/*,PrezzoArticolo = IsNull(AA.Prz, CASE WHEN MovMagRighe.mmrPrezzoFatturaIvaT = 0 THEN MovMagRighe.mmrPrezzoImposto ELSE MovMagRighe.mmrPrezzoFatturaIvaT END)*/
/*,PrezzoArticolo = IsNull(AA.Prz, CASE WHEN MovMagRighe.mmrPScontiBase >= 99 THEN MovMagRighe.mmrPrezzoUn ELSE CASE WHEN MovMagRighe.mmrPrezzoNetto = 0 THEN MovMagRighe.mmrPrezzoImposto ELSE MovMagRighe.mmrPrezzoNetto END END)*/
,PrezzoArticolo = IsNull(AA.Prz, CASE WHEN MovMagRighe.mmrPScontiBase >= 99 THEN MovMagRighe.mmrPrezzoUn ELSE CASE WHEN MovMagRighe.mmrPrezzoFatturaIvaT = 0 THEN MovMagRighe.mmrPrezzoImposto ELSE MovMagRighe.mmrPrezzoFatturaIvaT END END)
,DescrizioneGaranzia = IsNull(GAR.mmrDescrizione, '')
FROM MovMagTes WITH(nolock)
INNER JOIN MovMagRighe WITH(nolock) ON MovMagRighe.mmrMovId = MovmagTes.mmtMovId
LEFT OUTER JOIN MovMagRigheSave SAVXXX WITH(nolock) ON MovMagRighe.mmrID = SAVXXX.mmrID
LEFT OUTER JOIN MovMagRighe MMRPADRE WITH(nolock) ON MovMagRighe.mmrIdRifLink = MMRPADRE.mmrID
INNER JOIN Articoli ARTSel WITH(nolock) ON MovMagRighe.mmrArticolo = ARTSel.artCodice
INNER JOIN TipiArticolo WITH(nolock) ON artTipo = tarCodice
INNER JOIN Sottofamiglie WITH(nolock) ON artSottofamiglia = sotCodice
/*
LEFT OUTER JOIN MovMagRighe GAR ON MovMagRighe.mmrIdRif = GAR.mmrIdInGaranzia
*/
/*LEFT OUTER JOIN MovMagRighe GAR WITH(nolock) ON ( MovMagRighe.mmrIdRif = GAR.mmrIdInGaranzia
AND @MovIdSelezione <> ''
AND MovMagRighe.mmrIdRif <> '')
OR ( MovMagRighe.mmrId = GAR.mmrIdInGaranzia
AND @MovIdCorrente <> ''
AND MovMagRighe.mmrId <> '')
GG 03/05/2023 - Modificato in OUTER APPLY per migliorare le prestazioni
*/
OUTER APPLY (SELECT mmrDescrizione
FROM MovMagRighe GAR WITH(NOLOCK)
WHERE ( MovMagRighe.mmrIdRif = GAR.mmrIdInGaranzia
AND @MovIdSelezione <> ''
AND MovMagRighe.mmrIdRif <> '')
OR ( MovMagRighe.mmrId = GAR.mmrIdInGaranzia
AND @MovIdCorrente <> ''
AND MovMagRighe.mmrId <> '')) GAR
/* Sostituito con una IF NOT EXISTS CHE ESCLUDE TUTTI I COMPONENTI */
/*
LEFT OUTER JOIN MovMagRigheSave SAVGAR WITH(nolock) ON MovMagRighe.mmrId = SAVGAR.mmrIdInGaranzia
AND SAVGAR.mmrMovId = @MovIdCorrente
*/
LEFT OUTER JOIN (SELECT Mov = mmrIdriflink
,Prz = SUM(CASE WHEN MovMagRighe.mmrPScontiBase >= 99 THEN MovMagRighe.mmrPrezzoUn ELSE MovMagRighe.mmrPrezzoFatturaIvaT END * mmrQuantita)
FROM MovMagRighe WITH(nolock)
WHERE mmrLegami LIKE 'DBR=R-F%'
GROUP BY mmrIdriflink ) AS aa ON MovMagRighe.mmrID = aa.Mov
INNER JOIN (SELECT dbo.fn_XIsModuloAttivo('', '', 'G_EGES') AS Att1) AS ModAtt1 ON 1=1
INNER JOIN (SELECT dbo.fn_XIsModuloAttivo('', '', 'G_EGIN') AS Att3) AS ModAtt3 ON 1=1
LEFT OUTER JOIN (SELECT tgrNrGGDaVend=MAX(tgrNrGGDaVend) FROM TipiGaranzia WITH(nolock)) AS TGR ON 1=1
INNER JOIN Parametri WITH(NOLOCK) ON parCodice = 'XELIMTRA'
WHERE ( mmtMovID = @MovIdSelezione
OR mmtMovID = @MovIdCorrente
)
AND (tarEscludoVal <> 1 OR ModAtt3.Att3 = 1)
AND artTipoGaranzia = ''
AND MovMagRighe.mmrQuantita = 1
--AND IsNull(MMRPADRE.mmrTipoRiga, '') <> '4'
AND DateDiff(day , MovMagTes.mmtDataReg, Getdate()) < IsNull(TGR.tgrNrGGDaVend, 365)
/* AND GAR.mmrMovId IS NULL */
-----------------------------------AND SAVGAR.mmrMovId IS NULL
AND SAVXXX.mmrMovId IS NULL
AND ((sotModuloGaranzia > -9 AND ModAtt1.Att1 = 1) OR ModAtt1.Att1 = 0 OR ModAtt3.Att3 = 1)
AND ( /* caso SGM - deve esistere abbinamento */
EXISTS (SELECT 1 FROM dbo.fn_B_RS_GaranzieRaggr(ARTSel.artCodice, -999999,''))
OR
/* caso ESTENDO - deve essere abilitata la sottofamiglia */
( ModAtt1.Att1 = 1
AND @TipoGaranzia = 1
)
OR
/* caso INTERNO - qualsiasi articolo */
( ModAtt3.Att3 = 1
AND @TipoGaranzia = 2)
AND EXISTS (SELECT 1 FROM dbo.fn_B_RS_GaranzieRaggr (ARTSel.artCodice, IsNull(AA.Prz, CASE WHEN MovMagRighe.mmrPScontiBase >= 99 THEN MovMagRighe.mmrPrezzoUn ELSE CASE WHEN MovMagRighe.mmrPrezzoFatturaIvaT = 0 THEN MovMagRighe.mmrPrezzoImposto ELSE MovMagRighe.mmrPrezzoFatturaIvaT END END), '')
)
)
AND (
parValnumerico = 0
OR
artTipo NOT IN ('55', '56')
)
AND NOT EXISTS (SELECT 1 FROM dbo.fn_B_RS_MovMagTes_KitInGaranzia (@MovIdCorrente, 0) WHERE mmrID = MovMagRighe.mmrId)
UNION
SELECT
MovMagRigheSave.mmrMovId
,MovMagRigheSave.mmrArticolo
,MovMagRigheSave.mmrID
,MovMagRigheSave.mmrDescrizione
,MovMagRigheSave.mmrCodLungo
,Descrizione = ARTcor.artCodLungo + ' ' + ARTcor.artCodCommerciale + ' ' + MovMagRigheSave.mmrDescrizione + ' ' + ARTcor.artMarchio
,MovMagRigheSave.mmrCausale
,'' AS mmtRifDoc
,MovMagRigheSave.mmrDataReg
,'' AS mmtMmtId
,PrezzoArticolo = IsNull(AA.Prz,CASE WHEN MovMagRigheSave.mmrPScontiBase >= 99
THEN MovMagRigheSave.mmrPrezzoUn
ELSE CASE WHEN MovMagRigheSave.mmrPrezzoFatturaIvaT = 0
THEN CASE WHEN MovMagRigheSave.mmrPrezzoNetto = 0
THEN MovMagRigheSave.mmrPrezzoImposto
ELSE MovMagRigheSave.mmrPrezzoNetto
END
ELSE MovMagRigheSave.mmrPrezzoFatturaIvaT
END
END)
,DescrizioneGaranzia = ''
FROM MovMagRigheSave WITH(nolock)
LEFT OUTER JOIN MovMagRighe MMRXXX WITH(nolock) ON MovMagRigheSave.mmrID = MMRXXX.mmrID
LEFT OUTER JOIN MovMagRigheSave MMRPADRE WITH(nolock) ON MovMagRigheSave.mmrIdRifLink = MMRPADRE.mmrID
INNER JOIN Articoli ARTcor WITH(nolock) ON MovMagRigheSave.mmrArticolo = ARTcor.artCodice
INNER JOIN TipiArticolo WITH(nolock) ON ARTcor.artTipo = tarCodice
INNER JOIN Sottofamiglie WITH(nolock) ON artSottofamiglia = sotCodice
LEFT OUTER JOIN MovMagRighe GAR WITH(nolock) ON MovMagRigheSave.mmrId = GAR.mmrIdInGaranzia
/* Sostituito con una IF NOT EXISTS CHE ESCLUDE TUTTI I COPONENTI */
/*
LEFT OUTER JOIN MovMagRigheSave SAVGAR WITH(nolock) ON MovMagRigheSave.mmrId = SAVGAR.mmrIdInGaranzia
AND SAVGAR.mmrMovId = @MovIdCorrente
*/
LEFT OUTER JOIN (SELECT Mov = mmrIdRifLink
,Prz = SUM(CASE WHEN MovMagRigheSave.mmrPScontiBase >= 99
THEN MovMagRigheSave.mmrPrezzoUn
ELSE CASE WHEN MovMagRigheSave.mmrPrezzoFatturaIvaT = 0
THEN CASE WHEN MovMagRigheSave.mmrPrezzoNetto = 0
THEN MovMagRigheSave.mmrPrezzoImposto
ELSE MovMagRigheSave.mmrPrezzoNetto
END
ELSE MovMagRigheSave.mmrPrezzoFatturaIvaT
END
END * mmrQuantita)
FROM MovMagRigheSave WITH(nolock)
WHERE mmrLegami LIKE 'DBR=R-F%'
GROUP BY mmrIdRifLink ) AS aa ON MovMagRigheSave.mmrID = aa.Mov
INNER JOIN (SELECT dbo.fn_XIsModuloAttivo('', '', 'G_EGES') AS Att2) AS ModAtt2 ON 1=1
INNER JOIN (SELECT dbo.fn_XIsModuloAttivo('', '', 'G_EGIN') AS Att4) AS ModAtt4 ON 1=1
INNER JOIN Parametri WITH(NOLOCK) ON parCodice = 'XELIMTRA'
WHERE MovMagRigheSave.mmrMovID = @MovIdCorrente
AND (tarEscludoVal <> 1 OR ModAtt4.Att4 = 1)
AND artTipoGaranzia = ''
AND MovMagRigheSave.mmrQuantita = 1
-- AND IsNull(MMRPADRE.mmrTipoRiga, '') <> '4'
AND GAR.mmrMovId IS NULL
-------------------------AND SAVGAR.mmrMovId IS NULL
AND MMRXXX.mmrMovId IS NULL
AND ((sotModuloGaranzia > -9 AND ModAtt2.Att2 = 1) OR ModAtt2.Att2 = 0 OR ModAtt4.Att4 = 1)
AND ( /* caso SGM - deve esistere abbinamento */
EXISTS (SELECT 1 FROM dbo.fn_B_RS_GaranzieRaggr ( ARTcor.artCodice, -999999,''))
OR
/* caso ESTENDO - deve essere abilitata la sottofamiglia */
( ModAtt2.Att2 = 1
AND @TipoGaranzia = 1
)
OR
/* caso INTERNO - qualsiasi articolo */
( ModAtt4.Att4 = 1
AND @TipoGaranzia = 2
AND EXISTS (SELECT 1 FROM dbo.fn_B_RS_GaranzieRaggr ( ARTcor.artCodice, IsNull(AA.Prz, CASE WHEN MovMagRigheSave.mmrPScontiBase >= 99
THEN MovMagRigheSave.mmrPrezzoUn
ELSE CASE WHEN MovMagRigheSave.mmrPrezzoFatturaIvaT = 0
THEN CASE WHEN MovMagRigheSave.mmrPrezzoNetto = 0
THEN MovMagRigheSave.mmrPrezzoImposto
ELSE MovMagRigheSave.mmrPrezzoNetto
END
ELSE MovMagRigheSave.mmrPrezzoFatturaIvaT
END
END),'')
)
)
)
AND (
parValnumerico = '0'
OR
artTipo NOT IN ('55', '56')
)
AND NOT EXISTS ( SELECT 1 FROM dbo.fn_B_RS_MovMagTes_KitInGaranzia (@MovIdCorrente, 1) WHERE mmrID = MovMagRigheSave.mmrId)
)
Editor is loading...
Leave a Comment