Untitled
unknown
plain_text
a year ago
13 kB
9
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