diff --git a/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250915155856.java b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250915155856.java new file mode 100644 index 0000000000..30ca8403c5 --- /dev/null +++ b/ems-core/src/main/java/it/integry/ems/migration/model/Migration_20250915155856.java @@ -0,0 +1,74 @@ +package it.integry.ems.migration.model; + +import it.integry.ems.migration._base.BaseMigration; +import it.integry.ems.migration._base.MigrationModelInterface; + +public class Migration_20250915155856 extends BaseMigration implements MigrationModelInterface { + + @Override + public void up() throws Exception { + if (isHistoryDB()) + return; + + + createOrUpdateFunction("getNumDoc4NumDocForn", "-- =============================================\n" + + "-- Author: \n" + + "-- Create date: \n" + + "-- Description: \n" + + "-- =============================================\n" + + "CREATE FUNCTION getNumDoc4NumDocForn\n" + + "( \n" + + " @numdocOrig varchar(60), @annoComp varchar(4)\n" + + ")\n" + + "\n" + + "RETURNS @numTable TABLE \n" + + "(\n" + + " num_doc_orig varchar(max), num_doc int\n" + + ")\n" + + "AS\n" + + "BEGIN\n" + + " \n" + + " declare @sep varchar(5), @numDoc varchar(60), @rowc int\n" + + "\n" + + " select @numdocOrig = LTRIM(RTRIM(@numdocOrig))\n" + + "\n" + + " declare @tmpChar table (sep varchar(5));\n" + + " declare @splitString table (numOrig varchar(60), numNew varchar(60), is_numeric int);\n" + + "\n" + + " SET @numdocOrig = REPLACE(@numdocOrig, '-', ',');\n" + + " SET @numdocOrig = REPLACE(@numdocOrig, '.', ',');\n" + + " SET @numdocOrig = REPLACE(@numdocOrig, ' ', ',');\n" + + " SET @numdocOrig = REPLACE(@numdocOrig, '/', ',');\n" + + " SET @numdocOrig = REPLACE(@numdocOrig, '\', ',');\n" + + " \n" + + " ;with tab_p as (\n" + + " select value_string as num_new, \n" + + " COUNT(*) over (partition by (select 1)) as tot_row, \n" + + " ROW_NUMBER() over (order by (select 1)) as id,\n" + + " LEN(value_string) as lunghezza\n" + + " from dbo.parseStringIntoArray(@numdocOrig, ',')\n" + + " where ISNUMERIC(value_string) = 1 )\n" + + " \n" + + " insert into @numTable\n" + + " select @numdocOrig as num_doc_forn, cast(num_new as int ) as num_doc\n" + + " from (\n" + + " select * from tab_p ) t\n" + + " where (tot_row = 1 or (tot_row > 1 AND \n" + + " num_new <> cast(@annoComp as varchar) and\n" + + " num_new <> cast(right(@annoComp,2) as varchar) )) \n" + + " union all\n" + + " select @numdocOrig, @numdocOrig\n" + + " where not exists (select * from tab_p)\n" + + " \n" + + " \n" + + "\n" + + " RETURN \n" + + "END"); + } + + @Override + public void down() throws Exception { + + } + +}