<?php
namespace App\Services;
use App\Services\Util;
use Doctrine\ORM\EntityManagerInterface;
use App\Entity\Flat;
class ProcessFlatPublishForm{
private $em;
private $imArray;
private $user;
public function __construct(EntityManagerInterface $em, $imagesArray = array(), $user){
$this->em = $em;
$this->imArray = $imagesArray;
$this->user = $user;
}
public function createFlat($formData): bool{
//make rental contidions
$rt = Util::jsonToArray($formData->get('rentalconditions')->getData());
//var_dump($rt);die();
$flat = new Flat();
$flat->setStreet($formData->get('street')->getData());
$flat->setStreetNo($formData->get('streetnomber')->getData());
$flat->setFlatNo($formData->get('floor')->getData());
$flat->setDoorNo($formData->get('door')->getData());
$flat->setCity($formData->get('city')->getData());
$flat->setCountry($formData->get('country')->getData());
//$flat->setPostalCode($formData->get('street')->getData());
$flat->setTotalRooms($formData->get('totalrooms')->getData());
$flat->setTotalBathrooms($formData->get('totalbathrooms')->getData());
$flat->setSquareMeter($formData->get('squaremeters')->getData());
$flat->setLift($formData->get('lift')->getData());
$flat->setFloor($formData->get('floor')->getData());
$flat->setTitle($formData->get('title')->getData());
$flat->setDescription( Util::removeHtml($formData->get('description')->getData(), 10000) );
$flat->setUrl( Util::makeUrl($formData->get('title')->getData(), 500) );
$flat->setInternalRef($formData->get('internalref')->getData());
$flat->setPrice($formData->get('price')->getData());
$flat->setDeposit($formData->get('deposit')->getData());
$flat->setRentalConditions($rt);
$flat->setImages($this->imArray);
$flat->setPublishDate(\time());
$flat->setLastUpdate(\time());
$flat->setLastUpdate(\time());
$flat->setActive('1');
$flat->setLang($formData->get('language')->getData());
$flat->setAvailableFrom( \strtotime($formData->get('availablefrom')->getData()) );
$flat->setUser($this->user);
$this->em->persist($flat);
$this->em->flush();
return $flat->getId() != NULL ? true : false;
}
}