* @version 0.0.0
* @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
* @license GNU GPL 3.0 or any newer version
* @link http://www.ship-simu.org
*
* This program 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 3 of the License, or
* (at your option) any later version.
*
* This program 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 this program. If not, see .
*/
class CompanyEmployee extends SimulatorPersonell {
// Employeee list
private $employeeList = null;
// Constructor
protected function __construct () {
// Call parent constructor
parent::__construct(__CLASS__);
// Set description
$this->setObjectDescription("Firmenangestellte(r)");
// Create unique ID
$this->generateUniqueId();
// Clean up a little
$this->removeSystemArray();
}
// Generate a specified amount of personell
public final static function createCompanyEmployee ($surname, $family, $gender, $year, $month, $day, $married, $salary) {
// Get instance
$personellInstance = new CompanyEmployee();
// Debug message
if (((defined('DEBUG_COMPANY_EMPLOYEE')) && (defined('DEBUG_PERSONELL'))) || (defined('DEBUG_ALL'))) {
$personellInstance->getDebugInstance()->output(sprintf("[%s:%d] Der/Die Angestellte %s %s wird angelegt.
\n",
__CLASS__,
__LINE__,
$surname,
$family
));
}
// Ist the given birthday valid?
if ($personellInstance->isDateValid($year, $month, $day)) {
// Set birthday
$personellInstance->setBirthday($year, $month, $day);
} else {
// Something is wrong ...
throw new BirthdayInvalidException(array($year, $month, $day), self::EXCEPTION_BIRTH_DATE_IS_INVALID);
}
// Set as employed/marrital status
$personellInstance->setEmployed(true);
$personellInstance->setMarried($married);
// Set surname/family/gender
$personellInstance->setSurname($surname);
$personellInstance->setFamily($family);
$personellInstance->setGender($gender);
// Set salary
$personellInstance->increaseSalary($salary);
// Tidy up a little
$personellInstance->removeEmployeeList();
$personellInstance->removeMinMaxAge();
// Return prepared instance
return $personellInstance;
}
// Remove the employee list
private function removeEmployeeList () {
if (((defined('DEBUG_COMPANY_EMPLOYEE')) && (defined('DEBUG_PERSONELL'))) || (defined('DEBUG_ALL'))) {
$this->getDebugInstance()->output(sprintf("[%s:%d] Angestellten-List entfernt.
\n",
__CLASS__,
__LINE__
));
}
unset($this->employeeList);
}
/**
* Call parent method
*/
public function saveObjectToDatabase () {
parent::saveObjectToDatabase();
}
/**
* Limits this object with an ObjectLimits instance
*/
public function limitObject (ObjectLimits $limitInstance) {
parent::limitObject($limitInstance);
}
}
// [EOF]
?>