src/AppBundle/Controller/OrdenDeTrabajoController.php
/**
     * Displays a form to edit an existing ordenDeTrabajo entity.
     *
     * @Route("/{id}/editar", name="ordendetrabajo_edit")
     * @Method({"GET", "POST"})
     *
     * @param Request $request
     * @param OrdenDeTrabajo $ordenDeTrabajo
     *
     * @return RedirectResponse|\Symfony\Component\HttpFoundation\Response
     */
Displays a form to edit an existing ordenDeTrabajo entity.




Displays a form to edit an existing ordenDeTrabajo entity .
public function editAction(Request $request, OrdenDeTrabajo $ordenDeTrabajo)
    {
        $this->denyAccessUnlessGranted('ROLE_ODT_CONTRATISTA_EDIT', $ordenDeTrabajo);
        $precioTotal = 0;
        $utilidadvvTotal = 0;
        $preciovvTotal = 0;
        $ivaTotal = 0;
        $granTotal = 0;
        $saldoTotal = 0;
        $materialesTotal = 0;
        $pagosTotal = 0;
        $em = $this->getDoctrine()->getManager();
        $originalContratistas = new ArrayCollection();
        foreach ($ordenDeTrabajo->getContratistas() as $contratista) {
            $originalContratistas->add($contratista);
        }
        $deleteForm = $this->createDeleteForm($ordenDeTrabajo);
        $editForm = $this->createForm('AppBundle\Form\OrdenDeTrabajoType', $ordenDeTrabajo);
        $editForm->handleRequest($request);
        if ($editForm->isSubmitted() && $editForm->isValid()) {
            $iva = $ordenDeTrabajo->getAstilleroCotizacion()->getIva();
            foreach ($originalContratistas as $contratista) {
                if (false === $ordenDeTrabajo->getContratistas()->contains($contratista)) {
                    $contratista->getAstilleroODT()->removeContratista($contratista);
                    $em->persist($contratista);
                    $em->remove($contratista);
                } else {
                    $precioTotal += $contratista->getPrecio();
                    $utilidadvvTotal += $contratista->getUtilidadvv();
                    $preciovvTotal += $contratista->getPreciovv();
                    $ivatot = ($contratista->getPrecio() * $iva) / 100;
                    $total = $contratista->getPrecio() + $ivatot;
                    $porcentajevv = $contratista->getProveedor()->getPorcentaje();
                    $contratista
                        ->setPorcentajevv($porcentajevv)
                        ->setIvatot($ivatot)
                        ->setTotal($total);
                    $ivaTotal += $ivatot;
                    $granTotal += $total;
                }
            }
            foreach ($ordenDeTrabajo->getContratistas() as $contratistanuevo) {
                if ($contratistanuevo->getId() == null) {
                    $precioTotal += $contratistanuevo->getPrecio();
                    $utilidadvvTotal += $contratistanuevo->getUtilidadvv();
                    $preciovvTotal += $contratistanuevo->getPreciovv();
                    $ivatot = ($contratistanuevo->getPrecio() * $iva) / 100;
                    $total = $contratistanuevo->getPrecio() + $ivatot;
                    $porcentajevv = $contratistanuevo->getProveedor()->getPorcentaje();
                    $contratistanuevo
                        ->setPorcentajevv($porcentajevv)
                        ->setIvatot($ivatot)
                        ->setTotal($total);
                    $ivaTotal += $ivatot;
                    $granTotal += $total;
                }
            }
            $ordenDeTrabajo
                ->setPrecioTotal($precioTotal)
                ->setUtilidadvvTotal($utilidadvvTotal)
                ->setPreciovvTotal($preciovvTotal)
                ->setSaldoTotal($granTotal)
                ->setIvaTotal($ivaTotal)
                ->setGranTotal($granTotal);
            $em->persist($ordenDeTrabajo);
            $em->flush();
            return $this->redirectToRoute('ordendetrabajo_show', ['id' => $ordenDeTrabajo->getId()]);
        }
        return $this->render('ordendetrabajo/edit.html.twig', [
            'title' => 'Editar ODT',
            'ordenDeTrabajo' => $ordenDeTrabajo,
            'edit_form' => $editForm->createView(),
            'delete_form' => $deleteForm->createView(),
        ]);
    }
