Untitled
unknown
plain_text
23 days ago
17 kB
2
Indexable
Never
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.
Leave a Comment