Exemplo n.º 1
0
 /**
  * Printa un calendario según el año y mes que se le pasan del qual se puede realizar una reserva.
  * @Route("/show/{year}/{mes}", name="calendario_mes")
  */
 public function mesAction($year, $mes)
 {
     //Objeto DateTime para ponerlo al primer dia del año y mes determinados
     $data = new \DateTime();
     $data->setDate($year, $mes, 1);
     $cantidad_dias = $data->format('t');
     //
     //array con los dias del mes en formato [1]Miércoles, [2]Jueves según mes y año
     $diasMes = [];
     for ($i = 1; $i <= $cantidad_dias; $i++) {
         $dia = $this->traduccionDia($data->format('l'));
         $diasMes[$i] = $dia;
         //añade el primer dia del mes según Martes, Lunes...
         $data->modify('tomorrow');
     }
     //
     $em = $this->getDoctrine()->getManager();
     //array de las fiestas de un año y mes determinados
     $fiestas = $em->getRepository('CineticExcepcionBundle:Fiesta')->findAllFromYearAndMonth($year, $mes);
     //
     //array de las excepciones en un año y mes determinados
     $excepciones = $em->getRepository('CineticExcepcionBundle:Excepcion')->findAllFromYearAndMonth($year, $mes);
     //
     //array de las reservas en un año y mes determinados
     $reservas = $em->getRepository('CineticReservaBundle:Reserva')->findAllFromYearAndMonth($year, $mes);
     //
     //array que relaciona numero del dia con las franjas o no del objeto
     $diasObjeto = [];
     for ($i = 1; $i <= $cantidad_dias; $i++) {
         //en primer lugar miro si existe una fiestaObjeto en este dia numero $i
         $fiestaObjeto = $this->buscarDia($fiestas, $i);
         if ($fiestaObjeto) {
             $diasObjeto[$i] = $fiestaObjeto;
         } else {
             //en segundo lugar miro si existe una ExcepcionObjeto en esta dia numero $i
             $excepcionObjeto = $this->buscarDia($excepciones, $i);
             if ($excepcionObjeto) {
                 $diasObjeto[$i] = $excepcionObjeto;
             } else {
                 $diasObjeto[$i] = $em->getRepository('CineticDiaBundle:Dia')->findOneByNombre($diasMes[$i]);
             }
         }
     }
     //array que mira si hay dias reservados en este mes
     $diasReservados = [];
     for ($i = 1; $i <= $cantidad_dias; $i++) {
         $reservaObjeto = $this->buscarDia($reservas, $i);
         if ($reservaObjeto) {
             $diasReservados[$i] = $reservaObjeto;
         }
     }
     //
     return $this->render('calendario/mes.html.twig', array('year' => $year, 'mes' => $mes, 'diasMes' => $diasMes, 'diasObjeto' => $diasObjeto, 'diasReservados' => $diasReservados));
 }
 /**
  * @covers: RI\FileManagerBundle\Manager\UploadDirectoryManager::getNewPath
  * @covers: RI\FileManagerBundle\Manager\UploadDirectoryManager::getAbsoluteUploadDirPath
  * @covers: RI\FileManagerBundle\Manager\UploadDirectoryManager::generateNewFileName
  * @covers: RI\FileManagerBundle\Manager\UploadDirectoryManager::createDestinationDir
  */
 public function testGetNewPath_IfFileExist()
 {
     $date = new \DateTime();
     $expectedPath = sprintf('/upload/%s/%s/%s/7/79/790f1bfea8585c9bc2e7b6267cb212e1.jpg', $date->format('y'), $date->format('m'), $date->format('d'));
     $expectedPathSecondFile = sprintf('/upload/%s/%s/%s/7/79/8b912a2bf1302f5a1170d3e57d8f8caf.jpg', $date->format('y'), $date->format('m'), $date->format('d'));
     $this->assertEquals($expectedPath, $this->uploadDirectoryManager->getNewPath('hello_world.jpg'));
     copy(__DIR__ . '/hello_world.jpg', sprintf('/tmp/web/upload/%s/%s/%s/7/79/790f1bfea8585c9bc2e7b6267cb212e1.jpg', $date->format('y'), $date->format('m'), $date->format('d')));
     $this->assertEquals($expectedPathSecondFile, $this->uploadDirectoryManager->getNewPath('hello_world.jpg'));
 }
Exemplo n.º 3
0
 public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder, array $options)
 {
     for ($i = 0; $i < 5; $i++) {
         foreach ($options['weekDates'] as $index => $weekDate) {
             $dateTime = new \DateTime($weekDate);
             $builder->add('project_' . $i . '_' . $index, EntityType::class, ['class' => 'Admin\\FrontendBundle\\Entity\\Project', 'placeholder' => '', 'attr' => ['class' => 'select2'], 'required' => false]);
             $builder->add('time_from_' . $i . '_' . $index, TextType::class, ['required' => false, 'attr' => ['class' => 'timerFrom', 'data-date' => $dateTime->format('Y-m-d')]]);
             $builder->add('time_to_' . $i . '_' . $index, TextType::class, ['required' => false, 'attr' => ['class' => 'timerTo', 'data-date' => $dateTime->format('Y-m-d')]]);
             $builder->add('km_' . $i . '_' . $index, TextType::class, ['required' => false, 'attr' => ['class' => 'col-md-2']]);
             $builder->add('pay_type_' . $i . '_' . $index, EntityType::class, ['class' => 'Admin\\FrontendBundle\\Entity\\AttendancePayType', 'placeholder' => '', 'attr' => ['class' => 'select2'], 'required' => false]);
         }
     }
     $builder->add('submit', SubmitType::class, array('label' => 'Save', 'attr' => array('class' => 'btn btn-primary')));
     parent::buildForm($builder, $options);
 }
