cploutarchou
3/23/2020 - 3:04 PM

Convert_EU_Curency_to_GRTEXT

Convert_EU_Curency_to_GRTEXT

  CREATE FUNCTION [dbo].[Euro_Currency_ToGRWords] (
      @Input numeric (38, 3) 
  
  ) RETURNS NVARCHAR(4000) 
  
  AS BEGIN
  --dhlosi metavliton
  Declare @Number numeric(38,0)
  set @Number = convert(numeric(38),@Input - (@Input%1))
  DECLARE @EuroNumber NVARCHAR(38)
  set @EuroNumber = convert(NVARCHAR(38),@Number)
  Declare @Cents as int
  set @Cents = 100*(@Input%1)
  DECLARE @V10 CHAR(1) set @V10 = '0'
  DECLARE @V9 CHAR(1)  set @V9 = '0'
  DECLARE @V8 CHAR(1)  set @V8 = '0'
  DECLARE @V7 CHAR(1)  set @V7 = '0'
  DECLARE @V6 CHAR(1)  set @V6 = '0'
  DECLARE @V5 CHAR(1)  set @V5 = '0'
  DECLARE @V4 CHAR(1)  set @V4 = '0'
  DECLARE @V3 CHAR(1)  set @V3 = '0'
  DECLARE @V2 CHAR(1)  set @V2 = '0'
  DECLARE @V1 CHAR(1)  set @V1 = '0'
  DECLARE @V0 CHAR(1)  set @V0 = '0'
  DECLARE @MONADES		TABLE (number CHAR(1), word NVARCHAR(4000))
  DECLARE @TEEN			TABLE (number CHAR(1), word NVARCHAR(4000))
  DECLARE @DEKADES		TABLE (number CHAR(1), word NVARCHAR(4000))
  DECLARE @EKATONTADES	TABLE (number CHAR(1), word NVARCHAR(4000))
  DECLARE @FMONADES		TABLE (number CHAR(1), word NVARCHAR(4000))
  DECLARE @FTEEN			TABLE (number CHAR(1), word NVARCHAR(4000))
  DECLARE @FEKATONTADES	TABLE (number CHAR(1), word NVARCHAR(4000))
  DECLARE @LE		NVARCHAR(4000) set @LE = ' '
  DECLARE @LD		NVARCHAR(4000) set @LD= ' '
  DECLARE @m		NVARCHAR(4000) set @m= ' '
  DECLARE @d		NVARCHAR(4000) set @d= ' '
  DECLARE @e		NVARCHAR(4000) set @e= ' '
  DECLARE @x		NVARCHAR(4000) set @x= ' '
  DECLARE @dx		NVARCHAR(4000) set @dx= ' '
  DECLARE @ex		NVARCHAR(4000) set @ex= ' '
  DECLARE @mir	NVARCHAR(4000) set @mir= ' '
  DECLARE @dmir	NVARCHAR(4000) set @dmir= ' '
  DECLARE @emir	NVARCHAR(4000) set @emir= ' '
  DECLARE @prosimo NVARCHAR(4000) set @prosimo= ' '
  DECLARE @lepta	NVARCHAR(4000) set @lepta= ' '
  DECLARE @euro	NVARCHAR(4000) set @euro= ' '
  DECLARE @finalresult	NVARCHAR(4000) set @finalresult= ' '
  DECLARE @p INT
  set @p = convert(INT,@Input)
  
  
  INSERT INTO @MONADES   SELECT '0', ''
      UNION ALL SELECT '1', N'Ένα '      UNION ALL SELECT '2', N'Δύο '
      UNION ALL SELECT '3', N'Τρία '     UNION ALL SELECT '4', N'Τέσσερα '
      UNION ALL SELECT '5', N'Πέντε '    UNION ALL SELECT '6', N'Έξι '
      UNION ALL SELECT '7', N'Επτά '     UNION ALL SELECT '8', N'Οκτώ '
      UNION ALL SELECT '9', N'Εννέα '  
      
  INSERT INTO @TEEN   SELECT '0', N'Δέκα '
      UNION ALL SELECT '1', N'Έντεκα '      UNION ALL SELECT '2', N'Δώδεκα '
      UNION ALL SELECT '3', N'Δεκατρία '    UNION ALL SELECT '4', N'Δεκατέσσερα '
      UNION ALL SELECT '5', N'Δεκαπέντε '   UNION ALL SELECT '6', N'Δεκαέξι '
      UNION ALL SELECT '7', N'Δεκαεπτά '    UNION ALL SELECT '8', N'Δεκαοκτώ '
      UNION ALL SELECT '9', N'Δεκαεννέα '      
  	
  INSERT INTO @DEKADES   SELECT '0', ''
      UNION ALL SELECT '1', N'Δέκα '      UNION ALL SELECT '2', N'Είκοσι '
      UNION ALL SELECT '3', N'Τριάντα '   UNION ALL SELECT '4', N'Σαράντα '
      UNION ALL SELECT '5', N'Πενήντα '   UNION ALL SELECT '6', N'Εξήντα '
      UNION ALL SELECT '7', N'Εβδομήντα ' UNION ALL SELECT '8', N'Ογδόντα '
      UNION ALL SELECT '9', N'Ενενήντα '      
  	
  INSERT INTO @EKATONTADES   SELECT '0', N''
      UNION ALL SELECT '1', N'Εκατόν '      UNION ALL SELECT '2', N'Διακόσια '
      UNION ALL SELECT '3', N'Τριακόσια '   UNION ALL SELECT '4', N'Τετρακόσια '
      UNION ALL SELECT '5', N'Πεντακόσια '  UNION ALL SELECT '6', N'Εξακόσια '
      UNION ALL SELECT '7', N'Επτακόσια '   UNION ALL SELECT '8', N'Οκτακόσια '
      UNION ALL SELECT '9', N'Εννιακόσια '      
  	
  INSERT INTO @FMONADES   SELECT '0', N''
      UNION ALL SELECT '1', N'Μία '      UNION ALL SELECT '2', N'Δύο '
      UNION ALL SELECT '3', N'Τρεις '    UNION ALL SELECT '4', N'Τέσσερις '
      UNION ALL SELECT '5', N'Πέντε '    UNION ALL SELECT '6', N'Έξι '
      UNION ALL SELECT '7', N'Επτά '     UNION ALL SELECT '8', N'Οκτώ '
      UNION ALL SELECT '9', N'Εννέα '  
  
  INSERT INTO @FTEEN   SELECT '0', N'Δέκα '
      UNION ALL SELECT '1', N'Έντεκα '      UNION ALL SELECT '2', N'Δώδεκα '
      UNION ALL SELECT '3', N'Δεκατρείς '   UNION ALL SELECT '4', N'Δεκατέσσερις '
      UNION ALL SELECT '5', N'Δεκαπέντε '   UNION ALL SELECT '6', N'Δεκαέξι '
      UNION ALL SELECT '7', N'Δεκαεπτά '    UNION ALL SELECT '8', N'Δεκαοκτώ '
      UNION ALL SELECT '9', N'Δεκαεννέα '      
  
  INSERT INTO @FEKATONTADES   SELECT '0', N''
      UNION ALL SELECT '1', N'Εκατόν '      UNION ALL SELECT '2', N'Διακόσιες '
      UNION ALL SELECT '3', N'Τριακόσιες '  UNION ALL SELECT '4', N'Τετρακόσιες '
      UNION ALL SELECT '5', N'Πεντακόσιες ' UNION ALL SELECT '6', N'Εξακόσιες '
      UNION ALL SELECT '7', N'Επτακόσιες '  UNION ALL SELECT '8', N'Οκτακόσιες '
      UNION ALL SELECT '9', N'Εννιακόσιες '      
  	
  --metatropi ton dekadikon se monades-- gia apalifi tou kommatos	
  --set @i = CONVERT(INT,(100 * (@Input - @inputNumber)))
  if @Cents < 10 begin
  set @EuroNumber = @EuroNumber + '0' + convert(nvarchar(38),@Cents) end 
  else  begin 
  set @EuroNumber = @EuroNumber + convert(nvarchar(38),@Cents) end
  
  	
     IF LEN(@EuroNumber)   > 0 BEGIN SET @V10 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber) , 1), 1)END
     IF LEN(@EuroNumber)-1 > 0 BEGIN SET @V9 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-1, 1), 1)END
     IF LEN(@EuroNumber)-2 > 0 BEGIN SET @V8 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-2, 1), 1)END
     IF LEN(@EuroNumber)-3 > 0 BEGIN SET @V7 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-3, 1), 1)END
     IF LEN(@EuroNumber)-4 > 0 BEGIN SET @V6 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-4, 1), 1)END
     IF LEN(@EuroNumber)-5 > 0 BEGIN SET @V5 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-5, 1), 1)END
     IF LEN(@EuroNumber)-6 > 0 BEGIN SET @V4 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-6, 1), 1)END
     IF LEN(@EuroNumber)-7 > 0 BEGIN SET @V3 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-7, 1), 1)END
     IF LEN(@EuroNumber)-8 > 0 BEGIN SET @V2 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-8, 1), 1)END
     IF LEN(@EuroNumber)-9 > 0 BEGIN SET @V1 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-9, 1), 1)END
     IF LEN(@EuroNumber)-10 > 0 BEGIN SET @V0 = LEFT(SUBSTRING(@EuroNumber, LEN(@EuroNumber)-10, 1), 1)END
  	
  --   If V(9) = 1 Then LE = "" Else LE = MONADES(V(10))
  IF @V9='1' BEGIN 
  SET @LE = '' END 
  ELSE BEGIN	
  SET @LE =(SELECT word FROM @MONADES WHERE @V10 = number) END
  -- If V(9) = 1 Then LD = TEEN(V(10)) Else LD = DEKADES(V(9))
  IF @V9='1' BEGIN 
  SET @LD = (SELECT word FROM @TEEN WHERE @V10 = number) END 
  ELSE BEGIN	
  SET @LD =(SELECT word FROM @DEKADES WHERE @V9 = number) END	
  							  
  --        If V(7) = 1 Then m = "" Else m = MONADES(V(8))
  IF @V7='1' BEGIN 
  SET @m = '' END 
  ELSE BEGIN	
  SET @m =(SELECT word FROM @MONADES WHERE @V8 = number) END								  
  --        If V(7) = 1 Then d = TEEN(V(8)) Else d = DEKADES(V(7))
  IF @V7='1' BEGIN 
  SET @d = (SELECT word FROM @TEEN WHERE @V8 = number) END 
  ELSE BEGIN	
  SET @d =(SELECT word FROM @DEKADES WHERE @V7 = number) END	
  							  
  SET @e =(SELECT word FROM @EKATONTADES WHERE @V6 = number)
  --        If V(7) + V(8) = 0 Then EKATONTADES(1) = "Εκατό"
  IF @V7='0' AND @V8='0'  AND @V6='1' BEGIN
  SET @e = N'Εκατό ' END
  
  --        If V(4) = 1 Then x = "" Else x = FMONADES(V(5))
  IF @V4='1' BEGIN 
  SET @x = '' END 
  ELSE BEGIN	
  SET @x =(SELECT word FROM @FMONADES WHERE @V5 = number) END								  
  --        If V(4) = 1 Then dx = FTEEN(V(5)) Else dx = DEKADES(V(4))
  IF @V4='1' BEGIN 
  SET @dx = (SELECT word FROM @FTEEN WHERE @V5 = number) END 
  ELSE BEGIN	
  SET @dx =(SELECT word FROM @DEKADES WHERE @V4 = number) END								  
  
  SET @ex =(SELECT word FROM @FEKATONTADES WHERE @V3 = number) 
  --         If V(4) + V(5) = 0 Then FEKATONTADES(1) = "Εκατό"
  IF @V4='0' AND @V5='0' AND @V3='1' BEGIN
  SET @ex = N'Εκατό ' END
  
  --        If V(1) = 1 Then mir = "" Else mir = MONADES(V(2))
  IF @V1='1' BEGIN 
  SET @mir = '' END 
  ELSE BEGIN	
  SET @mir =(SELECT word FROM @MONADES WHERE @V2 = number) END								  
  --         If V(1) = 1 Then dmir = TEEN(V(2)) Else dmir = DEKADES(V(1))
  IF @V1='1' BEGIN 
  SET @dmir = (SELECT word FROM @TEEN WHERE @V2 = number) END 
  ELSE BEGIN	
  SET @dmir =(SELECT word FROM @DEKADES WHERE @V1 = number) END								  
  
  SET @emir =(SELECT word FROM @EKATONTADES WHERE @V0 = number) 
  --         If V(1) + V(2) = 0 Then EKATONTADES(1) = "Εκατό"
  IF @V1='0' AND @V2='0'  AND @V0='1' BEGIN
  SET @emir ='Εκατό ' END
  
      IF @p = 0 BEGIN 
  	SET @euro =  N'Μηδέν ' END
  	
      IF @p BETWEEN 1 AND 999 BEGIN 
  	SET @euro = @e + @d +  @m END
  	
      IF @p BETWEEN 1000 AND 1999 BEGIN 
  	SET @euro = N'Χίλια ' + @e + @d + @m END
  	
      IF @p BETWEEN 2000 AND 999999 BEGIN 
  	SET @euro = @ex + @dx + @x + N'Χιλιάδες ' + @e + @d + @m END
  	
      IF @p BETWEEN 1000000 AND 1999999 BEGIN
  		IF @V3='0' AND @V4='0' AND @V5='0' BEGIN 
  			SET @euro = N'Ένα Εκατομμύριο ' + @e + @d + @m END 
  		ELSE BEGIN
  				IF @V3='0' AND @V4='0' AND @V5='1' BEGIN 
  				SET @euro = N'Ένα Εκατομμύριο ' + N'Χίλια ' + @e + @d + @m END 
  				ELSE BEGIN	
  				SET @euro = N'Ένα Εκατομμύριο ' + @ex + @dx + @x + N'Χιλιάδες ' + @e + @d + @m END 
  			END	
  	END
      IF @p BETWEEN 2000000 AND 999999999 BEGIN
  		IF @V3='0' AND @V4='0' AND @V5='0' BEGIN 
  			SET @euro = (SELECT @emir + @dmir + @mir +N'Εκατομμύρια ' + @e + @d + @m) END 
  		ELSE BEGIN
  				IF @V3='0' AND @V4='0' AND @V5='1' BEGIN 
  				SET @euro = @emir + @dmir + @mir +N'Εκατομμύρια ' +N'Χίλια ' + @e + @d + @m END 
  				ELSE BEGIN	
  				SET @euro = @emir + @dmir + @mir +N'Εκατομμύρια ' + @ex + @dx + @x + N'Χιλιάδες ' + @e + @d + @m END 
  			END	
  	END
  
  	IF @V9='0' AND @V10='0'  BEGIN
  		SET @finalresult =  @euro + N'Ευρώ' END
  		ELSE BEGIN
  			SET @finalresult =  @euro + N'Ευρώ και ' + @V9 + @V10 + N'/100 Σέντ' 
  		END
  	--END
  	
  RETURN @finalresult -- return the result
  END
  go