/** * Creates a new ShiftTechnician entity. * * @Template() * @Secure(roles="ROLE_USER") */ public function createAction(Request $request) { $entity = new ShiftTechnician(); $entity->setCreation(new \DateTime()); $form = $this->createForm(new RecuperationEquipmentType(), $entity); $form->handleRequest($request); if ($form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($entity->getShifting()->setCreation(new \DateTime())); $em->persist($entity); $em->flush(); if ($this->getRequest()->isXmlHttpRequest()) { return new JsonResponse(array()); } return $this->redirect($request->headers->get('referer')); } return array('entity' => $entity, 'form' => $form->createView(), 'previous' => $request->headers->get('referer')); }
/** * Delete an existing ShiftTechnician entity. * * @Template() * @Secure(roles="ROLE_USER") */ public function deleteAction(ShiftTechnician $entity) { $intervId = $entity->getShifting()->getId(); $em = $this->getDoctrine()->getManager(); $em->remove($entity); $em->flush(); return $this->redirect($this->generateUrl('intervention_redirect', array('id' => $intervId, 'act' => 'show'))); }
/** * Cherche les entretiens les plus proche d'une adresse * * @Template() */ public function neighborAction(Door $door) { $em = $this->getDoctrine()->getManager(); // Choper les entretiens à faire $repo = $em->getRepository('JLMDailyBundle:Maintenance'); $maints = $repo->getOpened(); $repo = $em->getRepository('JLMDailyBundle:Ride'); $baseUrl = 'http://maps.googleapis.com/maps/api/distancematrix/json?sensor=false&language=fr-FR&origins=' . $door->getCoordinates() . '&destinations='; foreach ($maints as $maint) { $dest = $maint->getDoor(); if (!$repo->hasRide($door, $dest)) { $url = $baseUrl . $dest->getCoordinates(); $string = file_get_contents($url); $json = json_decode($string); if ($json->status == 'OK' && isset($json->rows[0]->elements[0]->duration->value) && isset($json->rows[0]->elements[0]->duration->value)) { $ride = new Ride(); $ride->setDeparture($door); $ride->setDestination($dest); $ride->setDuration($json->rows[0]->elements[0]->duration->value); $ride->setDistance($json->rows[0]->elements[0]->distance->value); $em->persist($ride); } } } $em->flush(); $entities = $repo->getMaintenanceNeighbor($door, 30); $forms = array(); foreach ($entities as $entity) { $shift = new ShiftTechnician(); $shift->setBegin(new \DateTime()); $forms[] = $this->get('form.factory')->createNamed('shiftTechNew' . $entity->getDestination()->getNextMaintenance()->getId(), new AddTechnicianType(), $shift)->createView(); } return array('door' => $door, 'entities' => $entities, 'forms_addTech' => $forms); }
private function _show(ShiftTechnician $entity) { $shifting = $entity->getShifting(); $types = array('fixing' => 'Dépannage', 'maintenance' => 'Entretien', 'work' => 'Travaux'); $dayTrans = array('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'); $datas[0] = $dayTrans[$entity->getBegin()->format('w')] . chr(10) . $entity->getBegin()->format('d/m/Y'); $datas[1] = 'le ' . $shifting->getCreation()->format('d/m/Y H:i') . chr(10) . $shifting->getContactName() . chr(10) . $shifting->getContactPhones(); $datas[2] = $types[$shifting->getType()]; $datas[3] = $shifting->getContract() == 'Hors contrat' ? 'HC' : $shifting->getContract(); $datas[4] = $shifting->getReason(); if ($shifting instanceof JLM\DailyBundle\Entity\Work) { if ($shifting->getQuote() !== null) { $datas[4] = 'Travaux selon devis n°' . $shifting->getQuote()->getNumber() . chr(10) . $datas[4]; } } $datas[5] = ''; if ($entity->getComment()) { $datas[5] = 'Technicien :' . chr(10) . $entity->getComment() . chr(10) . chr(10); } else { $interv = $entity->getShifting(); if ($interv instanceof JLM\DailyBundle\Entity\Fixing) { $datas[5] = 'Constat :' . chr(10) . $interv->getObservation() . chr(10) . chr(10); } $datas[5] .= 'Action menée :' . chr(10) . $interv->getReport(); if ($interv->getRest()) { $datas[5] .= chr(10) . chr(10) . 'Reste à faire :' . chr(10) . $interv->getRest(); } } $datas[6] = $entity->getTechnician() . ''; if ($entity->getEnd()) { $datas[6] .= chr(10) . $entity->getBegin()->format('H\\hi') . ' - ' . $entity->getEnd()->format('H\\hi') . chr(10) . $entity->getTime()->format('%h:%I'); } $this->row($datas, 5, 1, false); }