/// <summary> /// Metodo para inactivar la configuracion anterior /// </summary> /// <param name="configuracionImportar"></param> public void InactivarConfiguracionAnterior(ConfiguracionFormulaInfo configuracionImportar) { try { Logger.Info(); Dictionary <string, object> parameters = AuxConfiguracionFormulaDAL.ObtenerParametroInactivar(configuracionImportar); Update("ConfiguracionFormula_InactivarConfiguracionFormula", parameters); } catch (SqlException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (DataException ex) { Logger.Error(ex); throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo para dejar utilizable la pantalla de nuevo /// </summary> private void LimpiarControles() { skAyudaOrganizacion.LimpiarCampos(); txtArchivo.Text = ""; ConfiguracionFormula = new ConfiguracionFormulaInfo(); }
/// <summary> /// Evento para exportar la configuracion de las formulas a excel /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnExportar_Click(object sender, RoutedEventArgs e) { try { if (!String.IsNullOrEmpty(skAyudaOrganizacion.Clave)) { var dlg = new Microsoft.Win32.SaveFileDialog { FileName = "ConfiguracionFormulas", DefaultExt = ".xlsx", Filter = "Excel files (.xlsx)|*.xlsx" }; // Show save file dialog box var result = dlg.ShowDialog(); // Process save file dialog box results if (result != true) { return; } // Save document string nombreArchivo = dlg.FileName; var configuracionFormulaPL = new ConfiguracionFormulaPL(); var configuracionImportar = new ConfiguracionFormulaInfo { NombreArchivo = nombreArchivo, OrganizacionID = Extensor.ValorEntero(skAyudaOrganizacion.Clave) }; bool configuracionFormulaInfo = configuracionFormulaPL.ExportarArchivo(configuracionImportar); if (!configuracionFormulaInfo) { return; } //Guardado correctamente SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ConfigurarFormula_ExportoCorrectamente, MessageBoxButton.OK, MessageImage.Correct); LimpiarControles(); } else { //Favor de seleccionar una organizacion SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ConfigurarFormula_SeleccionarOrganizacion, MessageBoxButton.OK, MessageImage.Stop); } } catch (ExcepcionDesconocida ex) { Logger.Error(ex); //Favor de seleccionar una organizacion SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], (ex.InnerException == null ? ex.Message : ex.InnerException.Message), MessageBoxButton.OK, MessageImage.Stop); } catch (Exception ex) { Logger.Error(ex); //Favor de seleccionar una organizacion SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ConfigurarFormula_ExportarError, MessageBoxButton.OK, MessageImage.Stop); } }
/// <summary> /// Metodo para generar el archivo excel /// </summary> /// <param name="configuracionFormulaInfoLista"></param> /// <param name="configuracionFormulaExportar"></param> /// <returns></returns> private bool GenerarArchivo(IList <ConfiguracionFormulaInfo> configuracionFormulaInfoLista, ConfiguracionFormulaInfo configuracionFormulaExportar) { bool resp = false; try { Logger.Info(); string file = configuracionFormulaExportar.NombreArchivo; if (File.Exists(file)) { try { File.Delete(file); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(ResourceServices.ConfigurarFormula_ArchivoEnUso); } } var newFile = new FileInfo(file); using (var pck = new ExcelPackage(newFile)) { // get the handle to the existing worksheet var wsData = pck.Workbook.Worksheets.Add(ResourceServices.ConfigurarFormula_TituloExcel); wsData.Cells["A1"].Value = ResourceServices.ConfigurarFormula_TituloExcel; using (ExcelRange r = wsData.Cells["A1:K1"]) { r.Merge = true; r.Style.Font.SetFromFont(new Font("Arial Bold", 16, FontStyle.Regular)); r.Style.Font.Color.SetColor(Color.White); r.Style.HorizontalAlignment = ExcelHorizontalAlignment.CenterContinuous; r.Style.Fill.PatternType = ExcelFillStyle.Solid; r.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(255, 178, 34, 34)); } ExcelRangeBase dataRange; if (configuracionFormulaInfoLista == null || configuracionFormulaInfoLista.Count <= 0) { var configuracionFormulaInfo = new ConfiguracionFormulaInfo { Formula = new FormulaInfo { Descripcion = "" }, PesoInicioMinimo = 0, PesoInicioMaximo = 0, TipoGanado = "", PesoSalida = 0, FormulaSiguiente = new FormulaInfo { Descripcion = "" }, DiasEstanciaMinimo = 0, DiasEstanciaMaximo = 0, DiasTransicionMinimo = 0, DiasTransicionMaximo = 0, Disponibilidad = Disponibilidad.No }; configuracionFormulaInfoLista = new List <ConfiguracionFormulaInfo> { configuracionFormulaInfo }; dataRange = wsData.Cells["A2"].LoadFromCollection( from s in configuracionFormulaInfoLista orderby s.ConfiguracionFormulaID select new { Fórmula = s.Formula.Descripcion, Peso_Inicio_Mínimo = s.PesoInicioMinimo, Peso_Inicio_Máximo = s.PesoInicioMaximo, Tipo_Ganado = s.TipoGanado, Peso_Salida = s.PesoSalida, Fórmula_Siguiente = s.FormulaSiguiente.Descripcion, Días_Estancia_Mínimo = s.DiasEstanciaMinimo, Días_Estancia_Máximo = s.DiasEstanciaMaximo, Días_Transición_Mínimo = s.DiasTransicionMinimo, Días_Transición_Máximo = s.DiasTransicionMaximo, Disponibilidad = s.Disponibilidad }, true, TableStyles.None); } else { dataRange = wsData.Cells["A2"].LoadFromCollection( from s in configuracionFormulaInfoLista orderby s.ConfiguracionFormulaID select new { Fórmula = s.Formula.Descripcion, Peso_Inicio_Mínimo = s.PesoInicioMinimo, Peso_Inicio_Máximo = s.PesoInicioMaximo, Tipo_Ganado = s.TipoGanado, Peso_Salida = s.PesoSalida, Fórmula_Siguiente = s.FormulaSiguiente.Descripcion, Días_Estancia_Mínimo = s.DiasEstanciaMinimo, Días_Estancia_Máximo = s.DiasEstanciaMaximo, Días_Transición_Mínimo = s.DiasTransicionMinimo, Días_Transición_Máximo = s.DiasTransicionMaximo, Disponibilidad = s.Disponibilidad, }, true, TableStyles.None); } using (ExcelRange r = wsData.Cells["A2:K2"]) { r.Style.VerticalAlignment = ExcelVerticalAlignment.Center; r.Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; r.Style.Font.SetFromFont(new Font("Arial Bold", 11, FontStyle.Regular)); r.Style.Font.Color.SetColor(Color.White); r.Style.Fill.PatternType = ExcelFillStyle.Solid; r.Style.Fill.BackgroundColor.SetColor(Color.FromArgb(255, 178, 34, 34)); } IList <FormulaInfo> formulasList = new List <FormulaInfo>(); var formulasBL = new FormulaBL(); formulasList = formulasBL.ObtenerTodos(); IList <Disponibilidad> disponibilidadEnums = Enum.GetValues(typeof(Disponibilidad)).Cast <Disponibilidad>().OrderByDescending(x => x.ToString()).ToList(); if (formulasList != null && formulasList.Count > 0) { var celdasValidacionFormulas = String.Format("{0}{1}", "A3:A", configuracionFormulaInfoLista.Count + 2); AsignarValidacionFormulas(celdasValidacionFormulas, wsData, formulasList); celdasValidacionFormulas = String.Format("{0}{1}", "F3:F", configuracionFormulaInfoLista.Count + 2); AsignarValidacionFormulas(celdasValidacionFormulas, wsData, formulasList); celdasValidacionFormulas = String.Format("{0}{1}", "K3:K", configuracionFormulaInfoLista.Count + 2); AsignarValidacionFormulas(celdasValidacionFormulas, wsData, disponibilidadEnums); AgregarComentarios(wsData, configuracionFormulaInfoLista); } AgregarPestañaTipoGanado(pck); dataRange.AutoFitColumns(); pck.Save(); } resp = true; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } return(resp); }
/// <summary> /// Metodo para validar las formalas obtenidas en un regitro del documento excel /// </summary> /// <param name="configuracionFormula"></param> /// <param name="renglon"></param> /// <param name="currentWorksheet"></param> /// <returns></returns> private bool ValidarFormulasObtenidas(ConfiguracionFormulaInfo configuracionFormula, int renglon, ExcelWorksheet currentWorksheet) { bool regitroValido = false; if (configuracionFormula != null) { if (configuracionFormula.Formula != null) { if (configuracionFormula.FormulaSiguiente != null) { if (configuracionFormula.PesoInicioMaximo >= configuracionFormula.PesoInicioMinimo) { if (configuracionFormula.DiasEstanciaMaximo >= configuracionFormula.DiasEstanciaMinimo) { if (configuracionFormula.DiasTransicionMaximo >= configuracionFormula.DiasTransicionMinimo) { if (!String.IsNullOrEmpty(configuracionFormula.TipoGanado)) { if (ValidarTiposDeGanado(configuracionFormula.TipoGanado)) { regitroValido = true; } else { //Dias transicion maximo debe ser mayor a los dias transicion minimo throw new ExcepcionDesconocida(String.Format("{0}{1}{2}", ResourceServices.ConfigurarFormula_EnLaFormula, configuracionFormula.Formula.Descripcion, ResourceServices.ConfigurarFormula_TipoGanadoInvalido) ); } } else { //Dias transicion maximo debe ser mayor a los dias transicion minimo throw new ExcepcionDesconocida(String.Format("{0}{1}{2}", ResourceServices.ConfigurarFormula_EnLaFormula, configuracionFormula.Formula.Descripcion, ResourceServices.ConfigurarFormula_TipoGanadoFaltante) ); } } else { //Dias transicion maximo debe ser mayor a los dias transicion minimo throw new ExcepcionDesconocida(String.Format("{0}{1}{2}", ResourceServices.ConfigurarFormula_EnLaFormula, configuracionFormula.Formula.Descripcion, ResourceServices.ConfigurarFormula_DiasTransicion) ); } } else { //Dias estancia maximo debe ser mayor a los dias estancia minimo throw new ExcepcionDesconocida(String.Format("{0}{1}{2}", ResourceServices.ConfigurarFormula_EnLaFormula, configuracionFormula.Formula.Descripcion, ResourceServices.ConfigurarFormula_DiasEstancia) ); } } else { //Peso inicio maximo debe ser mayor al peso inicio minimo throw new ExcepcionDesconocida(String.Format("{0}{1}{2}", ResourceServices.ConfigurarFormula_EnLaFormula, configuracionFormula.Formula.Descripcion, ResourceServices.ConfigurarFormula_PesoInicio) ); } } else { object formulaSiguiente = currentWorksheet.Cells[renglon, 6].Value; //La formula: , no existe en el catalogo de formulas, Favor de validar. throw new ExcepcionDesconocida(String.Format("{0}{1}{2}", ResourceServices.ConfigurarFormula_FormulaNoExiste, formulaSiguiente, ResourceServices.ConfigurarFormula_FormulaNoExiste2) ); } } else { object formula = currentWorksheet.Cells[renglon, 1].Value; //La formula: , no existe en el catalogo de formulas, Favor de validar. throw new ExcepcionDesconocida(String.Format("{0}{1}{2}", ResourceServices.ConfigurarFormula_FormulaNoExiste, formula, ResourceServices.ConfigurarFormula_FormulaNoExiste2) ); } } else { //No tiene el formato correcto throw new ExcepcionDesconocida(ResourceServices.ConfigurarFormula_ArchivoNoTieneLaEstructura); } return(regitroValido); }