Exemplo n.º 1
0
 /**
  * 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();
 }
Exemplo n.º 2
0
 /**
  * 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()));
 }