/**
  * @param Entrega $entrega
  * @return mixed Devuelve las EntregaOperacion en el rango de fechas de la Entrega
  */
 public function getByEntrega(Entrega $entrega, $servicio = null)
 {
     $qb = $this->createQueryBuilder('eo')->andWhere('eo.fechaEntrega >= :fechaInicio')->andWhere('eo.fechaEntrega <= :fechaCierre')->setParameter('fechaInicio', $entrega->getFechaInicio())->setParameter('fechaCierre', $entrega->getFechaCierre());
     if ($servicio) {
         $qb->andWhere('eo.servicio = :servicio')->setParameter('servicio', $servicio);
     }
     $qb->getQuery()->execute();
 }
 /**
  * @param Entrega $entity
  * @param LifecycleEventArgs $args
  */
 private function createEntregaAsignacion($entity, $args)
 {
     $em = $args->getEntityManager();
     $servicios = [];
     foreach ($entity->getContrato()->getServicios() as $servicio) {
         $servicios[] = $servicio->getId();
     }
     if (count($servicios) > 0) {
         /** @var ServicioContratado $servicio */
         $asignaciones = $em->getRepository('SisesApplicationBundle:CoordinadorAsignacion')->findAll(array('servicio' => 'A,' . implode(';', $servicios)));
         /** @var CoordinadorAsignacion $Asignacion */
         foreach ($asignaciones as $asignacion) {
             $eAsignacion = new EntregaAsignacion();
             $eAsignacion->setEntrega($entity);
             $eAsignacion->setAsignacion($asignacion);
             $em->persist($eAsignacion);
         }
     }
 }
示例#3
0
 /**
  * Load data fixtures with the passed EntityManager
  *
  * @param ObjectManager $manager
  */
 function load(ObjectManager $manager)
 {
     $contrato = $manager->getRepository('SisesApplicationBundle:Contrato')->findOneBy(array());
     $start = clone $contrato->getFechaInicio();
     $end = clone $contrato->getFechaInicio();
     $end->add(new \DateInterval('P10D'));
     $entrega = new Entrega();
     $entrega->setContrato($contrato);
     $entrega->setFechaInicio($start);
     $entrega->setFechaCierre($end);
     $entrega->setDiasGracia(5);
     $manager->persist($entrega);
     $manager->flush();
 }
 /**
  * @param Entrega $entrega
  * @param EntregaCierreServicio $servicio
  */
 public function createOrUpdateDetalle($entrega, EntregaCierreServicio $servicio)
 {
     $servicioRepo = $this->getEm()->getRepository('SisesApplicationBundle:ServicioContratado');
     $detalle = null;
     $servicioContratado = null;
     /** @var EntregaDetalle $entregaDetalle */
     foreach ($entrega->getDetalles() as $entregaDetalle) {
         if ($entregaDetalle->getServicio()->getId() == $servicio->getServicio()) {
             $detalle = $entregaDetalle;
             $servicioContratado = $entregaDetalle->getServicio();
         }
     }
     if (!$detalle) {
         $detalle = new EntregaDetalle();
         $detalle->setEntrega($entrega);
         $servicioContratado = $servicioRepo->find($servicio->getServicio());
         if (!$servicioContratado) {
             throw new NotFoundHttpException("El servicio '{$servicio->getServicio()}' no existe'");
         }
     }
     $detalle->setServicio($servicioContratado);
     $detalle->setCantidad($servicio->getCantidad());
     $this->getEm()->persist($detalle);
 }