| @@ -1,129 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Command; | |||||
| use App\Entity\EntCustomer; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\DBAL\DriverManager; | |||||
| use Doctrine\ORM\EntityManager; | |||||
| use Psr\Container\ContainerInterface; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| use Symfony\Component\Console\Command\Command; | |||||
| use Symfony\Component\Console\Input\InputArgument; | |||||
| use Symfony\Component\Console\Input\InputInterface; | |||||
| use Symfony\Component\Console\Output\OutputInterface; | |||||
| /** | |||||
| * Command to import excel that with answers of specifications | |||||
| * | |||||
| * Class CmdImportAll | |||||
| * @package App\Command | |||||
| */ | |||||
| class CmdImportUpdateCustomers extends Command | |||||
| { | |||||
| protected static $defaultName = 'app:update-customers'; | |||||
| /** @var EntityManager $em */ | |||||
| private $em; | |||||
| /** @var ContainerInterface $container */ | |||||
| private $container; | |||||
| private $environment; | |||||
| /** | |||||
| * CmdImportCustomers constructor. | |||||
| * @param EntityManager $em | |||||
| * @param ContainerInterface $container | |||||
| */ | |||||
| public function __construct(EntityManager $em, ContainerInterface $container) | |||||
| { | |||||
| $this->em = $em; | |||||
| $this->container = $container; | |||||
| $kernel = $this->container->get('kernel'); | |||||
| $this->environment = $kernel->getEnvironment(); | |||||
| parent::__construct(); | |||||
| } | |||||
| /** | |||||
| * | |||||
| */ | |||||
| protected function configure() | |||||
| { | |||||
| $this | |||||
| // the short description shown while running "php bin/console list" | |||||
| ->setDescription('Imports customers from old db.') | |||||
| // the full command description shown when running the command with | |||||
| // the "--help" option | |||||
| ->setHelp('This command allows you to customers from old db.') | |||||
| ; | |||||
| } | |||||
| /** | |||||
| * @param InputInterface $input | |||||
| * @param OutputInterface $output | |||||
| * @return int|null|void | |||||
| * @throws \Exception | |||||
| */ | |||||
| protected function execute(InputInterface $input, OutputInterface $output) | |||||
| { | |||||
| $kernel = $this->container->get('kernel'); | |||||
| $this->environment = $kernel->getEnvironment(); | |||||
| $dbOld = Utils::getOldDbConnection($this->environment); | |||||
| $customerSql = "SELECT * FROM `plp_kunden`"; | |||||
| $sth = $dbOld->prepare($customerSql); | |||||
| $sth->execute(); | |||||
| $oldCustomers = $sth->fetchAll(); | |||||
| $newCustomers = $this->em->getRepository('App:EntCustomer')->findAll(); | |||||
| $newCustomersById = Utils::getSortedObjectsById($newCustomers); | |||||
| $newCustomersByOldId = Utils::getSortedObjects('getOldPlpId', $newCustomers); | |||||
| $this->em->getConnection()->beginTransaction(); | |||||
| try { | |||||
| foreach ($oldCustomers as $oldCustomer) { | |||||
| /** @var EntCustomer $entCustomer */ | |||||
| $entCustomer = null; | |||||
| $customerName = !is_null($oldCustomer['PLP_Kunden_Name']) ? $oldCustomer['PLP_Kunden_Name'] : ""; | |||||
| $oldPlpId = $oldCustomer['PLP_Kunden_Bu'] . $oldCustomer['PLP_Kunden_Nr']; | |||||
| if (!array_key_exists($oldCustomer['PLP_Kunden_Bu'] . $oldCustomer['PLP_Kunden_Nr'], $newCustomersByOldId)) { | |||||
| $matchId = trim($oldCustomer['PLP_Kunden_www']); | |||||
| if ($matchId == 1657 || $matchId == 1658) { | |||||
| $bla = 0; | |||||
| } | |||||
| if (is_null($matchId)) { | |||||
| throw new Exception('match id is not defined: '.$oldPlpId); | |||||
| } | |||||
| if (!array_key_exists($matchId, $newCustomersById)) { | |||||
| throw new Exception('customer does not have matching id with new system: '.$matchId.' '.$oldPlpId); | |||||
| } | |||||
| // Create new customer (only once in inital execution) | |||||
| $entCustomer = $newCustomersById[$matchId]; | |||||
| if (!is_null($entCustomer->getOldPlpId())) { | |||||
| throw new Exception('customer already matched with new system: '.$matchId.' '.$oldPlpId); | |||||
| } | |||||
| $entCustomer->setOldPlpId($oldPlpId); | |||||
| $this->em->persist($entCustomer); | |||||
| } | |||||
| } | |||||
| $this->em->flush(); | |||||
| } catch (Exception $e) { | |||||
| $this->em->getConnection()->rollBack(); | |||||
| throw new Exception($e->getMessage()); | |||||
| } | |||||
| $this->em->getConnection()->commit(); | |||||
| } | |||||
| } | |||||
| @@ -1,129 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Command; | |||||
| use App\Entity\EntCustomer; | |||||
| use App\Entity\EntOperator; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\DBAL\DriverManager; | |||||
| use Doctrine\ORM\EntityManager; | |||||
| use Psr\Container\ContainerInterface; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| use Symfony\Component\Console\Command\Command; | |||||
| use Symfony\Component\Console\Input\InputArgument; | |||||
| use Symfony\Component\Console\Input\InputInterface; | |||||
| use Symfony\Component\Console\Output\OutputInterface; | |||||
| /** | |||||
| * Command to import excel that with answers of specifications | |||||
| * | |||||
| * Class CmdImportAll | |||||
| * @package App\Command | |||||
| */ | |||||
| class CmdImportUpdateOperators extends Command | |||||
| { | |||||
| protected static $defaultName = 'app:import-operators'; | |||||
| /** @var EntityManager $em */ | |||||
| private $em; | |||||
| /** @var ContainerInterface $container */ | |||||
| private $container; | |||||
| private $environment; | |||||
| /** | |||||
| * CmdImportCustomers constructor. | |||||
| * @param EntityManager $em | |||||
| * @param ContainerInterface $container | |||||
| */ | |||||
| public function __construct(EntityManager $em, ContainerInterface $container) | |||||
| { | |||||
| $this->em = $em; | |||||
| $this->container = $container; | |||||
| $kernel = $this->container->get('kernel'); | |||||
| $this->environment = $kernel->getEnvironment(); | |||||
| parent::__construct(); | |||||
| } | |||||
| /** | |||||
| * | |||||
| */ | |||||
| protected function configure() | |||||
| { | |||||
| $this | |||||
| // the short description shown while running "php bin/console list" | |||||
| ->setDescription('Imports operators from old db.') | |||||
| // the full command description shown when running the command with | |||||
| // the "--help" option | |||||
| ->setHelp('This command allows you to operators from old db.') | |||||
| ; | |||||
| } | |||||
| /** | |||||
| * @param InputInterface $input | |||||
| * @param OutputInterface $output | |||||
| * @return int|null|void | |||||
| * @throws \Exception | |||||
| */ | |||||
| protected function execute(InputInterface $input, OutputInterface $output) | |||||
| { | |||||
| $dbOld = Utils::getOldDbConnection($this->environment); | |||||
| $operatorSql = "SELECT * FROM `plp_betreiber`"; | |||||
| $sth = $dbOld->prepare($operatorSql); | |||||
| $sth->execute(); | |||||
| $oldOperators = $sth->fetchAll(); | |||||
| $newOperators = $this->em->getRepository('App:EntOperator')->findAll(); | |||||
| $newOperatorsById = Utils::getSortedObjectsById($newOperators); | |||||
| $newOperatorsByOldId = Utils::getSortedObjects('getOldPlpId', $newOperators); | |||||
| $this->em->getConnection()->beginTransaction(); | |||||
| try { | |||||
| foreach ($oldOperators as $oldOperator) { | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = null; | |||||
| $operatorName = !is_null($oldOperator['PLP_Betreiber_Name']) ? $oldOperator['PLP_Betreiber_Name'] : ""; | |||||
| $oldPlpId = $oldOperator['PLP_Betreiber_VA_Nr']; | |||||
| if ($oldPlpId != 0) { | |||||
| if (!array_key_exists($oldOperator['PLP_Betreiber_VA_Nr'], $newOperatorsByOldId)) { | |||||
| $matchId = trim($oldOperator['PLP_Betreiber_www']); | |||||
| if (is_null($matchId)) { | |||||
| throw new Exception('match id is not defined: '.$oldPlpId); | |||||
| } | |||||
| if (!array_key_exists($matchId, $newOperatorsById)) { | |||||
| throw new Exception('operator does not have matching id with new system: '.$matchId.' '.$oldPlpId); | |||||
| } | |||||
| // Create new operator (only once in inital execution) | |||||
| $entOperator = $newOperatorsById[$matchId]; | |||||
| if (!is_null($entOperator->getOldPlpId())) { | |||||
| throw new Exception('operator already matched with new system: '.$matchId.' '.$oldPlpId); | |||||
| } | |||||
| $entOperator->setOldPlpId($oldPlpId); | |||||
| $entOperator->setTaxNo($oldOperator['PLP_Betreiber_SteuerNr']); | |||||
| $entOperator->setInvoiceMode($oldOperator['PLP_Betreiber_Abrechnungs_Modi']); | |||||
| $entOperator->setInvoiceComment($oldOperator['PLP_Betreiber_Rechnung_Bem1']); | |||||
| $entOperator->setInvoiceKey($oldOperator['PLP_Betreiber_Rechnung_Schluessel']); | |||||
| $this->em->persist($entOperator); | |||||
| } | |||||
| } | |||||
| } | |||||
| } catch (Exception $e) { | |||||
| $this->em->getConnection()->rollBack(); | |||||
| throw new Exception($e->getMessage()); | |||||
| } | |||||
| $this->em->getConnection()->commit(); | |||||
| $this->em->flush(); | |||||
| } | |||||
| } | |||||
| @@ -1,260 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntOperator; | |||||
| use App\Entity\EntOperatorContact; | |||||
| use App\Entity\EntOperatorNote; | |||||
| use App\Entity\EntUser; | |||||
| use App\EntityVirtual\ServiceData; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class OperatorEditController | |||||
| * @package App\Controller | |||||
| * @IsGranted({"ROLE_ACCOUNTING", "ROLE_TECHNIQUE", "ROLE_ADMIN"}) | |||||
| */ | |||||
| class OperatorEditController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/create-operator", name="create_operator") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createOperator(Request $request) | |||||
| { | |||||
| $operatorClient = json_decode($request->request->get('operator')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = new EntOperator($em, $operatorClient->name); | |||||
| $entOperator->setClientData($em, $operatorClient); | |||||
| $em->persist($entOperator); | |||||
| $em->flush(); | |||||
| $fullMappedOperator = $entOperator->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATORS, ServiceData::ACTION_ADD, $fullMappedOperator); | |||||
| return Reply::getResponse($fullMappedOperator, Message::SUCCESS_OPERATOR_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-operator", name="edit_operator") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editOperator(Request $request) | |||||
| { | |||||
| $operatorClient = json_decode($request->request->get('operator')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($operatorClient->id); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entOperator->setClientData($em, $operatorClient); | |||||
| $em->persist($entOperator); | |||||
| $em->flush(); | |||||
| $fullMappedOperator = $entOperator->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATORS, ServiceData::ACTION_EDIT, $fullMappedOperator); | |||||
| return Reply::getResponse($fullMappedOperator, Message::SUCCESS_OPERATOR_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/create-operator-contact", name="create_operator_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createOperatorContact(Request $request) | |||||
| { | |||||
| $operatorContactClient = json_decode($request->request->get('operatorContact')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($operatorContactClient->operator_id); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntOperatorContact $entOperatorContact */ | |||||
| $entOperatorContact = new EntOperatorContact($em, $entOperator, $operatorContactClient->lastname); | |||||
| $entOperatorContact->setClientData($em, $operatorContactClient); | |||||
| $em->persist($entOperatorContact); | |||||
| $em->flush(); | |||||
| $fullMappedOperatorContact = $entOperatorContact->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATOR_CONTACTS, ServiceData::ACTION_ADD, $fullMappedOperatorContact); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_CONTACT_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-operator-contact", name="edit_operator_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editOperatorContact(Request $request) | |||||
| { | |||||
| $operatorContactClient = json_decode($request->request->get('operatorContact')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntOperatorContact $entOperatorContact */ | |||||
| $entOperatorContact = $em->getRepository('App:EntOperatorContact')->find($operatorContactClient->id); | |||||
| if (is_null($entOperatorContact)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($entOperatorContact->getOperatorId()); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entOperatorContact->setClientData($em, $operatorContactClient); | |||||
| $em->persist($entOperatorContact); | |||||
| $em->flush(); | |||||
| $fullMappedOperatorContact = $entOperatorContact->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATOR_CONTACTS, ServiceData::ACTION_EDIT, $fullMappedOperatorContact); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_CONTACT_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-operator-contact", name="delete_operator_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function deleteOperatorContact(Request $request) | |||||
| { | |||||
| $operatorContactIdClient = json_decode($request->request->get('operatorContactId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntOperatorContact $entOperatorContact */ | |||||
| $entOperatorContact = $em->getRepository('App:EntOperatorContact')->find($operatorContactIdClient); | |||||
| if (is_null($entOperatorContact)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($entOperatorContact->getOperatorId()); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $fullMappedOperatorContact = $entOperatorContact->clientMapper($em, true); | |||||
| $em->remove($entOperatorContact); | |||||
| $em->flush(); | |||||
| $sql = "UPDATE `operator_meeting` SET `operator_contact_id` = NULL WHERE `operator_contact_id` = ". $operatorContactIdClient; | |||||
| $statement = $em->getConnection()->prepare($sql); | |||||
| $statement->execute(); | |||||
| $sql = "UPDATE `operator_note` SET `operator_contact_id` = NULL WHERE `operator_contact_id` = ". $operatorContactIdClient; | |||||
| $statement = $em->getConnection()->prepare($sql); | |||||
| $statement->execute(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATOR_CONTACTS, ServiceData::ACTION_DELETE, $fullMappedOperatorContact); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_CONTACT_DELETE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/create-operator-note", name="create_operator_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createOperatorNote(Request $request) | |||||
| { | |||||
| $operatorNoteClient = json_decode($request->request->get('operatorNote')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($operatorNoteClient->operator_id); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntOperatorNote $entOperatorNote */ | |||||
| $entOperatorNote = new EntOperatorNote($em, $entOperator, $user, $operatorNoteClient->title); | |||||
| $entOperatorNote->setClientData($em, $operatorNoteClient); | |||||
| $em->persist($entOperatorNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_NOTE_CREATE); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-operator-note", name="edit_operator_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editOperatorNote(Request $request) | |||||
| { | |||||
| $operatorNoteClient = json_decode($request->request->get('operatorNote')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntOperatorNote $entOperatorNote */ | |||||
| $entOperatorNote = $em->getRepository('App:EntOperatorNote')->find($operatorNoteClient->id); | |||||
| if (is_null($entOperatorNote) || $entOperatorNote->getCreationUserId() != $user->getId()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($entOperatorNote->getOperatorId()); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entOperatorNote->setClientData($em, $operatorNoteClient); | |||||
| $em->persist($entOperatorNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_NOTE_EDIT); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-operator-note", name="delete_operator_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function deleteOperatorNote(Request $request) | |||||
| { | |||||
| $operatorNoteIdClient = json_decode($request->request->get('operatorNoteId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntOperatorNote $entOperatorNote */ | |||||
| $entOperatorNote = $em->getRepository('App:EntOperatorNote')->find($operatorNoteIdClient); | |||||
| $bHasRightsToDelete = $entOperatorNote->getCreationUserId() == $user->getId() || $user->isAdmin(); | |||||
| if (is_null($entOperatorNote) || !$bHasRightsToDelete) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($entOperatorNote->getOperatorId()); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $em->remove($entOperatorNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_NOTE_DELETE); | |||||
| } | |||||
| } | |||||
| @@ -1,310 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntCustomer; | |||||
| use App\Entity\EntCustomerMeeting; | |||||
| use App\Entity\EntCustomerMeetingParticipant; | |||||
| use App\Entity\EntInternalMeeting; | |||||
| use App\Entity\EntInternalMeetingParticipant; | |||||
| use App\Entity\EntMeetingType; | |||||
| use App\Entity\EntOperator; | |||||
| use App\Entity\EntOperatorMeeting; | |||||
| use App\Entity\EntOperatorMeetingParticipant; | |||||
| use App\Entity\EntProduction; | |||||
| use App\Entity\EntProductionMeeting; | |||||
| use App\Entity\EntProductionMeetingParticipant; | |||||
| use App\Entity\EntService; | |||||
| use App\Entity\EntServiceMeeting; | |||||
| use App\Entity\EntServiceMeetingParticipant; | |||||
| use App\Entity\EntUser; | |||||
| use App\EntityVirtual\ServiceData; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use App\Utils\Utils; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class MeetingEditController | |||||
| * @package App\Controller | |||||
| * @IsGranted("ROLE_ADMIN") | |||||
| */ | |||||
| class OperatorMeetingEditController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/create-operator-meeting", name="create_operator_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createOperatorMeeting(Request $request) | |||||
| { | |||||
| $operatorMeetingClient = json_decode($request->request->get('operatorMeeting')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($operatorMeetingClient->operator_id); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntUser $entOwnerUser */ | |||||
| $entOwnerUser = $em->getRepository('App:EntUser')->find($operatorMeetingClient->owner_user_id); | |||||
| if (is_null($entOwnerUser)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntMeetingType $entMeetingType */ | |||||
| $entMeetingType = $em->getRepository('App:EntMeetingType')->find($operatorMeetingClient->meeting_type_id); | |||||
| if (is_null($entMeetingType)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| if (!$user->isAdmin()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| // Database manipulation in transaction | |||||
| $dbCon = $this->getDoctrine()->getConnection(); | |||||
| $dbCon->beginTransaction(); | |||||
| try { | |||||
| /** @var EntOperatorMeeting $entOperatorMeeting */ | |||||
| $entOperatorMeeting = new EntOperatorMeeting($em, $entOperator, $user, $entOwnerUser, $entMeetingType, | |||||
| $operatorMeetingClient->title, $operatorMeetingClient->start_date, $operatorMeetingClient->end_date); | |||||
| $entOperatorMeeting->setClientData($em, $operatorMeetingClient); | |||||
| $em->persist($entOperatorMeeting); | |||||
| $em->flush(); | |||||
| $cntParticipants = count($operatorMeetingClient->v_participants); | |||||
| for ($i = 0; $i < $cntParticipants; $i++) { | |||||
| /** @var EntUser $participantUser */ | |||||
| $participantUser = $em->getRepository('App:EntUser')->find($operatorMeetingClient->v_participants[$i]->participant_user_id); | |||||
| if (is_null($participantUser)) { | |||||
| throw new Exception('invalid participant user'); | |||||
| } | |||||
| /** @var EntOperatorMeetingParticipant $entParticipant */ | |||||
| $entParticipant = new EntOperatorMeetingParticipant($em, $entOperatorMeeting, $participantUser); | |||||
| $em->persist($entParticipant); | |||||
| } | |||||
| $em->flush(); | |||||
| } catch (Exception $e) { | |||||
| return Reply::getErrorResponse(Message::ERROR_INVALID_DATA); | |||||
| } | |||||
| // All data stored correctly | |||||
| $dbCon->commit(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATOR_MEETINGS, ServiceData::ACTION_ADD, $entOperatorMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_MEETING_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-operator-meeting", name="edit_operator_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function editOperatorMeeting(Request $request) | |||||
| { | |||||
| $operatorMeetingClient = json_decode($request->request->get('operatorMeeting')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($operatorMeetingClient->operator_id); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntUser $entOwnerUser */ | |||||
| $entOwnerUser = $em->getRepository('App:EntUser')->find($operatorMeetingClient->owner_user_id); | |||||
| if (is_null($entOwnerUser)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntMeetingType $entMeetingType */ | |||||
| $entMeetingType = $em->getRepository('App:EntMeetingType')->find($operatorMeetingClient->meeting_type_id); | |||||
| if (is_null($entMeetingType)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntOperatorMeeting $entOperatorMeeting */ | |||||
| $entOperatorMeeting = $em->getRepository('App:EntOperatorMeeting')->find($operatorMeetingClient->id); | |||||
| if (is_null($entOperatorMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| if (!$user->isAdmin()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| if (!$entOperatorMeeting->isEditDeletable()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_MEETING_NOT_EDIT_DELETABLE); | |||||
| } | |||||
| // Database manipulation in transaction | |||||
| $dbCon = $this->getDoctrine()->getConnection(); | |||||
| $dbCon->beginTransaction(); | |||||
| try { | |||||
| $entOperatorMeeting->setClientData($em, $operatorMeetingClient); | |||||
| $em->persist($entOperatorMeeting); | |||||
| $em->flush(); | |||||
| $formerParticipantsByUserId = Utils::getSortedObjects('getParticipantUserId', | |||||
| $em->getRepository('App:EntOperatorMeetingParticipant')->findBy(['operator_meeting_id' => $entOperatorMeeting->getId()])); | |||||
| $pUserIdsToKeep = []; | |||||
| $cntParticipants = count($operatorMeetingClient->v_participants); | |||||
| for ($i = 0; $i < $cntParticipants; $i++) { | |||||
| if (!array_key_exists($operatorMeetingClient->v_participants[$i]->participant_user_id, $formerParticipantsByUserId)) { | |||||
| /** @var EntUser $participantUser */ | |||||
| $participantUser = $em->getRepository('App:EntUser')->find($operatorMeetingClient->v_participants[$i]->participant_user_id); | |||||
| if (is_null($participantUser)) { | |||||
| throw new Exception('invalid participant user'); | |||||
| } | |||||
| /** @var EntOperatorMeetingParticipant $entParticipant */ | |||||
| $entParticipant = new EntOperatorMeetingParticipant($em, $entOperatorMeeting, $participantUser); | |||||
| $em->persist($entParticipant); | |||||
| } else { | |||||
| $pUserIdsToKeep[$operatorMeetingClient->v_participants[$i]->participant_user_id] = 1; | |||||
| } | |||||
| } | |||||
| /** @var EntOperatorMeetingParticipant $formerParticipant */ | |||||
| foreach ($formerParticipantsByUserId as $pUserId => $formerParticipant) { | |||||
| if (!array_key_exists($pUserId, $pUserIdsToKeep)) { | |||||
| $em->remove($formerParticipant); | |||||
| } | |||||
| } | |||||
| $em->flush(); | |||||
| } catch (Exception $e) { | |||||
| return Reply::getErrorResponse(Message::ERROR_INVALID_DATA); | |||||
| } | |||||
| // All data stored correctly | |||||
| $dbCon->commit(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATOR_MEETINGS, ServiceData::ACTION_EDIT, $entOperatorMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_MEETING_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-operator-meeting", name="delete_operator_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function deleteOperatorMeeting(Request $request) | |||||
| { | |||||
| $operatorMeetingIdClient = json_decode($request->request->get('operatorMeetingId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntOperatorMeeting $entOperatorMeeting */ | |||||
| $entOperatorMeeting = $em->getRepository('App:EntOperatorMeeting')->find($operatorMeetingIdClient); | |||||
| if (is_null($entOperatorMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| if (!$user->isAdmin()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| if (!$entOperatorMeeting->isEditDeletable()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_MEETING_NOT_EDIT_DELETABLE); | |||||
| } | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($entOperatorMeeting->getOperatorId()); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $mappedOperatorMeeting = $entOperatorMeeting->clientMapper($em, true); | |||||
| $em->remove($entOperatorMeeting); | |||||
| $participants = $em->getRepository('App:EntOperatorMeetingParticipant')->findBy(['operator_meeting_id' => $entOperatorMeeting->getId()]); | |||||
| /** @var EntOperatorMeetingParticipant $participant | |||||
| */ | |||||
| foreach ($participants as $participant) { | |||||
| $em->remove($participant); | |||||
| } | |||||
| $em->flush(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATOR_MEETINGS, ServiceData::ACTION_DELETE, $mappedOperatorMeeting); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_MEETING_DELETE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/check-operator-meeting-report", name="check_operator_meeting_report") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function checkOperatorMeetingReport(Request $request) | |||||
| { | |||||
| $operatorMeetingIdClient = json_decode($request->request->get('operatorMeetingId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntOperatorMeeting $entOperatorMeeting */ | |||||
| $entOperatorMeeting = $em->getRepository('App:EntOperatorMeeting')->find($operatorMeetingIdClient); | |||||
| if (is_null($entOperatorMeeting) || !$user->isAdmin()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $check = new \DateTime() > $entOperatorMeeting->getStartDate(); | |||||
| return $check ? Reply::getResponse($check) : Reply::getErrorResponse(Message::ERROR_REPORT_NOT_EDITABLE_YET); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-operator-meeting-report", name="edit_operator_meeting_report") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function editOperatorMeetingReport(Request $request) | |||||
| { | |||||
| $operatorMeetingIdClient = json_decode($request->request->get('operatorMeetingId')); | |||||
| $operatorMeetingReportClient = json_decode($request->request->get('operatorMeetingReport')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntOperatorMeeting $entOperatorMeeting */ | |||||
| $entOperatorMeeting = $em->getRepository('App:EntOperatorMeeting')->find($operatorMeetingIdClient); | |||||
| if (is_null($entOperatorMeeting) || !$user->isAdmin()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entOperator = $em->getRepository('App:EntOperator')->find($entOperatorMeeting->getOperatorId()); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entOperatorMeeting->setReport($operatorMeetingReportClient); | |||||
| $em->persist($entOperatorMeeting); | |||||
| $em->flush(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_OPERATOR_MEETINGS, ServiceData::ACTION_EDIT, $entOperatorMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true), Message::SUCCESS_OPERATOR_MEETING_REPORT_SET, 0, $serviceData); | |||||
| } | |||||
| } | |||||
| @@ -1,62 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntOperator; | |||||
| use App\Entity\EntOperatorContact; | |||||
| use App\Entity\EntOperatorMeeting; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use App\Utils\Utils; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class OperatorViewController | |||||
| * @package App\Controller | |||||
| * @IsGranted("ROLE_USER") | |||||
| */ | |||||
| class OperatorViewController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/get-operator-data", name="get_operator_data") | |||||
| */ | |||||
| public function getOperatorData() | |||||
| { | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| return Reply::getResponse( | |||||
| [ | |||||
| 'operators' => Utils::clientMap($em, $em->getRepository(EntOperator::class)->findAll()), | |||||
| 'operatorContacts' => Utils::clientMap($em, $em->getRepository(EntOperatorContact::class)->findAll()), | |||||
| 'operatorMeetings' => Utils::clientMap($em, $em->getRepository(EntOperatorMeeting::class)->findAll()), | |||||
| ] | |||||
| ); | |||||
| } | |||||
| /** | |||||
| * @Route("/get-operator-full", name="get_operator_full") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function getOperatorFull(Request $request) | |||||
| { | |||||
| $operatorId = json_decode($request->request->get('operatorId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntOperator $entOperator */ | |||||
| $entOperator = $em->getRepository(EntOperator::class)->find($operatorId); | |||||
| if (is_null($entOperator)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| return Reply::getResponse($entOperator->clientMapper($em, true)); | |||||
| } | |||||
| } | |||||
| @@ -1,256 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntProduction; | |||||
| use App\Entity\EntProductionContact; | |||||
| use App\Entity\EntProductionNote; | |||||
| use App\Entity\EntUser; | |||||
| use App\EntityVirtual\ServiceData; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class ProductionEditController | |||||
| * @package App\Controller | |||||
| * @IsGranted({"ROLE_PRODUCTION", "ROLE_TECHNIQUE", "ROLE_SERVICE", "ROLE_ADMIN"}) | |||||
| */ | |||||
| class ProductionEditController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/create-production", name="create_production") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createProduction(Request $request) | |||||
| { | |||||
| $productionClient = json_decode($request->request->get('production')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| $entProduction = new EntProduction($em, $productionClient->name); | |||||
| $entProduction->setClientData($em, $productionClient); | |||||
| $em->persist($entProduction); | |||||
| $em->flush(); | |||||
| $fullMappedProduction = $entProduction->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTIONS, ServiceData::ACTION_ADD, $fullMappedProduction); | |||||
| return Reply::getResponse($fullMappedProduction, Message::SUCCESS_PRODUCTION_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-production", name="edit_production") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editProduction(Request $request) | |||||
| { | |||||
| $productionClient = json_decode($request->request->get('production')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($productionClient->id); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entProduction->setClientData($em, $productionClient); | |||||
| $em->persist($entProduction); | |||||
| $em->flush(); | |||||
| $fullMappedProduction = $entProduction->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTIONS, ServiceData::ACTION_EDIT, $fullMappedProduction); | |||||
| return Reply::getResponse($fullMappedProduction, Message::SUCCESS_PRODUCTION_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/create-production-contact", name="create_production_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createProductionContact(Request $request) | |||||
| { | |||||
| $productionContactClient = json_decode($request->request->get('productionContact')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($productionContactClient->production_id); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entProductionContact = new EntProductionContact($em, $entProduction, $productionContactClient->lastname); | |||||
| $entProductionContact->setClientData($em, $productionContactClient); | |||||
| $em->persist($entProductionContact); | |||||
| $em->flush(); | |||||
| $fullMappedProductionContact = $entProductionContact->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTION_CONTACTS, ServiceData::ACTION_ADD, $fullMappedProductionContact); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_CONTACT_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-production-contact", name="edit_production_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editProductionContact(Request $request) | |||||
| { | |||||
| $productionContactClient = json_decode($request->request->get('productionContact')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntProductionContact $entProductionContact */ | |||||
| $entProductionContact = $em->getRepository(EntProductionContact::class)->find($productionContactClient->id); | |||||
| if (is_null($entProductionContact)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($entProductionContact->getProductionId()); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entProductionContact->setClientData($em, $productionContactClient); | |||||
| $em->persist($entProductionContact); | |||||
| $em->flush(); | |||||
| $fullMappedProductionContact = $entProductionContact->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTION_CONTACTS, ServiceData::ACTION_EDIT, $fullMappedProductionContact); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_CONTACT_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-production-contact", name="delete_production_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function deleteProductionContact(Request $request) | |||||
| { | |||||
| $productionContactIdClient = json_decode($request->request->get('productionContactId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntProductionContact $entProductionContact */ | |||||
| $entProductionContact = $em->getRepository(EntProductionContact::class)->find($productionContactIdClient); | |||||
| if (is_null($entProductionContact)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($entProductionContact->getProductionId()); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $fullMappedProductionContact = $entProductionContact->clientMapper($em, true); | |||||
| $em->remove($entProductionContact); | |||||
| $em->flush(); | |||||
| $sql = "UPDATE `production_meeting` SET `production_contact_id` = NULL WHERE `production_contact_id` = ". $productionContactIdClient; | |||||
| $statement = $em->getConnection()->prepare($sql); | |||||
| $statement->execute(); | |||||
| $sql = "UPDATE `production_note` SET `production_contact_id` = NULL WHERE `production_contact_id` = ". $productionContactIdClient; | |||||
| $statement = $em->getConnection()->prepare($sql); | |||||
| $statement->execute(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTION_CONTACTS, ServiceData::ACTION_DELETE, $fullMappedProductionContact); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_CONTACT_DELETE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/create-production-note", name="create_production_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createProductionNote(Request $request) | |||||
| { | |||||
| $productionNoteClient = json_decode($request->request->get('productionNote')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($productionNoteClient->production_id); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entProductionNote = new EntProductionNote($em, $entProduction, $user, $productionNoteClient->title); | |||||
| $entProductionNote->setClientData($em, $productionNoteClient); | |||||
| $em->persist($entProductionNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_NOTE_CREATE); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-production-note", name="edit_production_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editProductionNote(Request $request) | |||||
| { | |||||
| $productionNoteClient = json_decode($request->request->get('productionNote')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntProductionNote $entProductionNote */ | |||||
| $entProductionNote = $em->getRepository(EntProductionNote::class)->find($productionNoteClient->id); | |||||
| if (is_null($entProductionNote) || $entProductionNote->getCreationUserId() != $user->getId()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($entProductionNote->getProductionId()); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entProductionNote->setClientData($em, $productionNoteClient); | |||||
| $em->persist($entProductionNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_NOTE_EDIT); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-production-note", name="delete_production_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function deleteProductionNote(Request $request) | |||||
| { | |||||
| $productionNoteIdClient = json_decode($request->request->get('productionNoteId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntProductionNote $entProductionNote */ | |||||
| $entProductionNote = $em->getRepository(EntProductionNote::class)->find($productionNoteIdClient); | |||||
| $bHasRightsToDelete = $entProductionNote->getCreationUserId() == $user->getId() || $user->isAdmin(); | |||||
| if (is_null($entProductionNote) || !$bHasRightsToDelete) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($entProductionNote->getProductionId()); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $em->remove($entProductionNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_NOTE_DELETE); | |||||
| } | |||||
| } | |||||
| @@ -1,314 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntMeetingType; | |||||
| use App\Entity\EntProduction; | |||||
| use App\Entity\EntProductionMeeting; | |||||
| use App\Entity\EntProductionMeetingParticipant; | |||||
| use App\Entity\EntUser; | |||||
| use App\EntityVirtual\ServiceData; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use App\Utils\Utils; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class MeetingEditController | |||||
| * @package App\Controller | |||||
| * @IsGranted({"ROLE_ADMIN", "ROLE_TECHNIQUE", "ROLE_PRODUCTION", "ROLE_SERVICE"}) | |||||
| */ | |||||
| class ProductionMeetingEditController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/create-production-meeting", name="create_production_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createProductionMeeting(Request $request) | |||||
| { | |||||
| $productionMeetingClient = json_decode($request->request->get('productionMeeting')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($productionMeetingClient->production_id); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntUser $entOwnerUser */ | |||||
| $entOwnerUser = $em->getRepository(EntUser::class)->find($productionMeetingClient->owner_user_id); | |||||
| if (is_null($entOwnerUser)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntMeetingType $entMeetingType */ | |||||
| $entMeetingType = $em->getRepository(EntMeetingType::class)->find($productionMeetingClient->meeting_type_id); | |||||
| if (is_null($entMeetingType)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| // Database manipulation in transaction | |||||
| $dbCon = $this->getDoctrine()->getConnection(); | |||||
| $dbCon->beginTransaction(); | |||||
| try { | |||||
| /** @var EntProductionMeeting $entProductionMeeting */ | |||||
| $entProductionMeeting = new EntProductionMeeting($em, $entProduction, $user, $entOwnerUser, $entMeetingType, | |||||
| $productionMeetingClient->title, $productionMeetingClient->start_date, $productionMeetingClient->end_date); | |||||
| $entProductionMeeting->setClientData($em, $productionMeetingClient); | |||||
| $em->persist($entProductionMeeting); | |||||
| $em->flush(); | |||||
| $cntParticipants = count($productionMeetingClient->v_participants); | |||||
| for ($i = 0; $i < $cntParticipants; $i++) { | |||||
| /** @var EntUser $participantUser */ | |||||
| $participantUser = $em->getRepository(EntUser::class)->find($productionMeetingClient->v_participants[$i]->participant_user_id); | |||||
| if (is_null($participantUser)) { | |||||
| throw new Exception('invalid participant user'); | |||||
| } | |||||
| /** @var EntProductionMeetingParticipant $entParticipant */ | |||||
| $entParticipant = new EntProductionMeetingParticipant($em, $entProductionMeeting, $participantUser); | |||||
| $em->persist($entParticipant); | |||||
| } | |||||
| $em->flush(); | |||||
| } catch (Exception $e) { | |||||
| return Reply::getErrorResponse(Message::ERROR_INVALID_DATA); | |||||
| } | |||||
| // All data stored correctly | |||||
| $dbCon->commit(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTION_MEETINGS, ServiceData::ACTION_ADD, $entProductionMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_MEETING_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-production-meeting", name="edit_production_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function editProductionMeeting(Request $request) | |||||
| { | |||||
| $productionMeetingClient = json_decode($request->request->get('productionMeeting')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($productionMeetingClient->production_id); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntUser $entOwnerUser */ | |||||
| $entOwnerUser = $em->getRepository(EntUser::class)->find($productionMeetingClient->owner_user_id); | |||||
| if (is_null($entOwnerUser)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntMeetingType $entMeetingType */ | |||||
| $entMeetingType = $em->getRepository(EntMeetingType::class)->find($productionMeetingClient->meeting_type_id); | |||||
| if (is_null($entMeetingType)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntProductionMeeting $entProductionMeeting */ | |||||
| $entProductionMeeting = $em->getRepository(EntProductionMeeting::class)->find($productionMeetingClient->id); | |||||
| if (is_null($entProductionMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| $bHasRightsToEdit = | |||||
| $entProductionMeeting->getCreationUserId() === $user->getId() || | |||||
| $entProductionMeeting->getOwnerUserId() === $user->getId() || | |||||
| $user->isAdmin(); | |||||
| if (!$bHasRightsToEdit) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NOT_ENOUGH_RIGHTS); | |||||
| } | |||||
| if (!$entProductionMeeting->isEditDeletable()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_MEETING_NOT_EDIT_DELETABLE); | |||||
| } | |||||
| // Database manipulation in transaction | |||||
| $dbCon = $this->getDoctrine()->getConnection(); | |||||
| $dbCon->beginTransaction(); | |||||
| try { | |||||
| $entProductionMeeting->setClientData($em, $productionMeetingClient); | |||||
| $em->persist($entProductionMeeting); | |||||
| $em->flush(); | |||||
| $formerParticipantsByUserId = Utils::getSortedObjects('getParticipantUserId', | |||||
| $em->getRepository(EntProductionMeetingParticipant::class)->findBy(['production_meeting_id' => $entProductionMeeting->getId()])); | |||||
| $pUserIdsToKeep = []; | |||||
| $cntParticipants = count($productionMeetingClient->v_participants); | |||||
| for ($i = 0; $i < $cntParticipants; $i++) { | |||||
| if (!array_key_exists($productionMeetingClient->v_participants[$i]->participant_user_id, $formerParticipantsByUserId)) { | |||||
| /** @var EntUser $participantUser */ | |||||
| $participantUser = $em->getRepository(EntUser::class)->find($productionMeetingClient->v_participants[$i]->participant_user_id); | |||||
| if (is_null($participantUser)) { | |||||
| throw new Exception('invalid participant user'); | |||||
| } | |||||
| /** @var EntProductionMeetingParticipant $entParticipant */ | |||||
| $entParticipant = new EntProductionMeetingParticipant($em, $entProductionMeeting, $participantUser); | |||||
| $em->persist($entParticipant); | |||||
| } else { | |||||
| $pUserIdsToKeep[$productionMeetingClient->v_participants[$i]->participant_user_id] = 1; | |||||
| } | |||||
| } | |||||
| /** @var EntProductionMeetingParticipant $formerParticipant */ | |||||
| foreach ($formerParticipantsByUserId as $pUserId => $formerParticipant) { | |||||
| if (!array_key_exists($pUserId, $pUserIdsToKeep)) { | |||||
| $em->remove($formerParticipant); | |||||
| } | |||||
| } | |||||
| $em->flush(); | |||||
| } catch (Exception $e) { | |||||
| return Reply::getErrorResponse(Message::ERROR_INVALID_DATA); | |||||
| } | |||||
| // All data stored correctly | |||||
| $dbCon->commit(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTION_MEETINGS, ServiceData::ACTION_EDIT, $entProductionMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_MEETING_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-production-meeting", name="delete_production_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function deleteProductionMeeting(Request $request) | |||||
| { | |||||
| $productionMeetingIdClient = json_decode($request->request->get('productionMeetingId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntProductionMeeting $entProductionMeeting */ | |||||
| $entProductionMeeting = $em->getRepository(EntProductionMeeting::class)->find($productionMeetingIdClient); | |||||
| if (is_null($entProductionMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| $bHasRightsToEdit = | |||||
| $entProductionMeeting->getCreationUserId() === $user->getId() || | |||||
| $entProductionMeeting->getOwnerUserId() === $user->getId() || | |||||
| $user->isAdmin(); | |||||
| if (!$bHasRightsToEdit) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NOT_ENOUGH_RIGHTS); | |||||
| } | |||||
| if (!$entProductionMeeting->isEditDeletable()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_MEETING_NOT_EDIT_DELETABLE); | |||||
| } | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($entProductionMeeting->getProductionId()); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $mappedProductionMeeting = $entProductionMeeting->clientMapper($em, true); | |||||
| $em->remove($entProductionMeeting); | |||||
| $participants = $em->getRepository(EntProductionMeetingParticipant::class)->findBy(['production_meeting_id' => $entProductionMeeting->getId()]); | |||||
| /** @var EntProductionMeetingParticipant $participant */ | |||||
| foreach ($participants as $participant) { | |||||
| $em->remove($participant); | |||||
| } | |||||
| $em->flush(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTION_MEETINGS, ServiceData::ACTION_DELETE, $mappedProductionMeeting); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_MEETING_DELETE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/check-production-meeting-report", name="check_production_meeting_report") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function checkProductionMeetingReport(Request $request) | |||||
| { | |||||
| $productionMeetingIdClient = json_decode($request->request->get('productionMeetingId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntProductionMeeting $entProductionMeeting */ | |||||
| $entProductionMeeting = $em->getRepository(EntProductionMeeting::class)->find($productionMeetingIdClient); | |||||
| if (is_null($entProductionMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $bHasRightsToEdit = | |||||
| $entProductionMeeting->getOwnerUserId() === $user->getId() || | |||||
| $user->isAdmin(); | |||||
| if (!$bHasRightsToEdit) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NOT_ENOUGH_RIGHTS); | |||||
| } | |||||
| $check = new \DateTime() > $entProductionMeeting->getStartDate(); | |||||
| return $check ? Reply::getResponse($check) : Reply::getErrorResponse(Message::ERROR_REPORT_NOT_EDITABLE_YET); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-production-meeting-report", name="edit_production_meeting_report") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function editProductionMeetingReport(Request $request) | |||||
| { | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| $productionMeetingIdClient = json_decode($request->request->get('productionMeetingId')); | |||||
| $productionMeetingReportClient = json_decode($request->request->get('productionMeetingReport')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntProductionMeeting $entProductionMeeting */ | |||||
| $entProductionMeeting = $em->getRepository(EntProductionMeeting::class)->find($productionMeetingIdClient); | |||||
| if (is_null($entProductionMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $bHasRightsToEdit = | |||||
| $entProductionMeeting->getOwnerUserId() === $user->getId() || | |||||
| $user->isAdmin(); | |||||
| if (!$bHasRightsToEdit) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NOT_ENOUGH_RIGHTS); | |||||
| } | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($entProductionMeeting->getProductionId()); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entProductionMeeting->setReport($productionMeetingReportClient); | |||||
| $em->persist($entProductionMeeting); | |||||
| $em->flush(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_PRODUCTION_MEETINGS, ServiceData::ACTION_EDIT, $entProductionMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true), Message::SUCCESS_PRODUCTION_MEETING_REPORT_SET, 0, $serviceData); | |||||
| } | |||||
| } | |||||
| @@ -1,62 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntProduction; | |||||
| use App\Entity\EntProductionContact; | |||||
| use App\Entity\EntProductionMeeting; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use App\Utils\Utils; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class ProductionViewController | |||||
| * @package App\Controller | |||||
| * @IsGranted("ROLE_USER") | |||||
| */ | |||||
| class ProductionViewController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/get-production-data", name="get_production_data") | |||||
| */ | |||||
| public function getProductionData() | |||||
| { | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| return Reply::getResponse( | |||||
| [ | |||||
| 'productions' => Utils::clientMap($em, $em->getRepository(EntProduction::class)->findAll()), | |||||
| 'productionContacts' => Utils::clientMap($em, $em->getRepository(EntProductionContact::class)->findAll()), | |||||
| 'productionMeetings' => Utils::clientMap($em, $em->getRepository(EntProductionMeeting::class)->findAll()), | |||||
| ] | |||||
| ); | |||||
| } | |||||
| /** | |||||
| * @Route("/get-production-full", name="get_production_full") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function getProductionFull(Request $request) | |||||
| { | |||||
| $productionId = json_decode($request->request->get('productionId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntProduction $entProduction */ | |||||
| $entProduction = $em->getRepository(EntProduction::class)->find($productionId); | |||||
| if (is_null($entProduction)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| return Reply::getResponse($entProduction->clientMapper($em, true)); | |||||
| } | |||||
| } | |||||
| @@ -10,6 +10,7 @@ namespace App\Controller; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | ||||
| use Symfony\Component\Config\Definition\Exception\Exception; | use Symfony\Component\Config\Definition\Exception\Exception; | ||||
| use Symfony\Component\HttpFoundation\JsonResponse; | use Symfony\Component\HttpFoundation\JsonResponse; | ||||
| use Symfony\Component\HttpFoundation\Response; | |||||
| use Symfony\Component\Routing\Annotation\Route; | use Symfony\Component\Routing\Annotation\Route; | ||||
| class PublicController extends AbstractController | class PublicController extends AbstractController | ||||
| @@ -26,6 +27,19 @@ class PublicController extends AbstractController | |||||
| return new JsonResponse($data); | return new JsonResponse($data); | ||||
| } | } | ||||
| /** | |||||
| * @Route("/test", name="test") | |||||
| */ | |||||
| public function showTestAction() | |||||
| { | |||||
| $data = array( | |||||
| // you might translate this message | |||||
| 'message' => 'PHP api' | |||||
| ); | |||||
| //return 1; | |||||
| return new Response('<html><body>Debug data</body></html>'); | |||||
| } | |||||
| /** | /** | ||||
| * Login | * Login | ||||
| * @Route("/login", name="login") | * @Route("/login", name="login") | ||||
| @@ -1,256 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntService; | |||||
| use App\Entity\EntServiceContact; | |||||
| use App\Entity\EntServiceNote; | |||||
| use App\Entity\EntUser; | |||||
| use App\EntityVirtual\ServiceData; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class ServiceEditController | |||||
| * @package App\Controller | |||||
| * @IsGranted({"ROLE_PRODUCTION", "ROLE_TECHNIQUE", "ROLE_SERVICE", "ROLE_ADMIN"}) | |||||
| */ | |||||
| class ServiceEditController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/create-service", name="create_service") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createService(Request $request) | |||||
| { | |||||
| $serviceClient = json_decode($request->request->get('service')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| $entService = new EntService($em, $serviceClient->name); | |||||
| $entService->setClientData($em, $serviceClient); | |||||
| $em->persist($entService); | |||||
| $em->flush(); | |||||
| $fullMappedService = $entService->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES, ServiceData::ACTION_ADD, $fullMappedService); | |||||
| return Reply::getResponse($fullMappedService, Message::SUCCESS_SERVICE_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-service", name="edit_service") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editService(Request $request) | |||||
| { | |||||
| $serviceClient = json_decode($request->request->get('service')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| $entService = $em->getRepository(EntService::class)->find($serviceClient->id); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entService->setClientData($em, $serviceClient); | |||||
| $em->persist($entService); | |||||
| $em->flush(); | |||||
| $fullMappedService = $entService->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES, ServiceData::ACTION_EDIT, $fullMappedService); | |||||
| return Reply::getResponse($fullMappedService, Message::SUCCESS_SERVICE_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/create-service-contact", name="create_service_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createServiceContact(Request $request) | |||||
| { | |||||
| $serviceContactClient = json_decode($request->request->get('serviceContact')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($serviceContactClient->service_id); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entServiceContact = new EntServiceContact($em, $entService, $serviceContactClient->lastname); | |||||
| $entServiceContact->setClientData($em, $serviceContactClient); | |||||
| $em->persist($entServiceContact); | |||||
| $em->flush(); | |||||
| $fullMappedServiceContact = $entServiceContact->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES_CONTACTS, ServiceData::ACTION_ADD, $fullMappedServiceContact); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_CONTACT_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-service-contact", name="edit_service_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editServiceContact(Request $request) | |||||
| { | |||||
| $serviceContactClient = json_decode($request->request->get('serviceContact')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntServiceContact $entServiceContact */ | |||||
| $entServiceContact = $em->getRepository(EntServiceContact::class)->find($serviceContactClient->id); | |||||
| if (is_null($entServiceContact)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($entServiceContact->getServiceId()); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entServiceContact->setClientData($em, $serviceContactClient); | |||||
| $em->persist($entServiceContact); | |||||
| $em->flush(); | |||||
| $fullMappedServiceContact = $entServiceContact->clientMapper($em, true); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES_CONTACTS, ServiceData::ACTION_EDIT, $fullMappedServiceContact); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_CONTACT_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-service-contact", name="delete_service_contact") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function deleteServiceContact(Request $request) | |||||
| { | |||||
| $serviceContactIdClient = json_decode($request->request->get('serviceContactId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntServiceContact $entServiceContact */ | |||||
| $entServiceContact = $em->getRepository(EntServiceContact::class)->find($serviceContactIdClient); | |||||
| if (is_null($entServiceContact)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($entServiceContact->getServiceId()); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $fullMappedServiceContact = $entServiceContact->clientMapper($em, true); | |||||
| $em->remove($entServiceContact); | |||||
| $em->flush(); | |||||
| $sql = "UPDATE `service_meeting` SET `service_contact_id` = NULL WHERE `service_contact_id` = ". $serviceContactIdClient; | |||||
| $statement = $em->getConnection()->prepare($sql); | |||||
| $statement->execute(); | |||||
| $sql = "UPDATE `service_note` SET `service_contact_id` = NULL WHERE `service_contact_id` = ". $serviceContactIdClient; | |||||
| $statement = $em->getConnection()->prepare($sql); | |||||
| $statement->execute(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES_CONTACTS, ServiceData::ACTION_DELETE, $fullMappedServiceContact); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_CONTACT_DELETE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/create-service-note", name="create_service_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createServiceNote(Request $request) | |||||
| { | |||||
| $serviceNoteClient = json_decode($request->request->get('serviceNote')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($serviceNoteClient->service_id); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entServiceNote = new EntServiceNote($em, $entService, $user, $serviceNoteClient->title); | |||||
| $entServiceNote->setClientData($em, $serviceNoteClient); | |||||
| $em->persist($entServiceNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_NOTE_CREATE); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-service-note", name="edit_service_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function editServiceNote(Request $request) | |||||
| { | |||||
| $serviceNoteClient = json_decode($request->request->get('serviceNote')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntServiceNote $entServiceNote */ | |||||
| $entServiceNote = $em->getRepository(EntServiceNote::class)->find($serviceNoteClient->id); | |||||
| if (is_null($entServiceNote) || $entServiceNote->getCreationUserId() != $user->getId()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($entServiceNote->getServiceId()); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entServiceNote->setClientData($em, $serviceNoteClient); | |||||
| $em->persist($entServiceNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_NOTE_EDIT); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-service-note", name="delete_service_note") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function deleteServiceNote(Request $request) | |||||
| { | |||||
| $serviceNoteIdClient = json_decode($request->request->get('serviceNoteId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntServiceNote $entServiceNote */ | |||||
| $entServiceNote = $em->getRepository(EntServiceNote::class)->find($serviceNoteIdClient); | |||||
| $bHasRightsToDelete = $entServiceNote->getCreationUserId() == $user->getId() || $user->isAdmin(); | |||||
| if (is_null($entServiceNote) || !$bHasRightsToDelete) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($entServiceNote->getServiceId()); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $em->remove($entServiceNote); | |||||
| $em->flush(); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_NOTE_DELETE); | |||||
| } | |||||
| } | |||||
| @@ -1,316 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntMeetingType; | |||||
| use App\Entity\EntProduction; | |||||
| use App\Entity\EntService; | |||||
| use App\Entity\EntServiceMeeting; | |||||
| use App\Entity\EntServiceMeetingParticipant; | |||||
| use App\Entity\EntUser; | |||||
| use App\EntityVirtual\ServiceData; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use App\Utils\Utils; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class MeetingEditController | |||||
| * @package App\Controller | |||||
| * @IsGranted({"ROLE_ADMIN", "ROLE_TECHNIQUE", "ROLE_PRODUCTION", "ROLE_SERVICE"}) | |||||
| */ | |||||
| class ServiceMeetingEditController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/create-service-meeting", name="create_service_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function createServiceMeeting(Request $request) | |||||
| { | |||||
| $serviceMeetingClient = json_decode($request->request->get('serviceMeeting')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($serviceMeetingClient->service_id); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntUser $entOwnerUser */ | |||||
| $entOwnerUser = $em->getRepository(EntUser::class)->find($serviceMeetingClient->owner_user_id); | |||||
| if (is_null($entOwnerUser)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntMeetingType $entMeetingType */ | |||||
| $entMeetingType = $em->getRepository(EntMeetingType::class)->find($serviceMeetingClient->meeting_type_id); | |||||
| if (is_null($entMeetingType)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| // Database manipulation in transaction | |||||
| $dbCon = $this->getDoctrine()->getConnection(); | |||||
| $dbCon->beginTransaction(); | |||||
| try { | |||||
| /** @var EntServiceMeeting $entServiceMeeting */ | |||||
| $entServiceMeeting = new EntServiceMeeting($em, $entService, $user, $entOwnerUser, $entMeetingType, | |||||
| $serviceMeetingClient->title, $serviceMeetingClient->start_date, $serviceMeetingClient->end_date); | |||||
| $entServiceMeeting->setClientData($em, $serviceMeetingClient); | |||||
| $em->persist($entServiceMeeting); | |||||
| $em->flush(); | |||||
| $cntParticipants = count($serviceMeetingClient->v_participants); | |||||
| for ($i = 0; $i < $cntParticipants; $i++) { | |||||
| /** @var EntUser $participantUser */ | |||||
| $participantUser = $em->getRepository(EntUser::class)->find($serviceMeetingClient->v_participants[$i]->participant_user_id); | |||||
| if (is_null($participantUser)) { | |||||
| throw new Exception('invalid participant user'); | |||||
| } | |||||
| /** @var EntServiceMeetingParticipant $entParticipant */ | |||||
| $entParticipant = new EntServiceMeetingParticipant($em, $entServiceMeeting, $participantUser); | |||||
| $em->persist($entParticipant); | |||||
| } | |||||
| $em->flush(); | |||||
| } catch (Exception $e) { | |||||
| return Reply::getErrorResponse(Message::ERROR_INVALID_DATA); | |||||
| } | |||||
| // All data stored correctly | |||||
| $dbCon->commit(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES_MEETINGS, ServiceData::ACTION_ADD, $entServiceMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_MEETING_CREATE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-service-meeting", name="edit_service_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function editServiceMeeting(Request $request) | |||||
| { | |||||
| $serviceMeetingClient = json_decode($request->request->get('serviceMeeting')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntProduction $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($serviceMeetingClient->service_id); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntUser $entOwnerUser */ | |||||
| $entOwnerUser = $em->getRepository(EntUser::class)->find($serviceMeetingClient->owner_user_id); | |||||
| if (is_null($entOwnerUser)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntMeetingType $entMeetingType */ | |||||
| $entMeetingType = $em->getRepository(EntMeetingType::class)->find($serviceMeetingClient->meeting_type_id); | |||||
| if (is_null($entMeetingType)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| /** @var EntServiceMeeting $entServiceMeeting */ | |||||
| $entServiceMeeting = $em->getRepository(EntServiceMeeting::class)->find($serviceMeetingClient->id); | |||||
| if (is_null($entServiceMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| $bHasRightsToEdit = | |||||
| $entServiceMeeting->getCreationUserId() === $user->getId() || | |||||
| $entServiceMeeting->getOwnerUserId() === $user->getId() || | |||||
| $user->isAdmin(); | |||||
| if (!$bHasRightsToEdit) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NOT_ENOUGH_RIGHTS); | |||||
| } | |||||
| if (!$entServiceMeeting->isEditDeletable()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_MEETING_NOT_EDIT_DELETABLE); | |||||
| } | |||||
| // Database manipulation in transaction | |||||
| $dbCon = $this->getDoctrine()->getConnection(); | |||||
| $dbCon->beginTransaction(); | |||||
| try { | |||||
| $entServiceMeeting->setClientData($em, $serviceMeetingClient); | |||||
| $em->persist($entServiceMeeting); | |||||
| $em->flush(); | |||||
| $formerParticipantsByUserId = Utils::getSortedObjects('getParticipantUserId', | |||||
| $em->getRepository(EntServiceMeetingParticipant::class)->findBy(['service_meeting_id' => $entServiceMeeting->getId()])); | |||||
| $pUserIdsToKeep = []; | |||||
| $cntParticipants = count($serviceMeetingClient->v_participants); | |||||
| for ($i = 0; $i < $cntParticipants; $i++) { | |||||
| if (!array_key_exists($serviceMeetingClient->v_participants[$i]->participant_user_id, $formerParticipantsByUserId)) { | |||||
| /** @var EntUser $participantUser */ | |||||
| $participantUser = $em->getRepository(EntUser::class)->find($serviceMeetingClient->v_participants[$i]->participant_user_id); | |||||
| if (is_null($participantUser)) { | |||||
| throw new Exception('invalid participant user'); | |||||
| } | |||||
| /** @var EntServiceMeetingParticipant $entParticipant */ | |||||
| $entParticipant = new EntServiceMeetingParticipant($em, $entServiceMeeting, $participantUser); | |||||
| $em->persist($entParticipant); | |||||
| } else { | |||||
| $pUserIdsToKeep[$serviceMeetingClient->v_participants[$i]->participant_user_id] = 1; | |||||
| } | |||||
| } | |||||
| /** @var EntServiceMeetingParticipant $formerParticipant */ | |||||
| foreach ($formerParticipantsByUserId as $pUserId => $formerParticipant) { | |||||
| if (!array_key_exists($pUserId, $pUserIdsToKeep)) { | |||||
| $em->remove($formerParticipant); | |||||
| } | |||||
| } | |||||
| $em->flush(); | |||||
| } catch (Exception $e) { | |||||
| return Reply::getErrorResponse(Message::ERROR_INVALID_DATA); | |||||
| } | |||||
| // All data stored correctly | |||||
| $dbCon->commit(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES_MEETINGS, ServiceData::ACTION_EDIT, $entServiceMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_MEETING_EDIT, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/delete-service-meeting", name="delete_service_meeting") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function deleteServiceMeeting(Request $request) | |||||
| { | |||||
| $serviceMeetingIdClient = json_decode($request->request->get('serviceMeetingId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntServiceMeeting $entServiceMeeting */ | |||||
| $entServiceMeeting = $em->getRepository(EntServiceMeeting::class)->find($serviceMeetingIdClient); | |||||
| if (is_null($entServiceMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NON_EXISTING_DATA); | |||||
| } | |||||
| if (!$entServiceMeeting->isEditDeletable()) { | |||||
| return Reply::getErrorResponse(Message::ERROR_MEETING_NOT_EDIT_DELETABLE); | |||||
| } | |||||
| $bHasRightsToEdit = | |||||
| $entServiceMeeting->getCreationUserId() === $user->getId() || | |||||
| $entServiceMeeting->getOwnerUserId() === $user->getId() || | |||||
| $user->isAdmin(); | |||||
| if (!$bHasRightsToEdit) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NOT_ENOUGH_RIGHTS); | |||||
| } | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($entServiceMeeting->getServiceId()); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $mappedServiceMeeting = $entServiceMeeting->clientMapper($em, true); | |||||
| $em->remove($entServiceMeeting); | |||||
| $participants = $em->getRepository(EntServiceMeetingParticipant::class)->findBy(['service_meeting_id' => $entServiceMeeting->getId()]); | |||||
| /** @var EntServiceMeetingParticipant $participant */ | |||||
| foreach ($participants as $participant) { | |||||
| $em->remove($participant); | |||||
| } | |||||
| $em->flush(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES_MEETINGS, ServiceData::ACTION_DELETE, $mappedServiceMeeting); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_MEETING_DELETE, 0, $serviceData); | |||||
| } | |||||
| /** | |||||
| * @Route("/check-service-meeting-report", name="check_service_meeting_report") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function checkServiceMeetingReport(Request $request) | |||||
| { | |||||
| $serviceMeetingIdClient = json_decode($request->request->get('serviceMeetingId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| /** @var EntServiceMeeting $entServiceMeeting */ | |||||
| $entServiceMeeting = $em->getRepository(EntServiceMeeting::class)->find($serviceMeetingIdClient); | |||||
| if (is_null($entServiceMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $bHasRightsToEdit = | |||||
| $entServiceMeeting->getOwnerUserId() === $user->getId() || | |||||
| $user->isAdmin(); | |||||
| if (!$bHasRightsToEdit) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NOT_ENOUGH_RIGHTS); | |||||
| } | |||||
| $check = new \DateTime() > $entServiceMeeting->getStartDate(); | |||||
| return $check ? Reply::getResponse($check) : Reply::getErrorResponse(Message::ERROR_REPORT_NOT_EDITABLE_YET); | |||||
| } | |||||
| /** | |||||
| * @Route("/edit-service-meeting-report", name="edit_service_meeting_report") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function editServiceMeetingReport(Request $request) | |||||
| { | |||||
| /** @var EntUser $user */ | |||||
| $user = $this->getUser(); | |||||
| $serviceMeetingIdClient = json_decode($request->request->get('serviceMeetingId')); | |||||
| $serviceMeetingReportClient = json_decode($request->request->get('serviceMeetingReport')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntServiceMeeting $entServiceMeeting */ | |||||
| $entServiceMeeting = $em->getRepository(EntServiceMeeting::class)->find($serviceMeetingIdClient); | |||||
| if (is_null($entServiceMeeting)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $entService = $em->getRepository(EntService::class)->find($entServiceMeeting->getServiceId()); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| $bHasRightsToEdit = | |||||
| $entServiceMeeting->getOwnerUserId() === $user->getId() || | |||||
| $user->isAdmin(); | |||||
| if (!$bHasRightsToEdit) { | |||||
| return Reply::getErrorResponse(Message::ERROR_NOT_ENOUGH_RIGHTS); | |||||
| } | |||||
| $entServiceMeeting->setReport($serviceMeetingReportClient); | |||||
| $em->persist($entServiceMeeting); | |||||
| $em->flush(); | |||||
| $serviceData = new ServiceData(); | |||||
| $serviceData->addServiceData(ServiceData::SERVICE_DATA_TYPE_SERVICES_MEETINGS, ServiceData::ACTION_EDIT, $entServiceMeeting->clientMapper($em, true)); | |||||
| return Reply::getResponse($entService->clientMapper($em, true), Message::SUCCESS_SERVICE_MEETING_REPORT_SET, 0, $serviceData); | |||||
| } | |||||
| } | |||||
| @@ -1,62 +0,0 @@ | |||||
| <?php | |||||
| /** | |||||
| * Created by PhpStorm. | |||||
| * User: danielknudsen | |||||
| * Date: 05.04.18 | |||||
| * Time: 13:09 | |||||
| */ | |||||
| namespace App\Controller; | |||||
| use App\Entity\EntService; | |||||
| use App\Entity\EntServiceContact; | |||||
| use App\Entity\EntServiceMeeting; | |||||
| use App\Utils\Message; | |||||
| use App\Utils\Reply; | |||||
| use App\Utils\Utils; | |||||
| use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted; | |||||
| use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; | |||||
| use Symfony\Component\HttpFoundation\JsonResponse; | |||||
| use Symfony\Component\HttpFoundation\Request; | |||||
| use Symfony\Component\Routing\Annotation\Route; | |||||
| /** | |||||
| * Class ServiceViewController | |||||
| * @package App\Controller | |||||
| * @IsGranted("ROLE_USER") | |||||
| */ | |||||
| class ServiceViewController extends AbstractController | |||||
| { | |||||
| /** | |||||
| * @Route("/get-service-data", name="get_service_data") | |||||
| */ | |||||
| public function getServiceData() | |||||
| { | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| return Reply::getResponse( | |||||
| [ | |||||
| 'services' => Utils::clientMap($em, $em->getRepository(EntService::class)->findAll()), | |||||
| 'serviceContacts' => Utils::clientMap($em, $em->getRepository(EntServiceContact::class)->findAll()), | |||||
| 'serviceMeetings' => Utils::clientMap($em, $em->getRepository(EntServiceMeeting::class)->findAll()), | |||||
| ] | |||||
| ); | |||||
| } | |||||
| /** | |||||
| * @Route("/get-service-full", name="get_service_full") | |||||
| * @param Request $request | |||||
| * @return JsonResponse | |||||
| */ | |||||
| public function getServiceFull(Request $request) | |||||
| { | |||||
| $serviceId = json_decode($request->request->get('serviceId')); | |||||
| $em = $this->getDoctrine()->getManager(); | |||||
| /** @var EntService $entService */ | |||||
| $entService = $em->getRepository(EntService::class)->find($serviceId); | |||||
| if (is_null($entService)) { | |||||
| return Reply::getErrorResponse(Message::ERROR_DEFAULT); | |||||
| } | |||||
| return Reply::getResponse($entService->clientMapper($em, true)); | |||||
| } | |||||
| } | |||||
| @@ -1,535 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="operator") | |||||
| */ | |||||
| class EntOperator implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $old_plp_id; | |||||
| /** | |||||
| * @ORM\Column(type="string",nullable=false) | |||||
| */ | |||||
| protected $name; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $name_additional; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $url; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $tax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_mode; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_comment; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_key; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $active; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntOperator constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param $name | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, $name) | |||||
| { | |||||
| $this->name = $name; | |||||
| $this->active = true; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOldPlpId() | |||||
| { | |||||
| return $this->old_plp_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getName() | |||||
| { | |||||
| return $this->name; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getNameAdditional() | |||||
| { | |||||
| return $this->name_additional; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getUrl() | |||||
| { | |||||
| return $this->url; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTaxNo() | |||||
| { | |||||
| return $this->tax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceMode() | |||||
| { | |||||
| return $this->invoice_mode; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceComment() | |||||
| { | |||||
| return $this->invoice_comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceKey() | |||||
| { | |||||
| return $this->invoice_key; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isActive(): bool | |||||
| { | |||||
| return $this->active; | |||||
| } | |||||
| /** | |||||
| * @return \DateTime | |||||
| */ | |||||
| public function getCreationDate(): \DateTime | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @param mixed $old_plp_id | |||||
| */ | |||||
| public function setOldPlpId($old_plp_id): void | |||||
| { | |||||
| $this->old_plp_id = $old_plp_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name | |||||
| */ | |||||
| public function setName($name): void | |||||
| { | |||||
| $this->name = $name; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name_short | |||||
| */ | |||||
| public function setNameShort($name_short): void | |||||
| { | |||||
| $this->name_short = $name_short; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name_addtional | |||||
| */ | |||||
| public function setNameAdditional($name_addtional): void | |||||
| { | |||||
| $this->name_addtional = $name_addtional; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $url | |||||
| */ | |||||
| public function setUrl($url): void | |||||
| { | |||||
| $this->url = $url; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $tax_no | |||||
| */ | |||||
| public function setTaxNo($tax_no): void | |||||
| { | |||||
| $this->tax_no = $tax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_mode | |||||
| */ | |||||
| public function setInvoiceMode($invoice_mode): void | |||||
| { | |||||
| $this->invoice_mode = $invoice_mode; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_comment | |||||
| */ | |||||
| public function setInvoiceComment($invoice_comment): void | |||||
| { | |||||
| $this->invoice_comment = $invoice_comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_key | |||||
| */ | |||||
| public function setInvoiceKey($invoice_key): void | |||||
| { | |||||
| $this->invoice_key = $invoice_key; | |||||
| } | |||||
| /** | |||||
| * @param bool $active | |||||
| */ | |||||
| public function setActive(bool $active): void | |||||
| { | |||||
| $this->active = $active; | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setName($clientData->name); | |||||
| $this->setNameAdditional($clientData->name_additional); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setUrl($clientData->url); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setTaxNo($clientData->tax_no); | |||||
| $this->setInvoiceMode($clientData->invoice_mode); | |||||
| $this->setInvoiceComment($clientData->invoice_comment); | |||||
| $this->setInvoiceKey($clientData->invoice_key); | |||||
| $this->setActive($clientData->active); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| $res = [ | |||||
| 'id' => $this->id, | |||||
| 'old_plp_id' => $this->old_plp_id, | |||||
| 'name' => $this->name, | |||||
| 'name_additional' => $this->name_additional, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'url' => $this->url, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'comment' => $this->comment, | |||||
| 'tax_no' => $this->tax_no, | |||||
| 'invoice_mode' => $this->invoice_mode, | |||||
| 'invoice_comment' => $this->invoice_mode, | |||||
| 'invoice_key' => $this->invoice_mode, | |||||
| 'active' => $this->active, | |||||
| 'v_operator_contacts' => [], | |||||
| 'v_operator_notes' => [], | |||||
| 'v_operator_meetings' => [], | |||||
| ]; | |||||
| if ($fullMapping) { | |||||
| $res['v_operator_contacts'] = Utils::clientMap($em, $em->getRepository(EntOperatorContact::class)->findBy(['operator_id' => $this->getId()])); | |||||
| $res['v_operator_notes'] = Utils::clientMap($em, $em->getRepository(EntOperatorNote::class)->findBy(['operator_id' => $this->getId()])); | |||||
| $res['v_operator_meetings'] = Utils::clientMap($em, $em->getRepository(EntOperatorMeeting::class)->findBy(['operator_id' => $this->getId()])); | |||||
| } | |||||
| return $res; | |||||
| } | |||||
| } | |||||
| @@ -1,472 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="operator_contact") | |||||
| */ | |||||
| class EntOperatorContact implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $operator_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="date", nullable=true) | |||||
| */ | |||||
| protected $date_of_birth; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $is_xmas_mail_recipient = false; | |||||
| /** | |||||
| * EntOperatorContact constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntOperator $entOperator | |||||
| * @param $lastName | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntOperator $entOperator, $lastName) | |||||
| { | |||||
| if (is_null($entOperator->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->operator_id = $entOperator->getId(); | |||||
| $this->lastname = $lastName; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOperatorId() | |||||
| { | |||||
| return $this->operator_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationDate() | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDateOfBirth() | |||||
| { | |||||
| return $this->date_of_birth; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $date_of_birth | |||||
| */ | |||||
| public function setDateOfBirth($date_of_birth): void | |||||
| { | |||||
| $this->date_of_birth = !is_null($date_of_birth) ? \DateTime::createFromFormat('Y-m-d', $date_of_birth) : $date_of_birth; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isIsxmasMailRecipient(): bool | |||||
| { | |||||
| return $this->is_xmas_mail_recipient; | |||||
| } | |||||
| /** | |||||
| * @param bool $is_xmas_mail_recipient | |||||
| */ | |||||
| public function setIsxmasMailRecipient(bool $is_xmas_mail_recipient): void | |||||
| { | |||||
| $this->is_xmas_mail_recipient = $is_xmas_mail_recipient; | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| $this->setDateOfBirth($clientData->date_of_birth); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setIsxmasMailRecipient($clientData->is_xmas_mail_recipient); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'operator_id' => $this->operator_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'department' => $this->department, | |||||
| 'date_of_birth' => $this->date_of_birth, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'comment' => $this->comment, | |||||
| 'is_xmas_mail_recipient' => $this->is_xmas_mail_recipient, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,693 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="operator_meeting", indexes={@ORM\Index(name="search_operator_idx", columns={"operator_id", "owner_user_id", "operator_contact_id"})}) | |||||
| */ | |||||
| class EntOperatorMeeting implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $operator_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $creation_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $owner_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $meeting_type_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $title; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $description; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $start_date; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $end_date; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $operator_contact_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $report; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $first_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $second_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $report_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntOperatorMeeting constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntOperator $entOperator | |||||
| * @param EntUser $entCreationUser | |||||
| * @param EntUser $entOwnerUser | |||||
| * @param EntMeetingType $entMeetingType | |||||
| * @param $title | |||||
| * @param $startDate | |||||
| * @param $endDate | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntOperator $entOperator, EntUser $entCreationUser, EntUser $entOwnerUser, | |||||
| EntMeetingType $entMeetingType, $title, $startDate, $endDate) | |||||
| { | |||||
| if (is_null($entOperator->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entCreationUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entOwnerUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $meetingTypesById = EntMeetingType::getMeetingTypesById($em); | |||||
| if (is_null($entMeetingType->getId()) || !array_key_exists($entMeetingType->getId(), $meetingTypesById)) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->operator_id = $entOperator->getId(); | |||||
| $this->creation_user_id = $entCreationUser->getId(); | |||||
| $this->owner_user_id = $entOwnerUser->getId(); | |||||
| $this->meeting_type_id = $entMeetingType->getId(); | |||||
| $this->title = $title; | |||||
| $this->setStartDate($startDate); | |||||
| $this->setEndDate($endDate); | |||||
| $this->first_reminder_sent = false; | |||||
| $this->second_reminder_sent = false; | |||||
| $this->report_reminder_sent = false; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOperatorId() | |||||
| { | |||||
| return $this->operator_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserId() | |||||
| { | |||||
| return $this->creation_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOwnerUserId() | |||||
| { | |||||
| return $this->owner_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMeetingTypeId() | |||||
| { | |||||
| return $this->meeting_type_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTitle() | |||||
| { | |||||
| return $this->title; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDescription() | |||||
| { | |||||
| return $this->description; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStartDate() | |||||
| { | |||||
| return $this->start_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEndDate() | |||||
| { | |||||
| return $this->end_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOperatorContactId() | |||||
| { | |||||
| return $this->operator_contact_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getReport() | |||||
| { | |||||
| return $this->report; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isFirstReminderSent(): bool | |||||
| { | |||||
| return $this->first_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isSecondReminderSent(): bool | |||||
| { | |||||
| return $this->second_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $owner_user_id | |||||
| */ | |||||
| public function setOwnerUserId($owner_user_id): void | |||||
| { | |||||
| $this->owner_user_id = $owner_user_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $meeting_type_id | |||||
| */ | |||||
| public function setMeetingTypeId($meeting_type_id): void | |||||
| { | |||||
| $this->meeting_type_id = $meeting_type_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $title | |||||
| */ | |||||
| public function setTitle($title): void | |||||
| { | |||||
| $this->title = $title; | |||||
| } | |||||
| /** | |||||
| * @param mixed $description | |||||
| */ | |||||
| public function setDescription($description): void | |||||
| { | |||||
| $this->description = $description; | |||||
| } | |||||
| /** | |||||
| * @param mixed $start_date | |||||
| */ | |||||
| public function setStartDate($start_date): void | |||||
| { | |||||
| $this->start_date = \DateTime::createFromFormat('Y-m-d H:i:s', $start_date); | |||||
| } | |||||
| /** | |||||
| * @param mixed $end_date | |||||
| */ | |||||
| public function setEndDate($end_date): void | |||||
| { | |||||
| $this->end_date = \DateTime::createFromFormat('Y-m-d H:i:s', $end_date); | |||||
| } | |||||
| /** | |||||
| * @param ObjectManager $em | |||||
| * @param $operator_contact_id | |||||
| */ | |||||
| public function setOperatorContactId(ObjectManager $em, $operator_contact_id): void | |||||
| { | |||||
| if ($operator_contact_id == 0) { | |||||
| $this->operator_contact_id = $operator_contact_id; | |||||
| } else { | |||||
| /** @var EntOperatorContact $entOperatorContact */ | |||||
| $entOperatorContact = $em->getRepository('App:EntOperatorContact')->find($operator_contact_id); | |||||
| // NOTE: Check if contact still exists | |||||
| $this->operator_contact_id = !is_null($entOperatorContact) ? $operator_contact_id : null; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param $report | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function setReport($report): void | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| if ($now < $this->getStartDate()) { | |||||
| throw new Exception('meeting has not started yet'); | |||||
| } | |||||
| $this->report = $report; | |||||
| } | |||||
| /** | |||||
| * @param mixed $first_reminder_sent | |||||
| */ | |||||
| public function setFirstReminderSent($first_reminder_sent): void | |||||
| { | |||||
| $this->first_reminder_sent = $first_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $second_reminder_sent | |||||
| */ | |||||
| public function setSecondReminderSent($second_reminder_sent): void | |||||
| { | |||||
| $this->second_reminder_sent = $second_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $report_reminder_sent | |||||
| */ | |||||
| public function setReportReminderSent($report_reminder_sent): void | |||||
| { | |||||
| $this->report_reminder_sent = $report_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * Checks if meeting is editable or deletable | |||||
| * @return bool | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function isEditDeletable() | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| return $now < $this->getStartDate(); | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setOwnerUserId($clientData->owner_user_id); | |||||
| $this->setMeetingTypeId($clientData->meeting_type_id); | |||||
| $this->setTitle($clientData->title); | |||||
| $this->setDescription($clientData->description); | |||||
| $this->setStartDate($clientData->start_date); | |||||
| $this->setEndDate($clientData->end_date); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setOperatorContactId($em, $clientData->operator_contact_id); | |||||
| if (is_null($this->operator_contact_id)) { | |||||
| $this->setGender(null); | |||||
| $this->setFirstname(null); | |||||
| $this->setLastname(null); | |||||
| $this->setEmail(null); | |||||
| $this->setPhoneNo(null); | |||||
| $this->setMobileNo(null); | |||||
| $this->setDepartment(null); | |||||
| } else { | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'operator_id' => (int)$this->operator_id, | |||||
| 'creation_user_id' => (int)$this->creation_user_id, | |||||
| 'owner_user_id' => (int)$this->owner_user_id, | |||||
| 'meeting_type_id' => (int)$this->meeting_type_id, | |||||
| 'title' => $this->title, | |||||
| 'description' => $this->description, | |||||
| 'start_date' => !is_null($this->start_date) ? $this->start_date->format('Y-m-d H:i:s'): null, | |||||
| 'end_date' => !is_null($this->end_date) ? $this->end_date->format('Y-m-d H:i:s'): null, | |||||
| 'operator_contact_id' => $this->operator_contact_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'department' => $this->department, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'report' => $this->report, | |||||
| 'first_reminder_sent' => $this->first_reminder_sent, | |||||
| 'second_reminder_sent' => $this->second_reminder_sent, | |||||
| 'report_reminder_sent' => $this->report_reminder_sent, | |||||
| 'creation_date' => !is_null($this->creation_date) ? $this->creation_date->format('Y-m-d H:i:s'): null, | |||||
| 'v_participants' => Utils::clientMap($em, $em->getRepository(EntOperatorMeetingParticipant::class)->findBy(['operator_meeting_id' => $this->id])), | |||||
| 'v_is_editable' => $now < $this->start_date, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,97 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Doctrine\ORM\Mapping\UniqueConstraint; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="operator_meeting_participant",indexes={@ORM\Index(name="search_participant_idx", columns={"operator_meeting_id", "participant_user_id"})}, | |||||
| * uniqueConstraints={@UniqueConstraint(name="unique_participant", columns={"operator_meeting_id", "participant_user_id"})}) | |||||
| */ | |||||
| class EntOperatorMeetingParticipant implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $operator_meeting_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $participant_user_id; | |||||
| /** | |||||
| * EntOperatorMeetingParticipant constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntOperatorMeeting $entOperatorMeeting | |||||
| * @param EntUser $entParticipantUser | |||||
| * | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntOperatorMeeting $entOperatorMeeting, EntUser $entParticipantUser) | |||||
| { | |||||
| if (is_null($entOperatorMeeting->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entParticipantUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->operator_meeting_id = $entOperatorMeeting->getId(); | |||||
| $this->participant_user_id = $entParticipantUser->getId(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOperatorMeetingId() | |||||
| { | |||||
| return $this->operator_meeting_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getParticipantUserId() | |||||
| { | |||||
| return $this->participant_user_id; | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'operator_meeting_id' => $this->operator_meeting_id, | |||||
| 'participant_user_id' => $this->participant_user_id, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,440 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="operator_note") | |||||
| */ | |||||
| class EntOperatorNote implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $operator_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $operator_contact_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $title; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="date", nullable=false) | |||||
| */ | |||||
| protected $note_date; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $creation_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $creation_user_firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $creation_user_lastname; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntOperatorNote constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntOperator $entOperator | |||||
| * @param EntUser $entUser | |||||
| * @param $title | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntOperator $entOperator, EntUser $entUser, $title) | |||||
| { | |||||
| if (is_null($entOperator->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->operator_id = $entOperator->getId(); | |||||
| $this->creation_user_id = $entUser->getId(); | |||||
| $this->creation_user_firstname = $entUser->getFirstname(); | |||||
| $this->creation_user_lastname = $entUser->getLastname(); | |||||
| $this->title = $title; | |||||
| $this->note_date = new \DateTime(); | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOperatorId() | |||||
| { | |||||
| return $this->operator_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserId() | |||||
| { | |||||
| return $this->creation_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTitle() | |||||
| { | |||||
| return $this->title; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getNoteDate() | |||||
| { | |||||
| return $this->note_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserFirstname() | |||||
| { | |||||
| return $this->creation_user_firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserLastname() | |||||
| { | |||||
| return $this->creation_user_lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationDate() | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOperatorContactId() | |||||
| { | |||||
| return $this->operator_contact_id; | |||||
| } | |||||
| /** | |||||
| * @param ObjectManager $em | |||||
| * @param $operator_contact_id | |||||
| */ | |||||
| public function setOperatorContactId(ObjectManager $em, $operator_contact_id): void | |||||
| { | |||||
| if ($operator_contact_id == 0) { | |||||
| $this->operator_contact_id = $operator_contact_id; | |||||
| } else { | |||||
| /** @var EntOperatorContact $entOperatorContact */ | |||||
| $entOperatorContact = $em->getRepository('App:EntOperatorContact')->find($operator_contact_id); | |||||
| // NOTE: Check if contact still exists | |||||
| $this->operator_contact_id = !is_null($entOperatorContact) ? $operator_contact_id : null; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $title | |||||
| */ | |||||
| public function setTitle($title): void | |||||
| { | |||||
| $this->title = $title; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $note_date | |||||
| */ | |||||
| public function setNoteDate($note_date): void | |||||
| { | |||||
| $this->note_date = \DateTime::createFromFormat('Y-m-d', $note_date); | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setOperatorContactId($em, $clientData->operator_contact_id); | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| $this->setTitle($clientData->title); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setNoteDate($clientData->note_date); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'operator_id' => $this->operator_id, | |||||
| 'operator_contact_id' => $this->operator_contact_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'department' => $this->department, | |||||
| 'title' => $this->title, | |||||
| 'comment' => $this->comment, | |||||
| 'note_date' => !is_null($this->note_date) ? $this->note_date->format('Y-m-d'): null, | |||||
| 'creation_date' => !is_null($this->creation_date) ? $this->creation_date->format('Y-m-d'): null, | |||||
| 'creation_user_id' => $this->getCreationUserId(), | |||||
| 'creation_user_firstname' => $this->getCreationUserFirstname(), | |||||
| 'creation_user_lastname' => $this->getCreationUserLastname(), | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,535 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="production") | |||||
| */ | |||||
| class EntProduction implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $old_plp_id; | |||||
| /** | |||||
| * @ORM\Column(type="string",nullable=false) | |||||
| */ | |||||
| protected $name; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $name_additional; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $url; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $tax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_mode; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_comment; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_key; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $active; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntProduction constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param $name | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, $name) | |||||
| { | |||||
| $this->name = $name; | |||||
| $this->active = true; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOldPlpId() | |||||
| { | |||||
| return $this->old_plp_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getName() | |||||
| { | |||||
| return $this->name; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getNameAdditional() | |||||
| { | |||||
| return $this->name_additional; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getUrl() | |||||
| { | |||||
| return $this->url; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTaxNo() | |||||
| { | |||||
| return $this->tax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceMode() | |||||
| { | |||||
| return $this->invoice_mode; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceComment() | |||||
| { | |||||
| return $this->invoice_comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceKey() | |||||
| { | |||||
| return $this->invoice_key; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isActive(): bool | |||||
| { | |||||
| return $this->active; | |||||
| } | |||||
| /** | |||||
| * @return \DateTime | |||||
| */ | |||||
| public function getCreationDate(): \DateTime | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @param mixed $old_plp_id | |||||
| */ | |||||
| public function setOldPlpId($old_plp_id): void | |||||
| { | |||||
| $this->old_plp_id = $old_plp_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name | |||||
| */ | |||||
| public function setName($name): void | |||||
| { | |||||
| $this->name = $name; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name_short | |||||
| */ | |||||
| public function setNameShort($name_short): void | |||||
| { | |||||
| $this->name_short = $name_short; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name_addtional | |||||
| */ | |||||
| public function setNameAdditional($name_addtional): void | |||||
| { | |||||
| $this->name_addtional = $name_addtional; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $url | |||||
| */ | |||||
| public function setUrl($url): void | |||||
| { | |||||
| $this->url = $url; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $tax_no | |||||
| */ | |||||
| public function setTaxNo($tax_no): void | |||||
| { | |||||
| $this->tax_no = $tax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_mode | |||||
| */ | |||||
| public function setInvoiceMode($invoice_mode): void | |||||
| { | |||||
| $this->invoice_mode = $invoice_mode; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_comment | |||||
| */ | |||||
| public function setInvoiceComment($invoice_comment): void | |||||
| { | |||||
| $this->invoice_comment = $invoice_comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_key | |||||
| */ | |||||
| public function setInvoiceKey($invoice_key): void | |||||
| { | |||||
| $this->invoice_key = $invoice_key; | |||||
| } | |||||
| /** | |||||
| * @param bool $active | |||||
| */ | |||||
| public function setActive(bool $active): void | |||||
| { | |||||
| $this->active = $active; | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setName($clientData->name); | |||||
| $this->setNameAdditional($clientData->name_additional); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setUrl($clientData->url); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setTaxNo($clientData->tax_no); | |||||
| $this->setInvoiceMode($clientData->invoice_mode); | |||||
| $this->setInvoiceComment($clientData->invoice_comment); | |||||
| $this->setInvoiceKey($clientData->invoice_key); | |||||
| $this->setActive($clientData->active); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| $res = [ | |||||
| 'id' => $this->id, | |||||
| 'old_plp_id' => $this->old_plp_id, | |||||
| 'name' => $this->name, | |||||
| 'name_additional' => $this->name_additional, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'url' => $this->url, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'comment' => $this->comment, | |||||
| 'tax_no' => $this->tax_no, | |||||
| 'invoice_mode' => $this->invoice_mode, | |||||
| 'invoice_comment' => $this->invoice_mode, | |||||
| 'invoice_key' => $this->invoice_mode, | |||||
| 'active' => $this->active, | |||||
| 'v_production_contacts' => [], | |||||
| 'v_production_notes' => [], | |||||
| 'v_production_meetings' => [], | |||||
| ]; | |||||
| if ($fullMapping) { | |||||
| $res['v_production_contacts'] = Utils::clientMap($em, $em->getRepository(EntProductionContact::class)->findBy(['production_id' => $this->getId()])); | |||||
| $res['v_production_notes'] = Utils::clientMap($em, $em->getRepository(EntProductionNote::class)->findBy(['production_id' => $this->getId()])); | |||||
| $res['v_production_meetings'] = Utils::clientMap($em, $em->getRepository(EntProductionMeeting::class)->findBy(['production_id' => $this->getId()])); | |||||
| } | |||||
| return $res; | |||||
| } | |||||
| } | |||||
| @@ -1,472 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="production_contact") | |||||
| */ | |||||
| class EntProductionContact implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $production_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="date", nullable=true) | |||||
| */ | |||||
| protected $date_of_birth; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $is_xmas_mail_recipient = false; | |||||
| /** | |||||
| * EntProductionContact constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntProduction $entProduction | |||||
| * @param $lastName | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntProduction $entProduction, $lastName) | |||||
| { | |||||
| if (is_null($entProduction->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->production_id = $entProduction->getId(); | |||||
| $this->lastname = $lastName; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getProductionId() | |||||
| { | |||||
| return $this->production_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationDate() | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDateOfBirth() | |||||
| { | |||||
| return $this->date_of_birth; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $date_of_birth | |||||
| */ | |||||
| public function setDateOfBirth($date_of_birth): void | |||||
| { | |||||
| $this->date_of_birth = !is_null($date_of_birth) ? \DateTime::createFromFormat('Y-m-d', $date_of_birth) : $date_of_birth; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isIsxmasMailRecipient(): bool | |||||
| { | |||||
| return $this->is_xmas_mail_recipient; | |||||
| } | |||||
| /** | |||||
| * @param bool $is_xmas_mail_recipient | |||||
| */ | |||||
| public function setIsxmasMailRecipient(bool $is_xmas_mail_recipient): void | |||||
| { | |||||
| $this->is_xmas_mail_recipient = $is_xmas_mail_recipient; | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| $this->setDateOfBirth($clientData->date_of_birth); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setIsxmasMailRecipient($clientData->is_xmas_mail_recipient); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'production_id' => $this->production_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'department' => $this->department, | |||||
| 'date_of_birth' => $this->date_of_birth, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'comment' => $this->comment, | |||||
| 'is_xmas_mail_recipient' => $this->is_xmas_mail_recipient, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,693 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="production_meeting", indexes={@ORM\Index(name="search_production_idx", columns={"production_id", "owner_user_id", "production_contact_id"})}) | |||||
| */ | |||||
| class EntProductionMeeting implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $production_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $creation_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $owner_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $meeting_type_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $title; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $description; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $start_date; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $end_date; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $production_contact_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $report; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $first_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $second_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $report_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntProductionMeeting constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntProduction $entProduction | |||||
| * @param EntUser $entCreationUser | |||||
| * @param EntUser $entOwnerUser | |||||
| * @param EntMeetingType $entMeetingType | |||||
| * @param $title | |||||
| * @param $startDate | |||||
| * @param $endDate | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntProduction $entProduction, EntUser $entCreationUser, EntUser $entOwnerUser, | |||||
| EntMeetingType $entMeetingType, $title, $startDate, $endDate) | |||||
| { | |||||
| if (is_null($entProduction->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entCreationUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entOwnerUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $meetingTypesById = EntMeetingType::getMeetingTypesById($em); | |||||
| if (is_null($entMeetingType->getId()) || !array_key_exists($entMeetingType->getId(), $meetingTypesById)) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->production_id = $entProduction->getId(); | |||||
| $this->creation_user_id = $entCreationUser->getId(); | |||||
| $this->owner_user_id = $entOwnerUser->getId(); | |||||
| $this->meeting_type_id = $entMeetingType->getId(); | |||||
| $this->title = $title; | |||||
| $this->setStartDate($startDate); | |||||
| $this->setEndDate($endDate); | |||||
| $this->first_reminder_sent = false; | |||||
| $this->second_reminder_sent = false; | |||||
| $this->report_reminder_sent = false; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getProductionId() | |||||
| { | |||||
| return $this->production_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserId() | |||||
| { | |||||
| return $this->creation_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOwnerUserId() | |||||
| { | |||||
| return $this->owner_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMeetingTypeId() | |||||
| { | |||||
| return $this->meeting_type_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTitle() | |||||
| { | |||||
| return $this->title; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDescription() | |||||
| { | |||||
| return $this->description; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStartDate() | |||||
| { | |||||
| return $this->start_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEndDate() | |||||
| { | |||||
| return $this->end_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getProductionContactId() | |||||
| { | |||||
| return $this->production_contact_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getReport() | |||||
| { | |||||
| return $this->report; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isFirstReminderSent(): bool | |||||
| { | |||||
| return $this->first_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isSecondReminderSent(): bool | |||||
| { | |||||
| return $this->second_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $owner_user_id | |||||
| */ | |||||
| public function setOwnerUserId($owner_user_id): void | |||||
| { | |||||
| $this->owner_user_id = $owner_user_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $meeting_type_id | |||||
| */ | |||||
| public function setMeetingTypeId($meeting_type_id): void | |||||
| { | |||||
| $this->meeting_type_id = $meeting_type_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $title | |||||
| */ | |||||
| public function setTitle($title): void | |||||
| { | |||||
| $this->title = $title; | |||||
| } | |||||
| /** | |||||
| * @param mixed $description | |||||
| */ | |||||
| public function setDescription($description): void | |||||
| { | |||||
| $this->description = $description; | |||||
| } | |||||
| /** | |||||
| * @param mixed $start_date | |||||
| */ | |||||
| public function setStartDate($start_date): void | |||||
| { | |||||
| $this->start_date = \DateTime::createFromFormat('Y-m-d H:i:s', $start_date); | |||||
| } | |||||
| /** | |||||
| * @param mixed $end_date | |||||
| */ | |||||
| public function setEndDate($end_date): void | |||||
| { | |||||
| $this->end_date = \DateTime::createFromFormat('Y-m-d H:i:s', $end_date); | |||||
| } | |||||
| /** | |||||
| * @param ObjectManager $em | |||||
| * @param $production_contact_id | |||||
| */ | |||||
| public function setProductionContactId(ObjectManager $em, $production_contact_id): void | |||||
| { | |||||
| if ($production_contact_id == 0) { | |||||
| $this->production_contact_id = $production_contact_id; | |||||
| } else { | |||||
| /** @var EntProductionContact $entProductionContact */ | |||||
| $entProductionContact = $em->getRepository(EntProductionContact::class)->find($production_contact_id); | |||||
| // NOTE: Check if contact still exists | |||||
| $this->production_contact_id = !is_null($entProductionContact) ? $production_contact_id : null; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param $report | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function setReport($report): void | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| if ($now < $this->getStartDate()) { | |||||
| throw new Exception('meeting has not started yet'); | |||||
| } | |||||
| $this->report = $report; | |||||
| } | |||||
| /** | |||||
| * @param mixed $first_reminder_sent | |||||
| */ | |||||
| public function setFirstReminderSent($first_reminder_sent): void | |||||
| { | |||||
| $this->first_reminder_sent = $first_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $second_reminder_sent | |||||
| */ | |||||
| public function setSecondReminderSent($second_reminder_sent): void | |||||
| { | |||||
| $this->second_reminder_sent = $second_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $report_reminder_sent | |||||
| */ | |||||
| public function setReportReminderSent($report_reminder_sent): void | |||||
| { | |||||
| $this->report_reminder_sent = $report_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * Checks if meeting is editable or deletable | |||||
| * @return bool | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function isEditDeletable() | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| return $now < $this->getStartDate(); | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setOwnerUserId($clientData->owner_user_id); | |||||
| $this->setMeetingTypeId($clientData->meeting_type_id); | |||||
| $this->setTitle($clientData->title); | |||||
| $this->setDescription($clientData->description); | |||||
| $this->setStartDate($clientData->start_date); | |||||
| $this->setEndDate($clientData->end_date); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setProductionContactId($em, $clientData->production_contact_id); | |||||
| if (is_null($this->production_contact_id)) { | |||||
| $this->setGender(null); | |||||
| $this->setFirstname(null); | |||||
| $this->setLastname(null); | |||||
| $this->setEmail(null); | |||||
| $this->setPhoneNo(null); | |||||
| $this->setMobileNo(null); | |||||
| $this->setDepartment(null); | |||||
| } else { | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'production_id' => (int)$this->production_id, | |||||
| 'creation_user_id' => (int)$this->creation_user_id, | |||||
| 'owner_user_id' => (int)$this->owner_user_id, | |||||
| 'meeting_type_id' => (int)$this->meeting_type_id, | |||||
| 'title' => $this->title, | |||||
| 'description' => $this->description, | |||||
| 'start_date' => !is_null($this->start_date) ? $this->start_date->format('Y-m-d H:i:s'): null, | |||||
| 'end_date' => !is_null($this->end_date) ? $this->end_date->format('Y-m-d H:i:s'): null, | |||||
| 'production_contact_id' => $this->production_contact_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'department' => $this->department, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'report' => $this->report, | |||||
| 'first_reminder_sent' => $this->first_reminder_sent, | |||||
| 'second_reminder_sent' => $this->second_reminder_sent, | |||||
| 'report_reminder_sent' => $this->report_reminder_sent, | |||||
| 'creation_date' => !is_null($this->creation_date) ? $this->creation_date->format('Y-m-d H:i:s'): null, | |||||
| 'v_participants' => Utils::clientMap($em, $em->getRepository(EntProductionMeetingParticipant::class)->findBy(['production_meeting_id' => $this->id])), | |||||
| 'v_is_editable' => $now < $this->start_date, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,97 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Doctrine\ORM\Mapping\UniqueConstraint; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="production_meeting_participant",indexes={@ORM\Index(name="search_participant_idx", columns={"production_meeting_id", "participant_user_id"})}, | |||||
| * uniqueConstraints={@UniqueConstraint(name="unique_participant", columns={"production_meeting_id", "participant_user_id"})}) | |||||
| */ | |||||
| class EntProductionMeetingParticipant implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $production_meeting_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $participant_user_id; | |||||
| /** | |||||
| * EntProductionMeetingParticipant constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntProductionMeeting $entProductionMeeting | |||||
| * @param EntUser $entParticipantUser | |||||
| * | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntProductionMeeting $entProductionMeeting, EntUser $entParticipantUser) | |||||
| { | |||||
| if (is_null($entProductionMeeting->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entParticipantUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->production_meeting_id = $entProductionMeeting->getId(); | |||||
| $this->participant_user_id = $entParticipantUser->getId(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getProductionMeetingId() | |||||
| { | |||||
| return $this->production_meeting_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getParticipantUserId() | |||||
| { | |||||
| return $this->participant_user_id; | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'production_meeting_id' => $this->production_meeting_id, | |||||
| 'participant_user_id' => $this->participant_user_id, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,440 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="production_note") | |||||
| */ | |||||
| class EntProductionNote implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $production_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $production_contact_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $title; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="date", nullable=false) | |||||
| */ | |||||
| protected $note_date; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $creation_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $creation_user_firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $creation_user_lastname; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntProductionNote constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntProduction $entProduction | |||||
| * @param EntUser $entUser | |||||
| * @param $title | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntProduction $entProduction, EntUser $entUser, $title) | |||||
| { | |||||
| if (is_null($entProduction->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->production_id = $entProduction->getId(); | |||||
| $this->creation_user_id = $entUser->getId(); | |||||
| $this->creation_user_firstname = $entUser->getFirstname(); | |||||
| $this->creation_user_lastname = $entUser->getLastname(); | |||||
| $this->title = $title; | |||||
| $this->note_date = new \DateTime(); | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getProductionId() | |||||
| { | |||||
| return $this->production_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserId() | |||||
| { | |||||
| return $this->creation_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTitle() | |||||
| { | |||||
| return $this->title; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getNoteDate() | |||||
| { | |||||
| return $this->note_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserFirstname() | |||||
| { | |||||
| return $this->creation_user_firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserLastname() | |||||
| { | |||||
| return $this->creation_user_lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationDate() | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getProductionContactId() | |||||
| { | |||||
| return $this->production_contact_id; | |||||
| } | |||||
| /** | |||||
| * @param ObjectManager $em | |||||
| * @param $production_contact_id | |||||
| */ | |||||
| public function setProductionContactId(ObjectManager $em, $production_contact_id): void | |||||
| { | |||||
| if ($production_contact_id == 0) { | |||||
| $this->production_contact_id = $production_contact_id; | |||||
| } else { | |||||
| /** @var EntProductionContact $entProductionContact */ | |||||
| $entProductionContact = $em->getRepository(EntProductionContact::class)->find($production_contact_id); | |||||
| // NOTE: Check if contact still exists | |||||
| $this->production_contact_id = !is_null($entProductionContact) ? $production_contact_id : null; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $title | |||||
| */ | |||||
| public function setTitle($title): void | |||||
| { | |||||
| $this->title = $title; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $note_date | |||||
| */ | |||||
| public function setNoteDate($note_date): void | |||||
| { | |||||
| $this->note_date = \DateTime::createFromFormat('Y-m-d', $note_date); | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setProductionContactId($em, $clientData->production_contact_id); | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| $this->setTitle($clientData->title); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setNoteDate($clientData->note_date); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'production_id' => $this->production_id, | |||||
| 'production_contact_id' => $this->production_contact_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'department' => $this->department, | |||||
| 'title' => $this->title, | |||||
| 'comment' => $this->comment, | |||||
| 'note_date' => !is_null($this->note_date) ? $this->note_date->format('Y-m-d'): null, | |||||
| 'creation_date' => !is_null($this->creation_date) ? $this->creation_date->format('Y-m-d'): null, | |||||
| 'creation_user_id' => $this->getCreationUserId(), | |||||
| 'creation_user_firstname' => $this->getCreationUserFirstname(), | |||||
| 'creation_user_lastname' => $this->getCreationUserLastname(), | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,535 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="service") | |||||
| */ | |||||
| class EntService implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $old_plp_id; | |||||
| /** | |||||
| * @ORM\Column(type="string",nullable=false) | |||||
| */ | |||||
| protected $name; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $name_additional; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $url; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $tax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_mode; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_comment; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $invoice_key; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $active; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntService constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param $name | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, $name) | |||||
| { | |||||
| $this->name = $name; | |||||
| $this->active = true; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOldPlpId() | |||||
| { | |||||
| return $this->old_plp_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getName() | |||||
| { | |||||
| return $this->name; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getNameAdditional() | |||||
| { | |||||
| return $this->name_additional; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getUrl() | |||||
| { | |||||
| return $this->url; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTaxNo() | |||||
| { | |||||
| return $this->tax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceMode() | |||||
| { | |||||
| return $this->invoice_mode; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceComment() | |||||
| { | |||||
| return $this->invoice_comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getInvoiceKey() | |||||
| { | |||||
| return $this->invoice_key; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isActive(): bool | |||||
| { | |||||
| return $this->active; | |||||
| } | |||||
| /** | |||||
| * @return \DateTime | |||||
| */ | |||||
| public function getCreationDate(): \DateTime | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @param mixed $old_plp_id | |||||
| */ | |||||
| public function setOldPlpId($old_plp_id): void | |||||
| { | |||||
| $this->old_plp_id = $old_plp_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name | |||||
| */ | |||||
| public function setName($name): void | |||||
| { | |||||
| $this->name = $name; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name_short | |||||
| */ | |||||
| public function setNameShort($name_short): void | |||||
| { | |||||
| $this->name_short = $name_short; | |||||
| } | |||||
| /** | |||||
| * @param mixed $name_addtional | |||||
| */ | |||||
| public function setNameAdditional($name_addtional): void | |||||
| { | |||||
| $this->name_addtional = $name_addtional; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $url | |||||
| */ | |||||
| public function setUrl($url): void | |||||
| { | |||||
| $this->url = $url; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $tax_no | |||||
| */ | |||||
| public function setTaxNo($tax_no): void | |||||
| { | |||||
| $this->tax_no = $tax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_mode | |||||
| */ | |||||
| public function setInvoiceMode($invoice_mode): void | |||||
| { | |||||
| $this->invoice_mode = $invoice_mode; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_comment | |||||
| */ | |||||
| public function setInvoiceComment($invoice_comment): void | |||||
| { | |||||
| $this->invoice_comment = $invoice_comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $invoice_key | |||||
| */ | |||||
| public function setInvoiceKey($invoice_key): void | |||||
| { | |||||
| $this->invoice_key = $invoice_key; | |||||
| } | |||||
| /** | |||||
| * @param bool $active | |||||
| */ | |||||
| public function setActive(bool $active): void | |||||
| { | |||||
| $this->active = $active; | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setName($clientData->name); | |||||
| $this->setNameAdditional($clientData->name_additional); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setUrl($clientData->url); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setTaxNo($clientData->tax_no); | |||||
| $this->setInvoiceMode($clientData->invoice_mode); | |||||
| $this->setInvoiceComment($clientData->invoice_comment); | |||||
| $this->setInvoiceKey($clientData->invoice_key); | |||||
| $this->setActive($clientData->active); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| $res = [ | |||||
| 'id' => $this->id, | |||||
| 'old_plp_id' => $this->old_plp_id, | |||||
| 'name' => $this->name, | |||||
| 'name_additional' => $this->name_additional, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'url' => $this->url, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'comment' => $this->comment, | |||||
| 'tax_no' => $this->tax_no, | |||||
| 'invoice_mode' => $this->invoice_mode, | |||||
| 'invoice_comment' => $this->invoice_mode, | |||||
| 'invoice_key' => $this->invoice_mode, | |||||
| 'active' => $this->active, | |||||
| 'v_service_contacts' => [], | |||||
| 'v_service_notes' => [], | |||||
| 'v_service_meetings' => [], | |||||
| ]; | |||||
| if ($fullMapping) { | |||||
| $res['v_service_contacts'] = Utils::clientMap($em, $em->getRepository(EntServiceContact::class)->findBy(['service_id' => $this->getId()])); | |||||
| $res['v_service_notes'] = Utils::clientMap($em, $em->getRepository(EntServiceNote::class)->findBy(['service_id' => $this->getId()])); | |||||
| $res['v_service_meetings'] = Utils::clientMap($em, $em->getRepository(EntServiceMeeting::class)->findBy(['service_id' => $this->getId()])); | |||||
| } | |||||
| return $res; | |||||
| } | |||||
| } | |||||
| @@ -1,472 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="service_contact") | |||||
| */ | |||||
| class EntServiceContact implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $service_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="date", nullable=true) | |||||
| */ | |||||
| protected $date_of_birth; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $is_xmas_mail_recipient = false; | |||||
| /** | |||||
| * EntServiceContact constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntService $entService | |||||
| * @param $lastName | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntService $entService, $lastName) | |||||
| { | |||||
| if (is_null($entService->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->service_id = $entService->getId(); | |||||
| $this->lastname = $lastName; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getServiceId() | |||||
| { | |||||
| return $this->service_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationDate() | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDateOfBirth() | |||||
| { | |||||
| return $this->date_of_birth; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $date_of_birth | |||||
| */ | |||||
| public function setDateOfBirth($date_of_birth): void | |||||
| { | |||||
| $this->date_of_birth = !is_null($date_of_birth) ? \DateTime::createFromFormat('Y-m-d', $date_of_birth) : $date_of_birth; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isIsxmasMailRecipient(): bool | |||||
| { | |||||
| return $this->is_xmas_mail_recipient; | |||||
| } | |||||
| /** | |||||
| * @param bool $is_xmas_mail_recipient | |||||
| */ | |||||
| public function setIsxmasMailRecipient(bool $is_xmas_mail_recipient): void | |||||
| { | |||||
| $this->is_xmas_mail_recipient = $is_xmas_mail_recipient; | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| $this->setDateOfBirth($clientData->date_of_birth); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setIsxmasMailRecipient($clientData->is_xmas_mail_recipient); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'service_id' => $this->service_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'department' => $this->department, | |||||
| 'date_of_birth' => $this->date_of_birth, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'comment' => $this->comment, | |||||
| 'is_xmas_mail_recipient' => $this->is_xmas_mail_recipient, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,693 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="service_meeting", indexes={@ORM\Index(name="search_service_idx", columns={"service_id", "owner_user_id", "service_contact_id"})}) | |||||
| */ | |||||
| class EntServiceMeeting implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $service_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $creation_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $owner_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $meeting_type_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $title; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $description; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $start_date; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $end_date; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $service_contact_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $street_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $zip; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $city; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $country_id; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $report; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $first_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $second_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="boolean", nullable=false) | |||||
| */ | |||||
| protected $report_reminder_sent; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntServiceMeeting constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntService $entService | |||||
| * @param EntUser $entCreationUser | |||||
| * @param EntUser $entOwnerUser | |||||
| * @param EntMeetingType $entMeetingType | |||||
| * @param $title | |||||
| * @param $startDate | |||||
| * @param $endDate | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntService $entService, EntUser $entCreationUser, EntUser $entOwnerUser, | |||||
| EntMeetingType $entMeetingType, $title, $startDate, $endDate) | |||||
| { | |||||
| if (is_null($entService->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entCreationUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entOwnerUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $meetingTypesById = EntMeetingType::getMeetingTypesById($em); | |||||
| if (is_null($entMeetingType->getId()) || !array_key_exists($entMeetingType->getId(), $meetingTypesById)) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->service_id = $entService->getId(); | |||||
| $this->creation_user_id = $entCreationUser->getId(); | |||||
| $this->owner_user_id = $entOwnerUser->getId(); | |||||
| $this->meeting_type_id = $entMeetingType->getId(); | |||||
| $this->title = $title; | |||||
| $this->setStartDate($startDate); | |||||
| $this->setEndDate($endDate); | |||||
| $this->first_reminder_sent = false; | |||||
| $this->second_reminder_sent = false; | |||||
| $this->report_reminder_sent = false; | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getServiceId() | |||||
| { | |||||
| return $this->service_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserId() | |||||
| { | |||||
| return $this->creation_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getOwnerUserId() | |||||
| { | |||||
| return $this->owner_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMeetingTypeId() | |||||
| { | |||||
| return $this->meeting_type_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTitle() | |||||
| { | |||||
| return $this->title; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDescription() | |||||
| { | |||||
| return $this->description; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStartDate() | |||||
| { | |||||
| return $this->start_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEndDate() | |||||
| { | |||||
| return $this->end_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getServiceContactId() | |||||
| { | |||||
| return $this->service_contact_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreet() | |||||
| { | |||||
| return $this->street; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getStreetNo() | |||||
| { | |||||
| return $this->street_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getZip() | |||||
| { | |||||
| return $this->zip; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCity() | |||||
| { | |||||
| return $this->city; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCountryId() | |||||
| { | |||||
| return $this->country_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getReport() | |||||
| { | |||||
| return $this->report; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isFirstReminderSent(): bool | |||||
| { | |||||
| return $this->first_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @return bool | |||||
| */ | |||||
| public function isSecondReminderSent(): bool | |||||
| { | |||||
| return $this->second_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $owner_user_id | |||||
| */ | |||||
| public function setOwnerUserId($owner_user_id): void | |||||
| { | |||||
| $this->owner_user_id = $owner_user_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $meeting_type_id | |||||
| */ | |||||
| public function setMeetingTypeId($meeting_type_id): void | |||||
| { | |||||
| $this->meeting_type_id = $meeting_type_id; | |||||
| } | |||||
| /** | |||||
| * @param mixed $title | |||||
| */ | |||||
| public function setTitle($title): void | |||||
| { | |||||
| $this->title = $title; | |||||
| } | |||||
| /** | |||||
| * @param mixed $description | |||||
| */ | |||||
| public function setDescription($description): void | |||||
| { | |||||
| $this->description = $description; | |||||
| } | |||||
| /** | |||||
| * @param mixed $start_date | |||||
| */ | |||||
| public function setStartDate($start_date): void | |||||
| { | |||||
| $this->start_date = \DateTime::createFromFormat('Y-m-d H:i:s', $start_date); | |||||
| } | |||||
| /** | |||||
| * @param mixed $end_date | |||||
| */ | |||||
| public function setEndDate($end_date): void | |||||
| { | |||||
| $this->end_date = \DateTime::createFromFormat('Y-m-d H:i:s', $end_date); | |||||
| } | |||||
| /** | |||||
| * @param ObjectManager $em | |||||
| * @param $service_contact_id | |||||
| */ | |||||
| public function setServiceContactId(ObjectManager $em, $service_contact_id): void | |||||
| { | |||||
| if ($service_contact_id == 0) { | |||||
| $this->service_contact_id = $service_contact_id; | |||||
| } else { | |||||
| /** @var EntServiceContact $entServiceContact */ | |||||
| $entServiceContact = $em->getRepository(EntServiceContact::class)->find($service_contact_id); | |||||
| // NOTE: Check if contact still exists | |||||
| $this->service_contact_id = !is_null($entServiceContact) ? $service_contact_id : null; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street | |||||
| */ | |||||
| public function setStreet($street): void | |||||
| { | |||||
| $this->street = $street; | |||||
| } | |||||
| /** | |||||
| * @param mixed $street_no | |||||
| */ | |||||
| public function setStreetNo($street_no): void | |||||
| { | |||||
| $this->street_no = $street_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $zip | |||||
| */ | |||||
| public function setZip($zip): void | |||||
| { | |||||
| $this->zip = $zip; | |||||
| } | |||||
| /** | |||||
| * @param mixed $city | |||||
| */ | |||||
| public function setCity($city): void | |||||
| { | |||||
| $this->city = $city; | |||||
| } | |||||
| /** | |||||
| * @param mixed $country_id | |||||
| */ | |||||
| public function setCountryId($country_id): void | |||||
| { | |||||
| $this->country_id = $country_id; | |||||
| } | |||||
| /** | |||||
| * @param $report | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function setReport($report): void | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| if ($now < $this->getStartDate()) { | |||||
| throw new Exception('meeting has not started yet'); | |||||
| } | |||||
| $this->report = $report; | |||||
| } | |||||
| /** | |||||
| * @param mixed $first_reminder_sent | |||||
| */ | |||||
| public function setFirstReminderSent($first_reminder_sent): void | |||||
| { | |||||
| $this->first_reminder_sent = $first_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $second_reminder_sent | |||||
| */ | |||||
| public function setSecondReminderSent($second_reminder_sent): void | |||||
| { | |||||
| $this->second_reminder_sent = $second_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * @param mixed $report_reminder_sent | |||||
| */ | |||||
| public function setReportReminderSent($report_reminder_sent): void | |||||
| { | |||||
| $this->report_reminder_sent = $report_reminder_sent; | |||||
| } | |||||
| /** | |||||
| * Checks if meeting is editable or deletable | |||||
| * @return bool | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function isEditDeletable() | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| return $now < $this->getStartDate(); | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setOwnerUserId($clientData->owner_user_id); | |||||
| $this->setMeetingTypeId($clientData->meeting_type_id); | |||||
| $this->setTitle($clientData->title); | |||||
| $this->setDescription($clientData->description); | |||||
| $this->setStartDate($clientData->start_date); | |||||
| $this->setEndDate($clientData->end_date); | |||||
| $this->setStreet($clientData->street); | |||||
| $this->setStreetNo($clientData->street_no); | |||||
| $this->setZip($clientData->zip); | |||||
| $this->setCity($clientData->city); | |||||
| $this->setCountryId($clientData->country_id); | |||||
| $this->setServiceContactId($em, $clientData->service_contact_id); | |||||
| if (is_null($this->service_contact_id)) { | |||||
| $this->setGender(null); | |||||
| $this->setFirstname(null); | |||||
| $this->setLastname(null); | |||||
| $this->setEmail(null); | |||||
| $this->setPhoneNo(null); | |||||
| $this->setMobileNo(null); | |||||
| $this->setDepartment(null); | |||||
| } else { | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| } | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| $now = new \DateTime(); | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'service_id' => (int)$this->service_id, | |||||
| 'creation_user_id' => (int)$this->creation_user_id, | |||||
| 'owner_user_id' => (int)$this->owner_user_id, | |||||
| 'meeting_type_id' => (int)$this->meeting_type_id, | |||||
| 'title' => $this->title, | |||||
| 'description' => $this->description, | |||||
| 'start_date' => !is_null($this->start_date) ? $this->start_date->format('Y-m-d H:i:s'): null, | |||||
| 'end_date' => !is_null($this->end_date) ? $this->end_date->format('Y-m-d H:i:s'): null, | |||||
| 'service_contact_id' => $this->service_contact_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'department' => $this->department, | |||||
| 'street' => $this->street, | |||||
| 'street_no' => $this->street_no, | |||||
| 'zip' => $this->zip, | |||||
| 'city' => $this->city, | |||||
| 'country_id' => $this->country_id, | |||||
| 'report' => $this->report, | |||||
| 'first_reminder_sent' => $this->first_reminder_sent, | |||||
| 'second_reminder_sent' => $this->second_reminder_sent, | |||||
| 'report_reminder_sent' => $this->report_reminder_sent, | |||||
| 'creation_date' => !is_null($this->creation_date) ? $this->creation_date->format('Y-m-d H:i:s'): null, | |||||
| 'v_participants' => Utils::clientMap($em, $em->getRepository(EntServiceMeetingParticipant::class)->findBy(['service_meeting_id' => $this->id])), | |||||
| 'v_is_editable' => $now < $this->start_date, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,97 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Doctrine\ORM\Mapping\UniqueConstraint; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="service_meeting_participant",indexes={@ORM\Index(name="search_participant_idx", columns={"service_meeting_id", "participant_user_id"})}, | |||||
| * uniqueConstraints={@UniqueConstraint(name="unique_participant", columns={"service_meeting_id", "participant_user_id"})}) | |||||
| */ | |||||
| class EntServiceMeetingParticipant implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $service_meeting_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $participant_user_id; | |||||
| /** | |||||
| * EntServiceMeetingParticipant constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntServiceMeeting $entServiceMeeting | |||||
| * @param EntUser $entParticipantUser | |||||
| * | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntServiceMeeting $entServiceMeeting, EntUser $entParticipantUser) | |||||
| { | |||||
| if (is_null($entServiceMeeting->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entParticipantUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->service_meeting_id = $entServiceMeeting->getId(); | |||||
| $this->participant_user_id = $entParticipantUser->getId(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getServiceMeetingId() | |||||
| { | |||||
| return $this->service_meeting_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getParticipantUserId() | |||||
| { | |||||
| return $this->participant_user_id; | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'service_meeting_id' => $this->service_meeting_id, | |||||
| 'participant_user_id' => $this->participant_user_id, | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -1,440 +0,0 @@ | |||||
| <?php | |||||
| namespace App\Entity; | |||||
| use App\Entity\IFace\IEntity; | |||||
| use App\Utils\Utils; | |||||
| use Doctrine\Common\Persistence\ObjectManager; | |||||
| use Doctrine\ORM\Mapping as ORM; | |||||
| use Symfony\Component\Config\Definition\Exception\Exception; | |||||
| /** | |||||
| * @ORM\Entity | |||||
| * @ORM\Table(name="service_note") | |||||
| */ | |||||
| class EntServiceNote implements IEntity | |||||
| { | |||||
| /** | |||||
| * @ORM\Id() | |||||
| * @ORM\GeneratedValue() | |||||
| * @ORM\Column(type="integer") | |||||
| */ | |||||
| protected $id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $service_id; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=true, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $service_contact_id; | |||||
| /** | |||||
| * @ORM\Column(name="gender", type="string", columnDefinition="enum('male', 'female', 'diverse')") | |||||
| */ | |||||
| protected $gender; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $lastname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $email; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $phone_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $mobile_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $fax_no; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $department; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $title; | |||||
| /** | |||||
| * @ORM\Column(type="text", nullable=true) | |||||
| */ | |||||
| protected $comment; | |||||
| /** | |||||
| * @ORM\Column(type="date", nullable=false) | |||||
| */ | |||||
| protected $note_date; | |||||
| /** | |||||
| * @ORM\Column(type="integer", nullable=false, options={"unsigned" = true}) | |||||
| */ | |||||
| protected $creation_user_id; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=true) | |||||
| */ | |||||
| protected $creation_user_firstname; | |||||
| /** | |||||
| * @ORM\Column(type="string", nullable=false) | |||||
| */ | |||||
| protected $creation_user_lastname; | |||||
| /** | |||||
| * @ORM\Column(type="datetime", nullable=false) | |||||
| */ | |||||
| protected $creation_date; | |||||
| /** | |||||
| * EntServiceNote constructor. | |||||
| * @param ObjectManager $em | |||||
| * @param EntService $entService | |||||
| * @param EntUser $entUser | |||||
| * @param $title | |||||
| * @throws \Exception | |||||
| */ | |||||
| public function __construct(ObjectManager $em, EntService $entService, EntUser $entUser, $title) | |||||
| { | |||||
| if (is_null($entService->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| if (is_null($entUser->getId())) { | |||||
| throw new Exception('no id found'); | |||||
| } | |||||
| $this->service_id = $entService->getId(); | |||||
| $this->creation_user_id = $entUser->getId(); | |||||
| $this->creation_user_firstname = $entUser->getFirstname(); | |||||
| $this->creation_user_lastname = $entUser->getLastname(); | |||||
| $this->title = $title; | |||||
| $this->note_date = new \DateTime(); | |||||
| $this->creation_date = new \DateTime(); | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getId() | |||||
| { | |||||
| return $this->id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getServiceId() | |||||
| { | |||||
| return $this->service_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserId() | |||||
| { | |||||
| return $this->creation_user_id; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getGender() | |||||
| { | |||||
| return $this->gender; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFirstname() | |||||
| { | |||||
| return $this->firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getLastname() | |||||
| { | |||||
| return $this->lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getEmail() | |||||
| { | |||||
| return $this->email; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getPhoneNo() | |||||
| { | |||||
| return $this->phone_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getMobileNo() | |||||
| { | |||||
| return $this->mobile_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getFaxNo() | |||||
| { | |||||
| return $this->fax_no; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getDepartment() | |||||
| { | |||||
| return $this->department; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getTitle() | |||||
| { | |||||
| return $this->title; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getComment() | |||||
| { | |||||
| return $this->comment; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getNoteDate() | |||||
| { | |||||
| return $this->note_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserFirstname() | |||||
| { | |||||
| return $this->creation_user_firstname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationUserLastname() | |||||
| { | |||||
| return $this->creation_user_lastname; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getCreationDate() | |||||
| { | |||||
| return $this->creation_date; | |||||
| } | |||||
| /** | |||||
| * @return mixed | |||||
| */ | |||||
| public function getServiceContactId() | |||||
| { | |||||
| return $this->service_contact_id; | |||||
| } | |||||
| /** | |||||
| * @param ObjectManager $em | |||||
| * @param $service_contact_id | |||||
| */ | |||||
| public function setServiceContactId(ObjectManager $em, $service_contact_id): void | |||||
| { | |||||
| if ($service_contact_id == 0) { | |||||
| $this->service_contact_id = $service_contact_id; | |||||
| } else { | |||||
| /** @var EntServiceContact $entServiceContact */ | |||||
| $entServiceContact = $em->getRepository(EntServiceContact::class)->find($service_contact_id); | |||||
| // NOTE: Check if contact still exists | |||||
| $this->service_contact_id = !is_null($entServiceContact) ? $service_contact_id : null; | |||||
| } | |||||
| } | |||||
| /** | |||||
| * @param mixed $gender | |||||
| */ | |||||
| public function setGender($gender): void | |||||
| { | |||||
| if (!is_null($gender) && !Utils::isValidGender($gender)) { | |||||
| throw new Exception('invalid gender'); | |||||
| } | |||||
| $this->gender = $gender; | |||||
| } | |||||
| /** | |||||
| * @param mixed $firstname | |||||
| */ | |||||
| public function setFirstname($firstname): void | |||||
| { | |||||
| $this->firstname = $firstname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $lastname | |||||
| */ | |||||
| public function setLastname($lastname): void | |||||
| { | |||||
| $this->lastname = $lastname; | |||||
| } | |||||
| /** | |||||
| * @param mixed $email | |||||
| */ | |||||
| public function setEmail($email): void | |||||
| { | |||||
| $this->email = $email; | |||||
| } | |||||
| /** | |||||
| * @param mixed $phone_no | |||||
| */ | |||||
| public function setPhoneNo($phone_no): void | |||||
| { | |||||
| $this->phone_no = $phone_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $mobile_no | |||||
| */ | |||||
| public function setMobileNo($mobile_no): void | |||||
| { | |||||
| $this->mobile_no = $mobile_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $fax_no | |||||
| */ | |||||
| public function setFaxNo($fax_no): void | |||||
| { | |||||
| $this->fax_no = $fax_no; | |||||
| } | |||||
| /** | |||||
| * @param mixed $department | |||||
| */ | |||||
| public function setDepartment($department): void | |||||
| { | |||||
| $this->department = $department; | |||||
| } | |||||
| /** | |||||
| * @param mixed $title | |||||
| */ | |||||
| public function setTitle($title): void | |||||
| { | |||||
| $this->title = $title; | |||||
| } | |||||
| /** | |||||
| * @param mixed $comment | |||||
| */ | |||||
| public function setComment($comment): void | |||||
| { | |||||
| $this->comment = $comment; | |||||
| } | |||||
| /** | |||||
| * @param mixed $note_date | |||||
| */ | |||||
| public function setNoteDate($note_date): void | |||||
| { | |||||
| $this->note_date = \DateTime::createFromFormat('Y-m-d', $note_date); | |||||
| } | |||||
| /** | |||||
| * Sets client data | |||||
| * @param ObjectManager $em | |||||
| * @param $clientData | |||||
| */ | |||||
| public function setClientData(ObjectManager $em, $clientData) | |||||
| { | |||||
| $this->setServiceContactId($em, $clientData->service_contact_id); | |||||
| $this->setGender($clientData->gender); | |||||
| $this->setFirstname($clientData->firstname); | |||||
| $this->setLastname($clientData->lastname); | |||||
| $this->setEmail($clientData->email); | |||||
| $this->setPhoneNo($clientData->phone_no); | |||||
| $this->setMobileNo($clientData->mobile_no); | |||||
| $this->setFaxNo($clientData->fax_no); | |||||
| $this->setDepartment($clientData->department); | |||||
| $this->setTitle($clientData->title); | |||||
| $this->setComment($clientData->comment); | |||||
| $this->setNoteDate($clientData->note_date); | |||||
| } | |||||
| /** | |||||
| * Client mapper | |||||
| * @param ObjectManager $em | |||||
| * @param bool $fullMapping | |||||
| * @return array | |||||
| */ | |||||
| public function clientMapper(ObjectManager $em, $fullMapping = false) | |||||
| { | |||||
| return [ | |||||
| 'id' => $this->id, | |||||
| 'service_id' => $this->service_id, | |||||
| 'service_contact_id' => $this->service_contact_id, | |||||
| 'gender' => $this->gender, | |||||
| 'firstname' => $this->firstname, | |||||
| 'lastname' => $this->lastname, | |||||
| 'email' => $this->email, | |||||
| 'phone_no' => $this->phone_no, | |||||
| 'mobile_no' => $this->mobile_no, | |||||
| 'fax_no' => $this->fax_no, | |||||
| 'department' => $this->department, | |||||
| 'title' => $this->title, | |||||
| 'comment' => $this->comment, | |||||
| 'note_date' => !is_null($this->note_date) ? $this->note_date->format('Y-m-d'): null, | |||||
| 'creation_date' => !is_null($this->creation_date) ? $this->creation_date->format('Y-m-d'): null, | |||||
| 'creation_user_id' => $this->getCreationUserId(), | |||||
| 'creation_user_firstname' => $this->getCreationUserFirstname(), | |||||
| 'creation_user_lastname' => $this->getCreationUserLastname(), | |||||
| ]; | |||||
| } | |||||
| } | |||||
| @@ -18,15 +18,6 @@ class ServiceData | |||||
| const SERVICE_DATA_TYPE_CUSTOMER_CONTACTS = 'customerContacts'; | const SERVICE_DATA_TYPE_CUSTOMER_CONTACTS = 'customerContacts'; | ||||
| const SERVICE_DATA_TYPE_CUSTOMER_MEETINGS = 'customerMeetings'; | const SERVICE_DATA_TYPE_CUSTOMER_MEETINGS = 'customerMeetings'; | ||||
| const SERVICE_DATA_TYPE_INTERNAL_MEETINGS = 'internalMeetings'; | const SERVICE_DATA_TYPE_INTERNAL_MEETINGS = 'internalMeetings'; | ||||
| const SERVICE_DATA_TYPE_OPERATORS = 'operators'; | |||||
| const SERVICE_DATA_TYPE_OPERATOR_CONTACTS = 'operatorContacts'; | |||||
| const SERVICE_DATA_TYPE_OPERATOR_MEETINGS = 'operatorMeetings'; | |||||
| const SERVICE_DATA_TYPE_PRODUCTIONS = 'productions'; | |||||
| const SERVICE_DATA_TYPE_PRODUCTION_CONTACTS = 'productionContacts'; | |||||
| const SERVICE_DATA_TYPE_PRODUCTION_MEETINGS = 'productionMeetings'; | |||||
| const SERVICE_DATA_TYPE_SERVICES = 'services'; | |||||
| const SERVICE_DATA_TYPE_SERVICES_CONTACTS = 'serviceContacts'; | |||||
| const SERVICE_DATA_TYPE_SERVICES_MEETINGS = 'serviceMeetings'; | |||||
| const ACTION_ADD = 'add'; | const ACTION_ADD = 'add'; | ||||
| const ACTION_EDIT = 'edit'; | const ACTION_EDIT = 'edit'; | ||||
| @@ -37,15 +28,6 @@ class ServiceData | |||||
| self::SERVICE_DATA_TYPE_CUSTOMER_CONTACTS => 1, | self::SERVICE_DATA_TYPE_CUSTOMER_CONTACTS => 1, | ||||
| self::SERVICE_DATA_TYPE_CUSTOMER_MEETINGS => 1, | self::SERVICE_DATA_TYPE_CUSTOMER_MEETINGS => 1, | ||||
| self::SERVICE_DATA_TYPE_INTERNAL_MEETINGS => 1, | self::SERVICE_DATA_TYPE_INTERNAL_MEETINGS => 1, | ||||
| self::SERVICE_DATA_TYPE_OPERATORS => 1, | |||||
| self::SERVICE_DATA_TYPE_OPERATOR_CONTACTS => 1, | |||||
| self::SERVICE_DATA_TYPE_OPERATOR_MEETINGS => 1, | |||||
| self::SERVICE_DATA_TYPE_PRODUCTIONS => 1, | |||||
| self::SERVICE_DATA_TYPE_PRODUCTION_CONTACTS => 1, | |||||
| self::SERVICE_DATA_TYPE_PRODUCTION_MEETINGS => 1, | |||||
| self::SERVICE_DATA_TYPE_SERVICES => 1, | |||||
| self::SERVICE_DATA_TYPE_SERVICES_CONTACTS => 1, | |||||
| self::SERVICE_DATA_TYPE_SERVICES_MEETINGS => 1, | |||||
| ]; | ]; | ||||
| private static $validActions = [ | private static $validActions = [ | ||||
| @@ -1,62 +0,0 @@ | |||||
| <?php | |||||
| declare(strict_types=1); | |||||
| namespace DoctrineMigrations; | |||||
| use Doctrine\DBAL\Schema\Schema; | |||||
| use Doctrine\Migrations\AbstractMigration; | |||||
| /** | |||||
| * Auto-generated Migration: Please modify to your needs! | |||||
| */ | |||||
| final class Version20201016103219 extends AbstractMigration | |||||
| { | |||||
| public function getDescription() : string | |||||
| { | |||||
| return ''; | |||||
| } | |||||
| public function up(Schema $schema) : void | |||||
| { | |||||
| // this up() migration is auto-generated, please modify it to your needs | |||||
| $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); | |||||
| $this->addSql('ALTER TABLE customer_note CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE operator_note CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE operator_contact ADD is_xmas_mail_recipient TINYINT(1) NOT NULL, CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE customer_contact ADD is_xmas_mail_recipient TINYINT(1) NOT NULL, CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE customer_meeting CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE operator_meeting CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| } | |||||
| public function postUp(Schema $schema): void | |||||
| { | |||||
| // Process xmas flags | |||||
| $opContacts = $this->connection->fetchAll("SELECT * FROM `operator_contact`"); | |||||
| foreach ($opContacts as $opContact) { | |||||
| if (!is_null($opContact['comment']) && strpos($opContact['comment'], 'Weihnachten')) { | |||||
| $this->connection->exec("UPDATE `operator_contact` SET `is_xmas_mail_recipient` = 1 WHERE id = ".$opContact['id']); | |||||
| } | |||||
| } | |||||
| $cuContacts = $this->connection->fetchAll("SELECT * FROM `customer_contact`"); | |||||
| foreach ($cuContacts as $cuContact) { | |||||
| if (!is_null($cuContact['comment']) && strpos($cuContact['comment'], 'Weihnachten')) { | |||||
| $this->connection->exec("UPDATE `customer_contact` SET `is_xmas_mail_recipient` = 1 WHERE id = ".$cuContact['id']); | |||||
| } | |||||
| } | |||||
| } | |||||
| public function down(Schema $schema) : void | |||||
| { | |||||
| // this down() migration is auto-generated, please modify it to your needs | |||||
| $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); | |||||
| $this->addSql('ALTER TABLE customer_contact DROP is_xmas_mail_recipient, CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE customer_meeting CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE customer_note CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE operator_contact DROP is_xmas_mail_recipient, CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE operator_meeting CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE operator_note CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| } | |||||
| } | |||||
| @@ -1,65 +0,0 @@ | |||||
| <?php | |||||
| declare(strict_types=1); | |||||
| namespace DoctrineMigrations; | |||||
| use Doctrine\DBAL\Schema\Schema; | |||||
| use Doctrine\Migrations\AbstractMigration; | |||||
| /** | |||||
| * Auto-generated Migration: Please modify to your needs! | |||||
| */ | |||||
| final class Version20220907142919 extends AbstractMigration | |||||
| { | |||||
| public function getDescription() : string | |||||
| { | |||||
| return ''; | |||||
| } | |||||
| public function up(Schema $schema) : void | |||||
| { | |||||
| // this up() migration is auto-generated, please modify it to your needs | |||||
| $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); | |||||
| $this->addSql('CREATE TABLE production (id INT AUTO_INCREMENT NOT NULL, old_plp_id VARCHAR(255) DEFAULT NULL, name VARCHAR(255) NOT NULL, name_additional VARCHAR(255) DEFAULT NULL, street VARCHAR(255) DEFAULT NULL, street_no VARCHAR(255) DEFAULT NULL, zip VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country_id INT UNSIGNED DEFAULT NULL, url VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, mobile_no VARCHAR(255) DEFAULT NULL, fax_no VARCHAR(255) DEFAULT NULL, comment VARCHAR(255) DEFAULT NULL, tax_no VARCHAR(255) DEFAULT NULL, invoice_mode VARCHAR(255) DEFAULT NULL, invoice_comment VARCHAR(255) DEFAULT NULL, invoice_key VARCHAR(255) DEFAULT NULL, active TINYINT(1) NOT NULL, creation_date DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE production_meeting_participant (id INT AUTO_INCREMENT NOT NULL, production_meeting_id INT UNSIGNED NOT NULL, participant_user_id INT UNSIGNED NOT NULL, UNIQUE INDEX unique_participant (production_meeting_id, participant_user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE service_meeting (id INT AUTO_INCREMENT NOT NULL, service_id INT UNSIGNED NOT NULL, creation_user_id INT UNSIGNED NOT NULL, owner_user_id INT UNSIGNED NOT NULL, meeting_type_id INT UNSIGNED NOT NULL, title VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, start_date DATETIME NOT NULL, end_date DATETIME NOT NULL, service_contact_id INT UNSIGNED DEFAULT NULL, gender enum(\'male\', \'female\', \'diverse\'), firstname VARCHAR(255) DEFAULT NULL, lastname VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, mobile_no VARCHAR(255) DEFAULT NULL, department VARCHAR(255) DEFAULT NULL, street VARCHAR(255) DEFAULT NULL, street_no VARCHAR(255) DEFAULT NULL, zip VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country_id INT UNSIGNED DEFAULT NULL, report LONGTEXT DEFAULT NULL, first_reminder_sent TINYINT(1) NOT NULL, second_reminder_sent TINYINT(1) NOT NULL, report_reminder_sent TINYINT(1) NOT NULL, creation_date DATETIME NOT NULL, INDEX search_service_idx (service_id, owner_user_id, service_contact_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE production_contact (id INT AUTO_INCREMENT NOT NULL, production_id INT UNSIGNED NOT NULL, gender enum(\'male\', \'female\', \'diverse\'), firstname VARCHAR(255) DEFAULT NULL, lastname VARCHAR(255) NOT NULL, email VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, mobile_no VARCHAR(255) DEFAULT NULL, fax_no VARCHAR(255) DEFAULT NULL, department VARCHAR(255) DEFAULT NULL, date_of_birth DATE DEFAULT NULL, street VARCHAR(255) DEFAULT NULL, street_no VARCHAR(255) DEFAULT NULL, zip VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country_id INT UNSIGNED DEFAULT NULL, comment VARCHAR(255) DEFAULT NULL, creation_date DATETIME NOT NULL, is_xmas_mail_recipient TINYINT(1) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE service_meeting_participant (id INT AUTO_INCREMENT NOT NULL, service_meeting_id INT UNSIGNED NOT NULL, participant_user_id INT UNSIGNED NOT NULL, UNIQUE INDEX unique_participant (service_meeting_id, participant_user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE service (id INT AUTO_INCREMENT NOT NULL, old_plp_id VARCHAR(255) DEFAULT NULL, name VARCHAR(255) NOT NULL, name_additional VARCHAR(255) DEFAULT NULL, street VARCHAR(255) DEFAULT NULL, street_no VARCHAR(255) DEFAULT NULL, zip VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country_id INT UNSIGNED DEFAULT NULL, url VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, mobile_no VARCHAR(255) DEFAULT NULL, fax_no VARCHAR(255) DEFAULT NULL, comment VARCHAR(255) DEFAULT NULL, tax_no VARCHAR(255) DEFAULT NULL, invoice_mode VARCHAR(255) DEFAULT NULL, invoice_comment VARCHAR(255) DEFAULT NULL, invoice_key VARCHAR(255) DEFAULT NULL, active TINYINT(1) NOT NULL, creation_date DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE production_note (id INT AUTO_INCREMENT NOT NULL, production_id INT UNSIGNED NOT NULL, production_contact_id INT UNSIGNED DEFAULT NULL, gender enum(\'male\', \'female\', \'diverse\'), firstname VARCHAR(255) DEFAULT NULL, lastname VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, mobile_no VARCHAR(255) DEFAULT NULL, fax_no VARCHAR(255) DEFAULT NULL, department VARCHAR(255) DEFAULT NULL, title VARCHAR(255) NOT NULL, comment LONGTEXT DEFAULT NULL, note_date DATE NOT NULL, creation_user_id INT UNSIGNED NOT NULL, creation_user_firstname VARCHAR(255) DEFAULT NULL, creation_user_lastname VARCHAR(255) NOT NULL, creation_date DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE service_contact (id INT AUTO_INCREMENT NOT NULL, service_id INT UNSIGNED NOT NULL, gender enum(\'male\', \'female\', \'diverse\'), firstname VARCHAR(255) DEFAULT NULL, lastname VARCHAR(255) NOT NULL, email VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, mobile_no VARCHAR(255) DEFAULT NULL, fax_no VARCHAR(255) DEFAULT NULL, department VARCHAR(255) DEFAULT NULL, date_of_birth DATE DEFAULT NULL, street VARCHAR(255) DEFAULT NULL, street_no VARCHAR(255) DEFAULT NULL, zip VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country_id INT UNSIGNED DEFAULT NULL, comment VARCHAR(255) DEFAULT NULL, creation_date DATETIME NOT NULL, is_xmas_mail_recipient TINYINT(1) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE service_note (id INT AUTO_INCREMENT NOT NULL, service_id INT UNSIGNED NOT NULL, service_contact_id INT UNSIGNED DEFAULT NULL, gender enum(\'male\', \'female\', \'diverse\'), firstname VARCHAR(255) DEFAULT NULL, lastname VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, mobile_no VARCHAR(255) DEFAULT NULL, fax_no VARCHAR(255) DEFAULT NULL, department VARCHAR(255) DEFAULT NULL, title VARCHAR(255) NOT NULL, comment LONGTEXT DEFAULT NULL, note_date DATE NOT NULL, creation_user_id INT UNSIGNED NOT NULL, creation_user_firstname VARCHAR(255) DEFAULT NULL, creation_user_lastname VARCHAR(255) NOT NULL, creation_date DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('CREATE TABLE production_meeting (id INT AUTO_INCREMENT NOT NULL, production_id INT UNSIGNED NOT NULL, creation_user_id INT UNSIGNED NOT NULL, owner_user_id INT UNSIGNED NOT NULL, meeting_type_id INT UNSIGNED NOT NULL, title VARCHAR(255) NOT NULL, description LONGTEXT DEFAULT NULL, start_date DATETIME NOT NULL, end_date DATETIME NOT NULL, production_contact_id INT UNSIGNED DEFAULT NULL, gender enum(\'male\', \'female\', \'diverse\'), firstname VARCHAR(255) DEFAULT NULL, lastname VARCHAR(255) DEFAULT NULL, email VARCHAR(255) DEFAULT NULL, phone_no VARCHAR(255) DEFAULT NULL, mobile_no VARCHAR(255) DEFAULT NULL, department VARCHAR(255) DEFAULT NULL, street VARCHAR(255) DEFAULT NULL, street_no VARCHAR(255) DEFAULT NULL, zip VARCHAR(255) DEFAULT NULL, city VARCHAR(255) DEFAULT NULL, country_id INT UNSIGNED DEFAULT NULL, report LONGTEXT DEFAULT NULL, first_reminder_sent TINYINT(1) NOT NULL, second_reminder_sent TINYINT(1) NOT NULL, report_reminder_sent TINYINT(1) NOT NULL, creation_date DATETIME NOT NULL, INDEX search_production_idx (production_id, owner_user_id, production_contact_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE `utf8_unicode_ci` ENGINE = InnoDB'); | |||||
| $this->addSql('ALTER TABLE customer_note CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE operator_note CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE operator_contact CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE customer_contact CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE customer_meeting CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| $this->addSql('ALTER TABLE operator_meeting CHANGE gender gender enum(\'male\', \'female\', \'diverse\')'); | |||||
| } | |||||
| public function down(Schema $schema) : void | |||||
| { | |||||
| // this down() migration is auto-generated, please modify it to your needs | |||||
| $this->abortIf($this->connection->getDatabasePlatform()->getName() !== 'mysql', 'Migration can only be executed safely on \'mysql\'.'); | |||||
| $this->addSql('DROP TABLE production'); | |||||
| $this->addSql('DROP TABLE production_meeting_participant'); | |||||
| $this->addSql('DROP TABLE service_meeting'); | |||||
| $this->addSql('DROP TABLE production_contact'); | |||||
| $this->addSql('DROP TABLE service_meeting_participant'); | |||||
| $this->addSql('DROP TABLE service'); | |||||
| $this->addSql('DROP TABLE production_note'); | |||||
| $this->addSql('DROP TABLE service_contact'); | |||||
| $this->addSql('DROP TABLE service_note'); | |||||
| $this->addSql('DROP TABLE production_meeting'); | |||||
| $this->addSql('ALTER TABLE customer_contact CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE customer_meeting CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE customer_note CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE operator_contact CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE operator_meeting CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| $this->addSql('ALTER TABLE operator_note CHANGE gender gender VARCHAR(255) CHARACTER SET utf8 DEFAULT NULL COLLATE `utf8_unicode_ci`'); | |||||
| } | |||||
| } | |||||