Ayuda con una función de verificación de validez del número de seguro social

Un usuario Pregunto ✅

Me_gusta_Pi

He creado la siguiente función personalizada basada en las reglas para un número de seguro social válido en Canadá.

Desafortunadamente, está produciendo un error «Se esperaba una coma de token», resaltando la declaración al final de la función.

No puedo ver por qué. Por lo que puedo decir, tengo mis comas en los lugares correctos.

Soy consciente de que los nerds de SIN debaten sobre agregar la suma de verificación a la parte impar, estoy bastante seguro de que Pwer Q no se equivoca en eso.

(SSNumber as text) =>
let
   O_Part = Number.FromText(Text.Start(SSNumber,1)) + 
         Number.FromText(Text.At(SSNumber,2)) +
         Number.FromText(Text.At(SSNumber,4)) +
         Number.FromText(Text.At(SSNumber,6) +
         Number.FromText(Text.At(SSNumber,8)),
   E_2 = Number.FromText(Text.At(SSNumber,1)) * 2,
   E_4 = Number.FromText(Text.At(SSNumber,3)) * 2,
   E_6 = Number.FromText(Text.At(SSNumber,5)) * 2,
   E_8 = Number.FromText(Text.At(SSNumber,7)) * 2,
   E_Part = 
      ( if Text.Length(Text.From(E_2)) = 1 then E_2 else Number.FromText(Text.Start(Text.From(E_2),1)) + Number.FromText(Text.End(Text.From(E_2),1))) +
      ( if Text.Length(Text.From(E_4)) = 1 then E_4 else Number.FromText(Text.Start(Text.From(E_4),1)) + Number.FromText(Text.End(Text.From(E_4),1))) +
      ( if Text.Length(Text.From(E_6)) = 1 then E_6 else Number.FromText(Text.Start(Text.From(E_6),1)) + Number.FromText(Text.End(Text.From(E_6),1))) +
      ( if Text.Length(Text.From(E_8)) = 1 then E_8 else Number.FromText(Text.Start(Text.From(E_8),1)) + Number.FromText(Text.End(Text.From(E_8),1))),
   ValidSSN = (if Number.Mod(O_Part + E_Part, 10) = 0 then true else false) 
in
^^ ERROR LOCATION
  ValidSSN

camargos88

Hola @I_Like_Pi,

Verifique esta parte para la variable O_Part:

Number.FromText(Text.At(SSNumber,6)

Le falta el final «)»

Me_gusta_Pi

Gracias a los dos 🙂

Como estaban a unos segundos de distancia, le daré a uno la solución y al otro un kudos.

No puedo creer que me perdí eso.

lbendlin

te falta un paréntesis de cierre aquí

 Number.FromText(Text.At(SSNumber,6) +

camargos88

Hola @I_Like_Pi,

Verifique esta parte para la variable O_Part:

Number.FromText(Text.At(SSNumber,6)

Le falta el final «)»

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *