begin;

update menu_ref set me_menu='Journal' where me_code='CFGLED';

CREATE OR REPLACE FUNCTION comptaproc.four_upper_letter()
    RETURNS trigger
AS $function$
begin
    new.dc_code=transform_to_code(new.dc_code);
    new.dc_code:=substr(new.dc_code,1,4);
    return new;
END;
$function$
LANGUAGE plpgsql;

COMMENT ON FUNCTION comptaproc.four_upper_letter() IS 'Cut to the 4 first letter in uppercase';



CREATE TABLE document_component (
                                    dc_id int4 NOT NULL GENERATED BY DEFAULT AS IDENTITY, -- PK
                                    dc_code text NOT NULL, -- Code used in document_modele
                                    dc_comment text not null , -- description
                                    CONSTRAINT document_component_pk PRIMARY KEY (dc_id),
                                    CONSTRAINT document_component_un UNIQUE (dc_code)
);
COMMENT ON TABLE public.document_component IS 'Give the component of NOALYSS that is using is';

-- Column comments

COMMENT ON COLUMN public.document_component.dc_id IS 'PK';
COMMENT ON COLUMN public.document_component.dc_code IS 'Code used in document_modele';
COMMENT ON COLUMN public.document_component.dc_comment IS 'Code used in document_modele';

-- Table Triggers

create trigger t_code before insert
    or update on
    public.document_component for each row execute function comptaproc.four_upper_letter();


INSERT INTO document_component (dc_comment, dc_code) VALUES('Journaux achat', 'ACH');
INSERT INTO document_component (dc_comment, dc_code) VALUES('Journaux vente', 'VEN');
INSERT INTO document_component (dc_comment, dc_code) VALUES('Gestion', 'GES');

ALTER TABLE public.document_modele ADD CONSTRAINT document_modele_fk FOREIGN KEY (md_affect) REFERENCES public.document_component(dc_code) ON UPDATE CASCADE;

insert into version (val,v_description) values (185,'Document Component : Type of Document Model in a table');
commit;