public function ImportarRegistro($Row) { $resultado = new ResultadoLote(); //$resultado->Registros[] = $Row; $entity = $this->em->getRepository('YacareRecursosHumanosBundle:Agente')->findOneBy(array('ImportSrc' => 'rr_hh.agentes', 'ImportId' => $Row['legajo'])); if (!$entity) { $entity = $this->em->getRepository('YacareRecursosHumanosBundle:Agente')->findOneBy(array('id' => $Row['legajo'])); } if (!$entity) { $entity = new \Yacare\RecursosHumanosBundle\Entity\Agente(); // Asigno manualmente el ID $entity->setId((int) $Row['legajo']); $metadata = $this->em->getClassMetaData(get_class($entity)); $metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE); $Persona = $this->em->getRepository('YacareBaseBundle:Persona')->findOneBy(array('DocumentoNumero' => trim($Row['nrodoc']))); if (!$Persona) { $Persona = new \Yacare\BaseBundle\Entity\Persona(); $Persona->setDocumentoNumero($Row['nrodoc']); $Persona->setDocumentoTipo((int) $Row['tipodoc']); } $Persona->setNombre(StringHelper::Desoraclizar($Row['name'])); $Persona->setApellido(StringHelper::Desoraclizar($Row['lastname'])); if ($Row['fechanacim']) { $Persona->setFechaNacimiento(new \DateTime($Row['fechanacim'])); } $Persona->setTelefonoNumero(trim(str_ireplace('NO DECLARA', '', $Row['telefono']) . ' ' . str_ireplace('NO DECLARA', '', $Row['celular']))); $Persona->setGenero($Row['sexo'] == 1 ? 1 : 0); $Persona->setEmail(str_ireplace('NO DECLARA', '', strtolower($Row['email']))); $Persona->setCuilt(trim($Row['cuil'])); $this->em->persist($Persona); //$this->em->flush(); $entity->setPersona($Persona); $entity->setImportSrc('rr_hh.agentes'); $entity->setImportId($Row['legajo']); $resultado->RegistrosNuevos++; } else { $resultado->RegistrosActualizados++; $Persona = $entity->getPersona(); } $Departamento = $this->em->getRepository('YacareOrganizacionBundle:Departamento')->findOneBy(array('ImportSrc' => 'rr_hh.sectores', 'ImportId' => $Row['secretaria'] . '.' . $Row['direccion'] . '.' . $Row['sector'])); if (!$Departamento) { $Departamento = $this->em->getRepository('YacareOrganizacionBundle:Departamento')->findOneBy(array('ImportSrc' => 'rr_hh.direcciones', 'ImportId' => $Row['secretaria'] . '.' . $Row['direccion'])); } if (!$Departamento) { $Departamento = $this->em->getRepository('YacareOrganizacionBundle:Departamento')->findOneBy(array('ImportSrc' => 'rr_hh.secretarias', 'ImportId' => $Row['secretaria'])); } $entity->setDepartamento($Departamento); $entity->setCategoria($Row['categoria']); $entity->setSituacion($Row['situacion']); $entity->setFuncion(StringHelper::Desoraclizar($Row['funcion'])); $entity->setBajaMotivo($Row['motivo']); if ($Row['excombatie'] == 'S') { $entity->setExCombatiente(1); } if ($Row['discapacit'] == 'S') { $entity->setDiscapacitado(1); } if ($Row['manohabil'] == 'I') { $entity->setManoHabil(1); } $entity->setEstudiosNivel($Row['estudios']); if ($Row['titulo'] == 999) { $entity->setEstudiosTitulo(null); } else { $entity->setEstudiosTitulo($Row['titulo']); } if (\Tapir\BaseBundle\Helper\Cbu::EsCbuValida($Row['cbu'])) { $entity->setCBUCuentaAgente(\Tapir\BaseBundle\Helper\Cbu::FormatearCbu($Row['cbu'])); } if ($Row['fechaingre']) { $entity->setFechaIngreso(new \DateTime($Row['fechaingre'])); } else { $entity->setFechaIngreso(null); } if (is_null($Row['fechabaja']) || $Row['fechabaja'] === '0000-00-00') { $entity->setBajaFecha(null); $entity->setArchivado(false); } else { $entity->setBajaFecha(new \DateTime($Row['fechabaja'])); $entity->setArchivado(true); } if (is_null($Row['fechanacion'] || $Row['fechanacion'] === '0000-00-00')) { $entity->setFechaNacionalizacion(null); } else { $entity->setFechaNacionalizacion(new \DateTime($Row['fechanacion'])); } if (is_null($Row['ult_act_d'] || $Row['ult_act_d'] === '0000-00-00')) { $entity->setUltimaActualizacionDomicilio(null); } else { $entity->setUltimaActualizacionDomicilio(new \DateTime($Row['ult_act_d'])); } if (is_null($Row['fecha_psico'] || $Row['fecha_psico'] === '0000-00-00')) { $entity->setFechaPsicofisico(null); } else { $entity->setFechaPsicofisico(new \DateTime($Row['ult_act_d'])); } if (is_null($Row['fecha_CBC'] || $Row['fecha_CBC'] === '0000-00-00')) { $entity->setFechaCertificadoBuenaConducta(null); } else { $entity->setFechaCertificadoBuenaConducta(new \DateTime($Row['fecha_CBC'])); } if (is_null($Row['fecha_CAP'] || $Row['fecha_CAP'] === '0000-00-00')) { $entity->setFechaCertificadoAntecedentesPenales(null); } else { $entity->setFechaCertificadoAntecedentesPenales(new \DateTime($Row['fecha_CAP'])); } if (is_null($Row['fecha_CD'] || $Row['fecha_CD'] === '0000-00-00')) { $entity->setFechaCertificadoDomicilio(null); } else { $entity->setFechaCertificadoDomicilio(new \DateTime($Row['fecha_CD'])); } if (\Tapir\BaseBundle\Helper\Cbu::EsCbuValida($Row['cbu'])) { $entity->setCBUCuentaAgente($Row['cbu']); } if (is_null($Row['finalcontr'] || $Row['finalcontr'] === '0000-00-00')) { $entity->setBajaFechaContrato(null); } else { $entity->setBajaFechaContrato(new \DateTime($Row['finalcontr'])); } if ($Row['decreto2']) { $entity->setBajaDecreto(\Yacare\MunirgBundle\Helper\StringHelper::FormatearActoAdministrativo($Row['decreto2'])); } else { $entity->setBajaDecreto(null); } $entity->setSuprimido(false); $this->em->persist($entity); $this->em->flush(); return $resultado; }
public function ImportarRegistro($Row) { $resultado = new ResultadoLote(); //$resultado->Registros[] = $Row; if ($Row['INDIVIDUO_TIPO'] != 'PE' && $Row['INDIVIDUO_TIPO'] != 'PJ' && $Row['INDIVIDUO_TIPO'] != 'EN' && $Row['INDIVIDUO_TIPO'] != 'OT') { $resultado->RegistrosIgnorados++; return $resultado; } if ($Row['NOMBRE_IND'] != 'NRO.DE CUENTA CEMENTERIO' || $Row['NOMBRE_IND'] != 'NN' || SUBSTR($Row['NOMBRE_IND'], 0, 3) != '???') { $resultado->RegistrosIgnorados++; return $resultado; } if ((int) $Row['TRIBUTARIA_ID'] > 0 || (int) $Row['TRIBUTARIA_ID'] <= 9999) { $resultado->RegistrosIgnorados++; return $resultado; } $Documento = StringHelper::ObtenerDocumento($Row['TRIBUTARIA_ID']); $Apellido = StringHelper::Desoraclizar($Row['APELLIDOS']); $Nombre = StringHelper::Desoraclizar($Row['NOMBRES']); $RazonSocial = StringHelper::Desoraclizar($Row['RAZON_SOCIAL']); if (!$Nombre && !$Apellido && !$RazonSocial) { $resultado->RegistrosIgnorados++; return $resultado; } // echo ($Nombre .'/'. $Apellido .'/'. $RazonSocial); // echo "\n"; $Row['TG06100_ID'] = (int) $Row['TG06100_ID']; $entity = $this->em->getRepository('YacareBaseBundle:Persona')->findOneBy(array('Tg06100Id' => $Row['TG06100_ID'])); $Cuilt = ''; if ($Documento[0] == 'CUIL' || $Documento[0] == 'CUIT') { $Cuilt = str_replace('-', '', $Documento[1]); } if ($Documento[0] == 'CUIL') { // Intento obtener el DNI del CUIL $Partes = explode('-', $Documento[1]); if (count($Partes) == 3) { $Documento[0] = 'DNI'; $Documento[1] = (int) $Partes[1]; } } if ($entity == null && $Cuilt) { $entity = $this->em->getRepository('YacareBaseBundle:Persona')->findOneBy(array('Cuilt' => $Cuilt)); } if ($entity == null) { $entity = $this->em->getRepository('YacareBaseBundle:Persona')->findOneBy(array('DocumentoNumero' => $Documento[1])); } if ($entity == null) { $entity = new \Yacare\BaseBundle\Entity\Persona(); if ($Row['TIPO_SOCIEDAD']) { switch ($Row['TIPO_SOCIEDAD']) { case 'SA': $entity->setTipoSociedad(1); break; case 'SRL': $entity->setTipoSociedad(8); break; case 'SC': $entity->setTipoSociedad(2); break; case 'SCA': $entity->setTipoSociedad(4); break; case 'SH': $entity->setTipoSociedad(3); break; case 'SD': if (strpos($RazonSocial, 'S.A.') !== false || strpos($RazonSocial, ' SA') !== false) { $entity->setTipoSociedad(1); } elseif (strpos($RazonSocial, 'S.R.L.') !== false || strpos($RazonSocial, ' SRL') !== false) { $entity->setTipoSociedad(8); } elseif (strpos($RazonSocial, 'S/H') !== false || strpos($RazonSocial, ' S.DE H.') !== false || strpos($RazonSocial, ' S. DE H.') !== false || strpos($RazonSocial, ' S.H') !== false) { $entity->setTipoSociedad(3); } break; } } elseif ($Row['INDIVIDUO_TIPO'] != 'EN') { $entity->setTipoSociedad(11); } if ($Documento[0] == 'CUIL' && (substr($Documento[1], 0, 3) == '30-' || substr($Documento[1], 0, 3) == '33-' || substr($Documento[1], 0, 3) == '34-')) { $Documento[0] = 'CUIT'; } if (!$entity->getCuilt() && $Cuilt) { $entity->setCuilt($Cuilt); } if (!$entity->getDocumentoNumero()) { $entity->setDocumentoNumero($Documento[1]); } if (!$entity->getDocumentoTipo()) { $entity->setDocumentoTipo(1); } if (!$entity->getNombre()) { $entity->setNombre($Nombre); } if (!$entity->getApellido()) { $entity->setApellido($Apellido); } if (!$entity->getRazonSocial()) { $entity->setRazonSocial($RazonSocial); } if (!$entity->getDomicilioCodigoPostal()) { $entity->setDomicilioCodigoPostal('9420'); } $CodigoCalle = $this->ArreglarCodigoCalle($Row['CODIGO_CALLE']); if ($CodigoCalle && !$entity->getDomicilioCalle()) { $Calle = $this->em->find('YacareCatastroBundle:Calle', $CodigoCalle); if ($Calle) { $entity->setDomicilioCalle($Calle); } } if (!$entity->getDomicilioCalleNombre()) { $entity->setDomicilioCalleNombre(StringHelper::Desoraclizar($Row['CALLE'])); } if (!$entity->getDomicilioNumero()) { $entity->setDomicilioNumero($Row['NUMERO']); } if (!$entity->getDomicilioPiso()) { $entity->setDomicilioPiso($Row['PISO']); } if (!$entity->getDomicilioPuerta()) { $entity->setDomicilioPuerta($Row['DEPTO']); } // Si no está en el grupo Contribuyentes, lo agrego // if ($entity->getGrupos()->contains($this->GrupoContribuyentes) == false) { // $entity->getGrupos()->add($this->GrupoContribuyentes); // } if ($Row['SEXO'] == 'F') { $entity->setGenero(2); } elseif ($Row['SEXO'] == 'M') { $entity->setGenero(1); } $entity->setTg06100Id($Row['TG06100_ID']); $resultado->RegistrosNuevos++; } else { $resultado->RegistrosActualizados++; } $entity->getNombreVisible(); $this->em->persist($entity); $this->em->flush(); return $resultado; }
/** * @Route("agentes/") * @Template("YacareMunirgBundle:Importar:importar.html.twig") */ public function importarAgentesAction(Request $request) { $desde = (int) $request->query->get('desde'); $cant = 100; mb_internal_encoding('UTF-8'); ini_set('display_errors', 1); set_time_limit(600); ini_set('memory_limit', '2048M'); $em = $this->getDoctrine()->getManager(); $DbRecursos = $this->ConectarRrhh(); $importar_importados = 0; $importar_actualizados = 0; $importar_procesados = 0; $log = array(); $GrupoAgentes = $em->getRepository('YacareBaseBundle:PersonaGrupo')->find(1); foreach ($DbRecursos->query("SELECT * FROM agentes WHERE legajo = 54") as $Agente) { $entity = $em->getRepository('YacareRecursosHumanosBundle:Agente')->findOneBy(array('ImportSrc' => 'rr_hh.agentes', 'ImportId' => $Agente['legajo'])); if (!$entity) { $entity = new \Yacare\RecursosHumanosBundle\Entity\Agente(); // Asigno manualmente el ID $entity->setId((int) $Agente['legajo']); $metadata = $em->getClassMetaData(get_class($entity)); $metadata->setIdGeneratorType(\Doctrine\ORM\Mapping\ClassMetadata::GENERATOR_TYPE_NONE); $Persona = $em->getRepository('YacareBaseBundle:Persona')->findOneBy(array('DocumentoNumero' => trim($Agente['nrodoc']))); if (!$Persona) { $Persona = new \Yacare\BaseBundle\Entity\Persona(); $Persona->setDocumentoNumero($Agente['nrodoc']); $Persona->setDocumentoTipo((int) $Agente['tipodoc']); } $Persona->setNombre(StringHelper::Desoraclizar($Agente['name'])); $Persona->setApellido(StringHelper::Desoraclizar($Agente['lastname'])); if ($Agente['fechanacim']) { $Persona->setFechaNacimiento(new \DateTime($Agente['fechanacim'])); } $Persona->setTelefonoNumero(trim(str_ireplace('NO DECLARA', '', $Agente['telefono']) . ' ' . str_ireplace('NO DECLARA', '', $Agente['celular']))); $Persona->setGenero($Agente['sexo'] == 1 ? 1 : 0); $Persona->setEmail(str_ireplace('NO DECLARA', '', strtolower($Agente['email']))); $Persona->setCuilt(trim($Agente['cuil'])); $em->persist($Persona); $em->flush(); $entity->setPersona($Persona); $entity->setImportSrc('rr_hh.agentes'); $entity->setImportId($Agente['legajo']); $importar_importados++; } else { $Persona = $entity->getPersona(); $importar_actualizados++; } $Departamento = $em->getRepository('YacareOrganizacionBundle:Departamento')->findOneBy(array('ImportSrc' => 'rr_hh.sectores', 'ImportId' => $Agente['secretaria'] . '.' . $Agente['direccion'] . '.' . $Agente['sector'])); if (!$Departamento) { $Departamento = $em->getRepository('YacareOrganizacionBundle:Departamento')->findOneBy(array('ImportSrc' => 'rr_hh.direcciones', 'ImportId' => $Agente['secretaria'] . '.' . $Agente['direccion'])); } if (!$Departamento) { $Departamento = $em->getRepository('YacareOrganizacionBundle:Departamento')->findOneBy(array('ImportSrc' => 'rr_hh.secretarias', 'ImportId' => $Agente['secretaria'])); } $entity->setDepartamento($Departamento); $entity->setCategoria($Agente['categoria']); $entity->setSituacion($Agente['situacion']); $entity->setFuncion(StringHelper::Desoraclizar($Agente['funcion'])); $entity->setBajaMotivo($Agente['motivo']); if ($Agente['excombatie'] == 'S') { $entity->setExCombatiente(1); } if ($Agente['discapacit'] == 'S') { $entity->setDiscapacitado(1); } if ($Agente['manohabil'] == 'I') { $entity->setManoHabil(1); } $entity->setEstudiosNivel($Agente['estudios']); if ($Agente['titulo'] == 999) { $entity->setEstudiosTitulo(null); } else { $entity->setEstudiosTitulo($Agente['titulo']); } if (\Tapir\BaseBundle\Helper\Cbu::EsCbuValida($Agente['cbu'])) { $entity->setCBUCuentaAgente(\Tapir\BaseBundle\Helper\Cbu::FormatearCbu($Agente['cbu'])); } // Si no está en el grupo agentes, lo agrego if ($Persona->getGrupos()->contains($GrupoAgentes) == false) { $Persona->getGrupos()->add($GrupoAgentes); $em->persist($Persona); } // Le pongo el número de legajo en la persona if ($entity->getId()) { $Persona->setAgenteId($entity->getId()); } if ($Agente['fechaingre']) { $entity->setFechaIngreso(new \DateTime($Agente['fechaingre'])); } else { $entity->setFechaIngreso(null); } if (is_null($Agente['fechabaja']) || $Agente['fechabaja'] === '0000-00-00') { $entity->setBajaFecha(null); $entity->setArchivado(false); } else { $entity->setBajaFecha(new \DateTime($Agente['fechabaja'])); $entity->setArchivado(true); } if (is_null($Agente['fechanacion'] || $Agente['fechanacion'] === '0000-00-00')) { $entity->setFechaNacionalizacion(null); } else { $entity->setFechaNacionalizacion(new \DateTime($Agente['fechanacion'])); } if (is_null($Agente['ult_act_d'] || $Agente['ult_act_d'] === '0000-00-00')) { $entity->setUltimaActualizacionDomicilio(null); } else { $entity->setUltimaActualizacionDomicilio(new \DateTime($Agente['ult_act_d'])); } if (is_null($Agente['fecha_psico'] || $Agente['fecha_psico'] === '0000-00-00')) { $entity->setFechaPsicofisico(null); } else { $entity->setFechaPsicofisico(new \DateTime($Agente['ult_act_d'])); } if (is_null($Agente['fecha_CBC'] || $Agente['fecha_CBC'] === '0000-00-00')) { $entity->setFechaCertificadoBuenaConducta(null); } else { $entity->setFechaCertificadoBuenaConducta(new \DateTime($Agente['fecha_CBC'])); } if (is_null($Agente['fecha_CAP'] || $Agente['fecha_CAP'] === '0000-00-00')) { $entity->setFechaCertificadoAntecedentesPenales(null); } else { $entity->setFechaCertificadoAntecedentesPenales(new \DateTime($Agente['fecha_CAP'])); } if (is_null($Agente['fecha_CD'] || $Agente['fecha_CD'] === '0000-00-00')) { $entity->setFechaCertificadoDomicilio(null); } else { $entity->setFechaCertificadoDomicilio(new \DateTime($Agente['fecha_CD'])); } if (\Tapir\BaseBundle\Helper\Cbu::EsCbuValida($Agente['cbu'])) { $entity->setCBUCuentaAgente($Agente['cbu']); } if (is_null($Agente['finalcontr'] || $Agente['finalcontr'] === '0000-00-00')) { $entity->setBajaFechaContrato(null); } else { $entity->setBajaFechaContrato(new \DateTime($Agente['finalcontr'])); } if ($Agente['decreto2']) { $entity->setBajaDecreto(\Yacare\MunirgBundle\Helper\StringHelper::FormatearDecreto($Agente['decreto2'])); } $entity->setSuprimido(false); $em->persist($entity); $em->flush(); $importar_procesados++; $log[] = $Agente['legajo'] . ': ' . (string) $entity . ($entity->getSuprimido() ? '*' : '') . ' -- ' . (string) $entity->getDepartamento(); } return array('importar_importados' => $importar_importados, 'importar_actualizados' => $importar_actualizados, 'importar_procesados' => $importar_procesados, 'redir_desde' => $importar_procesados == $cant ? $desde + $cant : 0, 'log' => $log); }