Untitled
unknown
plain_text
a year ago
19 kB
12
Indexable
Can't Execute this statement:
ALTER PROCEDURE [dbo].[sp_M_TND_SyncroContrattoCFT]
/*
00 Procedure : sp_M_TND_SyncroContrattoCFT
01 Class : 1000000000
02 Level : **
03 Author : IDEA INFORMATICA - Giorgio Cappi
04 Date : Sep 22, 2020
05 Version : 3.1.1
06 Purpose : Aggiorna
07 Input : 00 ID contratto da syncronizzare
08 Output :
09 Returns : 0 Tutto Okay
09 : 1
09 : 2
10 Remarks :
10 :
10 26/05/2016 - GN
10 Aggiunto parametro in input facoltativo per Tipo Contratto, utilizzato
10 per DMX e GAER nel caso di duplicazione da Contratto di Gruppo a Contratto Nuovo
10 02/01/2020 - MG
10 è stato inserito il liquidatore nella duplicazione dei premi
*/
/*PINI*/
@DaSyncroID char(7)
/*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_TND_SyncroContrattoCFT'
EXEC @Debug = sp_XGetDebugParam 'ON'
---------------------------
--M: END Gestione DEBUGGER
---------------------------
----------------------------------
--M: Se richiesto, gestisce DEBUG
----------------------------------
IF @Debug = 1
begin
SET @Function = 'ENTER SP'
SET @Infos = 'BEGIN Input Params: '
+ 'ID contratto da duplicare =[' + isnull(convert(varchar, @DaSyncroID) ,'<NULL>') + '],'
EXEC sp_XLOG @Module, @Function, @Infos
end
declare @vbBlack int
declare @vbBlue int
declare @vbRed int
declare @vbGreen int
declare @vbYellow int
declare @vbCyan int
set @vbBlack = 0
set @vbRed = 255
set @vbBlue = 16711680
set @vbGreen = 65280
set @vbYellow = 65535
set @vbCyan = 16776960
Declare @Ret integer
/*Campi di ContrattiForTes*/
Declare @cftID char(7)
Declare @cftTipoAnag char(1)
Declare @cftUnita varchar(6)
Declare @cftDestinazione char(3)
Declare @cftDataInizio datetime
Declare @cftDataFine datetime
Declare @cftTipoContratto char(2)
Declare @cftAreaContratto char(2)
Declare @cftMarchio char(4)
Declare @cftMesiGaranzia smallint
Declare @cftFStato smallint
Declare @cftDiGruppo smallint
Declare @cftElencoFornitori smallint
/*Campi di PremiForTes*/
Declare @pftContrattoForTes char(7)
Declare @pftIDPremioFor char(8)
Declare @pftDescrizione varchar(60)
Declare @pftDataInizio datetime
Declare @pftDataFine datetime
Declare @pftValoreConcordato money
Declare @pftModoMonetizzazione smallint
Declare @pftTipoPremio char(2)
Declare @pftModoLiquidazione smallint
Declare @pftFGiustificativo smallint
Declare @pftFStato smallint
Declare @pftMarchio char(4)
Declare @pftPeriodoLiquidazione smallint
Declare @pftDataElaborazione datetime
Declare @pftTotaleImponibile money
Declare @pftTotaleQuantita money
Declare @pftTotalePagato money
Declare @pftTotalePremio money
Declare @pftTargetFor money
Declare @pftVenditeTotali money
Declare @pftFlagDefinitivo smallint
Declare @pftFNettoTrasporto smallint
Declare @pftFNettoCassa smallint
Declare @pftFNettoRae smallint
Declare @pftFNettoSiae smallint
Declare @pftNettoPFF smallint
Declare @pftNettoPremioGruppo smallint
Declare @pftDataDecorrenza datetime
Declare @pftPVariazione real
Declare @pftFStatoPremioCli smallint
Declare @pftElencoFornitori smallint
Declare @pftPPremioCli real
Declare @pftDataEsecuzione datetime
Declare @pftTotaleInPromo money
Declare @pftFStatoPremioFor smallint
Declare @pftImponibileCalcolo money
Declare @pftTotaleImponibileNetto money
Declare @pftFTipoElaborazione smallint
Declare @pftFNettoTrasportoCli smallint
Declare @pftFNettoCassaCli smallint
Declare @pftPAddTraspVir real
Declare @pftPScontoCassaVir real
Declare @pftLiquidatore char(6)
Declare @pftTargetRaggiunto money
Declare @pftTargetDefinitivo money
Declare @pftFTargetSuperato smallint
Declare @DaSyncroIDPremioFor char(8)
/*Fase 1: Inserimento tavola ContrattiForTes
*/
INSERT INTO OASI003..ContrattiForTes
( cftID
,cftTipoAnag
,cftUnita
,cftDestinazione
,cftDataInizio
,cftDataFine
,cftTipoContratto
,cftAreaContratto
,cftMarchio
,cftMesiGaranzia
,cftFStato
,cftDiGruppo
,cftElencoFornitori
)
SELECT CFT001.cftID
,CFT001.cftTipoAnag
,CFT001.cftUnita
,CFT001.cftDestinazione
,CFT001.cftDataInizio
,CFT001.cftDataFine
,CFT001.cftTipoContratto
,CFT001.cftAreaContratto
,CFT001.cftMarchio
,CFT001.cftMesiGaranzia
,CFT001.cftFStato
,CFT001.cftDiGruppo
,CFT001.cftElencoFornitori
FROM ContrattiForTes CFT001 WITH(NOLOCK)
LEFT OUTER JOIN OASI003..ContrattiForTes CFT003 (NOLOCK) ON CFT003.cftID = CFT001.cftID
WHERE CFT001.cftID = @DaSyncroID
AND CFT003.cftID IS NULL
/*Fase 2: Inserimento tavola ContrattiForLivelli
*/
INSERT INTO OASI003..ContrattiForLivelli
( cflID
,cflLivelloMag
)
SELECT CFL001.cflID
,CFL001.cflLivelloMag
FROM ContrattiForLivelli CFL001(NOLOCK)
LEFT OUTER JOIN OASI003..ContrattiForLivelli CFL003 (NOLOCK) ON CFL003.cflID = CFL001.cflID
AND CFL003.cflLivelloMag = CFL001.cflLivelloMag
WHERE CFL001.cflID = @DaSyncroID
AND CFL003.cflID IS NULL
/*Fase 3: Inserimento tavola ContrattiForFPag
*/
INSERT INTO OASI003..ContrattiForFPag
( cffID
,cffFPag
,cffCScontoCassa
,cffPScontoCassa
,cffFPreferenza
,cffMarchio
)
SELECT CFF001.cffID
,CFF001.cffFPag
,CFF001.cffCScontoCassa
,CFF001.cffPScontoCassa
,CFF001.cffFPreferenza
,CFF001.cffMarchio
FROM ContrattiForFPag CFF001 (NOLOCK)
LEFT OUTER JOIN OASI003..ContrattiForFPag CFF003 (NOLOCK) ON CFF003.cffID = CFF001.cffID
AND CFF003.cffFPag = CFF001.cffFPag
WHERE CFF001.cffID = @DaSyncroID
AND CFF003.cffID IS NULL
/*Fase 4: Inserimento tavola ContrattiForScontiFissi
*/
INSERT INTO OASI003..ContrattiForScontiFissi
( cfsID
,cfsLivelloMag
,cfsSottofamiglia
,cfsMarchio
,cfsCatenaSconti
,cfsSconto
,cfsCScontiProm
,cfsPScontiProm
,cfsBonifico
,cfsCScontoCassa
,cfsPScontoCassa
,cfsCAddTrasp
,cfsPAddTrasp
,cfsVAddTrasp
,cfsCPremioFP
,cfsPPremioFP
,cfsVPremioFP
,cfsCScontiExtra
,cfsPScontiExtra
,cfsVScontiExtra
,cfsCScontiNC
,cfsPScontiNC
,cfsVScontiNC
)
SELECT CFS001.cfsID
,CFS001.cfsLivelloMag
,CFS001.cfsSottofamiglia
,CFS001.cfsMarchio
,CFS001.cfsCatenaSconti
,CFS001.cfsSconto
,CFS001.cfsCScontiProm
,CFS001.cfsPScontiProm
,CFS001.cfsBonifico
,CFS001.cfsCScontoCassa
,CFS001.cfsPScontoCassa
,CFS001.cfsCAddTrasp
,CFS001.cfsPAddTrasp
,CFS001.cfsVAddTrasp
,CFS001.cfsCPremioFP
,CFS001.cfsPPremioFP
,CFS001.cfsVPremioFP
,CFS001.cfsCScontiExtra
,CFS001.cfsPScontiExtra
,CFS001.cfsVScontiExtra
,CFS001.cfsCScontiNC
,CFS001.cfsPScontiNC
,CFS001.cfsVScontiNC
FROM ContrattiForScontiFissi CFS001(NOLOCK)
LEFT OUTER JOIN OASI003..ContrattiForScontiFissi CFS003 (NOLOCK) ON CFS003.cfsID = CFS001.cfsID
AND CFS003.cfsLivelloMag = CFS001.cfsLivelloMag
AND CFS003.cfsSottofamiglia = CFS001.cfsSottofamiglia
AND CFS003.cfsMarchio = CFS001.cfsMarchio
WHERE CFS001.cfsID = @DaSyncroID
AND CFS003.cfsID IS NULL
/*DestinazioniRiferimentiOggetti NON Syncro*/
/*ContrattiForAnnotazioni NON duplicato*/
/*ContrattiForScansioni NON duplicato*/
/*ContrattiForTrasporti NON Syncro*/
/*Fase 7: Inserimento tavola ContrattiForAddebiti
*/
INSERT INTO OASI003..ContrattiForAddebiti
( cfdID
,cfdNRiga
,cfdZona
,cfdCAddTrasp
,cfdPAddTrasp
,cfdVAddTrasp
,cfdNota
)
SELECT CFD001.cfdID
,CFD001.cfdNRiga
,CFD001.cfdZona
,CFD001.cfdCAddTrasp
,CFD001.cfdPAddTrasp
,CFD001.cfdVAddTrasp
,CFD001.cfdNota
FROM ContrattiForAddebiti CFD001(NOLOCK)
LEFT OUTER JOIN OASI003..ContrattiForAddebiti CFD003 (NOLOCK) ON CFD003.cfdID = CFD001.cfdID
AND CFD003.cfdNRiga = CFD001.cfdNRiga
WHERE CFD001.cfdID = @DaSyncroID
AND CFD003.cfdID IS NULL
/*Fase 8: Inserimento tavola ContrattiForFornitori
*/
INSERT INTO OASI003..ContrattiForFornitori
( cfxID
,cfxFornitore
,cfxDestinatario
)
SELECT CFX001.cfxID
,CFX001.cfxFornitore
,CFX001.cfxDestinatario
FROM ContrattiForFornitori CFX001 (NOLOCK)
LEFT OUTER JOIN OASI003..ContrattiForFornitori CFX003 (NOLOCK) ON CFX003.cfxID = CFX001.cfXID
AND CFX003.cfxFornitore = CFX001.cfxFornitore
AND CFX003.cfxDestinatario = CFX001.cfxDestinatario
WHERE CFX001.cfxID = @DaSyncroID
AND CFX003.cfxID IS NULL
/*Creo un cursore su tutti premi presenti per quel contratto
Successivamente per ogni premio presente effetto un ciclo
per inserire il nuovo premio
*/
Declare curPremiDaDuplicare CURSOR FOR
SELECT pftIDPremioFor
FROM PremiForTes(NOLOCK)
WHERE pftContrattoForTes = @DaSyncroID
ORDER BY pftContrattoForTes, pftIDPremioFor
open curPremiDaDuplicare
while 1=1
begin
fetch next from curPremiDaDuplicare into
@DaSyncroIDPremioFor
if @@fetch_status <0 break /*M: Controllo EOF*/
/*Fase 9: Inserimento tavola PremiForTes
*/
INSERT INTO OASI003..PremiForTes
( pftContrattoForTes
,pftIDPremioFor
,pftDescrizione
,pftDataInizio
,pftDataFine
,pftValoreConcordato
,pftModoMonetizzazione
,pftTipoPremio
,pftModoLiquidazione
,pftFGiustificativo
,pftFStato
,pftMarchio
,pftPeriodoLiquidazione
,pftDataElaborazione
,pftTotaleImponibile
,pftTotaleQuantita
,pftTotalePagato
,pftTotalePremio
,pftTargetFor
,pftVenditeTotali
,pftFlagDefinitivo
,pftFNettoTrasporto
,pftFNettoCassa
,pftFNettoRae
,pftFNettoSiae
,pftNettoPFF
,pftNettoPremioGruppo
,pftDataDecorrenza
,pftPVariazione
,pftFStatoPremioCli
,pftElencoFornitori
,pftPPremioCli
,pftDataEsecuzione
,pftTotaleInPromo
,pftFStatoPremioFor
,pftImponibileCalcolo
,pftTotaleImponibileNetto
,pftFTipoElaborazione
,pftFNettoTrasportoCli
,pftFNettoCassaCli
,pftPAddTraspVir
,pftPScontoCassaVir
-- ,pftLiquidatore
,pftTargetRaggiunto
,pftTargetDefinitivo
,pftFTargetSuperato
)
SELECT PFT001.pftContrattoForTes
,PFT001.pftIDPremioFor
,PFT001.pftDescrizione
,PFT001.pftDataInizio
,PFT001.pftDataFine
,PFT001.pftValoreConcordato
,PFT001.pftModoMonetizzazione
,PFT001.pftTipoPremio
,PFT001.pftModoLiquidazione
,PFT001.pftFGiustificativo
,PFT001.pftFStato
,PFT001.pftMarchio
,PFT001.pftPeriodoLiquidazione
,PFT001.pftDataElaborazione
,PFT001.pftTotaleImponibile
,PFT001.pftTotaleQuantita
,PFT001.pftTotalePagato
,PFT001.pftTotalePremio
,PFT001.pftTargetFor
,PFT001.pftVenditeTotali
,PFT001.pftFlagDefinitivo
,PFT001.pftFNettoTrasporto
,PFT001.pftFNettoCassa
,PFT001.pftFNettoRae
,PFT001.pftFNettoSiae
,PFT001.pftNettoPFF
,PFT001.pftNettoPremioGruppo
,PFT001.pftDataDecorrenza
,PFT001.pftPVariazione
,PFT001.pftFStatoPremioCli
,PFT001.pftElencoFornitori
,PFT001.pftPPremioCli
,PFT001.pftDataEsecuzione
,PFT001.pftTotaleInPromo
,PFT001.pftFStatoPremioFor
,PFT001.pftImponibileCalcolo
,PFT001.pftTotaleImponibileNetto
,PFT001.pftFTipoElaborazione
,PFT001.pftFNettoTrasportoCli
,PFT001.pftFNettoCassaCli
,PFT001.pftPAddTraspVir
,PFT001.pftPScontoCassaVir
-- ,pftLiquidatore
,PFT001.pftTargetRaggiunto
,PFT001.pftTargetDefinitivo
,PFT001.pftFTargetSuperato
FROM PremiForTes PFT001 WITH (NOLOCK)
LEFT OUTER JOIN OASI003..PremiForTes PFT003 (NOLOCK) ON PFT003.pftContrattoForTes = PFT001.pftContrattoForTes
AND PFT003.pftIDPremioFor = PFT001.pftIDPremioFor
WHERE PFT001.pftContrattoForTes = @DaSyncroID
AND PFT001.pftIDPremioFor = @DaSyncroIDPremioFor
AND PFT003.pftContrattoForTes IS NULL
/*Fase 10: Inserimento tavola PremiForArticoli
*/
INSERT INTO OASI003..PremiForArticoli
( pfaIDPremioFor
,pfaLivelloMag
,pfaSottofamiglia
,pfaArticolo
,pfaFEsclusione
,pfaFEscludiPremio
)
SELECT PFA001.pfaIDPremioFor
,PFA001.pfaLivelloMag
,PFA001.pfaSottofamiglia
,PFA001.pfaArticolo
,PFA001.pfaFEsclusione
,PFA001.pfaFEscludiPremio
FROM PremiForArticoli PFA001(NOLOCK)
LEFT OUTER JOIN OASI003..PremiForArticoli PFA003 (NOLOCK) ON PFA003.pfaIDPremioFor = PFA001.pfaIDPremioFor
AND PFA003.pfaLivelloMag = PFA001.pfaLivelloMag
AND PFA003.pfaSottofamiglia = PFA001.pfaSottofamiglia
AND PFA003.pfaArticolo = PFA001.pfaArticolo
WHERE PFA001.pfaIDPremioFor = @DaSyncroIDPremioFor
AND PFA003.pfaIDPremioFor IS NULL
/*Fase 11: Inserimento tavola PremiForRegole
*/
INSERT INTO OASI003..PremiForRegole
( pfgIDPremioFor
,pfgNRiga
,pfgModoImponibile
,pfgValoreIniziale
,pfgValoreFinale
,pfgCPremio
,pfgPPremio
,pfgVPremio
,pfgModoApplP
,pfgFPrevisione
,pfgNota
,pfgCPremioOri
,pfgPPremioOri
,pfgVPremioOri
,pfgFlagForzTarget
)
SELECT PFG001.pfgIDPremioFor
,PFG001.pfgNRiga
,PFG001.pfgModoImponibile
,PFG001.pfgValoreIniziale
,PFG001.pfgValoreFinale
,PFG001.pfgCPremio
,PFG001.pfgPPremio
,PFG001.pfgVPremio
,PFG001.pfgModoApplP
,PFG001.pfgFPrevisione
,PFG001.pfgNota
,PFG001.pfgCPremioOri
,PFG001.pfgPPremioOri
,PFG001.pfgVPremioOri
,PFG001.pfgFlagForzTarget
FROM PremiForRegole PFG001 (NOLOCK)
LEFT OUTER JOIN OASI003..PremiForRegole PFG003 (NOLOCK) ON PFG003.pfgIDPremioFor = PFG001.pfgIDPremioFor
AND PFG003.pfgNRiga = PFG001.pfgNRiga
WHERE PFG001.pfgIDPremioFor = @DaSyncroIDPremioFor
AND PFG003.pfgIDPremioFor IS NULL
/*Fase 12: Inserimento tavola PremiForPremiCli
*/
/*Viene eseguita direttamente dal trigger di inserimento PremioForTes
con chiamata alla sp_M_ClientiAnagFTarget
*/
/*Fase 13: Inserimento tavola PremiForFornitori
*/
INSERT INTO OASI003..PremiForFornitori
( pffIDPremioFor
,pffFornitore
,pffDestinatario
,pffFLiquida
)
SELECT PFF001.pffIDPremioFor
,PFF001.pffFornitore
,PFF001.pffDestinatario
,PFF001.pffFLiquida
FROM PremiForFornitori PFF001 (NOLOCK)
LEFT OUTER JOIN OASI003..PremiForFornitori PFF003 (NOLOCK) ON PFF001.pffIDPremioFor = PFF003.pffIDPremioFor
AND PFF001.pffFornitore = PFF003.pffFornitore
AND PFF001.pffDestinatario = PFF003.pffDestinatario
WHERE PFF001.pffIDPremioFor = @DaSyncroIDPremioFor
end
CLOSE curPremiDaDuplicare
DEALLOCATE curPremiDaDuplicare
SELECT
0 as CodMsg /*significa Resultset vuoto*/
,'Sincronizzazione eseguita' as TestoMsg
,0 as CodColore /*vbBlack*/
,0 as Bold
,0 as Underline
------------
--M: USCITA
------------
IF @Debug = 1
begin
SET @Function = 'EXIT SP'
SET @Infos = 'Return(' + CONVERT(varchar, @Ret) + ') - '
EXEC sp_XLOG @Module, @Function, @Infos
end
RETURN (0)
Error Number :
40002
Error Description :
S0022: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'pftFTargetSuperato'.
RDO Errors :
S0022: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'pftTargetRaggiunto'.
S0022: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'pftTargetDefinitivo'.
S0022: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'pftFTargetSuperato'.
Editor is loading...
Leave a Comment