private async void PageLoadExecute() { var lista = new List <ListaSelecao>(); lista.Add(new ListaSelecao() { Id = 1, Nome = "Receita" }); lista.Add(new ListaSelecao() { Id = 2, Nome = "Despesa" }); Tipos = lista; await CarregarDadosAuxiliares(); if (Parametro != null) { var id = int.Parse(Parametro.ToString()); Detalhe = await _contaRepositorio.ObterDetalhesLancamento(id); ContaSelecionada = Contas.FirstOrDefault(c => c.ContaId == Detalhe.ContaId); CategoriaSelecionada = Categorias.FirstOrDefault(c => c.CategoriaId == Detalhe.CategoriaId); TipoSelecionado = Tipos.FirstOrDefault(c => c.Id == (Detalhe.Tipo == "+" ? 1 : 2)); } else { Detalhe = new Lancamento() { DataLancamento = DateTime.Now, DataVencimento = DateTime.Now }; } }
private void Bgw_DoWork(object sender, DoWorkEventArgs e) { if (Bgw.CancellationPending) { e.Cancel = true; return; } else { try { using (var db = new DymContext()) { ClavesSat = db.CClaveProdServ.AsNoTracking().ToList(); Laboratorios = db.Laboratorio.AsNoTracking().ToList(); UnidadMedidas = db.UnidadMedida.AsNoTracking().ToList(); Presentaciones = db.Presentacion.AsNoTracking().ToList(); Categorias = db.Categoria.AsNoTracking().ToList(); } //Opening an existing Excel file if (Ruta.Length == 0) { Ambiente.Mensaje("Archivo invalido. \nProceso abortado"); return; } fi = new FileInfo(Ruta); using (ExcelPackage excelPackage = new ExcelPackage(fi)) { //Get a WorkSheet by index. Note that EPPlus indexes are base 1, not base 0! //Get a WorkSheet by name. If the worksheet doesn't exist, throw an exeption workSheet = excelPackage.Workbook.Worksheets[1]; var start = workSheet.Dimension.Start; var end = workSheet.Dimension.End; bool succes = false; int nIntValue = 0; decimal nDecValue = 1m; for (row = start.Row + 1; row <= end.Row; row++) { // Row by row... var producto = new Producto(); for (col = start.Column; col <= end.Column; col++) { switch (col) { case 1: //ProductoId producto.ProductoId = workSheet.Cells[row, col].Text.Trim(); break; case 2: //Descripcion producto.Descripcion = workSheet.Cells[row, col].Text.Trim(); break; case 3: //Stock succes = false; succes = int.TryParse(workSheet.Cells[row, col].Text.Trim(), out nIntValue); if (succes) { producto.Stock = nIntValue; } else { producto.Stock = 0; } break; case 4: //Contenido producto.Contenido = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "" : workSheet.Cells[row, col].Text.Trim(); break; case 5: //CategoriaId var Categoria = Categorias.FirstOrDefault(x => x.CategoriaId == workSheet.Cells[row, col].Text.Trim()); if (Categoria != null) { producto.CategoriaId = Categoria.CategoriaId; } else { producto.CategoriaId = "SYS"; } break; case 6: //PresentacionId var Presentacion = Presentaciones.FirstOrDefault(x => x.PresentacionId == workSheet.Cells[row, col].Text.Trim()); if (Presentacion != null) { producto.PresentacionId = Presentacion.PresentacionId; } else { producto.PresentacionId = "SYS"; } break; case 7: //LaboratorioId var Laboratorio = Laboratorios.FirstOrDefault(x => x.LaboratorioId == workSheet.Cells[row, col].Text.Trim()); if (Laboratorio != null) { producto.LaboratorioId = Laboratorio.LaboratorioId; } else { producto.LaboratorioId = "SYS"; } break; case 8: //Unidades producto.Unidades = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "" : workSheet.Cells[row, col].Text.Trim(); break; case 9: //PrecioCompra succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.PrecioCompra = nDecValue; } else { producto.PrecioCompra = 1M; } break; case 10: //PrecioCaja succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.PrecioCaja = nDecValue; } else { producto.PrecioCaja = 1M; } break; case 11: //Precio1 succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.Precio1 = nDecValue; } else { producto.Precio1 = 1M; } break; case 12: //Precio2 succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.Precio2 = nDecValue; } else { producto.Precio2 = 1M; } break; case 13: //Utilidad1 succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.Utilidad1 = nDecValue; } else { producto.Utilidad1 = 1M; } break; case 14: //Utilidad2 succes = false; succes = decimal.TryParse(workSheet.Cells[row, col].Text.Trim(), out nDecValue); if (succes) { producto.Utilidad2 = nDecValue; } else { producto.Utilidad2 = 1M; } break; case 15: //TieneLote if (workSheet.Cells[row, col].Text.Trim().Equals("VERDADERO")) { producto.TieneLote = true; } else { producto.TieneLote = false; } break; case 16: //UnidadMedidaId var UnidadMedida = UnidadMedidas.FirstOrDefault(x => x.UnidadMedidaId == workSheet.Cells[row, col].Text.Trim()); if (UnidadMedida != null) { producto.UnidadMedidaId = UnidadMedida.UnidadMedidaId; } else { producto.UnidadMedidaId = "SYS"; } break; case 17: //ClaveCfdiId var ClaveProdServ = ClavesSat.FirstOrDefault(x => x.ClaveProdServId == workSheet.Cells[row, col].Text.Trim()); if (ClaveProdServ != null) { producto.ClaveProdServId = ClaveProdServ.ClaveProdServId; } else { producto.ClaveUnidadId = "01010101"; } break; case 18: //UnidadCfdi producto.ClaveUnidadId = workSheet.Cells[row, col].Text.Trim().Length == 0 ? "H87" : workSheet.Cells[row, col].Text.Trim(); break; case 19: //RutaImg producto.RutaImg = workSheet.Cells[row, col].Text.Trim().Length == 0 ? null : (Ambiente.Empresa.DirectorioImg + workSheet.Cells[row, col].Text.Trim()); producto.CratedAt = DateTime.Now; producto.UpdatedAt = DateTime.Now; producto.CratedBy = Ambiente.LoggedUser.UsuarioId; if (producto.ProductoId == null || producto.ProductoId.Length == 0) { Errores.Add("SE OMITIÓ, " + producto.ProductoId + ", A CAUSA DE FILA: " + row + " COLUMNA: " + col + "\n"); } else { Productos.Add(producto); } break; default: MessageBox.Show("Columna no encontrada"); break; } Bgw.ReportProgress(row); } } excelPackage.Save(); } if (new ProductoController().InsertRange(Productos)) { exito = true; } } catch (Exception ex) { Ambiente.Mensaje(" ALGO SALIO MAL EN FILA: " + row + " COLUMNA: " + col + "\n" + ex.ToString()); } } }