public function editAction ( Request $ request , OrdenDeTrabajo $ ordenDeTrabajo ) { $ this -> denyAccessUnlessGranted ( 'ROLE_ODT_CONTRATISTA_EDIT' , $ ordenDeTrabajo ) ; $ precioTotal = 0 ; $ utilidadvvTotal = 0 ; $ preciovvTotal = 0 ; $ ivaTotal = 0 ; $ granTotal = 0 ; $ saldoTotal = 0 ; $ materialesTotal = 0 ; $ pagosTotal = 0 ; $ em = $ this -> getDoctrine ( ) -> getManager ( ) ; $ originalContratistas = new ArrayCollection ( ) ; foreach ( $ ordenDeTrabajo -> getContratistas ( ) as $ contratista ) { $ originalContratistas -> add ( $ contratista ) ; } $ deleteForm = $ this -> createDeleteForm ( $ ordenDeTrabajo ) ; $ editForm = $ this -> createForm ( 'AppBundle\Form\OrdenDeTrabajoType' , $ ordenDeTrabajo ) ; $ editForm -> handleRequest ( $ request ) ; if ( $ editForm -> isSubmitted ( ) && $ editForm -> isValid ( ) ) { $ iva = $ ordenDeTrabajo -> getAstilleroCotizacion ( ) -> getIva ( ) ; foreach ( $ originalContratistas as $ contratista ) { if ( false === $ ordenDeTrabajo -> getContratistas ( ) -> contains ( $ contratista ) ) { $ contratista -> getAstilleroODT ( ) -> removeContratista ( $ contratista ) ; $ em -> persist ( $ contratista ) ; $ em -> remove ( $ contratista ) ; } else { $ precioTotal += $ contratista -> getPrecio ( ) ; $ utilidadvvTotal += $ contratista -> getUtilidadvv ( ) ; $ preciovvTotal += $ contratista -> getPreciovv ( ) ; $ ivatot = ( $ contratista -> getPrecio ( ) * $ iva ) / 100 ; $ total = $ contratista -> getPrecio ( ) + $ ivatot ; $ porcentajevv = $ contratista -> getProveedor ( ) -> getPorcentaje ( ) ; $ contratista -> setPorcentajevv ( $ porcentajevv ) -> setIvatot ( $ ivatot ) -> setTotal ( $ total ) ; $ ivaTotal += $ ivatot ; $ granTotal += $ total ; } } foreach ( $ ordenDeTrabajo -> getContratistas ( ) as $ contratistanuevo ) { if ( $ contratistanuevo -> getId ( ) == null ) { $ precioTotal += $ contratistanuevo -> getPrecio ( ) ; $ utilidadvvTotal += $ contratistanuevo -> getUtilidadvv ( ) ; $ preciovvTotal += $ contratistanuevo -> getPreciovv ( ) ; $ ivatot = ( $ contratistanuevo -> getPrecio ( ) * $ iva ) / 100 ; $ total = $ contratistanuevo -> getPrecio ( ) + $ ivatot ; $ porcentajevv = $ contratistanuevo -> getProveedor ( ) -> getPorcentaje ( ) ; $ contratistanuevo -> setPorcentajevv ( $ porcentajevv ) -> setIvatot ( $ ivatot ) -> setTotal ( $ total ) ; $ ivaTotal += $ ivatot ; $ granTotal += $ total ; } } $ ordenDeTrabajo -> setPrecioTotal ( $ precioTotal ) -> setUtilidadvvTotal ( $ utilidadvvTotal ) -> setPreciovvTotal ( $ preciovvTotal ) -> setSaldoTotal ( $ granTotal ) -> setIvaTotal ( $ ivaTotal ) -> setGranTotal ( $ granTotal ) ; $ em -> persist ( $ ordenDeTrabajo ) ; $ em -> flush ( ) ; return $ this -> redirectToRoute ( 'ordendetrabajo_show' , [ 'id' => $ ordenDeTrabajo -> getId ( ) ] ) ; } return $ this -> render ( 'ordendetrabajo/edit.html.twig' , [ 'title' => 'Editar ODT' , 'ordenDeTrabajo' => $ ordenDeTrabajo , 'edit_form' => $ editForm -> createView ( ) , 'delete_form' => $ deleteForm -> createView ( ) , ] ) ; }
Displays a form to edit an existing ordenDeTrabajo entity.
Displays a form to edit an existing ordenDeTrabajo entity .
//$this->getDoctrine()->getManager()->flush(); // remove the Task from the Tag // if it was a many-to-one relationship, remove the relationship like this //$motor->setBarco(null); // if you wanted to delete the Tag entirely, you can also do that