public DTResultadoOperacionModel <DTErroresExcel> LeerArchivo(List <DTFilasExcel> fileFactura) { DTResultadoOperacionModel <DTSolped> _DTResultadoModel = new DTResultadoOperacionModel <DTSolped>(); DTResultadoOperacionModel <DTErroresExcel> resultado = new DTResultadoOperacionModel <DTErroresExcel>(); List <DTSolped> ListaCargaSolped = new List <DTSolped>(); List <DTErroresExcel> ListaCargaIncompleta = new List <DTErroresExcel>(); try { List <DTFilasExcel> informacion = (from dt in fileFactura where dt.index != 0 select dt).ToList(); foreach (var filas in informacion) { DTSolped _MMExcel = new DTSolped(); DTFilaValidaciones[] Fila = new DTFilaValidaciones[26]; Fila[0] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.SolNro, Valor = SUPValidaciones.ObtenerValorExcel(0, filas), Validaciones = 1 }; Fila[1] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.NroOC, Valor = SUPValidaciones.ObtenerValorExcel(1, filas), Validaciones = 0 }; Fila[2] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.LineaPedido, Valor = SUPValidaciones.ObtenerValorExcel(2, filas), Validaciones = 5 }; Fila[3] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.NroArticulos, Valor = SUPValidaciones.ObtenerValorExcel(3, filas), Validaciones = 1 }; Fila[4] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.NroSPE, Valor = SUPValidaciones.ObtenerValorExcel(4, filas), Validaciones = 0 }; Fila[5] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.HACAT, Valor = SUPValidaciones.ObtenerValorExcel(5, filas), Validaciones = 6 }; Fila[6] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.PersonaSolicitud, Valor = SUPValidaciones.ObtenerValorExcel(6, filas), Validaciones = 6 }; Fila[7] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.FechaEnvio, Valor = SUPValidaciones.ObtenerValorExcel(7, filas), Validaciones = 4 }; Fila[8] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.Estado, Valor = SUPValidaciones.ObtenerValorExcel(8, filas), Validaciones = 6 }; Fila[9] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.Tipo, Valor = SUPValidaciones.ObtenerValorExcel(9, filas), Validaciones = 6 }; Fila[10] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.Articulo, Valor = SUPValidaciones.ObtenerValorExcel(10, filas), Validaciones = 0 }; Fila[11] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.Cantidad, Valor = SUPValidaciones.ObtenerValorExcel(11, filas), Validaciones = 3 }; Fila[12] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.TotalLinea, Valor = SUPValidaciones.ObtenerValorExcel(12, filas), Validaciones = 3 }; Fila[13] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.CodigoIVA, Valor = SUPValidaciones.ObtenerValorExcel(13, filas), Validaciones = 0 }; Fila[14] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.CuadroCuentas, Valor = SUPValidaciones.ObtenerValorExcel(14, filas), Validaciones = 6 }; Fila[15] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.PersonaCreador, Valor = SUPValidaciones.ObtenerValorExcel(15, filas), Validaciones = 6 }; Fila[16] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.FechaPedido, Valor = SUPValidaciones.ObtenerValorExcel(16, filas), Validaciones = 4 }; Fila[17] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.FechaCreacion, Valor = SUPValidaciones.ObtenerValorExcel(17, filas), Validaciones = 2 }; Fila[18] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.FechaEntrega, Valor = SUPValidaciones.ObtenerValorExcel(18, filas), Validaciones = 4 }; Fila[19] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.FechaCaducidad, Valor = SUPValidaciones.ObtenerValorExcel(19, filas), Validaciones = 4 }; Fila[20] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.Proveedor, Valor = SUPValidaciones.ObtenerValorExcel(20, filas), Validaciones = 6 }; Fila[21] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.Cuenta, Valor = SUPValidaciones.ObtenerValorExcel(21, filas), Validaciones = 0 }; Fila[22] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.IdOC, Valor = SUPValidaciones.ObtenerValorExcel(22, filas), Validaciones = 5 }; Fila[23] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.LeandingCostC, Valor = SUPValidaciones.ObtenerValorExcel(23, filas), Validaciones = 6 }; Fila[24] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.EstadoLinea, Valor = SUPValidaciones.ObtenerValorExcel(24, filas), Validaciones = 0 }; Fila[25] = new DTFilaValidaciones() { Nombre = DTEstructuraSolped.Divisa, Valor = SUPValidaciones.ObtenerValorExcel(25, filas), Validaciones = 6 }; foreach (DTFilaValidaciones valores in Fila) { DTErroresExcel Errores = SUPValidaciones.Validacion(valores, filas.index); if (Errores.Mensaje != string.Empty) { ListaCargaIncompleta.Add(Errores); } else { switch (valores.Nombre) { case DTEstructuraSolped.SolNro: _MMExcel.SolNro = Int32.Parse(valores.Valor); break; case DTEstructuraSolped.NroOC: _MMExcel.NroOC = valores.Valor; break; case DTEstructuraSolped.LineaPedido: if (!string.IsNullOrEmpty(valores.Valor)) { _MMExcel.LineaPedido = Int32.Parse(valores.Valor); } else { _MMExcel.NroOC = null; } break; case DTEstructuraSolped.NroArticulos: _MMExcel.NroArticulos = Int32.Parse(valores.Valor); break; case DTEstructuraSolped.NroSPE: _MMExcel.NroSPE = valores.Valor; break; case DTEstructuraSolped.HACAT: _MMExcel.HACAT = valores.Valor; break; case DTEstructuraSolped.PersonaSolicitud: _MMExcel.PersonaSolicitud = valores.Valor; break; case DTEstructuraSolped.FechaEnvio: _MMExcel.FechaEnvio = Errores.Fecha; break; case DTEstructuraSolped.Estado: _MMExcel.Estado = valores.Valor; break; case DTEstructuraSolped.Tipo: _MMExcel.Tipo = valores.Valor; break; case DTEstructuraSolped.Articulo: _MMExcel.Articulo = valores.Valor; break; case DTEstructuraSolped.Cantidad: _MMExcel.Cantidad = decimal.Parse(valores.Valor); break; case DTEstructuraSolped.TotalLinea: string valor = valores.Valor.Replace('.', ','); _MMExcel.TotalLinea = decimal.Parse(valor); break; case DTEstructuraSolped.CodigoIVA: _MMExcel.CodigoIVA = valores.Valor; break; case DTEstructuraSolped.CuadroCuentas: _MMExcel.CuadroCuentas = valores.Valor; break; case DTEstructuraSolped.PersonaCreador: _MMExcel.PersonaCreador = valores.Valor; break; case DTEstructuraSolped.FechaPedido: _MMExcel.FechaPedido = Errores.Fecha; break; case DTEstructuraSolped.FechaCreacion: _MMExcel.FechaCreacion = (DateTime)Errores.Fecha; break; case DTEstructuraSolped.FechaEntrega: _MMExcel.FechaEntrega = Errores.Fecha; break; case DTEstructuraSolped.FechaCaducidad: _MMExcel.FechaCaducidad = Errores.Fecha; break; case DTEstructuraSolped.Proveedor: _MMExcel.Proveedor = valores.Valor; break; case DTEstructuraSolped.Cuenta: _MMExcel.Cuenta = valores.Valor; break; case DTEstructuraSolped.IdOC: if (!string.IsNullOrEmpty(valores.Valor)) { _MMExcel.IdOC = Int32.Parse(valores.Valor); } else { _MMExcel.NroOC = null; } break; case DTEstructuraSolped.LeandingCostC: _MMExcel.LeandingCostC = valores.Valor; break; case DTEstructuraSolped.EstadoLinea: _MMExcel.EstadoLinea = valores.Valor; break; case DTEstructuraSolped.Divisa: _MMExcel.Divisa = valores.Valor; break; } } } _MMExcel.Fila = filas.index + 1; //Registros Duplicados List <DTSolped> ExisteRegistroDuplicados = (from dt in ListaCargaSolped where dt.SolNro == _MMExcel.SolNro && dt.NroArticulos == _MMExcel.NroArticulos select dt).ToList(); //ValidaciĆ³n Registros Duplicados if (ExisteRegistroDuplicados.Count > 0) { DTErroresExcel _Excel1 = new DTErroresExcel(); _Excel1.Mensaje = "Se repiten registros."; _Excel1.Fila = filas.index + 1; _Excel1.Campo = DTEstructuraSolped.SolNro + ", " + DTEstructuraSolped.NroArticulos; _Excel1.Valor = _MMExcel.SolNro.ToString() + ", " + _MMExcel.NroArticulos.ToString(); ListaCargaIncompleta.Add(_Excel1); foreach (var item in ExisteRegistroDuplicados) { DTErroresExcel _Excel = new DTErroresExcel(); _Excel.Mensaje = "Se repiten registros."; _Excel.Fila = item.Fila; _Excel.Campo = DTEstructuraSolped.SolNro + ", " + DTEstructuraSolped.NroArticulos; _Excel.Valor = _MMExcel.SolNro.ToString() + ", " + _MMExcel.NroArticulos.ToString(); ListaCargaIncompleta.Add(_Excel); ListaCargaSolped.RemoveAll(c => c.Fila == item.Fila); } } // consultar si la fila no tiene inconvenientes List <DTErroresExcel> ConInformacion = (from dt in ListaCargaIncompleta where dt.Fila == (filas.index + 1) select dt).ToList(); // si no prensentar inconveniente se agrega a la lista de carga bd. if (ConInformacion.Count == 0) { ListaCargaSolped.Add(_MMExcel); } } //// inserta los exitoso o setea en 0 los estados ConvertToDataTable(ListaCargaSolped); if (ListaCargaIncompleta.Count > 0) { ConvertToXML(ListaCargaIncompleta); } _DTResultadoModel.Respuesta = true; resultado.Respuesta = _DTResultadoModel.Respuesta; } catch (Exception ex) { _DTResultadoModel.Mensaje = DTMensaje.ObtenerObjetoMensaje(DTCodigoMensajes.MENSAJE008); _DTResultadoModel.Respuesta = false; GestorLog.RegistrarLogExcepcion(ex); resultado.Respuesta = _DTResultadoModel.Respuesta; resultado.Mensaje = _DTResultadoModel.Mensaje; } return(resultado); }
public DTResultadoOperacionModel <DTErroresExcel> LeerArchivo(List <DTFilasExcel> fileFactura, string MesGasto) { DTResultadoOperacionModel <DTGastos> _DTResultadoModel = new DTResultadoOperacionModel <DTGastos>(); DTResultadoOperacionModel <DTErroresExcel> resultado = new DTResultadoOperacionModel <DTErroresExcel>(); List <DTGastos> ListaCarga = new List <DTGastos>(); List <DTErroresExcel> ListaCargaIncompleta = new List <DTErroresExcel>(); try { List <DTFilasExcel> informacion = (from dt in fileFactura where dt.index != 0 select dt).ToList(); foreach (var filas in informacion) { DTGastos _MMExcel = new DTGastos(); DTFilaValidaciones[] Fila = new DTFilaValidaciones[8]; Fila[0] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.NomCuenta, Valor = SUPValidaciones.ObtenerValorExcel(0, filas), Validaciones = 6, Id = 1 }; Fila[1] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.NomCentroC, Valor = SUPValidaciones.ObtenerValorExcel(1, filas), Validaciones = 6 }; Fila[2] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.NroCuenta, Valor = SUPValidaciones.ObtenerValorExcel(2, filas), Validaciones = 6, Id = 2 }; Fila[3] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.CentroCoste, Valor = SUPValidaciones.ObtenerValorExcel(3, filas), Validaciones = 5 }; //Fila[4] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.Concatenar, Valor = SUPValidaciones.ObtenerValorExcel(4, filas), Validaciones = 6 }; Fila[4] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.Tipo, Valor = SUPValidaciones.ObtenerValorExcel(5, filas), Validaciones = 6 }; Fila[5] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.Mes, Valor = SUPValidaciones.ObtenerValorExcel(6, filas), Validaciones = 7 }; //Fila[6] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.Cambios, Valor = SUPValidaciones.ObtenerValorExcel(7, filas), Validaciones = 7 }; Fila[6] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.Ajustes, Valor = SUPValidaciones.ObtenerValorExcel(7, filas), Validaciones = 7 }; Fila[7] = new DTFilaValidaciones() { Nombre = DTEstructuraGastos.TotalMes, Valor = SUPValidaciones.ObtenerValorExcel(8, filas), Validaciones = 7 }; foreach (DTFilaValidaciones valores in Fila) { DTErroresExcel Errores = SUPValidaciones.Validacion(valores, filas.index); if (Errores.Mensaje != string.Empty) { ListaCargaIncompleta.Add(Errores); } else { switch (valores.Nombre) { case DTEstructuraGastos.NomCuenta: if (valores.Id == 1) { _MMExcel.NomCuenta = valores.Valor; } else if (valores.Id == 2) { _MMExcel.NroCuenta = valores.Valor; } break; case DTEstructuraGastos.NomCentroC: _MMExcel.NomCentroC = valores.Valor; break; case DTEstructuraGastos.CentroCoste: if (!string.IsNullOrEmpty(valores.Valor)) { _MMExcel.CentroCoste = double.Parse(valores.Valor); } else { _MMExcel.CentroCoste = default; } break; //case DTEstructuraGastos.Concatenar: // _MMExcel.Concatenar = valores.Valor; // break; case DTEstructuraGastos.Tipo: _MMExcel.Tipo = valores.Valor; break; case DTEstructuraGastos.Mes: if (!string.IsNullOrEmpty(valores.Valor)) { _MMExcel.Mes = decimal.Parse(valores.Valor); } else { _MMExcel.Mes = default; } break; case DTEstructuraGastos.Ajustes: if (!string.IsNullOrEmpty(valores.Valor)) { _MMExcel.Ajustes = decimal.Parse(valores.Valor); } else { _MMExcel.Ajustes = default; } break; case DTEstructuraGastos.TotalMes: if (!string.IsNullOrEmpty(valores.Valor)) { _MMExcel.TotalMes = decimal.Parse(valores.Valor); } else { _MMExcel.TotalMes = default; } break; } } } _MMExcel.Fila = filas.index + 1; //Registros Duplicados List <DTGastos> ExisteRegistroDuplicados = (from dt in ListaCarga where dt.NroCuenta == _MMExcel.NroCuenta && dt.CentroCoste == _MMExcel.CentroCoste select dt).ToList(); //ValidaciĆ³n Registros Duplicados if (ExisteRegistroDuplicados.Count > 0) { DTErroresExcel _Excel1 = new DTErroresExcel(); _Excel1.Mensaje = "Se repiten registros."; _Excel1.Fila = filas.index + 1; _Excel1.Campo = DTEstructuraGastos.NroCuenta + ", " + DTEstructuraGastos.CentroCoste; _Excel1.Valor = _MMExcel.NroCuenta.ToString() + ", " + _MMExcel.CentroCoste.ToString(); ListaCargaIncompleta.Add(_Excel1); foreach (var item in ExisteRegistroDuplicados) { DTErroresExcel _Excel = new DTErroresExcel(); _Excel.Mensaje = "Se repiten registros."; _Excel.Fila = item.Fila; _Excel.Campo = DTEstructuraGastos.NroCuenta + ", " + DTEstructuraGastos.CentroCoste; _Excel.Valor = _MMExcel.NroCuenta.ToString() + ", " + _MMExcel.CentroCoste.ToString(); ListaCargaIncompleta.Add(_Excel); ListaCarga.RemoveAll(c => c.Fila == item.Fila); } } // consultar si la fila no tiene inconvenientes List <DTErroresExcel> ConInformacion = (from dt in ListaCargaIncompleta where dt.Fila == (filas.index + 1) select dt).ToList(); // si no prensentar inconveniente se agrega a la lista de carga bd. if (ConInformacion.Count == 0) { ListaCarga.Add(_MMExcel); } } //// inserta los exitoso o setea en 0 los estados ConvertToDataTable(ListaCarga, MesGasto); if (ListaCargaIncompleta.Count > 0) { ConvertToXML(ListaCargaIncompleta); } _DTResultadoModel.Respuesta = true; resultado.Respuesta = _DTResultadoModel.Respuesta; } catch (Exception ex) { _DTResultadoModel.Mensaje = DTMensaje.ObtenerObjetoMensaje(DTCodigoMensajes.MENSAJE008); _DTResultadoModel.Respuesta = false; GestorLog.RegistrarLogExcepcion(ex); resultado.Respuesta = _DTResultadoModel.Respuesta; resultado.Mensaje = _DTResultadoModel.Mensaje; } return(resultado); }