| ]project-open[ Core : Offices
]project-open[ Core

# Offices

Offices represent physical locations associated with companies. There's not a lot of magic to offices...

Officepermissions are managed using membership of the "admin_group" similar to projects.

    create table im_offices (
            office_id               integer
                                    constraint im_offices_office_id_pk
                                    primary key
                                    constraint im_offices_office_id_fk
                                    references acs_objects,
                                    -- avoid using the OpenACS permission system
                                    -- because we have to ask frequently:
                                    -- "Who has read permissions on this object".
            admin_group_id          integer not null
                                    constraint im_offices_admin_group_fk
                                    references groups,
            office_name             varchar(1000) not null
                                    constraint im_offices_name_un unique,
            office_path             varchar(100) not null
                                    constraint im_offices_path_un unique,
            office_status_id        integer not null
                                    constraint im_offices_cust_stat_fk
                                    references categories,
            office_type_id          integer not null
                                    constraint im_offices_cust_type_fk
                                    references categories,
                                    -- "pointer" back to the company of the office
            company_id             integer,
            phone                   varchar(50),
            fax                     varchar(50),
            address_line1           varchar(80),
            address_line2           varchar(80),
            address_city            varchar(80),
            address_state           varchar(80),
            address_postal_code     varchar(80),
            address_country_code    char(2)
                                    constraint if_address_country_code_fk
                                    references country_codes(iso),
            contact_person_id       integer
                                    constraint im_offices_cont_per_fk
                                    references users,
            note                    varchar(4000)
    );