Exemplo n.º 4
0
 /**
  * @Route("/rooms/{id}", name="showRoom")
  * @param string $id
  * @param Request $request
  * @throws \Exception
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function roomsAction($id, Request $request)
 {
     if ($id == 'random') {
         $page = $this->getDoctrine()->getRepository('AppBundle:Pages')->getRandomPage();
         if (!$page) {
             return $this->render('default/empty.html.twig');
         }
     } else {
         $page = $this->getDoctrine()->getRepository('AppBundle:Pages')->find($id);
         if (!$page) {
             throw $this->createNotFoundException('No page found for request param ' . $id);
         }
     }
     $imagesCollector = new ImagesViewCollector();
     $bookingEntity = new Booking();
     $calculator = new Calculator();
     $context = new CalculationContext();
     $context->setPricePerNight($page->getRawValue('priceNight'));
     $now = new \DateTime();
     $context->setCheckInDate($now->format('Y-m-d'));
     $context->setCheckOutDate($now->modify('+1 day')->format('Y-m-d'));
     $calcResult = $calculator->calculate($context);
     $bookingEntity->setGuestsCount($calcResult['guestsCount']);
     $bookingEntity->setPriceString($calcResult['pricePerNight']);
     $bookingEntity->setCheckinDate($calcResult['checkinDate']);
     $bookingEntity->setCheckoutDate($calcResult['checkoutDate']);
     $bookingEntity->setPage($page);
     $bookingEntity->setPageId($page->getId());
     $form = $this->createForm(new BookingForm('/add-booking/' . $page->getId()), $bookingEntity);
     $form->handleRequest($request);
     return $this->render('default/index.html.twig', array('page' => $page, 'images' => $imagesCollector->collect($page), 'bookingCalc' => $calcResult, 'form' => $form->createView()));
 }
Exemplo n.º 5
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     /** @var EntityManager em */
     $em = $this->getContainer()->get('doctrine')->getManager();
     $users = $em->getRepository('ESNUserBundle:User')->findBy(array("esner" => 1));
     $concerned_users = new ArrayCollection();
     /** @var User $user */
     foreach ($users as $user) {
         /** @var EsnerFollow $follow */
         $follow = $user->getFollow();
         if ($follow) {
             $trial = $follow->getTrialstarted();
             $end_trial = $trial;
             date_add($trial, date_interval_create_from_date_string('21 days'));
             $now = new \DateTime();
             if ($end_trial->format('d/m/Y') == $now->format('d/m/Y')) {
                 $concerned_users->add($user);
             }
         }
     }
     /** @var User $concerned_user */
     foreach ($concerned_users as $concerned_user) {
         $message = \Swift_Message::newInstance()->setSubject('[ESN Lille][ERP] Periode d\'essaie terminé pour ' . $concerned_user->getFullname())->setFrom($this->getContainer()->getParameter('mailer_from'))->setTo($user->getEmail())->setBody($this->getContainer()->get('templating')->render('ESNHRBundle:Emails:trial_ended.html.twig', array('user' => $concerned_user)), 'text/html');
         $this->getContainer()->get('mailer')->send($message);
     }
 }
 /**
  * @return WorkingMonth[]
  */
 public function findProspectiveWorkingMonths()
 {
     $startMonth = new \DateTime();
     $startMonth->modify('first day of this month');
     $qb = parent::createQueryBuilder('e');
     $qb->where('e.date >= :startMonth')->andWhere('e.isDeleted = 0')->setParameter('startMonth', $startMonth->format('Y-m-d'));
     return $qb->getQuery()->getResult();
 }
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     #Data atual.
     $dataHoje = new \DateTime("now");
     #Formatação do número do protocolo em ano, mês, dia, minuto e segundo.
     $codId = $dataHoje->format("Ymdhis");
     $builder->add('codIndentificadorDocumento', 'text', array('label' => 'Registro Documento *', 'required' => false, 'data' => $codId, 'constraints' => array(new NotNull(array('message' => 'Código identificador inválido.'))), 'attr' => array('readonly' => true, 'widget_col' => '4', "class" => "")))->add('numOficio', 'text', array('label' => 'Número do ofício *', 'attr' => array('widget_col' => '4')))->add('observacaoDocumento', 'textarea', array('label' => 'Observação: ', 'required' => false, 'attr' => array('placeholder' => 'Observação', 'widget_col' => '6', 'class' => 'mask_letras', 'onkeyup' => 'mascara( this, alphanum )')))->add('dataEntradaDocumento', 'datetime', array('label' => false, 'required' => false, 'data' => $dataHoje, 'constraints' => array(new DateTime(array('message' => 'Formato de Data não é válido'))), 'attr' => array('widget_col' => '2', 'hidden' => true)))->add('empresa', 'entity', array('label' => 'Empresa de Origem', 'required' => false, 'empty_value' => "Selecione a empresa", 'class' => 'Serbinario\\Bundles\\ProtocoloBundle\\Entity\\Empresas', 'attr' => array('widget_col' => '4', 'class' => '')))->add('tipoDocumentosTipoDocumento', 'entity', array('label' => 'Tipo do Documento * ', 'required' => false, 'empty_value' => "Selecione o tipo", 'class' => 'Serbinario\\Bundles\\ProtocoloBundle\\Entity\\TipoDocumentos', 'constraints' => array(new NotNull(array('message' => 'Você deve fornecer um tipo de documento'))), 'attr' => array('widget_col' => '4', 'class' => '')))->add('secretariasSecretaria', 'entity', array('label' => 'Secretaria de Origem', 'empty_value' => "Selecione a secretaria", 'required' => false, 'class' => 'Serbinario\\Bundles\\ProtocoloBundle\\Entity\\Secretarias', 'attr' => array('widget_col' => '4')))->add('actions', 'form_actions', ['buttons' => ['save' => ['type' => 'submit', 'options' => ['label' => 'Salvar']], 'cancel' => ['type' => 'button', 'options' => ['label' => 'Voltar']]]]);
 }
Exemplo n.º 8
0
 protected function import(InputInterface $input, OutputInterface $output, $agency_to_import)
 {
     // Getting php array of data from CSV
     $data = $this->get($input, $output, $agency_to_import);
     // Getting doctrine manager
     $em = $this->getContainer()->get('doctrine')->getManager();
     // Turning off doctrine default logs queries for saving memory
     $em->getConnection()->getConfiguration()->setSQLLogger(null);
     // Define the size of record, the frequency for persisting the data and the current index of records
     $size = count($data);
     $batchSize = 20;
     $i = 1;
     // Starting progress
     $progress = new ProgressBar($output, $size);
     $progress->start();
     // Processing on each row of data
     foreach ($data as $row) {
         //Create new collaborator, find his agency, format his birth date
         $collaborator = new Collaborator();
         $birthDate = \DateTime::createFromFormat('d/m/Y', $row['Date_Naissance']);
         $agency = $em->getRepository('CharlestownAgencyBundle:Agency')->find($row['group_name']);
         //Update is infos
         $collaborator->setUsername($row['users_login']);
         $collaborator->setPlainPassword($row['password']);
         $collaborator->setEmail($row['users_email']);
         $collaborator->setLastName($row['users_surname']);
         $collaborator->setFirstName($row['users_name']);
         $collaborator->setEnabled($row['active']);
         $collaborator->setAgency($agency);
         $collaborator->setAddress($row['adresse']);
         $collaborator->setPc($row['code_postal']);
         $collaborator->setTown($row['ville']);
         $collaborator->setPortPhoneNumber($row['portable']);
         $collaborator->setPhoneNumber($row['telephone']);
         $collaborator->setBirthDate($birthDate);
         // Do stuff here !
         // Persisting the current user
         $em->persist($collaborator);
         // Each 20 users persisted we flush everything
         if ($i % $batchSize === 0) {
             $em->flush();
             // Detaches all objects from Doctrine for memory save
             $em->clear();
             // Advancing for progress display on console
             $progress->advance($batchSize);
             $now = new \DateTime();
             $output->writeln(' of users imported ... | ' . $now->format('d-m-Y G:i:s'));
         }
         $i++;
     }
     // Flushing and clear data on queue
     $em->flush();
     $em->clear();
     // Ending the progress bar process
     $progress->finish();
 }
 protected function import(InputInterface $input, OutputInterface $output)
 {
     // Getting php array of data from CSV
     $data = $this->get($input, $output);
     // Getting doctrine manager
     $em = $this->getContainer()->get('doctrine')->getManager();
     // Turning off doctrine default logs queries for saving memory
     $em->getConnection()->getConfiguration()->setSQLLogger(null);
     // Define the size of record, the frequency for persisting the data and the current index of records
     $size = count($data);
     $batchSize = 10;
     $i = 1;
     // Starting progress
     $progress = new ProgressBar($output, $size);
     $progress->start();
     // Processing on each row of data
     foreach ($data as $row) {
         //Create new collaborator, find his agency
         $collaborator = new Collaborator();
         $agency = $em->getRepository('CharlestownAgencyBundle:Agency')->find($row['code_agence']);
         //Update is infos
         $collaborator->setUsername($row['id']);
         $collaborator->setPlainPassword($row['password']);
         $collaborator->setAgency($agency);
         $collaborator->setEmail($row['mail']);
         $collaborator->setLastName($row['nom']);
         $collaborator->setFirstName($row['prenom']);
         $collaborator->setPortPhoneNumber($row['portable']);
         $collaborator->setPhoneNumber($row['fixe']);
         $collaborator->addRole('ROLE_USER');
         $collaborator->addRole('ROLE_ADMIN');
         $collaborator->addRole('ROLE_AE');
         $collaborator->addRole('ROLE_EVENT');
         $collaborator->setEnabled(true);
         // Persisting the current user
         $em->persist($collaborator);
         // Each 20 users persisted we flush everything
         if ($i % $batchSize === 0) {
             $em->flush();
             // Detaches all objects from Doctrine for memory save
             $em->clear();
             // Advancing for progress display on console
             $progress->advance($batchSize);
             $now = new \DateTime();
             $output->writeln(' of admins imported ... | ' . $now->format('d-m-Y G:i:s'));
         }
         $i++;
     }
     // Flushing and clear data on queue
     $em->flush();
     $em->clear();
     // Ending the progress bar process
     $progress->finish();
 }
