From 514c26655181b3e8eeb940d9c43b36b3f90b3d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ce=C4=BEuch?= Date: Sat, 7 Oct 2023 13:54:04 +0200 Subject: [PATCH] fix syntax --- .../apps/parliament_vote_app/application_form.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/models/apps/parliament_vote_app/application_form.rb b/app/models/apps/parliament_vote_app/application_form.rb index 4045fb5e..228d3cc2 100644 --- a/app/models/apps/parliament_vote_app/application_form.rb +++ b/app/models/apps/parliament_vote_app/application_form.rb @@ -159,13 +159,20 @@ def world_sk_resident_email_body private def pin_is_ok return errors.add(:pin, 'Rodné číslo je pocinná položka') if pin.blank? + begin + pin.to_i + rescue ArgumentError + return errors.add(:pin, 'Rodné číslo obsahuje neplatné znaky') + end + pin = self.pin.gsub(%r{/}, '') - return errors.add(:pin, 'Rodné číslo nie je deliteľné číslom 11') if pin.length == 10 and pin % 11 != 0 + return errors.add(:pin, 'Rodné číslo nie je deliteľné číslom 11') if pin.length == 10 and pin.to_i % 11 != 0 return errors.add(:pin, 'Rodné číslo má nesprávnu dĺžku') if pin.length != 10 and pin.length != 9 case pin[2..3].to_i - when 0, 13..50, 63..99 - return errors.add(:pin, 'Rodné číslo obsahuje neplatný mesiac') + when 0, 13..50, 63..99 + return errors.add(:pin, 'Rodné číslo obsahuje neplatný mesiac') + end month = pin[2..3].to_i % 50 year = pin[0..1].to_i + (pin[2..3].to_i > 12 ? 1900 : 2000)