/** * Creates a form to delete a Bl entity. * * @param Bl $bl The Bl entity * * @return \Symfony\Component\Form\Form The form */ private function createDeleteForm(Bl $bl) { return $this->createFormBuilder()->setAction($this->generateUrl('bl_delete', array('id' => $bl->getId())))->setMethod('DELETE')->getForm(); }
/** * Creates a new Rental entity. * * @Route("/new", name="rental_new") * @Method({"GET", "POST"}) */ public function newAction(Request $request) { $em = $this->getDoctrine()->getManager(); $rental = new Rental(); $form = $this->createForm('BL\\SGIBundle\\Form\\RentalType', $rental); $entities = $em->getRepository('SGIBundle:FieldsRental')->findBy(array('trackable' => false), array('id' => 'ASC')); foreach ($entities as $entity) { // Reemplazar los espacios en blanco $desc = str_replace(" ", "_", $entity->getDescription()); switch ($entity->getWidget()) { case 'Calendar': $form->add('EF-' . $desc, 'date', array('widget' => 'single_text', 'format' => 'dd-MM-yyyy', 'attr' => array('class' => 'form-control datepicker', 'data-provide' => 'datepicker', 'data-date-format' => 'dd-mm-yyyy'), 'mapped' => false, 'required' => false, 'label' => $desc)); break; case 'Characters': $form->add('EF-' . $desc, 'text', array('mapped' => false, 'attr' => array('class' => 'form-control input-sm'), 'label' => $desc, 'required' => false)); break; case 'Currency': $form->add('EF-' . $desc, 'text', array('mapped' => false, 'attr' => array('class' => 'form-control input-sm currency'), 'label' => $desc, 'required' => false)); break; case 'File': $form->add('EF-' . $desc, 'file', array('mapped' => false, 'label' => $desc, 'required' => false)); break; case 'Numeric': $form->add('EF-' . $desc, 'number', array('mapped' => false, 'attr' => array('class' => 'form-control input-sm numeric'), 'label' => $desc, 'required' => false)); break; case 'TextArea': $form->add('EF-' . $desc, 'textarea', array('mapped' => false, 'attr' => array('class' => 'form-control input-sm'), 'label' => $desc, 'required' => false)); break; } } $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($rental); $em->flush(); // Procedo log /* $userManager = $this->container->get('fos_user.user_manager'); $user = $userManager->findUserByUsername($this->container->get('security.context') ->getToken() ->getUser()); $query = $em->createQuery('SELECT x FROM SGIBundle:Rental x WHERE x.id = ?1'); $query->setParameter(1, $rental->getId()); $arreglo_formulario = $query->getSingleResult(Query::HYDRATE_ARRAY); $bitacora = $em->getRepository('SGIBundle:LogActivity') ->bitacora($user->getId(), 'Insert', 'Rental', $rental->getId()); */ // fin proceso log // Obtengo mi id y procedo a realizar los inserts en la tabla // bl_rental $id = $rental->getId(); $arreglo = $_POST['rental']; // Obtengo unicamente los elementos extra foreach ($arreglo as $key => $value) { if (strpos($key, 'EF-') !== 0) { unset($arreglo[$key]); } } // Procedo a buscar mi campo dentro de la tabla fields foreach ($arreglo as $key => $value) { $key2 = str_replace("_", " ", $key); $key2 = str_replace("EF-", "", $key2); $field = $em->getRepository('SGIBundle:FieldsRental')->findBy(array('description' => $key2)); $getid_field = $field[0]->getId(); $bl_rental = new BlRental(); $id_rental = $em->getReference('BL\\SGIBundle\\Entity\\Rental', $id); $id_field = $em->getReference('BL\\SGIBundle\\Entity\\FieldsRental', $getid_field); if (trim($value) != '') { $bl_rental->setIdRental($id_rental); $bl_rental->setIdField($id_field); $bl_rental->setValue($value); $em->persist($bl_rental); $em->flush(); } } // Inserto la Bl $bl = new Bl(); $bl->setCodeBl($id); $bl->setType('rental'); $bl->setDescription($rental->getDescription()); $em->persist($bl); $em->flush(); // Procedo a insertar cada uno de mis tipo Archivo $arreglo_archivos = $_FILES; if (count($arreglo_archivos) > 0) { $n = count($arreglo_archivos['rental']['name']); // Crear un directorio dentro de Web if (!file_exists('photos')) { mkdir('photos', 0777, true); } // Creo un directorio dentro que identifica a mi Controlador $ruta_foto = 'photos/rental/'; if (!file_exists($ruta_foto)) { mkdir($ruta_foto, 0777, true); } $arreglo_archivos_name = $arreglo_archivos['rental']['name']; $i = 0; foreach ($arreglo_archivos_name as $key => $value) { $file_name = $arreglo_archivos['rental']['name'][$key] . ' '; $time = time() . '' . $i; if (trim($file_name) != '') { // Obtengo la extensión de la imagen y la concateno list($img, $type) = explode('/', $arreglo_archivos['rental']['type'][$key]); $new_image_name = $time . '.' . $type; $destination = $ruta_foto . $new_image_name; // Realiza el movimiento de la foto move_uploaded_file($arreglo_archivos['rental']['tmp_name'][$key], $destination); // Creo mi registro $key2 = str_replace("_", " ", $key); $key2 = str_replace("EF-", "", $key2); $field = $em->getRepository('SGIBundle:FieldsRental')->findBy(array('description' => $key2)); $getid_field = $field[0]->getId(); $bl_rental = new BlRental(); $id_rental = $em->getReference('BL\\SGIBundle\\Entity\\Rental', $id); $id_field = $em->getReference('BL\\SGIBundle\\Entity\\FieldsRental', $getid_field); $bl_rental->setIdRental($id_rental); $bl_rental->setIdField($id_field); $bl_rental->setValue($destination); $em->persist($bl_rental); $em->flush(); $i++; } } } $rentals = $em->getRepository('SGIBundle:Rental')->findAll(); $typeRentals = $em->getRepository('SGIBundle:TypeRental')->findAll(); return $this->render('rental/index.html.twig', array('rentals' => $rentals, 'typeRentals' => $typeRentals)); } return $this->render('rental/new.html.twig', array('rental' => $rental, 'form' => $form->createView())); }