-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE procedure [C6Mart].[Controlli_RepGiornaliera] AS BEGIN -------------------------- --prima parte -------------------------- drop table if exists C6Mart.clientidasistemare drop table if exists c6mart.TB_ClienticonCaratteriAnomali drop table if exists #tab_temp declare @num int set @num = 1 CREATE TABLE #tab_temp( [Val_Ascii] [smallint] NOT NULL, [Val_Char] [varchar](1) NOT NULL, [Rete] [varchar](1) NOT NULL, [Cod_Fiscale] [varchar](16) NOT NULL, [Nome_Campo] [varchar](50) NOT NULL, [Val_Campo] [varchar](150) NOT NULL) set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(email,@num,1)), substring(email,@num,1), rete, Cod_Fiscale, 'EMAIL', email FROM C6Mart.vcontratti WHERE ascii(substring(email,@num,len(email))) not between 64 and 90 and ascii(substring(email,@num,len(email))) not between 97 and 122 and ascii(substring(email,@num,len(email))) not between 48 and 57 and ascii(substring(email,@num,len(email))) <> 32 and ascii(substring(email,@num,len(email))) <> 40 and ascii(substring(email,@num,len(email))) <> 41 and ascii(substring(email,@num,len(email))) <> 43 and ascii(substring(email,@num,len(email))) <> 44 and ascii(substring(email,@num,len(email))) <> 45 and ascii(substring(email,@num,len(email))) <> 46 and ascii(substring(email,@num,len(email))) <> 95 and ascii(substring(email,@num,len(email))) <> 39 and ascii(substring(email,@num,len(email))) <> 47 and ascii(substring(email,@num,len(email))) <> 63 set @num = @num + 1 end --inizio intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6mart.ANAG_CLIENTI set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(Nome,@num,1)), substring(Nome,@num,1), rete, Cod_Fiscale, 'Nome', Nome FROM C6Mart.ANAG_CLIENTI WHERE ascii(substring(Nome,@num,len(Nome))) not between 64 and 90 and ascii(substring(Nome,@num,len(Nome))) not between 97 and 122 and ascii(substring(Nome,@num,len(Nome))) not between 48 and 57 and ascii(substring(Nome,@num,len(Nome))) <> 32 and ascii(substring(Nome,@num,len(Nome))) <> 40 and ascii(substring(Nome,@num,len(Nome))) <> 41 and ascii(substring(Nome,@num,len(Nome))) <> 43 and ascii(substring(Nome,@num,len(Nome))) <> 44 and ascii(substring(Nome,@num,len(Nome))) <> 45 and ascii(substring(Nome,@num,len(Nome))) <> 46 and ascii(substring(Nome,@num,len(Nome))) <> 95 and ascii(substring(Nome,@num,len(Nome))) <> 39 and ascii(substring(Nome,@num,len(Nome))) <> 38 and ascii(substring(Nome,@num,len(Nome))) <> 47 and ascii(substring(Nome,@num,len(Nome))) <> 63 set @num = @num + 1 end --aggiunta 30/07/2022 per il cognome set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(Cognome,@num,1)), substring(Cognome,@num,1), rete, Cod_Fiscale, 'Cognome', Cognome FROM C6Mart.ANAG_CLIENTI WHERE ascii(substring(Cognome,@num,len(Cognome))) not between 64 and 90 and ascii(substring(Cognome,@num,len(Cognome))) not between 97 and 122 and ascii(substring(Cognome,@num,len(Cognome))) not between 48 and 57 and ascii(substring(Cognome,@num,len(Cognome))) <> 32 and ascii(substring(Cognome,@num,len(Cognome))) <> 40 and ascii(substring(Cognome,@num,len(Cognome))) <> 41 and ascii(substring(Cognome,@num,len(Cognome))) <> 43 and ascii(substring(Cognome,@num,len(Cognome))) <> 44 and ascii(substring(Cognome,@num,len(Cognome))) <> 45 and ascii(substring(Cognome,@num,len(Cognome))) <> 46 and ascii(substring(Cognome,@num,len(Cognome))) <> 95 and ascii(substring(Cognome,@num,len(Cognome))) <> 39 and ascii(substring(Cognome,@num,len(Cognome))) <> 38 and ascii(substring(Cognome,@num,len(Cognome))) <> 47 and ascii(substring(Cognome,@num,len(Cognome))) <> 63 set @num = @num + 1 end --fine aggiunta 30/07/2022 per il cognome --fine intervento: 05/02/2015 FCianfa Controllo caratteriAnomali su campi Nome e Cognome della tb c6mart.ANAG_CLIENTI set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(Indirizzo,@num,1)), substring(Indirizzo,@num,1), rete, Cod_Fiscale, 'INDIRIZZO', Indirizzo FROM C6Mart.vcontratti WHERE ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 64 and 90 and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 97 and 122 and ascii(substring(Indirizzo,@num,len(Indirizzo))) not between 48 and 57 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 32 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 40 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 41 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 43 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 44 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 45 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 46 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 95 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 39 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 47 and ascii(substring(Indirizzo,@num,len(Indirizzo))) <> 63 set @num = @num + 1 end set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(CAP,@num,1)), substring(CAP,@num,1), rete, Cod_Fiscale, 'CAP', CAP FROM C6Mart.vcontratti WHERE ascii(substring(CAP,@num,len(CAP))) not between 64 and 90 and ascii(substring(CAP,@num,len(CAP))) not between 97 and 122 and ascii(substring(CAP,@num,len(CAP))) not between 48 and 57 and ascii(substring(CAP,@num,len(CAP))) <> 32 and ascii(substring(CAP,@num,len(CAP))) <> 40 and ascii(substring(CAP,@num,len(CAP))) <> 41 and ascii(substring(CAP,@num,len(CAP))) <> 43 and ascii(substring(CAP,@num,len(CAP))) <> 44 and ascii(substring(CAP,@num,len(CAP))) <> 45 and ascii(substring(CAP,@num,len(CAP))) <> 46 and ascii(substring(CAP,@num,len(CAP))) <> 95 and ascii(substring(CAP,@num,len(CAP))) <> 39 and ascii(substring(CAP,@num,len(CAP))) <> 47 and ascii(substring(CAP,@num,len(CAP))) <> 63 set @num = @num + 1 end set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(Citta,@num,1)), substring(Citta,@num,1), rete, Cod_Fiscale, 'Citta', Citta FROM C6Mart.vcontratti WHERE ascii(substring(Citta,@num,len(Citta))) not between 64 and 90 and ascii(substring(Citta,@num,len(Citta))) not between 97 and 122 and ascii(substring(Citta,@num,len(Citta))) not between 48 and 57 and ascii(substring(Citta,@num,len(Citta))) <> 32 and ascii(substring(Citta,@num,len(Citta))) <> 40 and ascii(substring(Citta,@num,len(Citta))) <> 41 and ascii(substring(Citta,@num,len(Citta))) <> 43 and ascii(substring(Citta,@num,len(Citta))) <> 44 and ascii(substring(Citta,@num,len(Citta))) <> 45 and ascii(substring(Citta,@num,len(Citta))) <> 46 and ascii(substring(Citta,@num,len(Citta))) <> 95 and ascii(substring(Citta,@num,len(Citta))) <> 39 and ascii(substring(Citta,@num,len(Citta))) <> 47 and ascii(substring(Citta,@num,len(Citta))) <> 63 set @num = @num + 1 end set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(Provincia,@num,1)), substring(Citta,@num,1), rete, Cod_Fiscale, 'Provincia', Provincia FROM C6Mart.vcontratti WHERE ascii(substring(Provincia,@num,len(Provincia))) not between 64 and 90 and ascii(substring(Provincia,@num,len(Provincia))) not between 97 and 122 and ascii(substring(Provincia,@num,len(Provincia))) not between 48 and 57 and ascii(substring(Provincia,@num,len(Provincia))) <> 32 and ascii(substring(Provincia,@num,len(Provincia))) <> 40 and ascii(substring(Provincia,@num,len(Provincia))) <> 41 and ascii(substring(Provincia,@num,len(Provincia))) <> 43 and ascii(substring(Provincia,@num,len(Provincia))) <> 44 and ascii(substring(Provincia,@num,len(Provincia))) <> 45 and ascii(substring(Provincia,@num,len(Provincia))) <> 46 and ascii(substring(Provincia,@num,len(Provincia))) <> 95 and ascii(substring(Provincia,@num,len(Provincia))) <> 39 and ascii(substring(Provincia,@num,len(Provincia))) <> 47 and ascii(substring(Provincia,@num,len(Provincia))) <> 63 set @num = @num + 1 end set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(Nazione,@num,1)), substring(Nazione,@num,1), rete, Cod_Fiscale, 'Nazione', Nazione FROM C6Mart.vcontratti WHERE ascii(substring(Nazione,@num,len(Nazione))) not between 64 and 90 and ascii(substring(Nazione,@num,len(Nazione))) not between 97 and 122 and ascii(substring(Nazione,@num,len(Nazione))) not between 48 and 57 and ascii(substring(Nazione,@num,len(Nazione))) <> 32 and ascii(substring(Nazione,@num,len(Nazione))) <> 40 and ascii(substring(Nazione,@num,len(Nazione))) <> 41 and ascii(substring(Nazione,@num,len(Nazione))) <> 43 and ascii(substring(Nazione,@num,len(Nazione))) <> 44 and ascii(substring(Nazione,@num,len(Nazione))) <> 45 and ascii(substring(Nazione,@num,len(Nazione))) <> 46 and ascii(substring(Nazione,@num,len(Nazione))) <> 95 and ascii(substring(Nazione,@num,len(Nazione))) <> 39 and ascii(substring(Nazione,@num,len(Nazione))) <> 47 and ascii(substring(Nazione,@num,len(Nazione))) <> 63 set @num = @num + 1 end set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(Presso,@num,1)), substring(Presso,@num,1), rete, Cod_Fiscale, 'Presso', Presso FROM C6Mart.vcontratti WHERE ascii(substring(Presso,@num,len(Presso))) not between 64 and 90 and ascii(substring(Presso,@num,len(Presso))) not between 97 and 122 and ascii(substring(Presso,@num,len(Presso))) not between 48 and 57 and ascii(substring(Presso,@num,len(Presso))) <> 32 and ascii(substring(Presso,@num,len(Presso))) <> 40 and ascii(substring(Presso,@num,len(Presso))) <> 41 and ascii(substring(Presso,@num,len(Presso))) <> 43 and ascii(substring(Presso,@num,len(Presso))) <> 44 and ascii(substring(Presso,@num,len(Presso))) <> 45 and ascii(substring(Presso,@num,len(Presso))) <> 46 and ascii(substring(Presso,@num,len(Presso))) <> 95 and ascii(substring(Presso,@num,len(Presso))) <> 39 and ascii(substring(Presso,@num,len(Presso))) <> 47 and ascii(substring(Presso,@num,len(Presso))) <> 63 set @num = @num + 1 end set @num = 1 while @num < 150 begin insert into #tab_temp SELECT ascii(substring(flagRol,@num,1)), substring(flagRol,@num,1), rete, Cod_Fiscale, 'flagRol', flagRol FROM C6Mart.vcontratti WHERE ascii(substring(flagRol,@num,len(flagRol))) not between 64 and 90 and ascii(substring(flagRol,@num,len(flagRol))) not between 97 and 122 and ascii(substring(flagRol,@num,len(flagRol))) not between 48 and 57 and ascii(substring(flagRol,@num,len(flagRol))) <> 32 and ascii(substring(flagRol,@num,len(flagRol))) <> 40 and ascii(substring(flagRol,@num,len(flagRol))) <> 41 and ascii(substring(flagRol,@num,len(flagRol))) <> 43 and ascii(substring(flagRol,@num,len(flagRol))) <> 44 and ascii(substring(flagRol,@num,len(flagRol))) <> 45 and ascii(substring(flagRol,@num,len(flagRol))) <> 46 and ascii(substring(flagRol,@num,len(flagRol))) <> 95 and ascii(substring(flagRol,@num,len(flagRol))) <> 39 and ascii(substring(flagRol,@num,len(flagRol))) <> 47 and ascii(substring(flagRol,@num,len(flagRol))) <> 63 set @num = @num + 1 end select distinct a.Val_Ascii,a.Val_Char,a.Rete,a.Cod_Fiscale,a.Nome_Campo,a.Val_Campo into c6mart.TB_ClienticonCaratteriAnomali from #tab_temp a inner join c6mart.gestione_pdf_ftp b on a.rete=b.rete and a.cod_fiscale=b.codicefiscale order by a.cod_fiscale select * from c6mart.TB_ClienticonCaratteriAnomali order by Cod_Fiscale select a.Val_Ascii,a.Val_Char,a.Rete,a.Cod_Fiscale,a.Nome_Campo,a.Val_Campo into c6mart.clientiDaSistemare from c6mart.TB_ClienticonCaratteriAnomali a inner join c6mart.gestione_pdf_ftp f on f.rete+f.CodiceFiscale=a.Rete+a.Cod_Fiscale where f.DataInvio is null --creare varchar per update declare @x varchar(max) = 'Val_Campo' select @x = 'replace('+@x+', ''' + Carattere_Speciale + ''','''+Carattere_Mappato+''')' from C6Mart.CaratteriMappati set @x = 'update c6mart.clientidaSistemare set Val_Campo=' + @x +' from c6mart.clientidaSistemare' exec (@x) -------------------------- --seconda parte -------------------------- select * from c6mart.clientiDaSistemare UPDATE c6mart.clientiDaSistemare SET Val_Campo = replace(Val_Campo, '''', ''); --questo update serve per togliere gli apici che possono dare fastidio negli update -------------------------- --terza parte -------------------------- declare @update varchar(max) = '' --ltmp declare @rete char(1) declare @cod_fiscale nvarchar(32) declare @nome_campo nvarchar(64) declare @val_campo nvarchar(max) declare ClientiDaSistCurs Cursor for select rete,cod_fiscale,nome_campo,val_campo from c6mart.clientiDaSistemare open ClientiDaSistCurs fetch next from ClientiDaSistCurs into @rete,@cod_fiscale,@nome_campo,@val_campo while(@@FETCH_STATUS=0) begin if(@nome_campo not like '%Cognome%' or @nome_campo not like '%Nome%') begin print 'update c6mart.vcontratti set '+ @nome_campo +'='''+ @val_campo +''' where cod_fiscale = '''+ @cod_fiscale+'''' --ltmpInizio --versione precedente, ora sql non legge \n quindi si sostituisce con la versione con i char /* set @update = @update + 'update c6mart.vcontratti set '+ @nome_campo +'='''+ @val_campo +''' where cod_fiscale = '''+ @cod_fiscale+'''\n' */ set @update = @update + 'update c6mart.vcontratti set '+ @nome_campo +'='''+ @val_campo +''' where cod_fiscale = '''+ @cod_fiscale+'''' + CHAR(13) + CHAR(10) --ltmpFine end else begin print 'update c6mart.anag_clienti set '+ @nome_campo +'='''+ @val_campo +''' where cod_fiscale = '''+ @cod_fiscale+'''' --ltmpInizio --versione precedente, ora sql non legge \n quindi si sostituisce con la versione con i char /* set @update = @update + 'update c6mart.anag_clienti set '+ @nome_campo +'='''+ @val_campo +''' where cod_fiscale = '''+ @cod_fiscale+'''\n' */ set @update = @update +'update c6mart.anag_clienti set '+ @nome_campo +'='''+ @val_campo +''' where cod_fiscale = '''+ @cod_fiscale+'''' + CHAR(13) + CHAR(10) --ltmpFine end fetch next from ClientiDaSistCurs into @rete,@cod_fiscale,@nome_campo,@val_campo end close ClientiDaSistCurs -- select @update --ltmp exec (@update) --ltmp -------------------------- --quarta parte -------------------------- exec [C6Mart].[InvioLetteraBenvenuto_ExcludedListApply] -------------------------- --quinta parte -------------------------- drop table if exists #inviati select * into #inviati from c6mart.gestione_pdf_ftp where codicefiscale in (select distinct riatt_post18.trcom_codfisc--,riatt_post18.trcom_dtinvio from (select distinct trcom_codconf,trcom_codfisc,trcom_rete,trcom_dtinvio from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_HistDatiIngresso where trcom_causale='RCO' and substring(cast(trcom_dtinvio as varchar),8,4)>2018) revoc_post18 inner join (select distinct trcom_codconf,trcom_codfisc,trcom_rete,trcom_dtinvio from [CONSUNI].ConsulenzaUnicaFL.[dbo].CBS_HistDatiIngresso where trcom_causale='ACO' and substring(cast(trcom_dtinvio as varchar),8,4)>2018) riatt_post18 on revoc_post18.trcom_codconf<>riatt_post18.trcom_codconf and revoc_post18.trcom_codfisc=riatt_post18.trcom_codfisc --order by 2 desc ) and datainvio is null order by 2,6 drop table if exists #conta select CodiceFiscale,count(codicefiscale) as conteggio into #conta from C6Mart.GESTIONE_PDF_FTP where CodiceFiscale in (select CodiceFiscale from #inviati) group by CodiceFiscale drop table if exists c6mart.clientiRepGiaInviati select CodiceFiscale,conteggio into c6mart.clientiRepGiaInviati from #conta where conteggio >1 select * from c6mart.clientiRepGiaInviati -------------------------- --sesta parte -------------------------- declare @update2 varchar(max) ='' --ltmp declare @cod_fiscaleINV nvarchar(32) declare ClientiGiaInviatiCurs Cursor for select codicefiscale from c6mart.clientiRepGiaInviati open ClientiGiaInviatiCurs fetch next from ClientiGiaInviatiCurs into @cod_fiscaleINV while(@@FETCH_STATUS=0) begin print 'update p set p.[DataInvio] = getdate() ,p.[FlagInvio] = ''S'' ,p.[id_fk_zip] = 999999 from [C6Mart].[GESTIONE_PDF_FTP] p where codicefiscale='''+ @cod_fiscaleINV +''' and datainvio is null ' --ltmpInizio set @update2 = @update2 + 'update p set p.[DataInvio] = getdate() ,p.[FlagInvio] = ''S'' ,p.[id_fk_zip] = 999999 from [C6Mart].[GESTIONE_PDF_FTP] p where codicefiscale='''+ @cod_fiscaleINV +''' and datainvio is null ' --ltmpFine fetch next from ClientiGiaInviatiCurs into @cod_fiscaleINV end close ClientiGiaInviatiCurs -- select @update2 --ltmp exec (@update2) --ltmp --fine SP ------------------------------------------------------- --SELECT * FROM C6MartPeriodico.ContrattoSEI --WHERE -- Email like '%¿%' --OR -- Indirizzo like '%¿%' --OR -- CAP like '%¿%' --OR -- Citta like '%¿%' --OR -- Prov like '%¿%' --OR -- Nazione like '%¿%' --OR -- Presso like '%¿%' --OR -- Rol like '%¿%' --OR -- Email like '%Ç%' --OR -- Indirizzo like '%Ç%' --OR -- CAP like '%Ç%' --OR -- Citta like '%Ç%' --OR -- Prov like '%Ç%' --OR -- Nazione like '%Ç%' --OR -- Presso like '%Ç%' --OR -- Rol like '%Ç%' --OR -- Email like '%À%' --OR -- Indirizzo like '%À%' --OR -- CAP like '%À%' --OR -- Citta like '%À%' --OR -- Prov like '%À%' --OR -- Nazione like '%À%' --OR -- Presso like '%À%' --OR -- Rol like '%À%' --OR -- Email like '%É%' --OR -- Indirizzo like '%É%' --OR -- CAP like '%É%' --OR -- Citta like '%É%' --OR -- Prov like '%É%' --OR -- Nazione like '%É%' --OR -- Presso like '%É%' --OR -- Rol like '%É%' --OR -- Email like '%µ%' --OR -- Indirizzo like '%µ%' --OR -- CAP like '%µ%' --OR -- Citta like '%µ%' --OR -- Prov like '%µ%' --OR -- Nazione like '%µ%' --OR -- Presso like '%µ%' --OR -- Rol like '%µ%' END