This chapter is $Revision: 1.1 $ $Date: 2003/01/05 00:00:29 $.
This module defines a person type for use by other modules.
This module instantiates an employee class and an address for use by other person classes.
The following items will be implemented in future version of this module. They may be implemented in the base module or be added via an industry specific add on.
EU Privacy Requirements
Before the user is asked to enter personal information, he must be informed that he is about to enter such information and how such information is used.
He then has to declare his consent, otherwise he should not be asked to enter any personal information.
He also has to be informed that he can at any time withdraw his consent effective from then on.
The information and the user's declaration of consent has to be documented (and kept in the database?)
Measures have to be taken to ensure that personal information can be locked from normal access on a possible future user request.
Anonymous statistical information should be split from personal information as soon as it is obtained and if stored separately (then it is no longer subject to privacy regulations, because it is not data referring to a specific or identifiable person). Contributed by Jens MŸller, jens.lists@unfaehig.de.
The following Business Objects are defined and maintained by this module.
person::person - TYPE only.
person::employee
person::department
Add, update, and delete Employee.
Output Employees summary and detail report selectable by number, surname, and department and sorted by these fields.
# $RCSfile: person.html,v $ - Definition of person module.
#
# Copyright (C) 2001 Free Software Foundation, Inc.
#
# This file is part of GNU Enterprise.
#
# GNU Enterprise is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# GNU Enterprise is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Enterprise; see the file COPYING. If not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA.
#
# This file originally written by Neil Tiffin (neilt@gnue.org).
#
# $Revision: 1.1 $ $Date: 2003/01/05 00:00:29 $ $Author: psu_gnue $
#
include "../../../base/location/classes/address.gcd"
include "../../../base/language/classes/language.gcd"
module person
{
# ----------------------------------------------
# list of personal titles placed before name
# and are acceptable for this installation.
# ----------------------------------------------
class name_prefix
{
language::language *language;
char prefix<25>; # Mr. Ms Dr. etc.
# AR. ADir i.R.
# Dr. phi. h.c. HR Dipl.-Ing.
};
# ----------------------------------------------
# list of characters that follow the name
# and are acceptable for this installation.
# ----------------------------------------------
class name_suffix
{
language::language *language;
char suffix<8>; # Jr. III Sr. etc.
};
# ----------------------------------------------
# comm_type - phone, fax, email etc.
# ----------------------------------------------
class comm_type
{
char code<8>;
char format<70>; # format of comm::address
# for decoding the address
# example:
# 1-630-555-1212
# cc-a/c-number
# usage TBD (to be determined)
char descr<35>;
};
# ----------------------------------------------
# comm - communications: phone, fax, email etc.
# ----------------------------------------------
class comm
{
person::comm_type *atype;
char address<70>;
char remark<70>;
};
# ----------------------------------------------
# class to instantiate address type
# ----------------------------------------------
class address
{
location::address address;
};
# ----------------------------------------------
# person -
# ----------------------------------------------
type person
{
char name_prefix<8>; # Mr. Ms Dr.
char name_first<25>; # given or first name
char name_middle<25>; # other name(s), not surname or first
char name_last<25>; # surname or family name
char name_suffix<8>; # Jr. Sr. III
char name_informal<25>; # nickname
char work_title<25>; # president, vice president
person::address [] address; # home, work address
person::comm [] comm; # email, phone, fax, web
text get_full_name(); # Mr. Frank N. Furter Sr.
text get_polite_name(); # Mr. Furter
};
# ----------------------------------------------
# department -
# ----------------------------------------------
class department
{
char code<8>;
char descr<35>;
};
# ----------------------------------------------
# employee -
# ----------------------------------------------
class employee
{
char code<8>; # employee designation
person::person person;
person::department *department;
};
};
-- -- This is a special file format that is converted by the -- GEAS sql loader into valid sql -- -- $Id: person.html,v 1.1 2003/01/05 00:00:29 psu_gnue Exp $ -- INSERT INTO "person__name_prefix" (GEAS-SYS, prefix) VALUES (GEAS-SYS,'Doctor'); (GEAS-SYS,'Dr'); (GEAS-SYS,'Heer'); (GEAS-SYS,'Herr'); (GEAS-SYS,'Miss'); (GEAS-SYS,'Mister'); (GEAS-SYS,'Monsieur'); (GEAS-SYS,'Mr'); (GEAS-SYS,'Mrs'); (GEAS-SYS,'Ms'); (GEAS-SYS,'Professor'); (GEAS-SYS,'Sir');
-- -- This is a special file format that is converted by the -- GEAS sql loader into valid sql -- -- $Id: person.html,v 1.1 2003/01/05 00:00:29 psu_gnue Exp $ -- INSERT INTO "person__name_suffix" (GEAS-SYS, suffix) VALUES (GEAS-SYS,'Jr.'); (GEAS-SYS,'Sr.'); (GEAS-SYS,'II'); (GEAS-SYS,'III');
-- -- This is a special file format that is converted by the -- GEAS sql loader into valid sql -- -- $Id: person.html,v 1.1 2003/01/05 00:00:29 psu_gnue Exp $ -- INSERT INTO "person__comm_type" (GEAS-SYS, code, "descr") VALUES (GEAS-SYS, 'PH', 'Phone'); (GEAS-SYS, 'FX', 'Fax'); (GEAS-SYS, 'EM', 'E-Mail'); (GEAS-SYS, 'HM', 'Home Phone'); (GEAS-SYS, 'WK', 'Work Phone'); (GEAS-SYS, 'WB', 'Web Site');