]> git.mxchange.org Git - shipsimu.git/blobdiff - ship-simu/application/ship-simu/main/personell/company/class_CompanyEmployee.php
Initial import of current development status
[shipsimu.git] / ship-simu / application / ship-simu / main / personell / company / class_CompanyEmployee.php
diff --git a/ship-simu/application/ship-simu/main/personell/company/class_CompanyEmployee.php b/ship-simu/application/ship-simu/main/personell/company/class_CompanyEmployee.php
new file mode 100644 (file)
index 0000000..1ea8ab2
--- /dev/null
@@ -0,0 +1,102 @@
+<?php
+
+// Die Schiffsbesatzung
+class CompanyEmployee extends SimulatorPersonell {
+       // Employeee list
+       private $employeeList = null;
+
+       // Constructor
+       private function __construct () {
+               // Call parent constructor
+               parent::constructor(__CLASS__);
+
+               // Debug message
+               if ((((defined('DEBUG_COMPANY_EMPLOYEE')) && (defined('DEBUG_PERSONELL'))) || (defined('DEBUG_ALL'))) && (defined('DEBUG_CONSTRUCT'))) {
+                       $this->getDebugInstance()->output(sprintf("[%s:%d] Konstruktor erreicht.<br />\n",
+                               __CLASS__,
+                               __LINE__
+                       ));
+               }
+
+               // Beschreibung setzen
+               $this->setPartDescr("Firmenangestellte(r)");
+
+               // Create unique ID
+               $this->createUniqueID();
+
+               // Clean up a little
+               $this->removeSystemArray();
+       }
+
+       // Generate a specified amount of personell
+       public 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 <strong>%s %s</strong> wird angelegt.<br />\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.<br />\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]
+?>