3aee0897c630ce56f5785cade62cd8db63d0ed58
[shipsimu.git] / application / ship-simu / main / personell / company / class_CompanyEmployee.php
1 <?php
2 /**
3  * Campany employees may be handled and payed within this class
4  *
5  * @author              Roland Haeder <webmaster@ship-simu.org>
6  * @version             0.0.0
7  * @copyright   Copyright (c) 2007, 2008 Roland Haeder, this is free software
8  * @license             GNU GPL 3.0 or any newer version
9  * @link                http://www.ship-simu.org
10  *
11  * This program is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation, either version 3 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program. If not, see <http://www.gnu.org/licenses/>.
23  */
24 class CompanyEmployee extends SimulatorPersonell {
25         // Employeee list
26         private $employeeList = null;
27
28         // Constructor
29         protected function __construct () {
30                 // Call parent constructor
31                 parent::__construct(__CLASS__);
32         }
33
34         // Generate a specified amount of personell
35         public final static function createCompanyEmployee ($surname, $family, $gender, $year, $month, $day, $married, $salary) {
36                 // Get instance
37                 $personellInstance = new CompanyEmployee();
38
39                 // Debug message
40                 if (((defined('DEBUG_COMPANY_EMPLOYEE')) && (defined('DEBUG_PERSONELL'))) || (defined('DEBUG_ALL'))) {
41                         $personellInstance->debugOutput(sprintf("[%s:%d] Der/Die Angestellte <strong>%s %s</strong> wird angelegt.",
42                                 __CLASS__,
43                                 __LINE__,
44                                 $surname,
45                                 $family
46                         ));
47                 }
48
49                 // Ist the given birthday valid?
50                 if (!$personellInstance->isDateValid($year, $month, $day)) {
51                         // Something is wrong ...
52                         throw new BirthdayInvalidException(array($year, $month, $day), self::EXCEPTION_BIRTH_DATE_IS_INVALID);
53                 }
54
55                 // Set birthday
56                 $personellInstance->setBirthday($year, $month, $day);
57
58                 // Set as employed/marrital status
59                 $personellInstance->setEmployed(true);
60                 $personellInstance->setMarried($married);
61
62                 // Set surname/family/gender
63                 $personellInstance->setSurname($surname);
64                 $personellInstance->setFamily($family);
65                 $personellInstance->setGender($gender);
66
67                 // Set salary
68                 $personellInstance->increaseSalary($salary);
69
70                 // Tidy up a little
71                 $personellInstance->removeEmployeeList();
72                 $personellInstance->removeMinMaxAge();
73
74                 // Return prepared instance
75                 return $personellInstance;
76         }
77
78         // Remove the employee list
79         private function removeEmployeeList () {
80                 unset($this->employeeList);
81         }
82 }
83
84 // [EOF]
85 ?>