mirror of
https://github.com/internetee/registry.git
synced 2025-06-06 04:37:30 +02:00
Remove fill_ident_country
postgresql function as unused
This commit is contained in:
parent
59a7a33c0a
commit
c83372c69e
2 changed files with 9 additions and 101 deletions
|
@ -0,0 +1,7 @@
|
||||||
|
class RemoveFillIdentCountryFunction < ActiveRecord::Migration[5.0]
|
||||||
|
def change
|
||||||
|
execute <<~SQL
|
||||||
|
DROP FUNCTION fill_ident_country();
|
||||||
|
SQL
|
||||||
|
end
|
||||||
|
end
|
103
db/structure.sql
103
db/structure.sql
|
@ -66,106 +66,6 @@ CREATE EXTENSION IF NOT EXISTS pgcrypto WITH SCHEMA public;
|
||||||
COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions';
|
COMMENT ON EXTENSION pgcrypto IS 'cryptographic functions';
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
-- Name: fill_ident_country(); Type: FUNCTION; Schema: public; Owner: -
|
|
||||||
--
|
|
||||||
|
|
||||||
CREATE FUNCTION public.fill_ident_country() RETURNS boolean
|
|
||||||
LANGUAGE plpgsql
|
|
||||||
AS $_$
|
|
||||||
DECLARE
|
|
||||||
changed BOOLEAN;
|
|
||||||
multiplier INT [];
|
|
||||||
multiplier2 INT [];
|
|
||||||
multiplier3 INT [];
|
|
||||||
multiplier4 INT [];
|
|
||||||
r RECORD;
|
|
||||||
control TEXT;
|
|
||||||
total INT;
|
|
||||||
i INT;
|
|
||||||
mod INT;
|
|
||||||
counter INT;
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
multiplier := ARRAY [1, 2, 3, 4, 5, 6, 7, 8, 9, 1];
|
|
||||||
multiplier2 := ARRAY [3, 4, 5, 6, 7, 8, 9, 1, 2, 3];
|
|
||||||
multiplier3 := ARRAY [1, 2, 3, 4, 5, 6, 7];
|
|
||||||
multiplier4 := ARRAY [3, 4, 5, 6, 7, 8, 9];
|
|
||||||
|
|
||||||
FOR r IN SELECT id, ident FROM contacts WHERE ident_type = 'priv' AND ident_country_code IS NULL
|
|
||||||
LOOP
|
|
||||||
IF (length(r.ident) = 11 AND (r.ident ~ '^[0-9]+$') AND (substring(r.ident, 1, 1) = '3' OR substring(r.ident, 1, 1) = '4' OR substring(r.ident, 1, 1) = '5' OR substring(r.ident, 1, 1) = '6'))
|
|
||||||
THEN
|
|
||||||
total := 0;
|
|
||||||
counter := 1;
|
|
||||||
FOREACH i IN ARRAY multiplier
|
|
||||||
LOOP
|
|
||||||
total := (total + (i * to_number(substring(r.ident, counter, 1), '9')));
|
|
||||||
counter := (counter + 1);
|
|
||||||
END LOOP;
|
|
||||||
mod := (total % 11);
|
|
||||||
counter := 1;
|
|
||||||
IF (mod >= 10)
|
|
||||||
THEN
|
|
||||||
total = 0;
|
|
||||||
FOREACH i IN ARRAY multiplier2
|
|
||||||
LOOP
|
|
||||||
total := (total + (i * to_number(substring(r.ident, counter, 1), '9')));
|
|
||||||
counter := (counter + 1);
|
|
||||||
END LOOP;
|
|
||||||
mod := (total % 11);
|
|
||||||
END IF;
|
|
||||||
IF (mod = 10)
|
|
||||||
THEN
|
|
||||||
mod := 0;
|
|
||||||
END IF;
|
|
||||||
IF (substring(r.ident, 11, 1) = to_char(mod, 'FM999MI'))
|
|
||||||
THEN
|
|
||||||
UPDATE contacts SET ident_country_code = 'EE' WHERE id = r.id;
|
|
||||||
END IF;
|
|
||||||
total := 0;
|
|
||||||
END IF;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
FOR r IN SELECT id, ident FROM contacts WHERE ident_type = 'org' AND ident_country_code IS NULL
|
|
||||||
LOOP
|
|
||||||
IF (length(r.ident) = 8 AND (r.ident ~ '^[0-9]+$') AND (substring(r.ident, 1, 1) = '1' OR substring(r.ident, 1, 1) = '8' OR substring(r.ident, 1, 1) = '9'))
|
|
||||||
THEN
|
|
||||||
total := 0;
|
|
||||||
counter := 1;
|
|
||||||
FOREACH i IN ARRAY multiplier3
|
|
||||||
LOOP
|
|
||||||
total := (total + (i * to_number(substring(r.ident, counter, 1), '9')));
|
|
||||||
counter := (counter + 1);
|
|
||||||
END LOOP;
|
|
||||||
mod := total % 11;
|
|
||||||
total := 0;
|
|
||||||
counter := 1;
|
|
||||||
IF (mod >= 10)
|
|
||||||
THEN
|
|
||||||
total = 0;
|
|
||||||
FOREACH i IN ARRAY multiplier4
|
|
||||||
LOOP
|
|
||||||
total := (total + (i * to_number(substring(r.ident, counter, 1), '9')));
|
|
||||||
counter := (counter + 1);
|
|
||||||
END LOOP;
|
|
||||||
mod := (total % 11);
|
|
||||||
END IF;
|
|
||||||
IF (mod = 10)
|
|
||||||
THEN
|
|
||||||
mod := 0;
|
|
||||||
END IF;
|
|
||||||
IF (substring(r.ident, 8, 1) = to_char(mod, 'FM999MI'))
|
|
||||||
THEN
|
|
||||||
UPDATE contacts SET ident_country_code = 'EE' WHERE id = r.id;
|
|
||||||
END IF;
|
|
||||||
END IF;
|
|
||||||
END LOOP;
|
|
||||||
RETURN changed;
|
|
||||||
END;
|
|
||||||
$_$;
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Name: generate_zonefile(character varying); Type: FUNCTION; Schema: public; Owner: -
|
-- Name: generate_zonefile(character varying); Type: FUNCTION; Schema: public; Owner: -
|
||||||
--
|
--
|
||||||
|
@ -4362,6 +4262,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
||||||
('20191008024334'),
|
('20191008024334'),
|
||||||
('20191024153351'),
|
('20191024153351'),
|
||||||
('20191024160038'),
|
('20191024160038'),
|
||||||
('20191206183853');
|
('20191206183853'),
|
||||||
|
('20191212133136');
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue