protected function __construct () {
// Call parent constructor
parent::__construct(__CLASS__);
-
- // Set description
- $this->setObjectDescription("A shipping company class");
-
- // Generate unique ID number
- $this->generateUniqueId();
-
- // Clean up a little
- $this->removeSystemArray();
}
/**
*
* @param $userInstance A user class
* @return $companyInstance Prepared company instance
+ * @todo Add functionality if user participates in a company
*/
- public final static function createShippingCompany (BaseUser $userInstance) {
+ public final static function createShippingCompany (ManageableAccount $userInstance) {
// Get new instance
$companyInstance = new ShippingCompany();
// Does the given user owns a company?
if ($companyInstance->ifUserParticipatesInCompany($userInstance)) {
- // Then do some nastly caching here but don't throw an exception
+ // Then do some nasty caching here but don't throw an exception
// because then you will hurt our web helpers... :/
$companyInstance->partialStub("Don't throw exceptions here.");
} // END - if
* @param $userInstance An instance of a user class
* @return $participates Wether the user participates at lease in one company
*/
- protected function ifUserParticipatesInCompany (BaseUser $userInstance) {
+ protected function ifUserParticipatesInCompany (ManageableAccount $userInstance) {
// By default no user owns any company... ;)
$participates = false;
// Get a company database wrapper class
- $wrapperInstance = ObjectFactory::createObjectByConfiguredName('company_db_wrapper_class');
+ $wrapperInstance = ObjectFactory::createObjectByConfiguredName('company_db_wrapper_class', array($this));
// Ask the wrapper if this user participates
$participates = $wrapperInstance->ifUserParticipatesInCompany($userInstance);
* Checks wether the current user in registry is the company founder
*
* @return $isFounder Wether the current user is the company founder
+ * @todo Check if user is company founder
*/
public function ifUserIsFounder () {
// Default is not the founder
* Checks wether the current user in registry is the company owner
*
* @return $isOwner Wether the current user is the company owner
+ * @todo Check if user is company owner
*/
public function ifUserIsOwner () {
// Default is not the owner
return $isEmployee;
}
- //----------------------------------------------------------------------------
- // From here is very old code which needs to be translated and changed heavily
- //----------------------------------------------------------------------------
+ //------------------------------------------------------------------------------\
+ // Below here is very old code which needs to be translated and changed heavily |
+ //------------------------------------------------------------------------------/
/**
* Intialize all lists
// Reedereien Werften bauen lassen
public function createShipyardInHarbor($shipyardName, Harbor $harborInstance) {
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> baut im <strong>%s</strong> eine Werft <strong>%s</strong>.",
+ if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> baut im <strong>%s</strong> eine Werft <strong>%s</strong>.",
__CLASS__,
__LINE__,
$this->getCompanyName(),
$amount = (int) $amount;
// Debug-Meldung ausgeben
- if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> stellt per Zufall <strong>%d</strong> neue Mitarbeiter ein.",
+ if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> stellt per Zufall <strong>%d</strong> neue Mitarbeiter ein.",
__CLASS__,
__LINE__,
$this->getCompanyName(),
$iterator->seek($pos);
// Is the current position valid?
- if ($iterator->valid()) {
- // Element holen
- $employee = $iterator->current();
- } else {
+ if ($iterator->valid() === false) {
// Should normally not happen... :(
throw new StructuresOutOfBoundsException($idx, self::EXCEPTION_INDEX_OUT_OF_BOUNDS);
- }
- }
+ } // END - if
+
+ // Get current element
+ $employee = $iterator->current();
+ } // END - while
// A dummy just for the description and real class
$dummy = CompanyEmployee::createCompanyEmployee("", "", "M", 1970, 1, 1, $employee->isMarried(), 0);
// Make this person employed and give him some money to work
$employee->setEmployed(true);
- $employee->setObjectDescription($dummy->getObjectDescription());
$employee->setRealClass($dummy->__toString());
$employee->increaseSalary((mt_rand(7, 14) * 100)); // Are 700 to 1400 EUR for the begin okay?
// Debug message
- if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> stellt den/die Angestellte(n) <strong>%s %s</strong> ein.",
+ if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> stellt den/die Angestellte(n) <strong>%s %s</strong> ein.",
__CLASS__,
__LINE__,
$this->getCompanyName(),
$personellInstance->resetCache();
// Debug-Meldung ausgeben
- if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> hat per Zufall <strong>%d</strong> neue Mitarbeiter eingestellt.",
+ if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> hat per Zufall <strong>%d</strong> neue Mitarbeiter eingestellt.",
__CLASS__,
__LINE__,
$this->getCompanyName(),
// Distribute all personells on all shipyards
public function distributeAllPersonellOnShipyards () {
- if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> verteilt alle ihre <strong>%d</strong> Mitarbeiter auf alle <strong>%d</strong> Werft(en).",
+ if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> verteilt alle ihre <strong>%d</strong> Mitarbeiter auf alle <strong>%d</strong> Werft(en).",
__CLASS__,
__LINE__,
$this->getCompanyName(),
// Iterate through all employees
for ($idx = $this->employeeList->getIterator(); $idx->valid(); $idx->next()) {
// Is the shipyard iterator still okay?
- if (!$shipyardIter->valid()) {
+ if ($shipyardIter->valid() === false) {
// Rewind to first position
$shipyardIter->seek(0);
- }
+ } // END - if
// Get Shipyard object
$shipyard = $shipyardIter->current();
} elseif (!is_object($shipyard)) {
// Not an object! ;-(
throw new NoObjectException($shipyard, self::EXCEPTION_IS_NO_OBJECT);
- } elseif (!$shipyard->isClass("Shipyard")) {
+ } elseif ($shipyard->isClass("Shipyard") === false) {
// Nope, so throw exception
throw new ClassMismatchException(array($shipyard->__toString(), "Shipyard"), self::EXCEPTION_CLASSES_NOT_MATCHING);
}
$total = $this->employeeList->count();
// Debug message
- if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> hat <strong>%d</strong> Mitarbeiter.",
+ if ((defined('DEBUG_COMPANY_EMPLOYEE')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> hat <strong>%d</strong> Mitarbeiter.",
__CLASS__,
__LINE__,
$this->getCompanyName(),
// Getter for total shipyards
public final function getTotalShipyards () {
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Für die Reederei <strong>%s</strong> werden die Anzahl der Werften in allen Häfen ermittelt.",
+ if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Für die Reederei <strong>%s</strong> werden die Anzahl der Werften in allen Häfen ermittelt.",
__CLASS__,
__LINE__,
$this->getCompanyName()
$total = $this->shipyardList->count();
// Debug message
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> hat <strong>%d</strong> Werft(en).",
+ if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> hat <strong>%d</strong> Werft(en).",
__CLASS__,
__LINE__,
$this->getCompanyName(),
$shipType
));
- // Debug message
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> baut in allen Werften bald Schiffe vom Typ <strong>%s</strong>.",
- __CLASS__,
- __LINE__,
- $this->getCompanyName(),
- $shipInstance->getObjectDescription()
- ));
-
// Iterate shipyard list
for ($idx = $this->shipyardList->getIterator(); $idx->valid(); $idx->next()) {
// Get current element
} elseif (!is_object($shipyard)) {
// Not an object! ;-(
throw new NoObjectException($shipyard, self::EXCEPTION_IS_NO_OBJECT);
- } elseif (!$shipyard->isClass("Shipyard")) {
+ } elseif ($shipyard->isClass("Shipyard") === false) {
// Class is not a shipyard
throw new ClassMismatchException(array($shipyard->__toString(), "Shipyard"), self::EXCEPTION_CLASSES_NOT_MATCHING);
}
// Add the new ship type to the shipyard
$shipyard->addNewConstructableShipType($shipType);
- }
+ } // END - for
}
// Validate the requested ship type with the company if they can construct it
public function validateWorksContractShipType (SignableContract $contractInstance) {
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> prüft den Bauauftrag der <strong>%s</strong>.",
- __CLASS__,
- __LINE__,
- $this->getCompanyName(),
- $contractInstance->getShipName()
- ));
-
// First get the ship type
$shipInstance = $contractInstance->getShipInstance();
// Get it's real class name
$shipType = $shipInstance->__toString();
- // Debug message
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> prüft, ob die <strong>%s</strong> (Typ:<strong>%s</strong>) gebaut werden kann.",
- __CLASS__,
- __LINE__,
- $this->getCompanyName(),
- $contractInstance->getShipName(),
- $shipInstance->getObjectDescription()
- ));
-
- // Now check if the ship type is in any list and return the result
+ // Now check if ship type is in any list and return the result
return ($this->isShipTypeConstructable($shipType));
}
$shipType = (string) $shipType;
// Debug message
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> fragt alle Werften ab, ob diese Schiffe vom Typ <strong>%s</strong> bauen können.",
+ if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> fragt alle Werften ab, ob diese Schiffe vom Typ <strong>%s</strong> bauen können.",
__CLASS__,
__LINE__,
$this->getCompanyName(),
} elseif (!is_object($shipyard)) {
// Not an object! ;-(
throw new NoObjectException($shipyard, self::EXCEPTION_IS_NO_OBJECT);
- } elseif (!$shipyard->isClass("Shipyard")) {
+ } elseif ($shipyard->isClass("Shipyard") === false) {
// Class is not a shipyard
throw new ClassMismatchException(array($shipyard->__toString(), "Shipyard"), self::EXCEPTION_CLASSES_NOT_MATCHING);
}
- // Validate if the first found shipyard can construct the requested type
+ // Validate if first found shipyard can construct the requested type
$result = $shipyard->isShipTypeConstructable($shipType);
// Does this shipyard construct the requested ship type?
if ($result) break; // Then abort the search!
- }
+ } // END - for
// Debug message
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> hat die Suche nach einer Werft beendet, die Schiffe vom Typ <strong>%s</strong> bauen kann.",
+ if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> hat die Suche nach einer Werft beendet, die Schiffe vom Typ <strong>%s</strong> bauen kann.",
__CLASS__,
__LINE__,
$this->getCompanyName(),
// As a customer the shipping company can add new contracts
public function addNewWorksContract (SignableContract $contractInstance) {
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> erstellt einen Bauauftrag für ein <strong>%s</strong> mit dem Namen <strong>%s</strong>.",
- __CLASS__,
- __LINE__,
- $this->getCompanyName(),
- $contractInstance->getShipInstance()->getObjectDescription(),
- $contractInstance->getShipInstance()->getShipName()
- ));
$this->contractList->append($contractInstance);
}
// Sign a contract with an other party which must also implement Customer
public function signContract (SignableContract $contractInstance, ContractPartner $partnerInstance) {
// Check wether the other party is our contract partner
- if (!$partnerInstance->isContractPartner($contractInstance)) {
+ if ($partnerInstance->isContractPartner($contractInstance) === false) {
// Invalid contract partner!
throw new InvalidContractPartnerException($partnerInstance, self::EXCEPTION_CONTRACT_PARTNER_INVALID);
- }
+ } // END - if
// Determine if company "signs" own contract (must be done) or with an other party
if ($this->equals($partnerInstance)) {
// With itself
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> erteilt an sich selbst einen Bauauftrag für das <strong>%s</strong> "<strong>%s</strong>".",
+ if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> erteilt an sich selbst einen Bauauftrag für das <strong>%s</strong> "<strong>%s</strong>".",
__CLASS__,
__LINE__,
$this->getCompanyName(),
));
} else {
// Other external company
- if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->getDebugInstance()->output(sprintf("[%s:%d] Die Reederei <strong>%s</strong> unterzeichnet einen Bauauftrag für das <strong>%s</strong> "<strong>%s</strong>" mit der <strong>%s</strong>.",
+ if ((defined('DEBUG_COMPANY')) || (defined('DEBUG_ALL'))) $this->debugOutput(sprintf("[%s:%d] Die Reederei <strong>%s</strong> unterzeichnet einen Bauauftrag für das <strong>%s</strong> "<strong>%s</strong>" mit der <strong>%s</strong>.",
__CLASS__,
__LINE__,
$this->getCompanyName(),
} elseif (!is_object($contractInstance)) {
// Not an object! ;-(
throw new NoObjectException($contractInstance, self::EXCEPTION_IS_NO_OBJECT);
- } elseif (!$contractInstance->isClass('WorksContract')) {
+ } elseif ($contractInstance->isClass("WorksContract") === false) {
// Is not a merchant
throw new ClassMismatchException(array($contractInstance->__toString(), "WorksContract"), self::EXCEPTION_CLASSES_NOT_MATCHING);
}