Exemplo n.º 10
0
 /**
  * @Route("/", name="homepage")
  */
 public function indexAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $topics = $this->getDoctrine()->getRepository('AppBundle:Topics')->findByTopEighteen();
     $authors = $this->getDoctrine()->getRepository('AppBundle:Authors')->findByTopEighteen();
     $homepic = $this->getDoctrine()->getRepository('AppBundle:Quotes')->findByPicHome(2);
     $date = new \DateTime();
     # todo: rank-aar ne shvvj xaryylax
     $query = $em->createQuery("SELECT p\n            FROM AppBundle:Authors p\n            WHERE p.born LIKE :date")->setParameter('date', '%' . $date->format('-m-d'));
     $birthdays = $query->setMaxResults(5)->getResult();
     // replace this example code with whatever you need
     return $this->render('default/index.html.twig', array('topics' => $topics, 'authors' => $authors, 'birthdays' => $birthdays, 'homepic' => $homepic, 'menu' => '1'));
 }
Exemplo n.º 11
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     // Showing when the script is launched
     $now = new \DateTime();
     $output->writeln('<comment>Start : ' . $now->format('d-m-Y G:i:s') . ' ---</comment>');
     $type = "collaborator";
     $this->import($input, $output, $type);
     $type = "customer";
     $this->import($input, $output, $type);
     // Showing when the script is over
     $now = new \DateTime();
     $output->writeln('<comment>End : ' . $now->format('d-m-Y G:i:s') . ' ---</comment>');
 }
Exemplo n.º 12
0
 /**
  * @Route("/addOrder/{user_id}/{product_id}/{count}")
  */
 public function addOrderAction($user_id, $product_id, $count)
 {
     $date = new \DateTime("now");
     $order = new Order($user_id, $product_id, $date->format('d-m-Y'), $count);
     print_r($order);
     $em = $this->getDoctrine()->getManager();
     $em->persist($order);
     $em->flush();
     $result = array("response" => "true");
     $response = new Response(json_encode($result));
     $response->headers->set('Content-Type', 'application/json');
     return $response;
 }
 /**
  * Displays a form to edit an existing Product entity.
  *
  * @Route("/{id}/edit", name="product_edit")
  * @Method({"GET", "POST"})
  */
 public function editAction(Request $request, Product $product)
 {
     $deleteForm = $this->createDeleteForm($product);
     $editForm = $this->createForm(ProductType::class, $product);
     $editForm->handleRequest($request);
     if ($editForm->isSubmitted() && $editForm->isValid()) {
         $em = $this->getDoctrine()->getManager();
         $nowUtc = new \DateTime('now', new \DateTimeZone('Asia/Dhaka'));
         $product->setDateModified($nowUtc->format("d-M-Y h:i:s"));
         $em->persist($product);
         $em->flush();
         return $this->redirectToRoute('product_edit', array('id' => $product->getId()));
     }
     return $this->render('product/edit.html.twig', array('product' => $product, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView()));
 }
 /**
  * Transforms a value from the transformed representation to its original
  * representation.
  *
  * This method is called when {@link Form::bind()} is called to transform the requests tainted data
  * into an acceptable format for your data processing/model layer.
  *
  * This method must be able to deal with empty values. Usually this will
  * be an empty string, but depending on your implementation other empty
  * values are possible as well (such as empty strings). The reasoning behind
  * this is that value transformers must be chainable. If the
  * reverseTransform() method of the first value transformer outputs an
  * empty string, the second value transformer must be able to process that
  * value.
  *
  * By convention, reverseTransform() should return NULL if an empty string
  * is passed.
  *
  * @param mixed $value The value in the transformed representation
  *
  * @return mixed The value in the original representation
  *
  * @throws UnexpectedTypeException       when the argument is not of the expected type
  * @throws TransformationFailedException when the transformation fails
  */
 public function reverseTransform($value)
 {
     if (!$value instanceof \DateTime) {
         return $value;
     }
     if (null == $value) {
         return null;
     }
     if ($this->widgetType == 'date') {
         $value = new \DateTime($value->format('Y-m-d'));
     }
     if ($this->widgetType == 'time' or $this->widgetType == 'day') {
         $value = new \DateTime('1970-01-01 ' . $value->format('H:i:s'));
     }
     return $value;
 }
Exemplo n.º 15
0
 /**
  * @Route("/addMess/{from}/{to}/{mes}")
  */
 public function addAction($from, $to, $mes)
 {
     $message = new Message();
     $message->setFromId($from);
     $message->setToId($to);
     $message->setMessage($mes);
     $message->setStatus(0);
     $message->setDateTime(new \DateTime("now"));
     $date = new \DateTime("now");
     $date->format('Y-m-d h-m-s');
     print_r($date);
     $mrepo = $this->getDoctrine()->getManager();
     $mrepo->persist($message);
     $mrepo->flush();
     return new Response();
 }
Exemplo n.º 16
0
 public function _header()
 {
     $date = new \DateTime();
     $this->setFont('Arial', 'B', 16);
     $this->cell(0, 8, 'Référence', 0, 1);
     $this->setFont('Arial', '', 16);
     $this->multicell(0, 8, $this->entity->getWork()->getPlace(), 0);
     $this->cell(0, 8, 'Code : ' . $this->entity->getWork()->getDoor()->getCode(), 0);
     $this->cell(0, 8, 'Imprimé le ' . $date->format('d/m/Y'), 0, 1, 'R');
     $quote = $this->entity->getWork()->getQuote();
     if ($quote === null) {
         $this->cell(0, 8, 'Complet', 0, 1, 'R');
     } else {
         $this->cell(0, 8, 'Devis n°' . $quote->getNumber(), 0, 1, 'R');
     }
     if ($this->entity->getTime() > 0) {
         $this->cell(0, 8, 'Temps prévu (heure/technicien) : ' . $this->entity->getTime(), 0, 1, 'R');
     }
     $this->ln(12);
 }
 /**
  * Exibe os detalhes do produto e seuas estatisticas
  *
  * @Route("/{id}", name="produto_show")
  * @Method("GET")
  * @Template()
  */
 public function showAction($id)
 {
     $em = $this->getDoctrine()->getManager();
     $entity = $em->getRepository('ProdutoBundle:Produto')->find($id);
     $data = new \DateTime();
     $data->modify('+1 month');
     //starta o indicador como 0
     $indicador = 0;
     //retorna o indicador baseado no mes seguinte
     $indicadorProxMes = $em->getRepository('ProdutoBundle:EstatisticaMes')->findOneBy(array('mes' => $data->format('m')));
     if (is_object($indicadorProxMes)) {
         $indicador = $indicadorProxMes->getIndicador();
     }
     //Busca o total de vendas dando um SUM pela qtdVenda dos produtos
     $totVendas = $em->getRepository('ProdutoBundle:Produto')->getTotVendas();
     //calculo do mix (tot_venda_produto/tot_venda)
     $mix = $entity->getQtdVenda() / $totVendas * 100;
     //multiplica o mix pelo indicador
     $estatistica = $mix * $indicadorProxMes->getIndicador();
     if (!$entity) {
         throw $this->createNotFoundException('Unable to find Produto entity.');
     }
     $deleteForm = $this->createDeleteForm($id);
     return array('entity' => $entity, 'delete_form' => $deleteForm->createView(), 'indicador' => $indicador, 'tot_vendas' => $totVendas, 'part_produto' => $mix, 'estatistica' => $estatistica);
 }
 public function findCurrentEditionBySchool($schoolId)
 {
     $now = new \DateTime();
     $qb = $this->createQueryBuilder('e')->where('e.dateOfEvent <= :today')->setParameter('today', $now->format("Y-m-d"))->andWhere('e.dateOfEvent >= :fourDaysAgo')->setParameter('fourDaysAgo', $now->modify('-4 day')->format("Y-m-d"))->join('e.schools', 's')->andWhere('s.id = :schoolId')->setParameter('schoolId', $schoolId)->orderBy('e.dateOfEvent', 'DESC');
     return $qb->getQuery()->getSingleResult();
 }
