00001 <?php
00002
00003 @chdir("../..");
00004
00005
00006 define('TEST_MODE', true);
00007
00008
00009 require(dirname(dirname(dirname(__FILE__))) . "/inc/config.php");
00010
00011
00012 require($cfg->readConfig('base_path') . 'inc/includes.php');
00013
00014
00015 require($cfg->readConfig('base_path') . 'inc/classes.php');
00016
00017
00018 require($cfg->readConfig('base_path') . 'inc/file_io.php');
00019
00020
00021 require($cfg->readConfig('base_path') . 'inc/database.php');
00022
00023
00024 FrameworkConfiguration::getInstance()->setConfigEntry('default_application', 'ship-simu');
00025 $application = 'ship-simu';
00026
00027
00028 require($cfg->readConfig('base_path') . 'application/ship-simu/loader.php');
00029
00030
00031
00032 try {
00033 $personell = SimulatorPersonell::createSimulatorPersonellByID('SimulatorPersonell@829292aeca3f6bf78c16e25fc4f75c98');
00034 } catch (InvalidIDFormatException $e) {
00035 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00036 $e->getMessage()
00037 ));
00038 } catch (InvalidArrayCountException $e) {
00039 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00040 $e->getMessage()
00041 ));
00042 } catch (NullPointerException $e) {
00043 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00044 $e->getMessage()
00045 ));
00046 } catch (NoObjectException $e) {
00047 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00048 $e->getMessage()
00049 ));
00050 } catch (MissingMethodException $e) {
00051 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00052 $e->getMessage()
00053 ));
00054 } catch (FileIsEmptyException $e) {
00055 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00056 $e->getMessage()
00057 ));
00058 } catch (FilePointerNotOpenedException $e) {
00059 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00060 $e->getMessage()
00061 ));
00062 } catch (InvalidArrayCountException $e) {
00063 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00064 $e->getMessage()
00065 ));
00066 } catch (InvalidMD5ChecksumException $e) {
00067 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00068 $e->getMessage()
00069 ));
00070 } catch (InvalidDataLengthException $e) {
00071 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00072 $e->getMessage()
00073 ));
00074 } catch (InvalidSimulatorIDException $e) {
00075 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00076 $e->getMessage()
00077 ));
00078 } catch (MismatchingCompressorsException $e) {
00079 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00080 $e->getMessage()
00081 ));
00082 } catch (ContainerItemIsNullException $e) {
00083 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00084 $e->getMessage()
00085 ));
00086 } catch (ContainerItemIsNoArrayException $e) {
00087 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00088 $e->getMessage()
00089 ));
00090 } catch (ContainerMaybeDamagedException $e) {
00091 die(sprintf("[Main:] Could not create personal list for follwing reason: <span class=\"exception_reason\">%s</span><br />\n",
00092 $e->getMessage()
00093 ));
00094 }
00095
00096
00097 if (defined('DEBUG_PERSONELL_OBJ')) {
00098 DebugMiddleware::getInstance()->output(sprintf("The personal object looks like this:<br />
00099 <pre>%s</pre>\n",
00100 print_r($personell, true)
00101 ));
00102 }
00103
00104
00105 $harbor = Harbor::createHarbor("Hamburger Hafen");
00106
00107
00108 DebugMiddleware::getInstance()->output(sprintf("Der <span class=\"exception_reason\">%s</span> ist gegründet worden.<br />\n",
00109 $harbor->getHarborName()
00110 ));
00111
00112
00113 if (defined('DEBUG_HARBOR_OBJ')) {
00114 DebugMiddleware::getInstance()->output(sprintf("Der <span class=\"exception_reason\">%s</span> sieht wie folgt aus:<br />
00115 <pre>%s</pre>\n",
00116 $harbor->getHarborName(),
00117 print_r($harbor, true)
00118 ));
00119 }
00120
00121
00122 $merchant = Merchant::createMerchant("Namenlos", $harbor);
00123
00124
00125 $einbauten = array(
00126 'parts' => array(
00127 'Motor' => array(
00128 "Ocean-Power 2000",
00129 20000,
00130 6,
00131 2.5, 2, 3.5
00132 ),
00133 'Bridge' => array(
00134 26, 2.5, 15
00135 ),
00136 'CarDeck' => array(
00137 'amount' => 8,
00138 'dim' => array(
00139 6, 3, 16
00140 )
00141 ),
00142 'TruckDeck' => array(
00143 'amount' => 1,
00144 'dim' => array(
00145 8, 5, 195
00146 )
00147 ),
00148 'TrainDeck' => array(
00149 'amount' => 1,
00150 'dim' => array(
00151 8, 4, 195
00152 )
00153 ),
00154 'LuxuryCabin' => array(
00155 'amount' => 20,
00156 'rooms' => 4,
00157 'bed' => 3,
00158 'dim' => array(
00159 4, 3, 5
00160 ),
00161 ),
00162 'PremierCabin' => array(
00163 'amount' => 40,
00164 'rooms' => 2,
00165 'bed' => 2,
00166 'dim' => array(
00167 4, 2.5, 4
00168 )
00169 ),
00170 'LowCabin' => array(
00171 'amount' => 90,
00172 'rooms' => 1,
00173 'bed' => 2,
00174 'dim' => array(
00175 3, 2.5, 4
00176 )
00177 ),
00178 'EconomyCabin' => array(
00179 'amount' => 140,
00180 'rooms' => 1,
00181 'bed' => 1,
00182 'dim' => array(
00183 2, 2.5, 2
00184 )
00185 )
00186 ),
00187 'builds' => array(
00188 'Motor' => "MaschineRoom",
00189 'Bridge' => "BaseUpperStructure",
00190 'LuxuryCabin' => "BaseCabin",
00191 'PremierCabin' => "BaseCabin",
00192 'LowCabin' => "BaseCabin",
00193 'EconomyCabin' => "BaseCabin",
00194 'CarDeck' => "BaseDeck",
00195 'TrainDeck' => "BaseDeck",
00196 'TruckDeck' => "BaseDeck"
00197 )
00198 );
00199
00200
00201 foreach ($einbauten['parts'] as $key=>$part) {
00202
00203 $item = "";
00204 foreach ($part as $idx=>$itemPart) {
00205 if (is_string($itemPart)) {
00206
00207 $item .= sprintf("\"%s\", ", $itemPart);
00208 } elseif (is_int($itemPart)) {
00209
00210 $item .= sprintf("%d, ", $itemPart);
00211 } elseif (is_float($itemPart)) {
00212
00213 $item .= sprintf("%f, ", $itemPart);
00214 } elseif (is_array($itemPart)) {
00215
00216 $item .= "array(";
00217
00218
00219 foreach ($itemPart as $idx2=>$subPart) {
00220 if (is_int($subPart)) {
00221
00222 $item .= sprintf("%d, ", $subPart);
00223 } elseif (is_float($subPart)) {
00224
00225 $item .= sprintf("%f, ", $subPart);
00226 } else {
00227
00228 die(sprintf("[Main:] Unsupported sub-array element on pos <strong>%d</strong> in array <span class=\"exception_reason\">%s</span> found: <u>%s</u>", $idx2, $idx, $subPart));
00229 }
00230 }
00231
00232
00233 $item = substr($item, 0, -2);
00234
00235
00236 $item .= "), ";
00237 } else {
00238
00239 die(sprintf("[Main:] Unsupported array element on pos <strong>%d</strong>: <u>%s</u>", $idx, $itemPart));
00240 }
00241 }
00242
00243
00244 $item = substr($item, 0, -2);
00245
00246
00247 $price = mt_rand(5, 12) * 10000;
00248
00249
00250 try {
00251
00252 $eval = sprintf("\$merchant->addItemToPriceList(%s::create%s(%s), %d);",
00253 $key,
00254 $key,
00255 $item,
00256 $price
00257 );
00258
00259
00260 if ((defined('DEBUG_EVAL')) || (defined('DEBUG_ALL'))) DebugMiddleware::getInstance()->output(sprintf("[Main:] Konstruierte PHP-Anweisung: <pre><em>%s</em></pre><br />\n",
00261 htmlentities($eval)
00262 ));
00263
00264
00265 eval($eval);
00266 } catch (ItemNotTradeableException $e) {
00267 die(sprintf("[Main:] Die Preisliste des Händlers <span class=\"exception_reason\">%s</span> kann nicht befüllt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00268 $merchant->getMerchantName(),
00269 $e->getMessage()
00270 ));
00271 }
00272 }
00273
00274
00275 if (defined('DEBUG_MERCHANT_OBJ')) {
00276 DebugMiddleware::getInstance()->output(sprintf("Der Händler <span class=\"exception_reason\">%s</span> sieht wie folgt aus:<br />
00277 <pre>%s</pre>\n",
00278 $merchant->getMerchantName(),
00279 print_r($merchant, true)
00280 ));
00281 }
00282
00283
00284 $shipping = ShippingCompany::createShippingCompany("Hanseatic Travel Company", $harbor);
00285
00286
00287 try {
00288 $shipping->setCompanyFounder(CompanyEmployee::createCompanyEmployee("Roland", "Häder", "M", 1977, 9, 26, true, 2000));
00289 } catch (BirthdayInvalidException $e) {
00290 die(sprintf("[Main:] Reederei-Gründer konnte nicht gesetzt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00291 $e->getMessage()
00292 ));
00293 }
00294
00295
00296 DebugMiddleware::getInstance()->output(sprintf("Die Reederei <span class=\"exception_reason\">%s</span> ist von <strong>%s %s</strong> gegründet worden.<br />\n",
00297 $shipping->getCompanyName(),
00298 $shipping->getFounderInstance()->getSurname(),
00299 $shipping->getFounderInstance()->getFamily()
00300 ));
00301
00302
00303 try {
00304 $shipping->recruitRandomEmployees(10, $personell);
00305 } catch (ToMuchEmployeesException $e) {
00306 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> konnte kein Personal einstellen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00307 $shipping->getCompanyName(),
00308 $e->getMessage()
00309 ));
00310 } catch (OutOfBoundsException $e) {
00311 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> konnte kein Personal einstellen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00312 $shipping->getCompanyName(),
00313 $e->getMessage()
00314 ));
00315 }
00316
00317
00318 DebugMiddleware::getInstance()->output(sprintf("Die Reederei <span class=\"exception_reason\">%s</span> hat nun <strong>%d</strong> weitere Mitarbeiter.<br />\n",
00319 $shipping->getCompanyName(),
00320 $shipping->getTotalEmployee()
00321 ));
00322
00323
00324 $shipping->createShipyardInHarbor("Werft 1", $harbor);
00325 $shipping->createShipyardInHarbor("Werft 2", $harbor);
00326 $shipping->createShipyardInHarbor("Werft 3", $harbor);
00327
00328
00329 try {
00330 $shipping->addShipTypeToAllShipyards("PassengerShip");
00331 } catch (ClassNotFoundException $e) {
00332 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> kann ihre Werften nicht beschäftigen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00333 $shipping->getCompanyName(),
00334 $e->getMessage()
00335 ));
00336 } catch (ClassMismatchException $e) {
00337 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> kann ihre Werften nicht beschäftigen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00338 $shipping->getCompanyName(),
00339 $e->getMessage()
00340 ));
00341 } catch (NoObjectException $e) {
00342 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> kann ihre Werften nicht beschäftigen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00343 $shipping->getCompanyName(),
00344 $e->getMessage()
00345 ));
00346 }
00347
00348
00349 try {
00350 $shipping->distributeAllPersonellOnShipyards();
00351 } catch (NoShipyardsConstructedException $e) {
00352 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> konnte kein Personal den Werften zuteilen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00353 $shipping->getCompanyName(),
00354 $e->getMessage()
00355 ));
00356 } catch (ClassMismatchException $e) {
00357 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> konnte kein Personal den Werften zuteilen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00358 $shipping->getCompanyName(),
00359 $e->getMessage()
00360 ));
00361 } catch (NullPointerException $e) {
00362 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> konnte kein Personal den Werften zuteilen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00363 $shipping->getCompanyName(),
00364 $e->getMessage()
00365 ));
00366 } catch (NoObjectException $e) {
00367 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> konnte kein Personal den Werften zuteilen. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00368 $shipping->getCompanyName(),
00369 $e->getMessage()
00370 ));
00371 }
00372
00373
00374 DebugMiddleware::getInstance()->output(sprintf("Die Reederei <span class=\"exception_reason\">%s</span> beschäftigt nun ihre <strong>%d</strong> Mitarbeiter in <strong>%d</strong> Werft(en):<br />\n",
00375 $shipping->getCompanyName(),
00376 $shipping->getTotalEmployee(),
00377 $shipping->getTotalShipyards()
00378 ));
00379
00380
00381
00382 try {
00383 $shipping->addNewWorksContract(WorksContract::createWorksContract("PassengerShip", "M/S Poseidon", $shipping));
00384 } catch (ClassNotFoundException $e) {
00385 die(sprintf("[Main:] Der Bauauftrag konnte nicht erstellt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00386 $e->getMessage()
00387 ));
00388 } catch (NullPointerException $e) {
00389 die(sprintf("[Main:] Der Bauauftrag konnte nicht erstellt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00390 $e->getMessage()
00391 ));
00392 } catch (NoObjectException $e) {
00393 die(sprintf("[Main:] Der Bauauftrag konnte nicht erstellt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00394 $e->getMessage()
00395 ));
00396 } catch (MissingMethodException $e) {
00397 die(sprintf("[Main:] Der Bauauftrag konnte nicht erstellt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00398 $e->getMessage()
00399 ));
00400 } catch (EmptyStructuresListException $e) {
00401 die(sprintf("[Main:] Der Bauauftrag konnte nicht erstellt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00402 $e->getMessage()
00403 ));
00404 }
00405
00406
00407 $contract = $shipping->getLastContractInstance();
00408
00409
00410 try {
00411 $shipping->setMerchantInstance($merchant);
00412 } catch (NullPointerException $e) {
00413 die(sprintf("[Main:] Der Händler <span class=\"exception_reason\">%s</span> konnte nicht ausgewählt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00414 $merchant->getMerchantName(),
00415 $e->getMessage()
00416 ));
00417 } catch (NoObjectException $e) {
00418 die(sprintf("[Main:] Der Händler <span class=\"exception_reason\">%s</span> konnte nicht ausgewählt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00419 $merchant->getMerchantName(),
00420 $e->getMessage()
00421 ));
00422 } catch (ClassMismatchException $e) {
00423 die(sprintf("[Main:] Der Händler <span class=\"exception_reason\">%s</span> konnte nicht ausgewählt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00424 $merchant->getMerchantName(),
00425 $e->getMessage()
00426 ));
00427 }
00428
00429
00430 try {
00431 $typeValid = $shipping->validateWorksContractShipType($contract);
00432 } catch (NullPointerException $e) {
00433 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> konnte den Bauauftrag nicht validieren. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00434 $shipping->getCompanyName(),
00435 $e->getMessage()
00436 ));
00437 } catch (NoObjectException $e) {
00438 die(sprintf("[Main:] Die Reederei <span class=\"exception_reason\">%s</span> konnte den Bauauftrag nicht validieren. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00439 $shipping->getCompanyName(),
00440 $e->getMessage()
00441 ));
00442 }
00443
00444
00445 if ($typeValid) {
00446 DebugMiddleware::getInstance()->output(sprintf("Die Reederei <span class=\"exception_reason\">%s</span> kann Schiffe vom Typ <span class=\"exception_reason\">%s</span> bauen.<br />\n",
00447 $shipping->getCompanyName(),
00448 $contract->getShipInstance()->getObjectDescription()
00449 ));
00450 } else {
00451 DebugMiddleware::getInstance()->output(sprintf("Die Reederei <span class=\"exception_reason\">%s</span> kann keine Schiffe vom Typ <span class=\"exception_reason\">%s</span> bauen!<br />\n",
00452 $shipping->getCompanyName(),
00453 $contract->getShipInstance()->getObjectDescription()
00454 ));
00455 exit;
00456 }
00457
00458
00459 foreach ($einbauten['parts'] as $key=>$part) {
00460 try {
00461 $contract->addContractDetails($key, $einbauten['builds'][$key], $part);
00462 } catch (ShipPartNotConstructableException $e) {
00463
00464 die($e->getMessage());
00465 } catch (ShipNotConstructedException $e) {
00466
00467 die($e->getMessage());
00468 } catch (ItemNotInPriceListException $e) {
00469 die(sprintf("[Main:] Der Artikel <span class=\"exception_reason\">%s</span> konnte nicht in der Preisliste gefunden werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00470 $key,
00471 $e->getMessage()
00472 ));
00473 } catch (InvalidArrayCountException $e) {
00474 die(sprintf("[Main:] Der Artikel <span class=\"exception_reason\">%s</span> konnte nicht in der Preisliste gefunden werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00475 $key,
00476 $e->getMessage()
00477 ));
00478 }
00479 }
00480
00481
00482 if (defined('DEBUG_COMPANY_OBJ')) {
00483 DebugMiddleware::getInstance()->output(sprintf("Die Reederei <span class=\"exception_reason\">%s</span> sieht wie folgt aus:<br />
00484 <pre>%s</pre>\n",
00485 $shipping->getCompanyName(),
00486 print_r($shipping, true)
00487 ));
00488 }
00489
00490
00491 unset($einbauten);
00492 unset($part);
00493 unset($eval);
00494 unset($item);
00495 unset($key);
00496 unset($typeValid);
00497
00498
00499 try {
00500 $totalValue = $contract->getTotalPrice();
00501 } catch (NullPointerException $e) {
00502 die(sprintf("[Main:] Gesamtbestellwert nicht ermittelbar. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00503 $e->getMessage()
00504 ));
00505 } catch (NoObjectException $e) {
00506 die(sprintf("[Main:] Gesamtbestellwert nicht ermittelbar. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00507 $e->getMessage()
00508 ));
00509 } catch (MissingMethodException $e) {
00510 die(sprintf("[Main:] Gesamtbestellwert nicht ermittelbar. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00511 $e->getMessage()
00512 ));
00513 } catch (EmptyStructuresListException $e) {
00514 die(sprintf("[Main:] Gesamtbestellwert nicht ermittelbar. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00515 $e->getMessage()
00516 ));
00517 } catch (TotalPriceNotCalculatedException $e) {
00518 die(sprintf("[Main:] Gesamtbestellwert nicht ermittelbar. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00519 $e->getMessage()
00520 ));
00521 }
00522
00523
00524 DebugMiddleware::getInstance()->output(sprintf("Der Bau der <span class=\"exception_reason\">%s</span> wird der Reederei <span class=\"exception_reason\">%s</span> voraussichtlich <span class=\"exception_reason\">%s</span> kosten.<br />\n",
00525 $contract->getShipInstance()->getShipName(),
00526 $shipping->getCompanyName(),
00527 $contract->formatCurrency($totalValue)
00528 ));
00529
00530
00531 unset($totalValue);
00532
00533
00534 try {
00535 $shipping->signContract($contract, $shipping);
00536 } catch (NullPointerException $e) {
00537 die(sprintf("[Main:] The shipping company <span class=\"exception_reason\">%s</span> was not able to sign the contract for the following reason: <span class=\"exception_reason\">%s</span><br />\n",
00538 $shipping->getCompanyName(),
00539 $e->getMessage()
00540 ));
00541 } catch (NoObjectException $e) {
00542 die(sprintf("[Main:] The shipping company <span class=\"exception_reason\">%s</span> was not able to sign the contract for the following reason: <span class=\"exception_reason\">%s</span><br />\n",
00543 $shipping->getCompanyName(),
00544 $e->getMessage()
00545 ));
00546 } catch (MissingMethodException $e) {
00547 die(sprintf("[Main:] The shipping company <span class=\"exception_reason\">%s</span> was not able to sign the contract for the following reason: <span class=\"exception_reason\">%s</span><br />\n",
00548 $shipping->getCompanyName(),
00549 $e->getMessage()
00550 ));
00551 } catch (InvalidContractPartnerException $e) {
00552 die(sprintf("[Main:] The shipping company <span class=\"exception_reason\">%s</span> was not able to sign the contract for the following reason: <span class=\"exception_reason\">%s</span><br />\n",
00553 $shipping->getCompanyName(),
00554 $e->getMessage()
00555 ));
00556 } catch (ContractAllreadySignedException $e) {
00557 die(sprintf("[Main:] The shipping company <span class=\"exception_reason\">%s</span> was not able to sign the contract for the following reason: <span class=\"exception_reason\">%s</span><br />\n",
00558 $shipping->getCompanyName(),
00559 $e->getMessage()
00560 ));
00561 } catch (WrongContractPartnerException $e) {
00562 die(sprintf("[Main:] The shipping company <span class=\"exception_reason\">%s</span> was not able to sign the contract for the following reason: <span class=\"exception_reason\">%s</span><br />\n",
00563 $shipping->getCompanyName(),
00564 $e->getMessage()
00565 ));
00566 }
00567
00568
00569 if ($contract->isSigned()) {
00570 DebugMiddleware::getInstance()->output(sprintf("Die Reederei <span class=\"exception_reason\">%s</span> hat den Bau der <span class=\"exception_reason\">%s</span> zugestimmt.<br />\n",
00571 $shipping->getCompanyName(),
00572 $contract->getShipInstance()->getShipName()
00573 ));
00574 } else {
00575 DebugMiddleware::getInstance()->output(sprintf("Die Reederei <span class=\"exception_reason\">%s</span> hat den Bau der <span class=\"exception_reason\">%s</span> abgelehnt.<br />\n",
00576 $shipping->getCompanyName(),
00577 $contract->getShipInstance()->getShipName()
00578 ));
00579 exit;
00580 }
00581
00582
00583 if (defined('DEBUG_CONTRACT_OBJ')) {
00584 DebugMiddleware::getInstance()->output(sprintf("Der Bauauftrag sieht wie folgt aus:<br />
00585 <pre>%s</pre>\n",
00586 print_r($contract, true)
00587 ));
00588 }
00589
00590
00591
00592
00593
00594 try {
00595 $totalBeds = $contract->getShipInstance()->calcTotalBeds();
00596 } catch (StructuresOutOfBoundsException $e) {
00597 die(sprintf("[Main:] Anzahl Betten konnten nicht ermittelt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00598 $e->getMessage()
00599 ));
00600 } catch (EmptyStructuresListException $e) {
00601 die(sprintf("[Main:] Anzahl Betten konnten nicht ermittelt werden. Grund: <span class=\"exception_reason\">%s</span><br />\n",
00602 $e->getMessage()
00603 ));
00604 }
00605
00606
00607 DebugMiddleware::getInstance()->output(sprintf("Es stehen <strong>%d</strong> Betten zur Verfügung.",
00608 $totalBeds
00609 ));
00610
00611
00612 ?>