/// <summary> /// Metodo que permite crear una nueva Acta de Denuncia y Citacion. /// </summary> /// <param name="request">Infracccional Request.</param> /// <returns></returns> public InfraccionalResponse InfraccionalCreate(InfraccionalRequest request) { ActaDenunciaCitacionTO actaDenuncia = null; InfraccionalResponse respuesta = new InfraccionalResponse(); int registro = 0; try { if (!string.IsNullOrEmpty(request.Json)) { actaDenuncia = _contextoSerializacion.Deserializar <ActaDenunciaCitacionTO>(request.Json); if (actaDenuncia != null) { registro = _infraccionalComposite.InfraccionalNegocio.RegistrarActaDenunciaCitacion(actaDenuncia); if (registro > 0) { respuesta = Respuesta.RespuestaPersonalizado("Acta registrada exitosamente", "SUCCESS_INSERT"); } } } else { respuesta = Respuesta.RespuestaPersonalizado("Para crear una Acta de Denuncia y Citacion debe enviar la entidad", "ERROR_PARAM"); } } catch (Exception ex) { respuesta = Respuesta.RespuestaPersonalizado("Error al realizar insercion: " + ex.Message, "ERROR_INSERT"); } return(respuesta); }
/// <summary> /// Metodo que permite registrar actas de denuncia y citacion. /// </summary> /// <param name="actaDenuncia">Acta de Denuncia y Citación</param> /// <returns></returns> public int RegistrarActaDenunciaCitacion(ActaDenunciaCitacionTO actaDenuncia) { int registro = 0; ActaDenunciaCitacion actaDenunciaCitacion = null; try { Mapeo map = new Mapeo(); actaDenunciaCitacion = new ActaDenunciaCitacion(); actaDenunciaCitacion.ADC_FECHA_AUDIENCIA = actaDenuncia.FechaAudiencia; actaDenunciaCitacion.ADC_FECHA_DENUNCIA = actaDenuncia.FechaDenuncia; actaDenunciaCitacion.FechaIngreso = actaDenuncia.FechaIngreso; actaDenunciaCitacion.ADC_NRO_FISCALIZACION = actaDenuncia.NumeroFiscalizacion; actaDenunciaCitacion.Sistema = 7; actaDenunciaCitacion.EntidadFiscalizadora = 1; //actaDenunciaCitacion.Infractor = actaDenuncia.Infractor; //actaDenunciaCitacion.SubMateria = actaDenuncia.SubMateria; actaDenunciaCitacion.Numero = actaDenuncia.Numero; Usuario usuario = _daoGenerico.Obtener <Usuario>("WHERE USR_EMAIL = '" + actaDenuncia.EmailUsuario + "'"); if (usuario != null) { actaDenunciaCitacion.UsuarioCreador = usuario.Identificador; actaDenunciaCitacion.usuario = usuario; } else { log.Info("ERROR: El usuario con email " + actaDenuncia.EmailUsuario + " no existe en el sistema sancionatorio como inspector fiscalizador."); throw new Exception("El usuario con email " + actaDenuncia.EmailUsuario + " no existe en el sistema sancionatorio como inspector fiscalizador"); //registro = 0; } try { if (usuario != null && usuario.Oficina > 0) { actaDenunciaCitacion.OficinaUsuario = usuario.Oficina; } } catch (Exception ex) { throw new Exception("Error al obtener información del usuario fiscalizado", ex); } Usuario inspector = _daoGenerico.Obtener <Usuario>("WHERE USR_EMAIL = '" + actaDenuncia.EmailInspector + "'"); if (inspector != null) { actaDenunciaCitacion.Inspector = Int32.Parse(inspector.Identificador); } else { registro = 0; } string regionSancionatorio = map.ObtenerValueRegion(actaDenuncia.Region); var rol = _daoGenerico.Ejecutar(new { P_ID_REGION = regionSancionatorio, P_ID_TIPO = 1 }, _procedimientoTraerRol); if (rol != null) { var rolfinal = Convert.ToInt64(rol); var v_Cont = rolfinal.ToString().Substring(4); v_Cont = (Int32.Parse(v_Cont) + 1).ToString(); var rolConvertido = DateTime.Now.ToString("yy") + regionSancionatorio + v_Cont; actaDenunciaCitacion.Rol = Convert.ToInt64(rolConvertido); } int cuenta = _daoGenerico.ObtenerLista <Infractor>("WHERE IFR_IDENTIFICACION = '" + actaDenuncia.Infractor.Identificacion + "'").Count(); Infractor x = null; var infractor = x; if (cuenta > 0) { infractor = _daoGenerico.ObtenerLista <Infractor>("WHERE IFR_IDENTIFICACION = '" + actaDenuncia.Infractor.Identificacion + "'").First(); } else { ParametrosInfractor infraProcedimiento = new ParametrosInfractor() { P_ADC_COD_INFRACTOR = 0, P_ADC_NOMBRES = actaDenuncia.Infractor.Nombre, P_ADC_APELLIDO_PAT = actaDenuncia.Infractor.ApellidoPaterno, P_ADC_APELLIDO_MAT = actaDenuncia.Infractor.ApellidoMaterno, P_ADC_TIPO_ID = actaDenuncia.Infractor.TipoIdentificacion, P_ADC_IDENTIFICACION = actaDenuncia.Infractor.Identificacion, P_ADC_TIPO_PERSONA = actaDenuncia.Infractor.TipoPersona, P_ADC_DOMICILIO = actaDenuncia.Infractor.Direccion, P_ADC_GENERO = (actaDenuncia.Infractor.Genero != null) ? Convert.ToChar(actaDenuncia.Infractor.Genero) : '0', P_ADC_COD_ACTIVIDAD = actaDenuncia.Infractor.Actividad, P_ADC_COD_PAIS = (actaDenuncia.Infractor.Pais != null) ? Convert.ToChar(actaDenuncia.Infractor.Pais) : '0', P_ADC_COD_COMUNA = actaDenuncia.Infractor.Comuna, P_ADC_FONO = (actaDenuncia.Infractor.Fono != null) ? actaDenuncia.Infractor.Fono.ToString() : "", P_ADC_EMAIL = actaDenuncia.Infractor.Email, P_ADC_DIR_POSTAL = actaDenuncia.Infractor.Postal, P_IFR_REP_LEG_RUT = actaDenuncia.Infractor.RutRepresentanteLegal, P_IFR_REP_LEG_NOM = actaDenuncia.Infractor.NombreRepresentanteLegal, P_MAX_INFRACTOR = 0 }; _daoGenerico.AgregarRegistro(infraProcedimiento, _procedimientoCrearInfractor); infractor = _daoGenerico.ObtenerLista <Infractor>("WHERE IFR_IDENTIFICACION = '" + actaDenuncia.Infractor.Identificacion + "'").First(); } if (infractor != null) { actaDenunciaCitacion.Infractor = infractor; } else { actaDenunciaCitacion.Infractor = actaDenuncia.Infractor; } //// Revisión comuna y pais del infractor. string pa = infractor.Pais; string co = infractor.Comuna; List <ActaDenunciaCitacionDetalle> ADCdetalle = new List <ActaDenunciaCitacionDetalle>(); try { ADCdetalle = ObtenerADCdetalleSegunFiscalizacion(actaDenunciaCitacion.ADC_NRO_FISCALIZACION); } catch (Exception ex) { throw new Exception("Error al obtener detalle del ADC desde fiscalización", ex); } string sub = ADCdetalle[0].ID_SUB_MATERIA.ToString(); var submateria = Convert.ToInt32(map.ObtenerValueSubMateria(sub)); pa = "45"; co = ADCdetalle[0].idComuna.ToString(); string folio = ADCdetalle[0].folio; co = map.ObtenerValueComuna(co); if (string.IsNullOrEmpty(co)) { co = "130101"; } // Se cren y setean las variables para los datos del infractor var nombreInfractor = ""; var rutInfractor = ""; var apellidoPInfractor = ""; var apellidoMInfractor = ""; var direcciónInfractor = ""; if (actaDenunciaCitacion.Infractor.TipoPersona == 2) { nombreInfractor = ADCdetalle[0].nombreEntidad; rutInfractor = ADCdetalle[0].rutEntidad; direcciónInfractor = ADCdetalle[0].direccionEntidad; } else { nombreInfractor = actaDenunciaCitacion.Infractor.Nombre; rutInfractor = actaDenunciaCitacion.Infractor.Identificacion; direcciónInfractor = actaDenunciaCitacion.Infractor.Direccion; apellidoPInfractor = actaDenunciaCitacion.Infractor.ApellidoPaterno; apellidoMInfractor = actaDenunciaCitacion.Infractor.ApellidoMaterno; } ActaDenunciaProcedimiento actaProcedimiento = new ActaDenunciaProcedimiento() { //ADC P_ADC_ID = 0, P_ADC_SISTEMA_ID = actaDenunciaCitacion.Sistema, P_ADC_TIPO_PROCESO = 1, P_ADC_COD_ENTIDAD = actaDenunciaCitacion.EntidadFiscalizadora, P_ADC_ROL = actaDenunciaCitacion.Rol, P_ADC_NUMERO = actaDenunciaCitacion.Numero, P_ADC_FECHA_AUDIENCIA = actaDenunciaCitacion.ADC_FECHA_AUDIENCIA, P_ADC_USUARIO = actaDenunciaCitacion.usuario.Identificador, P_ADC_ID_SUBMATERIA = submateria, P_ADC_FIN_ID = null, P_ADC_PROCESO_FIN = '1', P_ADC_RUT_INSPECTOR = actaDenunciaCitacion.Inspector, P_ADC_RUT_SUSTANCIADOR = null, P_ADC_OFICINA_USUARIO = actaDenunciaCitacion.OficinaUsuario, P_ADC_FECHA_INGRESO = actaDenunciaCitacion.FechaIngreso, P_ADC_FECHA_DENUNCIA = actaDenunciaCitacion.ADC_FECHA_DENUNCIA, P_ADC_NRO_FISCALIZACION = (folio == "-") ? "0" : folio, // Infractor P_ADC_COD_INFRACTOR = actaDenunciaCitacion.Infractor.Identificador, P_ADC_NOMBRES = nombreInfractor, P_ADC_APELLIDO_PAT = apellidoPInfractor, P_ADC_APELLIDO_MAT = apellidoMInfractor, P_ADC_TIPO_ID = actaDenunciaCitacion.Infractor.TipoIdentificacion, P_ADC_IDENTIFICACION = rutInfractor, P_ADC_TIPO_PERSONA = actaDenunciaCitacion.Infractor.TipoPersona, P_ADC_DOMICILIO = direcciónInfractor, P_ADC_GENERO = ' ', P_ADC_COD_ACTIVIDAD = null, P_ADC_COD_PAIS = Convert.ToInt32(pa), P_ADC_COD_COMUNA = co, P_ADC_FONO = null, //P_ADC_EMAIL = actaDenunciaCitacion.Infractor.Email, P_ADC_DIR_POSTAL = null, P_IFR_REP_LEG_RUT = ADCdetalle[0].rutRepresentante, P_IFR_REP_LEG_NOM = ADCdetalle[0].nombreRepresentante }; _daoGenerico.AgregarRegistro(actaProcedimiento, _procedimientoCrearADC); registro = 1; ActaDenunciaCitacion adcNuevo = new ActaDenunciaCitacion(); adcNuevo = _daoGenerico.Obtener <ActaDenunciaCitacion>("WHERE ADC_ROL = '" + actaDenunciaCitacion.Rol + "'"); ParametrosSubMateria subNueva = new ParametrosSubMateria() { P_ASU_ID = 0, P_ASU_ADC_ID = adcNuevo.ADC_ID, P_ASU_SUBMATERIA_ID = submateria, P_ACCION = "I" }; _daoGenerico.AgregarRegistro(subNueva, _procedimientoCrearSUBMATERIA); } catch (Exception ex) { registro = 0; throw ex; } return(registro); }