Exemplo n.º 19
0
 public function consultarAction(Request $request)
 {
     $form = $this->createFormBuilder()->add('fechas', 'text', array('label' => 'Rango de Fechas', 'attr' => array('placeholder' => 'Seleccione las fechas', 'describedby' => 'basic-addon1')))->add('categoria', 'entity', array('label' => 'Categoría de la Habitación', 'class' => 'LIHotelBundle:CategoriaHabitacion', 'choice_label' => 'nombre'))->add('tipo', 'entity', array('label' => 'Tipo de la Habitación', 'class' => 'LIHotelBundle:TipoHabitacion', 'choice_label' => 'nombre'))->add('cant_personas', 'integer', array('label' => 'Cantidad de Personas', 'data' => 1, 'precision' => 0))->setMethod('POST')->setAction($this->generateUrl('LIHotelBundle_consultar'))->add('submit', 'submit', array('label' => 'Realizar Consulta', 'attr' => array('class' => 'btn btn-success btn-block')))->getForm();
     $habitaciones_disponibles = [];
     $costo_disponibles = [];
     $estadiaenDias = 0;
     $form->handleRequest($request);
     if ($form->isValid()) {
         $data = $form->getData();
         /* Obteniendo los datos del formulario */
         $fechas = $data['fechas'];
         $categoria = $data['categoria'];
         $tipo = $data['tipo'];
         $personas = $data['cant_personas'];
         $fecha_a = substr($fechas, 0, 10);
         $fecha_b = substr($fechas, 14, 24);
         $fecha_inicio = new \DateTime($fecha_a);
         $fecha_final = new \DateTime($fecha_b);
         $estadiaenDias = $this->cantidad_dias($fecha_inicio, $fecha_final);
         $em = $this->getDoctrine()->getManager();
         $habitaciones_tipo = $em->getRepository('LIHotelBundle:Tipo')->habitaciones_tipo($tipo->getId(), $categoria->getId());
         foreach ($habitaciones_tipo as $tipos) {
             $habitacion = $em->getRepository('LIHotelBundle:Habitacion')->habitacion_por_tipo($tipos->getId());
             foreach ($habitacion as $room) {
                 // Estas son las habitaciones del tipo y categoria especificadas por el usuario
                 //Ahora tengo que buscar todas sus reservas
                 $reservas = $em->getRepository('LIHotelBundle:Reserva')->reservas_habitacion($room->getId());
                 if (sizeof($reservas) == 0) {
                     $cantidad = $em->getRepository('LIHotelBundle:OcupacionHabitacion')->obtener_ocupacion($tipo, $categoria->getId());
                     foreach ($cantidad as $key) {
                         if ($key->getCantidadPersonasHabitacion() >= $personas) {
                             $tipo_aux = $room->getTipo()->getTipoHabitacion()->getPrecio();
                             $categoria_aux = $room->getTipo()->getCategoriaHabitacion()->getPrecio();
                             $habitaciones_disponibles[] = [$room->getNombre(), $this->cantidad_dias($fecha_inicio, $fecha_final) * $tipo_aux * $categoria_aux];
                         } else {
                             $this->get('session')->getFlashBag()->add('consulta_info', 'No se ha encontrado habitación debido a la cantidad de personas que indicó. Intente con una cantidad menor.');
                         }
                     }
                 } else {
                     $cantidad = $em->getRepository('LIHotelBundle:OcupacionHabitacion')->obtener_ocupacion($tipo, $categoria->getId());
                     foreach ($cantidad as $key) {
                         if ($key->getCantidadPersonasHabitacion() >= $personas) {
                             foreach ($reservas as $reserva) {
                                 // si la reserva no está cancelada, solo queda ver si ya culmino, está en eso o por concretar
                                 if ($reserva->getEstadoReserva() != 'Cancelada') {
                                     //Escogiendo las cantidades permitidas de personas en las habitaciones
                                     $cantidad = $em->getRepository('LIHotelBundle:OcupacionHabitacion')->obtener_ocupacion($tipo->getId(), $categoria->getId());
                                     foreach ($cantidad as $key) {
                                         // Segun la cantidad
                                         if ($key->getCantidadPersonasHabitacion() >= $personas) {
                                             $dias_reserva = $reserva->getDiasReserva() - 1;
                                             $fecha_reserva = $reserva->getFechaDesde();
                                             $fecha_inicio_ = new \DateTime($fecha_reserva->format('Y-m-d'));
                                             $fecha_final_ = new \DateTime($fecha_inicio_->format('Y-m-d'));
                                             $fecha_final_->add(new \DateInterval('P' . $dias_reserva . 'D'));
                                             $puede = true;
                                             if ($fecha_inicio > $fecha_inicio_ && $fecha_inicio < $fecha_final_) {
                                                 $puede = false;
                                                 $this->get('session')->getFlashBag()->add('consulta_info', 'No hay habitación diponible en la fecha indicada.');
                                             }
                                             if ($fecha_final > $fecha_inicio_ && $fecha_final < $fecha_final_) {
                                                 $puede = false;
                                                 $this->get('session')->getFlashBag()->add('consulta_info', 'No hay habitación diponible en la fecha indicada.');
                                             }
                                             if ($fecha_inicio_ > $fecha_inicio && $fecha_inicio_ < $fecha_final) {
                                                 $puede = false;
                                                 $this->get('session')->getFlashBag()->add('consulta_info', 'No hay habitación diponible en la fecha indicada.');
                                             }
                                             if ($fecha_inicio == $fecha_inicio_) {
                                                 $puede = false;
                                             }
                                             if ($fecha_inicio == $fecha_final_) {
                                                 $puede = false;
                                             }
                                             if ($fecha_final == $fecha_inicio_) {
                                                 $puede = false;
                                             }
                                             if ($fecha_final == $fecha_final_) {
                                                 $puede = false;
                                             }
                                             if ($puede) {
                                                 $insertar = true;
                                                 $tipo_aux = $room->getTipo()->getTipoHabitacion()->getPrecio();
                                                 $categoria_aux = $room->getTipo()->getCategoriaHabitacion()->getPrecio();
                                                 for ($i = 0; $i < sizeof($habitaciones_disponibles); $i++) {
                                                     if ($habitaciones_disponibles[$i][0] == $room->getNombre()) {
                                                         $insertar = false;
                                                     }
                                                 }
                                                 if ($insertar) {
                                                     $habitaciones_disponibles[] = [$room->getNombre(), $this->cantidad_dias($fecha_inicio, $fecha_final) * $tipo_aux * $categoria_aux];
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $this->render('LIHotelBundle:Inicio:consultar.html.twig', array('form' => $form->createView(), 'habitaciones_disponibles' => $habitaciones_disponibles, 'estadia' => $estadiaenDias));
 }
Exemplo n.º 20
0
 public function StatistiquesAction()
 {
     $em = $this->getDoctrine()->getManager();
     $statistiques = $em->getRepository('UserBundle:Statistiques');
     $organismes = $em->getRepository('AppBundle:Organisme')->findAll();
     $date = new \DateTime();
     $years = $date->format('Y-m-d');
     $years = substr($years, 0, 4);
     $statistiques_par_mois_global = $statistiques->getStatistiquesParMois($years);
     $statistiques_par_mois_accueil = $statistiques->getStatistiquesParMoisAccueil($years);
     $statistiques_par_mois_ged = $statistiques->getStatistiquesParMoisGed($years);
     $statistiques_par_mois_formation = $statistiques->getStatistiquesParMoisFormation($years);
     $statistiques_par_mois_emploi = $statistiques->getStatistiquesParMoisEmploi($years);
     $statistiques_par_mois_annuaire = $statistiques->getStatistiquesParMoisAnnuaire($years);
     $statistiques_par_mois_dialogue = $statistiques->getStatistiquesParMoisDialogue($years);
     $statistiques_par_mois_agenda = $statistiques->getStatistiquesParMoisAgenda($years);
     $data_global = array('janvier' => 0, 'fevrier' => 0, 'mars' => 0, 'avril' => 0, 'mai' => 0, 'juin' => 0, 'juillet' => 0, 'aout' => 0, 'septembre' => 0, 'octobre' => 0, 'novembre' => 0, 'decembre' => 0);
     foreach ($statistiques_par_mois_global as $statistique_par_mois_global) {
         $month = substr($statistique_par_mois_global['month'], 5, 6);
         if ($month == 1) {
             $data_global['janvier'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 2) {
             $data_global['fevrier'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 3) {
             $data_global['mars'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 4) {
             $data_global['avril'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 5) {
             $data_global['mai'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 6) {
             $data_global['juin'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 7) {
             $data_global['juillet'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 8) {
             $data_global['aout'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 9) {
             $data_global['septembre'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 10) {
             $data_global['octobre'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 11) {
             $data_global['novembre'] = $statistique_par_mois_global['visites'];
         }
         if ($month == 12) {
             $data_global['decembre'] = $statistique_par_mois_global['visites'];
         }
     }
     $data_accueil = array('janvier' => 0, 'fevrier' => 0, 'mars' => 0, 'avril' => 0, 'mai' => 0, 'juin' => 0, 'juillet' => 0, 'aout' => 0, 'septembre' => 0, 'octobre' => 0, 'novembre' => 0, 'decembre' => 0);
     foreach ($statistiques_par_mois_accueil as $statistique_par_mois_accueil) {
         $month = substr($statistique_par_mois_accueil['month'], 5, 6);
         if ($month == 1) {
             $data_accueil['janvier'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 2) {
             $data_accueil['fevrier'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 3) {
             $data_accueil['mars'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 4) {
             $data_accueil['avril'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 5) {
             $data_accueil['mai'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 6) {
             $data_accueil['juin'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 7) {
             $data_accueil['juillet'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 8) {
             $data_accueil['aout'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 9) {
             $data_accueil['septembre'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 10) {
             $data_accueil['octobre'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 11) {
             $data_accueil['novembre'] = $statistique_par_mois_accueil['visites'];
         }
         if ($month == 12) {
             $data_accueil['decembre'] = $statistique_par_mois_accueil['visites'];
         }
     }
     $data_ged = array('janvier' => 0, 'fevrier' => 0, 'mars' => 0, 'avril' => 0, 'mai' => 0, 'juin' => 0, 'juillet' => 0, 'aout' => 0, 'septembre' => 0, 'octobre' => 0, 'novembre' => 0, 'decembre' => 0);
     foreach ($statistiques_par_mois_ged as $statistique_par_mois_ged) {
         $month = substr($statistique_par_mois_ged['month'], 5, 6);
         if ($month == 1) {
             $data_ged['janvier'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 2) {
             $data_ged['fevrier'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 3) {
             $data_ged['mars'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 4) {
             $data_ged['avril'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 5) {
             $data_ged['mai'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 6) {
             $data_ged['juin'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 7) {
             $data_ged['juillet'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 8) {
             $data_ged['aout'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 9) {
             $data_ged['septembre'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 10) {
             $data_ged['octobre'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 11) {
             $data_ged['novembre'] = $statistique_par_mois_ged['visites'];
         }
         if ($month == 12) {
             $data_ged['decembre'] = $statistique_par_mois_ged['visites'];
         }
     }
     $data_formation = array('janvier' => 0, 'fevrier' => 0, 'mars' => 0, 'avril' => 0, 'mai' => 0, 'juin' => 0, 'juillet' => 0, 'aout' => 0, 'septembre' => 0, 'octobre' => 0, 'novembre' => 0, 'decembre' => 0);
     foreach ($statistiques_par_mois_formation as $statistique_par_mois_formation) {
         $month = substr($statistique_par_mois_formation['month'], 5, 6);
         if ($month == 1) {
             $data_formation['janvier'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 2) {
             $data_formation['fevrier'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 3) {
             $data_formation['mars'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 4) {
             $data_formation['avril'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 5) {
             $data_formation['mai'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 6) {
             $data_formation['juin'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 7) {
             $data_formation['juillet'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 8) {
             $data_formation['aout'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 9) {
             $data_formation['septembre'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 10) {
             $data_formation['octobre'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 11) {
             $data_formation['novembre'] = $statistique_par_mois_formation['visites'];
         }
         if ($month == 12) {
             $data_formation['decembre'] = $statistique_par_mois_formation['visites'];
         }
     }
     $data_emploi = array('janvier' => 0, 'fevrier' => 0, 'mars' => 0, 'avril' => 0, 'mai' => 0, 'juin' => 0, 'juillet' => 0, 'aout' => 0, 'septembre' => 0, 'octobre' => 0, 'novembre' => 0, 'decembre' => 0);
     foreach ($statistiques_par_mois_emploi as $statistique_par_mois_emploi) {
         $month = substr($statistique_par_mois_emploi['month'], 5, 6);
         if ($month == 1) {
             $data_emploi['janvier'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 2) {
             $data_emploi['fevrier'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 3) {
             $data_emploi['mars'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 4) {
             $data_emploi['avril'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 5) {
             $data_emploi['mai'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 6) {
             $data_emploi['juin'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 7) {
             $data_emploi['juillet'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 8) {
             $data_emploi['aout'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 9) {
             $data_emploi['septembre'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 10) {
             $data_emploi['octobre'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 11) {
             $data_emploi['novembre'] = $statistique_par_mois_emploi['visites'];
         }
         if ($month == 12) {
             $data_emploi['decembre'] = $statistique_par_mois_emploi['visites'];
         }
     }
     $data_annuaire = array('janvier' => 0, 'fevrier' => 0, 'mars' => 0, 'avril' => 0, 'mai' => 0, 'juin' => 0, 'juillet' => 0, 'aout' => 0, 'septembre' => 0, 'octobre' => 0, 'novembre' => 0, 'decembre' => 0);
     foreach ($statistiques_par_mois_annuaire as $statistique_par_mois_annuaire) {
         $month = substr($statistique_par_mois_annuaire['month'], 5, 6);
         if ($month == 1) {
             $data_annuaire['janvier'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 2) {
             $data_annuaire['fevrier'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 3) {
             $data_annuaire['mars'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 4) {
             $data_annuaire['avril'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 5) {
             $data_annuaire['mai'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 6) {
             $data_annuaire['juin'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 7) {
             $data_annuaire['juillet'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 8) {
             $data_annuaire['aout'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 9) {
             $data_annuaire['septembre'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 10) {
             $data_annuaire['octobre'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 11) {
             $data_annuaire['novembre'] = $statistique_par_mois_annuaire['visites'];
         }
         if ($month == 12) {
             $data_annuaire['decembre'] = $statistique_par_mois_annuaire['visites'];
         }
     }
     $data_dialogue = array('janvier' => 0, 'fevrier' => 0, 'mars' => 0, 'avril' => 0, 'mai' => 0, 'juin' => 0, 'juillet' => 0, 'aout' => 0, 'septembre' => 0, 'octobre' => 0, 'novembre' => 0, 'decembre' => 0);
     foreach ($statistiques_par_mois_dialogue as $statistique_par_mois_dialogue) {
         $month = substr($statistique_par_mois_dialogue['month'], 5, 6);
         if ($month == 1) {
             $data_dialogue['janvier'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 2) {
             $data_dialogue['fevrier'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 3) {
             $data_dialogue['mars'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 4) {
             $data_dialogue['avril'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 5) {
             $data_dialogue['mai'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 6) {
             $data_dialogue['juin'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 7) {
             $data_dialogue['juillet'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 8) {
             $data_dialogue['aout'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 9) {
             $data_dialogue['septembre'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 10) {
             $data_dialogue['octobre'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 11) {
             $data_dialogue['novembre'] = $statistique_par_mois_dialogue['visites'];
         }
         if ($month == 12) {
             $data_dialogue['decembre'] = $statistique_par_mois_dialogue['visites'];
         }
     }
     $data_agenda = array('janvier' => 0, 'fevrier' => 0, 'mars' => 0, 'avril' => 0, 'mai' => 0, 'juin' => 0, 'juillet' => 0, 'aout' => 0, 'septembre' => 0, 'octobre' => 0, 'novembre' => 0, 'decembre' => 0);
     foreach ($statistiques_par_mois_agenda as $statistique_par_mois_agenda) {
         $month = substr($statistique_par_mois_agenda['month'], 5, 6);
         if ($month == 1) {
             $data_agenda['janvier'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 2) {
             $data_agenda['fevrier'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 3) {
             $data_agenda['mars'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 4) {
             $data_agenda['avril'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 5) {
             $data_agenda['mai'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 6) {
             $data_agenda['juin'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 7) {
             $data_agenda['juillet'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 8) {
             $data_agenda['aout'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 9) {
             $data_agenda['septembre'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 10) {
             $data_agenda['octobre'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 11) {
             $data_agenda['novembre'] = $statistique_par_mois_agenda['visites'];
         }
         if ($month == 12) {
             $data_agenda['decembre'] = $statistique_par_mois_agenda['visites'];
         }
     }
     //        foreach ($organismes as $organisme)
     //        {
     //            foreach ($statistiques_par_mois_accueil as $statistique_par_mois_accueil)
     //            {
     //                if (in_array($organisme->getNom(), $statistique_par_mois_accueil))
     //                {
     //                    $plop = array_combine($organisme->getNom(), $statistique_par_mois_accueil);
     //                }
     //            }
     //        }
     //        $organismes = [];
     //        foreach ($statistiques_organisme as $statistique_organisme){
     //            $organismes[] = $statistique_organisme->getUser()->getIdOrganisme()->getNom();
     //        }
     //
     //        $statistiques_organisme_par_mois = array_count_values($organismes);
     //
     //        $statistiques_par_mois = $statistiques->findBy(array(), array('date' => 'ASC'));
     $janvier = [];
     $fevrier = [];
     $mars = [];
     $avril = [];
     $mai = [];
     $juin = [];
     $juillet = [];
     $aout = [];
     $septembre = [];
     $octobre = [];
     $novembre = [];
     //        $decembre = [];
     //        foreach ($statistiques_par_mois as $statistique_par_moi)
     //        {
     //            if (
     //                $statistique_par_moi->getDate()->getTimestamp() > new \DateTime('2016-01-01') &&
     //                $statistique_par_moi->getDate()->getTimestamp() < new \DateTime('2016-01-31'))
     //            {
     //                $janvier = $statistique_par_moi;
     //            }
     //
     //        }
     //        array(
     //
     //            array('stat1', '01/01/50', 'flkrepof')
     //            array('stat1', '03/01/50', 'flkrepof')
     //            array('stat1', '01/06/50', 'flkrepof')
     //            array('stat1', '01/01/50', 'flkrepof')
     //            array('stat1', '01/01/50', 'flkrepof')
     //
     //        )
     //
     //        $organismes = [];
     //        foreach ($statistiques_organisme as $statistique_organisme){
     //            $organismes[] = $statistique_organisme->getUser()->getIdOrganisme()->getNom();
     //        }
     //
     //        $statistiques_organisme_par_mois = array_count_values($organismes);
     return $this->render('AppBundle:statistiques:index.html.twig', array('statistiques_par_mois_global' => $statistiques_par_mois_global, 'data_global' => json_encode($data_global), 'data_accueil' => json_encode($data_accueil), 'data_ged' => json_encode($data_ged), 'data_formation' => json_encode($data_formation), 'data_emploi' => json_encode($data_emploi), 'data_annuaire' => json_encode($data_annuaire), 'data_dialogue' => json_encode($data_dialogue), 'data_agenda' => json_encode($data_agenda)));
 }
Exemplo n.º 21
0
 protected function configure()
 {
     $date = new \DateTime();
     $date->sub(new \DateInterval('P1M'));
     $this->setName('castle:prune')->setDescription('Prune atom entities by date')->addArgument('date', InputArgument::OPTIONAL, 'Prune date', $date->format('Y-m-d'));
 }
Exemplo n.º 22
0
 /**
  * @Route("/create", name="admin.frontend.attendance.create")
  * @Template()
  */
 public function createAction(Request $request)
 {
     $breadcrumbs = $this->get("white_october_breadcrumbs");
     $breadcrumbs->addItem('Dashboard', $this->get("router")->generate("admin.frontend.dashboard"));
     $breadcrumbs->addItem('Attendance', $this->get("router")->generate("admin.frontend.attendance.index"));
     $breadcrumbs->addItem('Week of attendance');
     $session = $this->get('session');
     $staffId = $session->get('staffId');
     $week = $session->get('week');
     /** @var  $em EntityManager */
     $em = $this->getDoctrine()->getManager();
     /** @var  $staff Staff */
     $staff = null;
     if ($staffId) {
         $staff = $em->getRepository('AdminFrontendBundle:Staff')->find($staffId);
     }
     $selectDate = new \DateTime($week);
     $filterForm = $this->createForm(AttendanceCreateFilterType::class, ['staff' => $staff, 'week' => $week]);
     $filterForm->handleRequest($request);
     if ($filterForm->isSubmitted() && $filterForm->isValid()) {
         $staff = $filterForm->get('staff')->getData();
         $week = $filterForm->get('week')->getData();
         $session->set('staffId', $staff->getId());
         $session->set('week', $week);
         return $this->redirect($this->generateUrl('admin.frontend.attendance.create'));
     }
     $form = null;
     $weekDates = [];
     if ($staff && $week) {
         $data = [];
         $week = $selectDate->format("W");
         $week_number = $week;
         $year = $selectDate->format('Y');
         for ($day = 0; $day < 7; $day++) {
             $date = date('Y-m-d', strtotime($year . "W" . $week_number . ($day + 1)));
             $dateFormat = date('d.m.Y', strtotime($year . "W" . $week_number . ($day + 1)));
             $weekDates[] = $dateFormat;
             $qb = $em->createQueryBuilder();
             $query = $qb->select('a')->from('AdminFrontendBundle:Attendance', 'a')->where('a.staff = :staff')->andWhere('DATE(a.startTime) = :startTime')->setParameter('startTime', $date)->setParameter('staff', $staff);
             $results = $query->getQuery()->getResult();
             for ($i = 0; $i < 5; $i++) {
                 /** @var  $attendance Attendance */
                 $attendance = isset($results[$i]) ? $results[$i] : null;
                 $project = $attendance ? $attendance->getProject() : null;
                 $timeFrom = $attendance ? $attendance->getStartTime()->format('H:i') : null;
                 $timeTo = $attendance ? $attendance->getEndTime()->format('H:i') : null;
                 $km = $attendance ? $attendance->getAmountOfKm() : null;
                 $payType = $attendance ? $attendance->getPayType() : null;
                 $data['project_' . $i . '_' . $day] = $project;
                 $data['time_from_' . $i . '_' . $day] = $timeFrom;
                 $data['time_to_' . $i . '_' . $day] = $timeTo;
                 $data['km_' . $i . '_' . $day] = $km;
                 $data['pay_type_' . $i . '_' . $day] = $payType;
             }
         }
         $form = $this->createForm(AttendaceType::class, $data, ['weekDates' => $weekDates]);
         $form->handleRequest($request);
         if ($form->isSubmitted()) {
             if ($form->isValid()) {
                 for ($day = 0; $day < 7; $day++) {
                     $date = date('Y-m-d', strtotime($year . "W" . $week_number . ($day + 1)));
                     $qb = $em->createQueryBuilder();
                     $query = $qb->select('a')->from('AdminFrontendBundle:Attendance', 'a')->where('a.staff = :staff')->andWhere('DATE(a.startTime) = :startTime')->setParameter('startTime', $date)->setParameter('staff', $staff);
                     $results = $query->getQuery()->getResult();
                     /** @var  $attendance Attendance */
                     foreach ($results as $attendance) {
                         $attendanceLog = new AttendanceLog();
                         if ($attendance->getAmountOfKm()) {
                             $attendanceLog->setAmountOfKm($attendance->getAmountOfKm());
                         }
                         $attendanceLog->setCreatedAt(new \DateTime());
                         $attendanceLog->setEndTime($attendance->getEndTime());
                         $attendanceLog->setStartTime($attendance->getStartTime());
                         $attendanceLog->setnoInvoiced($attendance->getnoInvoiced());
                         $attendanceLog->setProject($attendance->getProject());
                         $attendanceLog->setStaff($attendance->getStaff());
                         $attendanceLog->setUser($this->getUser());
                         $attendanceLog->setDeleted(true);
                         $em->persist($attendanceLog);
                         $em->remove($attendance);
                         $em->flush();
                     }
                     for ($index = 0; $index < 5; $index++) {
                         $projecField = 'project_' . $index . '_' . $day;
                         $timeFromField = 'time_from_' . $index . '_' . $day;
                         $timeToField = 'time_to_' . $index . '_' . $day;
                         $kmField = 'km_' . $index . '_' . $day;
                         $payTypeField = 'pay_type_' . $index . '_' . $day;
                         /** @var  $project Project */
                         $project = $form->has($projecField) ? $form->get($projecField)->getData() : null;
                         $timeFrom = $form->has($timeFromField) ? $form->get($timeFromField)->getData() : null;
                         $timeTo = $form->has($timeToField) ? $form->get($timeToField)->getData() : null;
                         $km = $form->has($kmField) ? $form->get($kmField)->getData() : null;
                         $payType = $form->has($payTypeField) ? $form->get($payTypeField)->getData() : null;
                         if ($project && $timeFrom && $timeTo) {
                             $timeFromDate = new \DateTime($date . ' ' . $timeFrom . ':00');
                             $timeToDate = new \DateTime($date . ' ' . $timeTo . ':00');
                             if ($timeToDate < $timeFromDate) {
                                 $timeToDate->modify('+1 day');
                             }
                             $attendance = new Attendance();
                             $attendance->setProject($project);
                             $attendance->setStaff($staff);
                             $attendance->setStartTime($timeFromDate);
                             $attendance->setEndTime($timeToDate);
                             $attendance->setUser($this->getUser());
                             $attendance->setCreatedAt(new \DateTime());
                             $attendance->setPayType($payType);
                             if ($km) {
                                 $attendance->setAmountOfKm($km);
                             }
                             $em->persist($attendance);
                             $attendanceLog = new AttendanceLog();
                             if ($km) {
                                 $attendanceLog->setAmountOfKm($km);
                             }
                             $attendanceLog->setCreatedAt(new \DateTime());
                             $attendanceLog->setEndTime($attendance->getEndTime());
                             $attendanceLog->setStartTime($attendance->getStartTime());
                             $attendanceLog->setnoInvoiced($attendance->getnoInvoiced());
                             $attendanceLog->setProject($attendance->getProject());
                             $attendanceLog->setStaff($attendance->getStaff());
                             $attendanceLog->setUser($this->getUser());
                             $attendanceLog->setDeleted(false);
                             $em->persist($attendanceLog);
                             $em->flush();
                         }
                     }
                 }
                 $this->addFlash('success', $this->get('translator')->trans('Attendance was save'));
                 return $this->redirect($this->generateUrl('admin.frontend.attendance.create'));
             }
         }
     }
     return ['form' => $form ? $form->createView() : $form, 'filterForm' => $filterForm->createView(), 'selectedDate' => $selectDate->format('Y-m-d'), 'weekDates' => $weekDates, 'staff' => $staff];
 }
Exemplo n.º 23
0
 /** Part 3.1, display previous day (redirect to part 2) -------------------------
  * @Route("/previous/{swissDate}", name="tixiapi_dispo_dailyplan_edit_previous")
  * @Method({"GET","POST"})
  * @param Request $request
  * @param mixed $swissDate
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function getDailyPlanEditPreviousAction(Request $request, $swissDate)
 {
     $today = new \DateTime();
     $date = $this->swissDateToDate($swissDate);
     $date->sub(new \DateInterval('P1D'));
     /** @var WorkingDayRepository $workingDayRepository */
     $workingDayRepository = $this->get('workingday_repository');
     $workingDay = $workingDayRepository->findWorkingDayByDate($date);
     if (null !== $workingDay && $today->format('Ym') <= $date->format('Ym')) {
         return $this->redirect($this->generateUrl('tixiapi_dispo_dailyplan_edit_swissdate', array('swissDate' => $date->format('d.m.Y'))));
     }
     // do nothing, redirect to same date
     return $this->redirect($this->generateUrl('tixiapi_dispo_dailyplan_edit_swissdate', array('swissDate' => $swissDate)));
 }
Exemplo n.º 24
0
 /**
  * @Route("/issue/add/{id}", name="_addIssues")
  * @Template("TrackersBundle:Issues:add.html.twig")
  */
 public function addAction($id)
 {
     $issue = new Project_issues();
     $times = new \DateTime();
     $date = $times->format('Y-m-d');
     $time = $times->format('h:i:s');
     if ($this->getRequest()->getMethod() == 'POST') {
         $requestData = $this->getRequest()->request;
         $attachments = $requestData->get('attachments');
         $form = $requestData->get('form');
         $date = $requestData->get('date');
         $time = '0:0:0';
         //$requestData->get('time');
         $arr_date = explode('-', $date);
         $arr_time = explode(':', $time);
         $date_time = new \DateTime("now");
         $date_time->setDate($arr_date[0], $arr_date[1], $arr_date[2]);
         $date_time->setTime($arr_time[0], $arr_time[1], $arr_time[2]);
         $issue->setTitle($form['title']);
         $issue->setDescription($form['description']);
         $issue->setAssignedTo(0);
         $issue->setStatus($form['status']);
         $issue->setEndTime($date_time);
         $issue->setCreated(new \DateTime("now"));
         $issue->setModified(new \DateTime("now"));
         $issue->setProjectId($id);
         $issue->setCreatedBy($this->getUser()->getId());
         $em = $this->getDoctrine()->getManager();
         $em->persist($issue);
         $em->flush();
         if (!empty($attachments)) {
             foreach ($attachments as $file) {
                 $repository = $this->getDoctrine()->getRepository('TrackersBundle:Projects_issues_attachments');
                 $files = $repository->find($file);
                 $files->setIssueId($issue->getId());
                 $em->persist($files);
                 $em->flush();
             }
         }
         $users_activity = new Users_activity();
         $users_activity->setUserId($this->getUser()->getId());
         $users_activity->setParentId($id);
         $users_activity->setItemId($issue->getId());
         $users_activity->setTypeId(1);
         $users_activity->setCreatedAt(new \DateTime("now"));
         $em->persist($users_activity);
         $em->flush();
         if (!empty($form['assigned_to'])) {
             foreach ($form['assigned_to'] as $assigned) {
                 $project_issue_assignments = new Project_issue_assignments();
                 $project_issue_assignments->setUserId($assigned);
                 $project_issue_assignments->setIssueId($issue->getId());
                 $em->persist($project_issue_assignments);
                 $em->flush();
                 $repository = $this->getDoctrine()->getRepository('TrackersBundle:UserDetail');
                 $users = $repository->findBy(array('user_id' => $this->getUser()->getId()));
                 $user = $users[0];
                 $notifications = new Notifications();
                 $notifications->setUserId($assigned);
                 $notifications->setIssueId($issue->getId());
                 $notifications->setProjectId($id);
                 $notifications->setCreated(new \DateTime("now"));
                 $notifications->setIsRead(false);
                 $notifications->setText('You have assign issue with title ' . $form['title'] . ' from ' . $user->getFirstname() . ' ' . $user->getLastname());
                 $em->persist($notifications);
                 $em->flush();
             }
         }
         $this->get('session')->getFlashBag()->add('notice', 'Issue is successfully added!');
         return $this->redirectToRoute('_addIssues', array('id' => $id));
     }
     $em = $this->getDoctrine()->getEntityManager();
     $query = $em->createQuery("SELECT n.firstname , n.lastname , n.user_id  FROM TrackersBundle:UserDetail n, TrackersBundle:User_projects u WHERE  u.userId = n.user_id AND u.projectId = :project_id")->setParameter('project_id', $id);
     $entities = $query->getResult();
     $arr = array();
     foreach ($entities as $post) {
         $arr[$post['user_id']] = $post['firstname'] . " " . $post['lastname'];
     }
     $form = $this->createFormBuilder($issue)->add('title', 'text', array('label' => 'Tile', 'required' => true))->add('description', 'textarea', array('required' => false, 'label' => 'Description', 'attr' => array('class' => 'editor', 'id' => 'editor')))->add('assigned_to', 'choice', array('choices' => $arr, 'multiple' => true, 'required' => false, 'label' => 'Assigned To', 'attr' => array('multiple' => 'multiple', 'class' => 'chzn-select'), 'empty_data' => null))->add('status', 'choice', array('choices' => array('OPEN' => 'OPEN', 'HOLD' => 'HOLD', 'INPROGRESS' => 'INPROGRESS', 'CLOSED' => 'CLOSED', 'FINISHED' => 'FINISHED'), 'label' => 'Status'))->getForm();
     return array('form' => $form->createView(), 'project_id' => $id, 'date' => $date, 'time' => $time);
 }
Exemplo n.º 25
0
 /**
  * @param \DateTime $date
  * @return bool
  */
 public function isOpen(\DateTime $date = null)
 {
     if ($date === null) {
         $date = new \DateTime();
     }
     $week = $this->toArray();
     $day = strtolower($date->format('w'));
     /** @var OpeningHours $today */
     $today = $week[$day];
     if (!$today->getClosed()) {
         $opening = clone $date;
         $closing = clone $date;
         $opening->modify('today ' . $today->getOpens());
         $closing->modify('today ' . $today->getCloses());
         if ($closing < $opening) {
             $closing->modify('+1 day');
         }
         if ($date >= $opening && $date < $closing) {
             return true;
         }
     }
     if ($day - 1 < 0) {
         /** @var OpeningHours $yesterday */
         $today = $week[6];
     } else {
         $today = $week[$day - 1];
     }
     if (!$today->getClosed()) {
         $opening = clone $date;
         $closing = clone $date;
         $opening->modify('yesterday ' . $today->getOpens());
         $closing->modify('yesterday ' . $today->getCloses());
         if ($closing < $opening) {
             $closing->modify('+1 day');
         }
         if ($date >= $opening && $date < $closing) {
             return true;
         }
     }
     return false;
 }
Exemplo n.º 26
0
 /**
  * @Template()
  * Note la meteo: pluie + soleil
  * http://localhost/Wind/web/app_dev.php/admin/BO/ajax/spot/meteo/note/save/1
  */
 public function spotSaveMeteoNoteAction($id)
 {
     $em = $this->container->get('doctrine.orm.entity_manager');
     $spot = $em->find('LaPoizWindBundle:Spot', $id);
     if (!$spot) {
         return $this->container->get('templating')->renderResponse('LaPoizWindBundle:Default:errorBlock.html.twig', array('errMessage' => "Spot not find !"));
     }
     $tabNotes = array();
     $tabListePrevisionDate = array();
     // tableau des liste des PrevisionDate, cahque cellule correspondant à une dateprev
     // Pour les 7 prochains jours
     $day = new \DateTime("now");
     for ($nbPrevision = 0; $nbPrevision < 7; $nbPrevision++) {
         $tabNotes[$day->format('Y-m-d')] = -1;
         $tabListePrevisionDate[$day->format('Y-m-d')] = array();
         $day->modify('+1 day');
     }
     //********** Meteo **********
     // On efface les vielle données
     ManageNote::deleteOldData($spot, $em);
     //list des PrevisionDate pour les prochain jour, pour le spot pour tous les websites
     $listALlPrevisionDate = $this->getDoctrine()->getRepository('LaPoizWindBundle:PrevisionDate')->getPrevDateAllWebSiteNextDays($spot);
     foreach ($listALlPrevisionDate as $previsionDate) {
         // ajouter au tableau de la cellule du jour de $tabListePrevisionDate
         $tabListePrevisionDate[$previsionDate->getDatePrev()->format('Y-m-d')][] = $previsionDate;
     }
     foreach ($tabNotes as $keyDate => $note) {
         if ($tabListePrevisionDate[$keyDate] != null && count($tabListePrevisionDate[$keyDate]) > 0) {
             $noteDate = ManageNote::getNotesDate($spot, \DateTime::createFromFormat('Y-m-d', $keyDate), $em);
             $noteDate->setNoteMeteo(NoteMeteo::calculNoteMeteo($tabListePrevisionDate[$keyDate]));
             $noteDate->setNoteWind(NoteWind::calculNoteWind($tabListePrevisionDate[$keyDate]));
             $noteDate->setNoteTemp(NoteTemp::calculNoteTemp($tabListePrevisionDate[$keyDate]));
             $em->persist($noteDate);
         }
     }
     $em->flush();
     return $this->container->get('templating')->renderResponse('LaPoizWindBundle:BackOffice/Spot/Ajax:displayNote.html.twig', array('spot' => $spot, 'message' => "", 'saveSuccess' => true));
 }
 /**
  * @Route("/quotes/{year}", name="state_quotes")
  * @Template()
  * @Secure(roles="ROLE_USER")
  */
 public function quotesAction($year = null)
 {
     $date = new \DateTime();
     $maxyear = $date->format('Y');
     $year = $year === null ? $maxyear : $year;
     $em = $this->getDoctrine()->getManager();
     $sends = $em->getRepository('JLMCommerceBundle:Quote')->getSends($year);
     $givens = $em->getRepository('JLMCommerceBundle:Quote')->getGivens($year);
     $givensCompare = array();
     if ($year > 2013) {
         $givensCompare = $em->getRepository('JLMCommerceBundle:Quote')->getGivens($year - 1);
     }
     //    	var_dump($sends); exit;
     return array('sends' => $sends, 'givens' => $givens, 'givensy1' => $givensCompare, 'year' => $year, 'maxyear' => $maxyear);
 }
Exemplo n.º 28
0
 public function comprobarLicitacionesFecha()
 {
     $fecha = new \DateTime('now');
     $contarLicitacion = $this->em->createQuery('SELECT COUNT(x.nombre) FROM AppMediBundle:Licitacion x WHERE x.fechaTermino < :fecha AND x.estado IN (1,2)')->setParameter('fecha', $fecha->format('Y-m-d H:i:s'));
     $contarLicitacion = $contarLicitacion->getSingleScalarResult();
     return $contarLicitacion;
 }
Exemplo n.º 29
0
 /**
  * @param FormBuilderInterface $builder
  * @param array $options
  */
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $date = new \DateTime();
     $serial = new Serial();
     $builder->add('title')->add('description')->add('image', 'comur_image', ['required' => true, 'uploadConfig' => array('uploadRoute' => 'comur_api_upload', 'uploadUrl' => $serial->getUploadRootDir(), 'webDir' => $serial->getUploadDir(), 'fileExt' => '*.jpg;*.gif;*.png;*.jpeg', 'libraryDir' => null, 'libraryRoute' => 'comur_api_image_library', 'showLibrary' => true, 'saveOriginal' => 'originalImage'), 'cropConfig' => array('minWidth' => 400, 'minHeight' => 500, 'aspectRatio' => true, 'cropRoute' => 'comur_api_crop', 'forceResize' => false, 'thumbs' => array(array('maxWidth' => 100, 'maxHeight' => 100, 'useAsFieldImage' => true)))])->add('country')->add('producer')->add('cast')->add('dateStart', null, ['data' => $date->format("Y"), 'attr' => ['min' => 1900]])->add('dateEnd', null, ['required' => false, 'attr' => ['min' => 1900]])->add('seasons', 'collection', ['allow_add' => true, 'allow_delete' => true, 'type' => new SeasonType(), 'by_reference' => false, 'prototype' => true, 'prototype_name' => '__name__', 'attr' => ['help-block' => 'Add new season']]);
 }