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';
|
||||
|
||||
|
||||
--
|
||||
-- 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: -
|
||||
--
|
||||
|
@ -4362,6 +4262,7 @@ INSERT INTO "schema_migrations" (version) VALUES
|
|||
('20191008024334'),
|
||||
('20191024153351'),
|
||||
('20191024160038'),
|
||||
('20191206183853');
|
||||
('20191206183853'),
|
||||
('20191212133136');
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue