/// <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); }
/// <summary> /// Metodo que permite realizar consulta de actas. /// </summary> /// <param name="request">Infraccional Request.</param> /// <returns></returns> public InfraccionalResponse InfraccionalRead(InfraccionalRequest request) { log.Info("Inicio del metodo InfraccionalRead"); List <_ActaDenunciaCitacion> Actas = new List <_ActaDenunciaCitacion>(); List <ActaDenunciaCitacion> actas = new List <ActaDenunciaCitacion>(); List <ActaDenunciaCitacion> Bitacoras = new List <ActaDenunciaCitacion>(); List <ActaDenunciaCitacion> bitacoras = new List <ActaDenunciaCitacion>(); List <Incumplimiento> incumplimientos = new List <Incumplimiento>(); InfraccionalResponse respuesta = new InfraccionalResponse(); _ActaDenunciaCitacion actasCitacion = new _ActaDenunciaCitacion(); List <ADCHito> hitos = new List <ADCHito>(); _ADCEstado EstadosADC = new _ADCEstado(); // crud mantenedores try { if (!string.IsNullOrEmpty(request.TipoADC)) { // TIPO ADC = 1 (Traigo todas las Actas) if (request.TipoADC == "1") { log.Info("Tipo ADC =" + request.TipoADC); if (!string.IsNullOrEmpty(request.Json)) { var Parametros = _contextoSerializacion.Deserializar <ParametrosADC>(request.Json); if (!string.IsNullOrEmpty(Parametros.NumeroFiscalizacion)) { var BDFisca = new fiscalizacionEDM(); //Parametros.NumeroFiscalizacion = "1010000138"; // Con esta consulta trae la información completa desde el sistema de fiscalización var objFisca = BDFisca.Historica.Where(a => a.aftFolio == Parametros.NumeroFiscalizacion).FirstOrDefault(); if (objFisca == null) { respuesta.CodigoRespuesta = "ERROR_LIST"; respuesta.Mensaje = "No se encontró información relacionada al N° de Fiscalización suministrado en el sistema de fiscalización. [" + Parametros.NumeroFiscalizacion + "]"; string json = _contextoSerializacion.Serializar(Actas); respuesta.Json = json; return(respuesta); } // Con esta consulta trae información de los adjuntos. var fotoADC = BDFisca.FotoFW.Where(a => a.idchecklist == objFisca.idChecklist && a.tipoDocumento == 3).FirstOrDefault(); // Obtencion de fiscalizacion desde el sistema de fiscalizacion //ActaDenunciaCitacionDetalle fisca = _infraccionalComposite.InfraccionalNegocio.ObtenerADCdetalleSegunFiscalizacion(Parametros.NumeroFiscalizacion).First(); // Si el resultado de la fiscalización es negativo, se debe consultar el ADC if (objFisca.resultadoFiscalizacion == "NO") { // Obtención de información desde Sancionatorio actas = _infraccionalComposite.InfraccionalNegocio.ObtenerActasSegunFiscalizacion(objFisca.aftFolio); incumplimientos = _infraccionalComposite.FiscalizacionNegocio.ObtenerIncumplimientos(objFisca.idChecklist.ToString()); foreach (var _actas in actas) { actasCitacion = new _ActaDenunciaCitacion() { IdADC = _actas.ADC_ID, NroExpedienteRol = (int)_actas.Rol, FechaAudiencia = _actas.ADC_FECHA_AUDIENCIA, FechaDenuncia = _actas.ADC_FECHA_DENUNCIA, NumeroFiscalizacion = Parametros.NumeroFiscalizacion, Usuario = new _Usuario() { RutUsuario = _actas.usuario.Login, NombreUsuario = _actas.usuario.Nombre, //Oficina = _actas.usuario.Oficina Oficina = new _Oficina() { //IdOficina = fisca.idOficina, IdOficina = (int)objFisca.idOficina, //NombreOficina = fisca.descOficina NombreOficina = objFisca.nombreOficina } }, NegocioFiscalizacion = (_actas.NegocioFiscalizacion != null) ? new _NegocioFiscalizacion() { FiscalizacionPDF = new _NegocioFiscalizacionAdjuntos() { //IdNegocioFiscaAdjunto = (_actas.NegocioFiscalizacion.negocioFiscalizacionAdjunto.IdNegocioFiscaAdjunto != null) ? _actas.NegocioFiscalizacion.negocioFiscalizacionAdjunto.IdNegocioFiscaAdjunto : 0, NombrePDF = (fotoADC != null) ? ConfigurationManager.AppSettings["UrlDescargaFiscalizacion"] + fotoADC.nombre : ConfigurationManager.AppSettings["BaseURLFiscalizacion"] + "/Gestion/ADCView?id=" + objFisca.idFiscalizacionDetalle } } : null, Incumplimientos = incumplimientos.Select(x => new _Incumplimiento { Identificador = x.Identificador, Opcion = new _Opcion { Identificador = x.Opcion.Identificador, Descripcion = x.Opcion.Descripcion }, Pregunta = new _Pregunta { Identificador = x.Pregunta.Identificador, Descripcion = x.Pregunta.Descripcion } }).ToList() }; Actas.Add(actasCitacion); } } if (Actas.Count > 0) { respuesta.CodigoRespuesta = "SUCCESS_LIST"; respuesta.Mensaje = "Actas de denuncia exitosas"; string json = _contextoSerializacion.Serializar(Actas); respuesta.Json = json; } else if (objFisca.resultadoFiscalizacion == "SI") { respuesta.CodigoRespuesta = "SUCCESS_LIST"; respuesta.Mensaje = "La fiscalización no cuenta con incumplimientos"; string json = "{}"; respuesta.Json = json; } else { return(respuesta = Respuesta.RespuestaPersonalizado("No existe información de ADC vinculada con el Sistema Infraccional", "ERROR_LIST")); } } else { return(respuesta = Respuesta.RespuestaPersonalizado("Debe Ingresar Número de Fiscalización!", "ERROR_LIST")); } } else { return(respuesta = Respuesta.RespuestaPersonalizado("Debe Validar los Valores en el JSON!", "ERROR_LIST")); } } // TIPO ADC = 2 (Traigo las Bitacoras) else if (request.TipoADC == "2") { if (!string.IsNullOrEmpty(request.Json)) { var paramBitacora = _contextoSerializacion.Deserializar <ParametrosADC>(request.Json); var sancBD = new sancionatorioEDM(); var numeroADC = Int32.Parse(paramBitacora.NumeroADC); var bit = sancBD.SS_NEG_ADC_HITO.Where(a => a.ADH_ADC_ID == numeroADC); var asdf = bit.ToList(); bitacoras = _infraccionalComposite.InfraccionalNegocio.ObtenerBistacorasSegunFiscalizacion(paramBitacora.NumeroADC); foreach (var _bitacoras in asdf) { var nuevaActasCitacion = new ActaDenunciaCitacion() { ADC_ID = _bitacoras.ADH_ADC_ID, ADC_NRO_FISCALIZACION = _bitacoras.SS_NEG_ADC.ADC_NRO_FISCALIZACION.ToString(), Sistema = _bitacoras.SS_NEG_ADC.ADC_SISTEMA_ID, Rol = (double)_bitacoras.SS_NEG_ADC.ADC_ROL, Numero = 0, ADC_FECHA_AUDIENCIA = (DateTime)_bitacoras.SS_NEG_ADC.ADC_FECHA_AUDIENCIA, UsuarioCreador = _bitacoras.SS_NEG_ADC.SS_ADM_USUARIOS.USR_NOMBRE, Inspector = _bitacoras.SS_NEG_ADC.ADC_RUT_INSPECTOR, OficinaUsuario = (int)_bitacoras.SS_NEG_ADC.ADC_OFICINA_USUARIO, FechaIngreso = (DateTime)_bitacoras.SS_NEG_ADC.ADC_FECHA_INGRESO, ADC_FECHA_DENUNCIA = (DateTime)_bitacoras.SS_NEG_ADC.ADC_FECHA_DENUNCIA, usuario = new Usuario { Identificador = "asdf" }, ActaDenunciaCItacionHistorico = new ActaDenunciaCItacionHistorico { CodigoResolucion = _bitacoras.ADH_COD, NumeroResolucion = _bitacoras.ADH_NUM_RESOLUCION, ObservacionResolucion = _bitacoras.ADH_OBSERVACION, ADH_RUT_USUARIO = _bitacoras.ADH_RUT_USUARIO.ToString(), ADCResolucion = new ADCResolucion { IdResolucion = (_bitacoras.SS_NEG_ADC_RESOLUCION.Count > 0) ? _bitacoras.SS_NEG_ADC_RESOLUCION.First().ADR_ID : 0, Fecha = (_bitacoras.SS_NEG_ADC_RESOLUCION.Count > 0) ? _bitacoras.SS_NEG_ADC_RESOLUCION.First().ADR_FECHA : new DateTime(), FechaSistema = (_bitacoras.SS_NEG_ADC_RESOLUCION.Count > 0) ? _bitacoras.SS_NEG_ADC_RESOLUCION.First().ADR_FECHA_SIS : new DateTime(), }, }, Proceso = new Proceso { IdProceso = _bitacoras.SS_NEG_ADC.SS_MAE_PROCESO.PCS_COD_PROCESO, NombreProceso = _bitacoras.SS_NEG_ADC.SS_MAE_PROCESO.PCS_DES_PROCESO }, Infractor = new Infractor { Identificador = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_COD, Nombre = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_NOMBRES, ApellidoPaterno = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_APELLIDO_PAT, ApellidoMaterno = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_APELLIDO_MAT, TipoIdentificacion = Int32.Parse(_bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_TIPO_ID), TipoPersona = Int32.Parse(_bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_TIPO_PERSONA), Direccion = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_DOMICILIO, Genero = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_GENERO, Comuna = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_COD_COMUNA, Pais = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_COD_PAIS.ToString(), Identificacion = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_IDENTIFICACION, Email = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_EMAIL, Postal = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_DIR_POSTAL, RutRepresentanteLegal = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_REP_LEG_RUT, NombreRepresentanteLegal = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_REP_LEG_NOM, Actividad = (_bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_COD_ACTIVIDAD) ?? 0, Fono = _bitacoras.SS_NEG_ADC.SS_NEG_INFRACTOR.IFR_FONO } //ActaDenunciaCItacionHistorico = new _ActaDenunciaCItacionHistorico() //{ // IdADCHistorico = _bitacoras.ActaDenunciaCItacionHistorico.CodigoResolucion, // NumeroResolucion = _bitacoras.ActaDenunciaCItacionHistorico.NumeroResolucion, // Observacion = _bitacoras.ActaDenunciaCItacionHistorico.ObservacionResolucion, // ADCResolucion = new _ADCResolucion() // { // Fecha = _bitacoras.ActaDenunciaCItacionHistorico.ADCResolucion.Fecha, // FechaSistema = _bitacoras.ActaDenunciaCItacionHistorico.ADCResolucion.FechaSistema, // HoraSistema = _bitacoras.ActaDenunciaCItacionHistorico.ADCResolucion.FechaSistema.Hour.ToString() // } //}, //Proceso = new _Proceso() //{ // IdProceso = _bitacoras.Proceso.IdProceso, // NombreProceso = _bitacoras.Proceso.NombreProceso //}, //Usuario = new _Usuario() //{ // RutUsuario = _bitacoras.usuario.Identificador, // NombreUsuario = _bitacoras.usuario.Nombre //} }; Bitacoras.Add(nuevaActasCitacion); } if (Bitacoras.Count > 0) { respuesta.CodigoRespuesta = "SUCCESS_LIST"; respuesta.Mensaje = "Bitacoras exitosas"; string json = _contextoSerializacion.Serializar(Bitacoras); respuesta.Json = json; } else { respuesta.CodigoRespuesta = "ERROR_LIST"; respuesta.Mensaje = "Error al obtener las Bitacoras."; } } else { return(respuesta = Respuesta.RespuestaPersonalizado("Debe Ingresar Valores en el Tipo ADC!", "ERROR_LIST")); } } // TIPO ADC = 3 (Traigo los Hitos y detalles) else if (request.TipoADC == "3") { if (!string.IsNullOrEmpty(request.Json)) { var Parametros = _contextoSerializacion.Deserializar <ParametrosADC>(request.Json); if (!string.IsNullOrEmpty(Parametros.NumeroADC)) { hitos = _infraccionalComposite.InfraccionalNegocio.ObtenerADCdetalleSegunNumeroADC(Parametros.NumeroADC); respuesta.CodigoRespuesta = "SUCCESS_LIST"; respuesta.Mensaje = "Lista Hitos Exitosa"; string json = _contextoSerializacion.Serializar(hitos); respuesta.Json = json; } else { return(respuesta = Respuesta.RespuestaPersonalizado("Debe Ingresar Número de ADC!", "ERROR_LIST")); } } else { return(respuesta = Respuesta.RespuestaPersonalizado("Debe Validar los Valores en el JSON!", "ERROR_LIST")); } } } } catch (Exception ex) { throw ex; } return(respuesta); }