private List <CDPDto> obtenerListaObligacion(Obligacion.tipoObligacionPptal dtDetalle) { int tipoDocumentoId = 0; CDPDto documento = null; List <CDPDto> listaDocumento = new List <CDPDto>(); foreach (var item in dtDetalle.listaItemObligacion) { foreach (var itemAfectacion in item.listaItemAfectacion) { documento = new CDPDto(); documento.Obligacion = item.codObligacion; documento.Fecha = item.fechaRegistro; documento.Instancia = (int)TipoDocumento.Obligacion; documento.Detalle1 = item.estado; if (item.docRelacion != null) { documento.Cdp = item.docRelacion.codCDP; documento.Crp = item.docRelacion.codCompromiso; documento.OrdenPago = item.docRelacion.codOrdenPago.HasValue ? item.docRelacion.codOrdenPago.Value : 0; } if (item.datosAdminObligacion != null) { documento.Detalle4 = item.datosAdminObligacion.notas; documento.Detalle6 = item.datosAdminObligacion.numDocSoporte; documento.Detalle7 = item.datosAdminObligacion.nomTipoDocSoporte; } if (item.terceroBeneficiario != null) { if (Int32.TryParse(item.terceroBeneficiario.codTipoDocumento, out tipoDocumentoId)) { documento.TipoIdentificacionTercero = tipoDocumentoId; } documento.NumeroIdentificacionTercero = item.terceroBeneficiario.numDocIdentidad; documento.NombreTercero = item.terceroBeneficiario.nomTercero; } documento.ValorInicial = itemAfectacion.valorInicial; documento.ValorTotal = itemAfectacion.valorActual; documento.SaldoActual = itemAfectacion.saldoUtilizar; documento.Operacion = itemAfectacion.valorOperaciones; documento.Detalle2 = itemAfectacion.codDepAfectacion; documento.Detalle3 = itemAfectacion.nomDepAfectacion; documento.IdentificacionRubro = itemAfectacion.codPosicionGasto; listaDocumento.Add(documento); } } return(listaDocumento); }
private Obligacion.tipoObligacionPptal LeerInfomacionDelArchivoObligacion(IFormFile file) { DataTable dtDetalle = new DataTable(); Obligacion.tipoObligacionPptal tipoCdp = null; string contenido = string.Empty; XmlSerializer serializer = new XmlSerializer(typeof(Obligacion.tipoObligacionPptal)); try { contenido = ReadFormFile(file); using (StringReader sr = new StringReader(contenido)) { tipoCdp = (Obligacion.tipoObligacionPptal)serializer.Deserialize(sr); } } catch (Exception) { throw; } return(tipoCdp); }
public IActionResult CargarInformacionXML() { try { if (Request.Form.Files.Count > 0) { IFormFile file = Request.Form.Files[0]; if (file == null || file.Length <= 0) { return(BadRequest("El archivo se encuentra vacío")); } if (!Path.GetExtension(file.FileName).Equals(".xml", StringComparison.OrdinalIgnoreCase)) { return(BadRequest("El archivo no es soportado, el archivo debe tener la extensión: xml")); } if (file.FileName.Contains("CDP")) { #region Registrar CDP EliminarInformacionCDPXInstancia((int)TipoDocumento.Cdp); Cdp.tipoCDP listaCDP = LeerInfomacionDelArchivoCDP(file); List <CDPDto> listaDetalle = obtenerListaCDP(listaCDP); var EsCabeceraCorrecto = _repo.InsertaCabeceraCDPConTercero(listaDetalle); if (!EsCabeceraCorrecto) { throw new ArgumentException("No se pudo registrar los CDP"); } #endregion Registrar CDP } else if (file.FileName.Contains("COMPROMISO")) { #region Registrar Compromiso EliminarInformacionCDPXInstancia((int)TipoDocumento.Compromiso); Compromiso.tipoCompromisoPptal lista = LeerInfomacionDelArchivoCompromiso(file); List <CDPDto> listaDetalle = obtenerListaCompromiso(lista); var EsCabeceraCorrecto = _repo.InsertaCabeceraCDPConTercero(listaDetalle); if (!EsCabeceraCorrecto) { throw new ArgumentException("No se pudo registrar los Compromisos"); } #endregion Registrar Compromiso } else if (file.FileName.Contains("OBLIGACION")) { #region Registrar Obligacion EliminarInformacionCDPXInstancia((int)TipoDocumento.Obligacion); Obligacion.tipoObligacionPptal lista = LeerInfomacionDelArchivoObligacion(file); List <CDPDto> listaDetalle = obtenerListaObligacion(lista); var EsCabeceraCorrecto = _repo.InsertaCabeceraCDPConTercero(listaDetalle); if (!EsCabeceraCorrecto) { throw new ArgumentException("No se pudo registrar las obligaciones"); } #endregion Registrar Obligacion } else if (file.FileName.Contains("PAGO")) { #region Registrar Obligacion EliminarInformacionCDPXInstancia((int)TipoDocumento.OrdenPago); OrdenPago.tipoPagoTercero lista = LeerInfomacionDelArchivoOrdenPago(file); List <CDPDto> listaDetalle = obtenerListaOrdenPago(lista); var EsCabeceraCorrecto = _repo.InsertaCabeceraCDPConTercero(listaDetalle); if (!EsCabeceraCorrecto) { throw new ArgumentException("No se pudo registrar las ordenes de pago"); } #endregion Registrar Obligacion } } else { return(BadRequest("El archivo no pudo ser enviado al servidor web")); } } catch (Exception) { throw; } return(Ok()); }