public function guardarActionPrePersist($entity, $editForm) { $res = parent::guardarActionPrePersist($entity, $editForm); if (!$entity->getComprobanteTipo()) { // La propiedad ComprobanteTipo está en blanco... es normal al crear un trámite nuevo // Busco el ComprobanteTipo que corresponde a la clase y lo guardo $em = $this->getDoctrine()->getManager(); $NombreClase = '\\' . get_class($entity); $ComprobanteTipo = $em->getRepository('YacareTramitesBundle:ComprobanteTipo')->findOneBy(array('Clase' => $NombreClase)); $entity->setComprobanteTipo($ComprobanteTipo); } return $res; }
public function guardarActionPrePersist($entity, $editForm) { // Crear o actualizar un instrumento asociado $InstrumentoEspejo = $entity->getInstrumentoEspejo(); if (!$InstrumentoEspejo) { $InstrumentoEspejo = new \Yacare\TramitesBundle\Entity\Instrumento(); } $InstrumentoEspejo->setTipo('com'); $InstrumentoEspejo->setCodigo($entity->getCodigo()); $InstrumentoEspejo->setNombre($entity->getNombre()); $entity->setInstrumentoEspejo($InstrumentoEspejo); parent::guardarActionPrePersist($entity, $editForm); }
/** * Interviene antes de persistir la entidad de modo de permitir que al editar * si se deja la contraseña en blanco se conserva la contraseña actual. */ public function guardarActionPrePersist($entity, $editForm) { // Intervenir la entidad antes de persistir if ($entity->getPasswordEnc()) { // Guardo el password con hash $factory = $this->get('security.encoder_factory'); $encoder = $factory->getEncoder($entity); $encoded_password = $encoder->encodePassword($entity->getPasswordEnc(), $entity->getSalt()); $entity->setPassword($encoded_password); } else { // Si la contraseña está en blanco, dejo la original $entity->setPasswordEnc($this->PassOriginal); } return parent::guardarActionPrePersist($entity, $editForm); }
/** * Intervengo el guardado para asignar el usuario creador y un encargado predeterminado encaso de que no tenga uno. */ public function guardarActionPrePersist($entity, $FormEditar) { if (!$entity->getId()) { if (!$entity->getUsuario()) { $UsuarioConectado = $this->get('security.token_storage')->getToken()->getUser(); $entity->setUsuario($UsuarioConectado); $entity->setUsuarioNombre((string) $UsuarioConectado); $entity->setUsuarioEmail($UsuarioConectado->getEmail()); } if ($entity->getCategoria() && !$entity->getEncargado()) { $entity->setEncargado($entity->getCategoria()->getEncargado()); } } return parent::guardarActionPrePersist($entity, $FormEditar); }
public function guardarActionPrePersist($entity, $editForm) { $em = $this->getEm(); if (!$entity->getId()) { /* * No tiene id. Como es parte de un árbol, necesito asignar un id manualmente. */ $nuevoId = $this->getDoctrine()->getManager()->createQuery('SELECT MAX(r.id) FROM YacareComercioBundle:Actividad r')->getSingleScalarResult(); $entity->setId(++$nuevoId); $metadata = $em->getClassMetaData(get_class($entity)); $metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE); } /* * Quito guiones, espacios y puntos del código */ $codigo = trim(str_replace('-', '', str_replace(' ', '', str_replace('.', '', $entity->getClamae2014())))); $entity->setClamae2014($codigo); /* * Calculo el ClaE AFIP y el ClaNAE 2010 */ $entity->setClaeAfip(substr($codigo, 0, 6)); $entity->setClanae2010(substr($codigo, 0, 5)); /* * Busco un ParentNode acorde al código ingresado */ if (strlen($codigo) == 7) { // Los códigos finales (de 7 dígitos) dependen de una clase (4 dígitos) $codigoPadre = substr($codigo, 0, 4); $entity->setFinal(true); } elseif (strlen($codigo) == 4) { // Las clases (de 4 dígitos) dependen de un grupo (3 dígitos) $codigoPadre = substr($codigo, 0, 3); } elseif (strlen($codigo) == 3) { // Los grupos (de 3 dígitos) dependen de una división (2 dígitos) $codigoPadre = substr($codigo, 0, 2); } elseif (strlen($codigo) == 2) { // Las divisiones (de 2 dígitos) dependen de una categoría (1 letra) // Esta estructura es fija del ClaNAE 2010 $codigo = (int) $codigo; if ($codigo <= 4) { $codigoPadre = 'A'; } elseif ($codigo <= 9) { $codigoPadre = 'B'; } elseif ($codigo <= 34) { $codigoPadre = 'C'; } elseif ($codigo <= 35) { $codigoPadre = 'D'; } elseif ($codigo <= 40) { $codigoPadre = 'E'; } elseif ($codigo <= 44) { $codigoPadre = 'F'; } elseif ($codigo <= 48) { $codigoPadre = 'G'; } elseif ($codigo <= 54) { $codigoPadre = 'H'; } elseif ($codigo <= 57) { $codigoPadre = 'I'; } elseif ($codigo <= 63) { $codigoPadre = 'J'; } elseif ($codigo <= 67) { $codigoPadre = 'K'; } elseif ($codigo <= 68) { $codigoPadre = 'L'; } elseif ($codigo <= 76) { $codigoPadre = 'M'; } elseif ($codigo <= 83) { $codigoPadre = 'N'; } elseif ($codigo <= 84) { $codigoPadre = 'O'; } elseif ($codigo <= 85) { $codigoPadre = 'P'; } elseif ($codigo <= 89) { $codigoPadre = 'Q'; } elseif ($codigo <= 93) { $codigoPadre = 'R'; } elseif ($codigo <= 96) { $codigoPadre = 'S'; } elseif ($codigo <= 98) { $codigoPadre = 'T'; } elseif ($codigo <= 99) { $codigoPadre = 'U'; } else { $codigoPadre = ''; } } else { $codigoPadre = ''; } if ($codigoPadre) { $em = $this->getDoctrine()->getManager(); $parentNode = $em->getRepository('YacareComercioBundle:Actividad')->findOneBy(array('Clamae2014' => $codigoPadre)); $entity->setParentNode($parentNode); } $hijos = $em->getRepository('YacareComercioBundle:Actividad')->findBy(array('ParentNode' => $entity->getId())); return parent::guardarActionPrePersist($entity, $editForm); }