Untitled
unknown
plain_text
a year ago
17 kB
8
Indexable
47 rel
Can't Execute this statement:
ALTER Procedure [dbo].[sp_M_RettificheAutoPvEx]
/*
-------------
00 Procedure | sp_M_RettificheAutoPvEx
01 Analisi |
02 Level | **
03 Author | IDEA INFORMATICA - Denis Valente
04 Date | 29 Aprile 2024
05 Version | 1.0.0
06 Purpose |
07 Input |
08 Output |
09 Returns |
10 Remarks |
-------------
*/
/*PINI*/
@rvtID char(9)
/*PEND*/
/*END*/
AS
SET NOCOUNT ON
---------------------------
--M: INI Gestione DEBUGGER
---------------------------
declare @Debug int -- 0=Debugger NON ATTIVO, 1=Debugger ATTIVO
declare @Module varchar(32)
declare @Function varchar(64)
declare @Infos varchar(2048)
set @Module = 'sp_M_RettificheAutoPvEx'
exec @Debug = sp_XGetDebugParam 'ON'
---------------------------
--M: END Gestione DEBUGGER
---------------------------
----------------------------------
--M: Se richiesto, gestisce DEBUG
----------------------------------
--SET @Debug = 1
if @Debug = 1
begin
set @Function = 'ENTER SP'
set @Infos = 'BEGIN Input Params: '
+ 'rvtID =[' + isnull(convert(varchar,@rvtID),'<NULL>') + '],'
exec sp_XLOG @Module,@Function,@Infos
end
declare @rvrNRiga char(5)
declare @rvrTipoRiv char(1)
declare @DataInizio datetime
declare @DataFine datetime
declare @DataCalcolo datetime
declare @DataRicerca datetime
declare @Articolo char(5)
declare @CodLungo char(14)
declare @Descrizione varchar(50)
declare @Marchio char(4)
declare @Sottofamiglia char(4)
declare @Cliente char(6)
declare @Destinatario char(3)
declare @mmrIdVend char(30)
declare @Articolo_bk char(5)
declare @Cliente_bk char(6)
declare @Destinatario_bk char(3)
declare @IdVendita int
declare @GiacenzaCalc money
declare @DataVend datetime
declare @QtaVenduta money
declare @IdCarico int
declare @mmrIdCar char(14)
declare @DataCar datetime
declare @QtaRimanente money
declare @QtaRettifica money
SELECT @DataInizio = rvtDataInizioVa -- non usato
,@DataFine = rvtDataFineVa -- non usato
,@DataCalcolo = rvtDataRicalcolo
FROM RivalutazioniTes WITH(NOLOCK)
WHERE rvtId = @rvtID
SET @DataRicerca = @DataInizio -- non usato
SET @Articolo_bk = ''
SET @Cliente_bk = ''
SET @Destinatario_bk = ''
IF (Object_ID('tempdb..#SchedaArticolo') IS NOT NULL) DROP TABLE #SchedaArticolo
CREATE TABLE #SchedaArticolo
(
Id int
,DataReg datetime
,Cliente varchar(6)
,Destinazione varchar(3)
,RagSoc varchar(40)
,artCodice char(5)
,artCodLungo varchar(14)
,artDescrizione varchar(50)
,QtaEntrataDaPa money
,QtaResaAPa money
,QtaVendutaDaPv money
,QtaResaAPv money
,Qta money
,Segno smallint
,Causale varchar(16)
,MovId varchar(30)
,Priorita smallint
,GiacenzaCalc smallint
,Cx varchar(30)
,Messaggio varchar(128)
,QtaRettifica money
)
IF (Object_ID('tempdb..#CarichiUsati') IS NOT NULL) DROP TABLE #CarichiUsati
CREATE TABLE #CarichiUsati
(
Id int
,MovId varchar(30)
,QtaUsata money
)
declare curArticoliRossi insensitive cursor for
SELECT rvrNRiga
,rvrTipoRiv
,rvrArticolo
,artCodLungo
,artDescrizione
,artMarchio
,artSottofamiglia
,rvrCliente
,rvrDestinatario
,rvrIdVend
FROM X_RVR_RivalutazioniRighe_M10 WITH(NOLOCK)
WHERE rvrId = @rvtID
AND ( rvxMessageDisp like 'ER%'
OR rvrQtaConcordataCli = 0
)
AND RTrim(rvrIdVend) <> ''
/* per prove */
-- AND rvrCliente = '001181'
-- AND rvrArticolo = 'Adtti'
/* */
ORDER By artCodLungo ASC, rvrCliente ASC, rvrDestinatario ASC, rvrDataVend ASC, rvrIdVend ASC
open curArticoliRossi
while 1=1
begin
fetch next from curArticoliRossi Into @rvrNRiga, @rvrTipoRiv,
@Articolo, @CodLungo, @Descrizione, @Marchio, @Sottofamiglia,
@Cliente, @Destinatario, @mmrIdVend
if @@fetch_status < 0 BREAK
if @Debug = 1
begin
set @Function = 'INFO'
set @Infos = 'Riga rossa : '
+ 'ID vendita =[' + isnull(convert(varchar,@mmrIdVend),'<NULL>') + '],'
exec sp_XLOG @Module,@Function,@Infos
end
IF @Articolo <> @Articolo_bk OR @Cliente <> @Cliente_bk OR @Destinatario <> @Destinatario_bk
begin
SET @Articolo_bk = @Articolo
SET @Cliente_bk = @Cliente
SET @Destinatario_bk = @Destinatario
if @Debug = 1
begin
set @Function = 'INFO'
set @Infos = 'Elementi della riga rossa : '
+ 'Cliente =[' + isnull(convert(varchar,@Cliente),'<Null>') + '],'
+ 'Destinatario =[' + isnull(convert(varchar,@Destinatario),'<Null>') + '],'
+ 'Articolo =[' + isnull(convert(varchar,@Articolo),'<Null>') + '],'
exec sp_XLOG @Module,@Function,@Infos
end
TRUNCATE TABLE #SchedaArticolo
INSERT INTO #SchedaArticolo
SELECT *
FROM dbo.fn_X_RS_VpxSchedaArticolo(-1,'1900/01/01','9999/01/01',@Cliente,@Destinatario,@Articolo,'','')
end
SELECT @IdVendita = Id
,@GiacenzaCalc = GiacenzaCalc
,@DataVend = DataReg
FROM #SchedaArticolo
WHERE MovId = @mmrIdVend
while 1=1
begin
IF @GiacenzaCalc >= 0 BREAK -- BONIFICATA TOTALMENTE
SET @mmrIdCar = NULL
SELECT TOP 1
@IdCarico = FUN.Id
,@mmrIdCar = FUN.MovId
,@QtaRimanente = FUN.Qta - isnull(CAR.QtaUsata, 0)
,@DataCar = DataReg
FROM #SchedaArticolo as FUN
LEFT JOIN #CarichiUsati as CAR ON CAR.movid = FUN.MovId
WHERE Causale IN ('VEND (PA)', 'VEDR (PA)')
AND FUN.Id > @IdVendita
AND DataReg <= @DataCalcolo
AND FUN.Qta - isnull(CAR.QtaUsata, 0) > 0
IF @mmrIdCar is NULL BREAK -- NON CI SONO PIU' CARICHI DISPONIBILI
if @Debug = 1
begin
set @Function = 'INFO'
set @Infos = 'Trovato il carico : '
+ 'mmrIdCar =[' + isnull(convert(varchar,@mmrIdCar),'<Null>') + '],'
exec sp_XLOG @Module,@Function,@Infos
end
SET @QtaRettifica = CASE WHEN ABS(@GiacenzaCalc) <= @QtaRimanente THEN ABS(@GiacenzaCalc)
WHEN ABS(@GiacenzaCalc) > @QtaRimanente THEN @QtaRimanente
END
SET @GiacenzaCalc = @GiacenzaCalc + @QtaRettifica
IF NOT EXISTS (SELECT 1 FROM /*TestCapabilityRettifiche*/ ArticoliGiacenzePvExRettifiche (NOLOCK)
WHERE azrCodLungo = @CodLungo
AND azrCliente = @Cliente
AND azrDestinatario = @Destinatario
AND azrSDate = convert(varchar, @DataVend, 112)
)
begin
-- Inserimento rettifiche vendite
INSERT INTO /*TestCapabilityRettifiche*/ ArticoliGiacenzePvExRettifiche
(azrArticolo ,azrCodLungo ,azrDescrizione ,azrMarchio ,azrSottofamiglia ,azrCliente ,azrDestinatario ,azrSDate
,azrDataRettifica ,azrQtaRettifica ,azrDataInserimento ,azrOperatore ,azrHostName ,azrNote )
VALUES (@Articolo ,@CodLungo ,@Descrizione ,@Marchio ,@Sottofamiglia ,@Cliente ,@Destinatario ,convert(varchar, @DataVend, 112)
,@DataVend ,@QtaRettifica ,GETDATE() ,'*SYS' ,HOST_NAME() , '#AUT')
end
ELSE
begin
UPDATE /*TestCapabilityRettifiche*/ ArticoliGiacenzePvExRettifiche
SET azrQtaRettifica = azrQtaRettifica + @QtaRettifica
WHERE azrCodLungo = @CodLungo
AND azrCliente = @Cliente
AND azrDestinatario = @Destinatario
AND azrSDate = convert(varchar, @DataVend, 112)
/* Se la qta rettifica si conpensa elimino il record */
DELETE
FROM /*TestCapabilityRettifiche*/ ArticoliGiacenzePvExRettifiche
WHERE azrCodLungo = @CodLungo
AND azrCliente = @Cliente
AND azrDestinatario = @Destinatario
AND azrSDate = convert(varchar, @DataVend, 112)
AND azrQtaRettifica = 0
end
/* Aggiorno la qta di giacenza nella tavola di appoggio */
UPDATE #SchedaArticolo
SET GiacenzaCalc = GiacenzaCalc + @QtaRettifica
WHERE Id >= @IdVendita
IF NOT EXISTS (SELECT 1 FROM #CarichiUsati WHERE MovId = @mmrIdCar)
begin
INSERT INTO #CarichiUsati
SELECT @IdCarico, @mmrIdCar, @QtaRettifica
end
else
begin
UPDATE #CarichiUsati
SET QtaUsata = QtaUsata + @QtaRettifica
WHERE MovId = @mmrIdCar
end
SET @QtaRettifica = @QtaRettifica * (-1)
IF NOT EXISTS (SELECT 1 FROM /*TestCapabilityRettifiche*/ ArticoliGiacenzePvExRettifiche (NOLOCK)
WHERE azrCodLungo = @CodLungo
AND azrCliente = @Cliente
AND azrDestinatario = @Destinatario
AND azrSDate = convert(varchar, @DataCar, 112)
)
begin
-- Inserimento rettifiche carichi
INSERT INTO /*TestCapabilityRettifiche*/ ArticoliGiacenzePvExRettifiche
(azrArticolo ,azrCodLungo ,azrDescrizione ,azrMarchio ,azrSottofamiglia ,azrCliente ,azrDestinatario ,azrSDate
,azrDataRettifica ,azrQtaRettifica ,azrDataInserimento ,azrOperatore ,azrHostName ,azrNote )
VALUES (@Articolo ,@CodLungo ,@Descrizione ,@Marchio ,@Sottofamiglia ,@Cliente ,@Destinatario ,convert(varchar, @DataCar, 112)
,@DataCar ,@QtaRettifica ,GETDATE() ,'*SYS' ,HOST_NAME() , '#AUT')
end
ELSE
begin
UPDATE /*TestCapabilityRettifiche*/ ArticoliGiacenzePvExRettifiche
SET azrQtaRettifica = azrQtaRettifica + @QtaRettifica
WHERE azrCodLungo = @CodLungo
AND azrCliente = @Cliente
AND azrDestinatario = @Destinatario
AND azrSDate = convert(varchar, @DataCar, 112)
/* Se la qta rettifica si conpensa elimino il record */
DELETE
FROM /*TestCapabilityRettifiche*/ ArticoliGiacenzePvExRettifiche
WHERE azrCodLungo = @CodLungo
AND azrCliente = @Cliente
AND azrDestinatario = @Destinatario
AND azrSDate = convert(varchar, @DataCar, 112)
AND azrQtaRettifica = 0
end
/* Aggiorno la qta di giacenza nella tavola di appoggio */
UPDATE #SchedaArticolo
SET GiacenzaCalc = GiacenzaCalc + @QtaRettifica
WHERE Id >= @IdCarico
end
/* Sostituisco ER: con AU: nella riga della linguetta Esterni nell'anagrafica Rivalutazioni */
IF @GiacenzaCalc >= 0 -- BONIFICATA DEL TUTTO
begin
IF NOT EXISTS (SELECT 1
FROM RivalutazioniRigheExt(NOLOCK)
WHERE rvxId = @rvtID
AND rvxNRiga = @rvrNRiga
AND rvxTipoRiv = @rvrTipoRiv
)
begin
INSERT INTO RivalutazioniRigheExt
(rvxId, rvxTipoRiv, rvxNRiga, rvxDispPrv, rvxGiacPrv, rvxMessageDisp, rvxMessageGiac)
VALUES (@rvtID, @rvrTipoRiv, @rvrNRiga, 0, 0, 'AU:', '' )
end
ELSE
begin
UPDATE RivalutazioniRigheExt
SET rvxMessageDisp = REPLACE (rvxMessageDisp , 'ER:', 'AU:')
WHERE rvxId = @rvtID
AND rvxTipoRiv = @rvrTipoRiv
AND rvxNRiga = @rvrNRiga
end
end
ELSE
begin
IF NOT EXISTS (SELECT 1
FROM RivalutazioniRigheExt(NOLOCK)
WHERE rvxId = @rvtID
AND rvxNRiga = @rvrNRiga
AND rvxTipoRiv = @rvrTipoRiv
)
begin
INSERT INTO RivalutazioniRigheExt
(rvxId, rvxTipoRiv, rvxNRiga, rvxDispPrv, rvxGiacPrv, rvxMessageDisp, rvxMessageGiac)
VALUES (@rvtID, @rvrTipoRiv, @rvrNRiga, 0, 0, 'ER:', '' )
end
end
SELECT @QtaVenduta = Qta
,@GiacenzaCalc = GiacenzaCalc
FROM #SchedaArticolo
WHERE Id = @IdVendita
IF @GiacenzaCalc < 0
begin
UPDATE RivalutazioniRighe
SET rvrQtaConcordataCli = CASE WHEN @QtaVenduta + @GiacenzaCalc <= 0 THEN 0 ELSE @QtaVenduta + @GiacenzaCalc END
,rvrNote = CASE WHEN ABS(@GiacenzaCalc) >= @QtaVenduta THEN 'NON CONCESSO' ELSE 'CONCESSO PARZIALE' END
WHERE rvrId = @rvtID
AND rvrNRiga = @rvrNRiga
AND rvrTipoRiv = @rvrTipoRiv
AND ( rvrQtaConcordataCli <> CASE WHEN @QtaVenduta + @GiacenzaCalc <= 0 THEN 0 ELSE @QtaVenduta + @GiacenzaCalc END
OR rvrNote <> CASE WHEN ABS(@GiacenzaCalc) >= @QtaVenduta THEN 'NON CONCESSO' ELSE 'CONCESSO PARZIALE' END
)
end
ELSE /* @GiacenzaCalc >= 0 */
begin
UPDATE RivalutazioniRighe
SET rvrQtaConcordataCli = @QtaVenduta
,rvrNote = 'OK'
WHERE rvrId = @rvtID
AND rvrNRiga = @rvrNRiga
AND rvrTipoRiv = @rvrTipoRiv
AND ( rvrQtaConcordataCli <> @QtaVenduta
OR rvrNote <> 'OK'
)
end
end
close curArticoliRossi
deallocate curArticoliRossi
UPDATE RivalutazioniTes
SET rvtNota3 = 'BONIF. ' + rvtNota3
WHERE rvtId = @rvtID
-- Inserimento rettifiche carichi
/*
*******************
VECCHIO INSERIMENTO
*******************
INSERT INTO TestCapabilityRettifiche --ArticoliGiacenzePvExRettifiche
(azrArticolo ,azrCodLungo ,azrDescrizione ,azrMarchio ,azrSottofamiglia ,azrCliente ,azrDestinatario ,azrSDate
,azrDataRettifica ,azrQtaRettifica ,azrDataInserimento ,azrOperatore ,azrHostName ,azrNote )
SELECT MAX(BB.Articolo)
,BB.CodLungo
,MAX(BB.Descrizione)
,MAX(BB.Marchio)
,MAX(BB.Sottofamiglia)
,BB.Cliente
,BB.Destinatario
,BB.SDate
,MAX(BB.DataRettifica)
,SUM(BB.QtaUsata) * (-1)
,MAX(BB.DataInserimento)
,MAX(BB.Operatore)
,MAX(BB.Hostname)
,'#AUT' +
(SELECT (SELECT '-' + MovID FROM #CarichiUsati AA (NOLOCK) WHERE AA.CodLungo = BB.CodLungo
AND AA.Cliente = BB.Cliente
AND AA.Destinatario = BB.Destinatario
AND AA.SDate = BB.SDate
FOR XML PATH (''), TYPE) .value('.', 'varchar(800)'))
FROM #CarichiUsati BB
GROUP BY BB.CodLungo
,BB.Cliente
,BB.Destinatario
,BB.SDate
*/
-----------------
--M: USCITA OKAY
-----------------
if @Debug = 1
begin
set @Function = 'EXIT SP'
set @Infos = 'OKAY - Return(0)'
--+ 'RETURN =[' + isnull(convert(varchar,@RETURN),'<NULL>') + ']'
exec sp_XLOG @Module,@Function,@Infos
end
return(0)
Error Number :
40002
Error Description :
37000: [Microsoft][ODBC SQL Server Driver][SQL Server]Could not use view or function 'X_RVR_RivalutazioniRighe_M10' because of binding errors.
RDO Errors :
37000: [Microsoft][ODBC SQL Server Driver][SQL Server]Synonym 'VenditePdvEx' refers to an invalid object.
37000: [Microsoft][ODBC SQL Server Driver][SQL Server]Could not use view or function 'X_RVR_RivalutazioniRighe_M10' because of binding errors.
Editor is loading...
Leave a Comment