/**
  * Show Form action step 3
  *
  * @param \Winkel\WinkelProducts\Domain\Model\Bearing $bearing
  * @param string $firstName
  * @param string $lastName
  * @param string $companyName
  * @param string $email
  * @param string $address
  * @param string $cadFormat
  * @param string $cadDownloadUrl
  * @return void
  * @see http://forge.typo3.org/projects/typo3v45-projects/wiki/SwiftMailer
  * @todo $cadFormat / $cadDownloadUrl prüfen
  */
 public function showFormStep3Action(\Winkel\WinkelProducts\Domain\Model\Bearing $bearing = NULL, $firstName, $lastName, $companyName, $email, $phone, $cadFormat = NULL, $cadDownloadUrl = NULL)
 {
     $error = FALSE;
     $textProfile = '';
     $textFlangePlate = '';
     $request = $this->request->getArguments();
     //		echo '<pre>';
     //		var_dump($request);
     //		echo '</pre>';
     if (array_key_exists('firstName', $request)) {
         $firstName = $this->request->getArgument('firstName');
     }
     if (array_key_exists('lastName', $request)) {
         $lastName = $this->request->getArgument('lastName');
     }
     if (array_key_exists('companyName', $request)) {
         $companyName = $this->request->getArgument('companyName');
     }
     if (array_key_exists('address', $request)) {
         $address = $this->request->getArgument('address');
     }
     if (array_key_exists('zip', $request)) {
         $zip = $this->request->getArgument('zip');
     }
     if (array_key_exists('city', $request)) {
         $city = $this->request->getArgument('city');
     }
     if (array_key_exists('country', $request)) {
         $country = $this->request->getArgument('country');
     }
     if (array_key_exists('email', $request)) {
         // todo validEmail
         if (\TYPO3\CMS\Core\Utility\GeneralUtility::validEmail($this->request->getArgument('email')) === TRUE) {
             $textContact = 'E-Mail: ' . $this->request->getArgument('email') . "\n";
             $email = $this->request->getArgument('email');
         } else {
             $error = TRUE;
             $this->flashMessageContainer->add('Fehlerhafte E-Mail');
         }
     } else {
         $error = TRUE;
         $this->flashMessageContainer->add('Keine E-Mail');
     }
     if (array_key_exists('phone', $request)) {
         $phone = $this->request->getArgument('phone');
     }
     foreach ($request as $key => $singleRequest) {
         // Flangeplate
         if (substr($key, -8) == '-count-f') {
             $anfang = substr($key, 0, -8);
             $flangeplate[$this->request->getArgument($anfang . '-name-f')] = array('count' => $this->request->getArgument($anfang . '-count-f'), 'uid' => $this->request->getArgument($anfang . '-uid-f'), 'name' => $this->request->getArgument($anfang . '-name-f'));
             $textFlangePlate .= 'Flangeplate: ' . $this->request->getArgument($anfang . '-count-f') . ' Stück ' . $this->request->getArgument($anfang . '-name-f') . "\n\n";
         }
         // Profile
         // lenght ist nur bei profilen vorhanden!
         if (substr($key, -7) == '-length') {
             $anfang = substr($key, 0, -7);
             $profile[$this->request->getArgument($anfang . '-name')] = array('count' => $this->request->getArgument($anfang . '-count'), 'lenght' => $this->request->getArgument($anfang . '-length'), 'uid' => $this->request->getArgument($anfang . '-uid'), 'name' => $this->request->getArgument($anfang . '-name'));
             $profile[$this->request->getArgument($anfang . '-name')]['fine-straightened'] = '';
             if (array_key_exists($anfang . '-fine-straightened', $request)) {
                 if ($this->request->getArgument($anfang . '-fine-straightened') == '1') {
                     $profile[$this->request->getArgument($anfang . '-name')]['fine-straightened'] = ' Feingerichtet';
                 }
             }
             $textProfile .= 'Profil: ' . $this->request->getArgument($anfang . '-count') . ' Stück ' . "\n" . $this->request->getArgument($anfang . '-name') . "\n" . ' Länge: ' . $this->request->getArgument($anfang . '-length') . ' mm' . "\n" . $profile[$this->request->getArgument($anfang . '-name')]['fine-straightened'] . "\n\n";
         }
     }
     if ($textFlangePlate != '') {
         $textFlangePlate = 'Gewählte Anschraubplatten:' . "\n" . '==========================' . "\n" . $textFlangePlate;
     }
     if ($textProfile != '') {
         $textProfile = 'Gewählte Profile:' . "\n" . '==========================' . "\n" . $textProfile;
     }
     #echo '<pre>';
     #var_dump($profile);
     #echo '</pre>';
     /*
     		if(array_key_exists('profile', $request)) {
     			$profileUid = intval($this->request->getArgument('profile'));
     			$profile = $this->profileRepository->findByUid($profileUid);
     
     
     			$textProfile = 'Profile: ' . $this->request->getArgument('profile-count') . ' Stück ' . $profile->getTitle() . ' Länge: ' . $this->request->getArgument('profile-length') . ' Meter'. "\n".
     				'    Feingerichtet: ' . $this->request->getArgument('profile-fine-straightened');
     			$this->view->assign('currentProfile', $profile);
     		} else {
     			$textProfile = '';
     		}
     
     
     		if(array_key_exists('flangeplate', $request)) {
     			$flangePlateUid = intval($this->request->getArgument('flangeplate'));
     			#var_dump($flangePlateUid);
     			$flangePlate = $this->flangePlateRepository->findByUid($flangePlateUid);
     			$textFlangePlate = 'FlangePlate: ' . $this->request->getArgument('flangeplate-count') . ' Stück ' . $flangePlate->getType() . "\n";
     
     			$this->view->assign('currentFlangePlate', $flangePlate);
     		} else {
     			$textFlangePlate = '';
     		}
     */
     $moredetails = '';
     if ($this->request->hasArgument('moredetails')) {
         if ($this->request->getArgument('moredetails') != '') {
             $comment = $this->request->getArgument('moredetails');
             $moredetails = 'Weitere Informationen: ' . "\n" . $comment . "\n";
         }
     }
     $angebot = 0;
     $angebotMessage = '';
     if ($this->request->hasArgument('angebot')) {
         if ($this->request->getArgument('angebot') == '1') {
             $angebotMessage = 'Kunde wünscht ein Angebot';
         }
     }
     if ($_FILES['tx_winkelproducts_pi1']['name']['flangeplate-pdf'] != '') {
         $flangeplatePdf = 'Anhang vorhanden' . "\n";
         #var_dump($_FILES);
         $basicFileFunctions = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('t3lib_basicFileFunctions');
         $fileName = $basicFileFunctions->getUniqueName($_FILES['tx_winkelproducts_pi1']['name']['flangeplate-pdf'], \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName('uploads/tx_winkelproducts/'));
         $mimeType = $_FILES['tx_winkelproducts_pi1']['type']['flangeplate-pdf'];
         \TYPO3\CMS\Core\Utility\GeneralUtility::upload_copy_move($_FILES['tx_winkelproducts_pi1']['tmp_name']['flangeplate-pdf'], $fileName);
         $pdf = basename($fileName);
         #var_dump($fileName);
     } else {
         $flangeplatePdf = 'Kein Anhang' . "\n";
     }
     # $error = TRUE;
     $this->view->assign('bearing', $bearing);
     $this->view->assign('error', $error);
     if ($error === TRUE) {
         // @todo Errormeldungen setzen
         $request['firstName'] = $this->request->getArgument('firstName');
         $request['lastName'] = $this->request->getArgument('lastName');
         $request['cadFormat'] = $this->request->getArgument('cadFormat');
         $request['angebot'] = $this->request->getArgument('angebot');
         $request['bearing-count'] = $this->request->getArgument('bearing-count');
         $request['flangeplate-count'] = $this->request->getArgument('flangeplate-count');
         $request['cadDownloadUrl'] = $this->request->getArgument('cadDownloadUrl');
         if ($this->request->getArgument('newsletter') == '1') {
             $request['newsletterChecked'] = TRUE;
         } else {
             $request['newsletterChecked'] = FALSE;
         }
         if ($this->request->getArgument('angebot') == '1') {
             $request['angebotChecked'] = TRUE;
         } else {
             $request['angebotChecked'] = FALSE;
         }
         $this->view->assign('request', $request);
     } else {
         //			DebuggerUtility::var_dump($bearing, 'Bearing');
         /** @var \Winkel\WinkelCustomerlog\Domain\Model\CustomerData */
         $customerData = $this->objectManager->get('\\Winkel\\WinkelCustomerlog\\Domain\\Model\\CustomerData');
         $xIP = (string) getenv('HTTP_X_FORWARDED_FOR');
         $ip = (string) getenv('REMOTE_ADDR');
         if ($xIP != '') {
             $ip = $xIP;
         }
         $customerData->setIp($ip);
         $language = $GLOBALS['TSFE']->config['config']['language'];
         $customerData->setLanguage($language);
         $customerData->setPid('2057');
         $requestType = $this->requestTypeRepository->findByUid(2);
         $customerData->setRequestType($requestType);
         $customerData->setFirstName($firstName);
         $customerData->setLastName($lastName);
         $customerData->setCompany($companyName);
         $customerData->setComment($moredetails);
         $customerData->setEmail($email);
         $customerData->setTelephone($phone);
         $customerData->setArticleNumber($bearing->getArticleNumber());
         $customerData->setArticleTitle($bearing->getTitleShow());
         $customerData->setArticleCadFormat($cadFormat);
         $customerData->setCadDownloadUrl($cadDownloadUrl);
         #DebuggerUtility::var_dump($customerData);
         $message = 'WINKEL-Rolle: ' . $bearing->getTitleShow() . "\n" . '==========================' . "\n" . $this->request->getArgument('bearing-count') . ' Stück ' . "\n\n" . $textProfile . $textFlangePlate . $flangeplatePdf . '-------------------------------------' . "\n" . $moredetails . "\n" . '-------------------------------------' . "\n" . \Winkel\UserWebsite\Utilities\BuildAddressTextFromRequestObject::plainText($this->request) . 'Download-URL: ' . $cadDownloadUrl . "\n" . $angebotMessage;
         $customerData->setRaw($message);
         $subject = '[Produktanfrage Rolle] von ' . $companyName . ' (' . $firstName . ' ' . $lastName . ')';
         \Winkel\UserWebsite\Utilities\SendMail::sendMailToAdmin($subject, $message);
         \Winkel\UserWebsite\Utilities\SendMail::sendMailToWinkel($subject, $message);
         // Daten in der Extension CustomerLog speichern
         $this->customerDataRepository->add($customerData);
         $this->persistenceManager->persistAll();
     }
 }
 /**
  * action delete
  *
  * @param \Winkel\WinkelCustomerlog\Domain\Model\CustomerData $customerData
  * @return void
  */
 public function deleteAction(\Winkel\WinkelCustomerlog\Domain\Model\CustomerData $customerData)
 {
     $this->addFlashMessage('The object was deleted. Please be aware that this action is publicly accessible unless you implement an access check. See <a href="http://wiki.typo3.org/T3Doc/Extension_Builder/Using_the_Extension_Builder#1._Model_the_domain" target="_blank">Wiki</a>', '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR);
     $this->customerDataRepository->remove($customerData);
     $this->redirect('list');
 }