public int AddSop(sop sop) { int id = 0; try { using (var context = new MttoAppEntities()) { context.sop.Add(sop); context.SaveChanges(); id = sop.id; } } catch (Exception e) { MessageBox.Show("Excepción al agregar sop: " + e.ToString(), "Atención", MessageBoxButton.OK, MessageBoxImage.Error); } return(id); }
private void bgSaveData_DoWork(object sender, DoWorkEventArgs e) { this.Invoke((MethodInvoker) delegate { try { //LLENAR RESPECTIVOS DATATABLES PARA VALIDAR INFORMACIÓN A GUARDAR dt_epps = FillEpps(dtgEpps); dt_pasos = FillPasoPaso(dtgPasoAPaso); System.Windows.Forms.Application.DoEvents(); //GUARDAR EN BASE DE DATOS sop sop = new sop(); sop.consecutivo = int.Parse(txtConsecutivo.Text); sop.titulo = txtNombreSOP.Text.Trim(); sop.numero_sop = int.Parse(txtSOP.Text); sop.codigo_categoria = int.Parse(cboCategoria.SelectedValue.ToString()); sop.codigo_tipo = int.Parse(cboTipoSop.SelectedValue.ToString()); sop.fecha = dtpFecha.Value; sop.codigo_maquina = int.Parse(cboMaquina.SelectedValue.ToString()); sop.codigo_frecuencia = int.Parse(cboFrecuencia.SelectedValue.ToString()); sop.personas_requeridas = int.Parse(txtNumPersonas.Text); sop.tiempo_persona = dtpTiempoPersona.Text; sop.duracion_tarea = dtpDuracionTarea.Text; sop.maquina_parada = dtpMaquinaParada.Text; sop.codigo_area_aprobadora = int.Parse(cboAreaAprobadora.SelectedValue.ToString()); sop.codigo_usuario_preparador = int.Parse(cboElaborador.SelectedValue.ToString()); sop.codigo_lider_area = int.Parse(cboAprobador.SelectedValue.ToString()); sop.numero_revision = int.Parse(txtNumRevision.Text); sop.codigo_formato = txtCodFormato.Text.Trim(); sop.user_id = Util.Global.UserLoged.Id; //GUARDAR OBJETO EN BASE DE DATOS int id_sop = daoSop.AddSop(sop); System.Windows.Forms.Application.DoEvents(); //PENDIENTE GUARDAR EPPS, HERRAMIENTAS, PASOS, REPUESTOS //E INDEPENDIZAR PERMISOS DE RIESGOS if (id_sop > 0) { //AGREGAR EPPS for (int i = 0; i < listEpps.Count; i++) { if (listEpps[i].sel) { daoSop.AddSopUtil(new sop_utils() { id_sop = id_sop, id_tipo = 9, id_util = listEpps[i].id }); } } foreach (Objetos.Herramientas item in list) { if (item.sel) { daoSop.AddSopUtil(new sop_utils() { id_sop = id_sop, id_tipo = 10, id_util = item.Id }); } } foreach (PasoaPaso item in listPasos) { daoPP.AddPasoSop(new sop_pasos() { descripcion = item.desc, duracion = item.duracion, id_smp = id_sop, num_paso = item.numPaso, codigo_herramienta = item.codigo_herramienta, image_path = item.imagen_paso_path }); } } System.Windows.Forms.Application.DoEvents(); //GENERAR EXCEL //OBEJTO QUE PERMITE GESTIONAR DOCUMENTO EXCEL Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); //NO MOSTRAR ARCHIVO MIENTRAS SE UTILIZA xlApp.Visible = false; xlApp.Interactive = false; //DIRECTORIO DONDE SE COPIARÁ EL ARCHIVO TEMPORALMENTE //PARA EDITARLO string sru = Util.Global.DIRECTORIO_FORMATOS; //NOMBRE DEL ARCHIVO TEMPORAL path = @"" + sru + "\\SOP.xlsx"; //COPIAR EL ARCHIVO DE LOS RECURSOS DE LA APLICACIÓN // A LA RUTA ESTABLECIDA File.WriteAllBytes(path, Properties.Resources.SOP_BLANCO); //VERIFICAR SI EL ARCHIVO ESTÁ BLOQUEADO O ESTA SIENDO UTILIZADO POR OTRO PROCESO if (IsFileLocked(new FileInfo(path))) { MessageBox.Show("El archivo se está ejecutando, debe cerrarlo para continuar", "Exportar a Excel", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { System.Windows.Forms.Application.DoEvents(); //CREAR EL OBJETO DEL LIBRO A PARTIR DE LA RUTA Workbook wb = xlApp.Workbooks.Open(path); //FIJAR EN OBJETOS LAS PESTAÑAS U HOJA DEL LIBRO PARA TRABAJAR Worksheet ws2 = (Worksheet)wb.Worksheets[1]; ////////////////////////////////////////////////// //**************** INFORMACIÓN BÁSICA ************ ////////////////////////////////////////////////// //CATEGORIA FillCell(ws2, 3, 10, cboCategoria.Text.ToString()); //FORMATO FillCell(ws2, 6, 1, txtCodFormato.Text.ToString()); //MAQUINA FillCell(ws2, 6, 4, cboMaquina.Text.ToString()); //TITULO FillCell(ws2, 2, 5, txtNombreSOP.Text.ToString()); //NÚMERO FillCell(ws2, 2, 14, txtSOP.Text.ToString()); //NÚMERO REVISION FillCell(ws2, 4, 14, txtNumRevision.Text.ToString()); //TIPO FillCell(ws2, 6, 7, cboTipoSop.Text.ToString()); //ELABORADO POR FillCell(ws2, 6, 9, cboElaborador.Text.ToString()); //AREA APROBADORA FillCell(ws2, 6, 11, cboAreaAprobadora.Text.ToString()); //LIDER AREA FillCell(ws2, 6, 13, cboAprobador.Text.ToString()); //FECHA FillCell(ws2, 3, 13, dtpFecha.Value.ToShortDateString()); //NÚMERO DE PERSONAS REQUERIDAS FillCell(ws2, 8, 9, txtNumPersonas.Text.ToString()); //TIEMPO POR PERSONA FillCell(ws2, 8, 10, dtpTiempoPersona.Text.ToString()); //DURACIÓN DE LA ACTIVIDAD FillCell(ws2, 8, 11, dtpDuracionTarea.Text.ToString()); //TIEMPO EQUIPO PARADO FillCell(ws2, 8, 12, dtpMaquinaParada.Text.ToString()); //FREUENCIA string name_opt = ""; switch (cboFrecuencia.SelectedValue.ToString()) { case "91": name_opt = "turno"; break; case "92": name_opt = "diario"; break; case "96": name_opt = "cada_cambio"; break; case "97": name_opt = "semanal"; break; case "99": name_opt = "quincenal"; break; case "100": name_opt = "mensual"; break; default: break; } Microsoft.Office.Interop.Excel.OptionButton opt = (Microsoft.Office.Interop.Excel.OptionButton)ws2.OptionButtons(name_opt); opt.Value = true; ////////////////////////////////////////////////// //**************** EPPS ************************* ////////////////////////////////////////////////// //EPPS //EPPS IMAGENES RANGO int j = 0; for (int i = 1; i <= 70; i++) { if (j < dt_epps.Rows.Count) { if (j >= 4 && j <= 8) { //CÓDIGO PODEROSO SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_epps.Rows[j][5].ToString(), (float)GetRangeImageEpp(ws2, 10, i - 4).Left + 1, (float)GetRangeImageEpp(ws2, 10, i - 4).Top + 1, 62, 48); FillCell(ws2, 11, i - 4, dt_epps.Rows[j][3].ToString()); } else { //CÓDIGO PODEROSO SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_epps.Rows[j][5].ToString(), (float)GetRangeImageEpp(ws2, 8, i).Left + 1, (float)GetRangeImageEpp(ws2, 8, i).Top + 1, 62, 48); FillCell(ws2, 9, i, dt_epps.Rows[j][3].ToString()); } j++; } } ////////////////////////////////////////////////// //**************** HERRAMIENTAS ***************** ////////////////////////////////////////////////// int h = 0; for (int i = 5; i <= 70; i++) { if (h < dt_herramientas.Rows.Count) { if (h >= 4 && h <= 8) { //CÓDIGO PODEROSO SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + Path.GetFileName(list[h].imagen_name), (float)GetRangeImageEpp(ws2, 10, i - 4).Left + 1, (float)GetRangeImageEpp(ws2, 10, i - 4).Top + 1, 62, 48); FillCell(ws2, 11, i - 4, list[h].herramienta.ToString()); } else { //CÓDIGO PODEROSO SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + Path.GetFileName(list[h].imagen_name), (float)GetRangeImageEpp(ws2, 8, i).Left + 1, (float)GetRangeImageEpp(ws2, 8, i).Top + 1, 62, 48); FillCell(ws2, 9, i, list[h].herramienta.ToString()); } h++; } } System.Windows.Forms.Application.DoEvents(); for (int i = 0; i < listPasos.Count; i++) { if (i == 0) { //PASO A PASO FillCell(ws2, 12, 1, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 13, 1).Left + 1, (float)GetRangeImageEpp(ws2, 13, 1).Top + 1, 380, 228); //HERRAMIENTA FillCell(ws2, 14, 1, listPasos[i].herramienta); //DURACION FillCell(ws2, 14, 4, listPasos[i].duracion); } if (i == 1) { //PASO A PASO FillCell(ws2, 12, 7, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 13, 7).Left + 1, (float)GetRangeImageEpp(ws2, 13, 7).Top + 1, 330, 228); //HERRAMIENTA FillCell(ws2, 14, 7, listPasos[i].herramienta); //DURACION FillCell(ws2, 14, 9, listPasos[i].duracion); } if (i == 2) { //PASO A PASO FillCell(ws2, 12, 11, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 13, 11).Left + 1, (float)GetRangeImageEpp(ws2, 13, 11).Top + 1, 403, 228); //HERRAMIENTA FillCell(ws2, 14, 11, listPasos[i].herramienta); //DURACION FillCell(ws2, 14, 13, listPasos[i].duracion); } if (i == 3) { //PASO A PASO FillCell(ws2, 15, 1, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 16, 1).Left + 1, (float)GetRangeImageEpp(ws2, 16, 1).Top + 1, 380, 228); //HERRAMIENTA FillCell(ws2, 17, 1, listPasos[i].herramienta); //DURACION FillCell(ws2, 17, 4, listPasos[i].duracion); } if (i == 4) { //PASO A PASO FillCell(ws2, 15, 7, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 16, 7).Left + 1, (float)GetRangeImageEpp(ws2, 16, 7).Top + 1, 330, 228); //HERRAMIENTA FillCell(ws2, 17, 7, listPasos[i].herramienta); //DURACION FillCell(ws2, 17, 9, listPasos[i].duracion); } if (i == 5) { //PASO A PASO FillCell(ws2, 15, 11, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 16, 11).Left + 1, (float)GetRangeImageEpp(ws2, 16, 11).Top + 1, 403, 228); //HERRAMIENTA FillCell(ws2, 17, 11, listPasos[i].herramienta); //DURACION FillCell(ws2, 17, 13, listPasos[i].duracion); } if (i == 6) { //PASO A PASO FillCell(ws2, 18, 1, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 19, 1).Left + 1, (float)GetRangeImageEpp(ws2, 19, 1).Top + 1, 380, 228); //HERRAMIENTA FillCell(ws2, 20, 1, listPasos[i].herramienta); //DURACION FillCell(ws2, 20, 4, listPasos[i].duracion); } if (i == 7) { //PASO A PASO FillCell(ws2, 18, 7, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 19, 7).Left + 1, (float)GetRangeImageEpp(ws2, 19, 7).Top + 1, 330, 228); //HERRAMIENTA FillCell(ws2, 20, 7, listPasos[i].herramienta); //DURACION FillCell(ws2, 20, 9, listPasos[i].duracion); } if (i == 8) { //PASO A PASO FillCell(ws2, 18, 11, ": " + listPasos[i].desc); //IMAGEN SomeHelpers.AddImageExcel(ws2, Util.Global.DIRECTORIO_IMAGENES + @"\" + dt_pasos.Rows[i][5].ToString(), (float)GetRangeImageEpp(ws2, 19, 11).Left + 1, (float)GetRangeImageEpp(ws2, 19, 11).Top + 1, 403, 228); //HERRAMIENTA FillCell(ws2, 20, 11, listPasos[i].herramienta); //DURACION FillCell(ws2, 20, 13, listPasos[i].duracion); } } //int limit = inicio_paso + paso_cant; ////CONFIGURANDO AREA DE IMPRESIÓN //ws2.PageSetup.PrintArea = "$A$1:$AP$" + limit; //GUARDAR FORMATO PDF if (chkPDF.Checked) { wb.ExportAsFixedFormat(XlFixedFormatType.xlTypePDF, Util.Global.DIRECTORIO_FORMATOS + "\\SOP.pdf"); } wb.Save(); wb.Close(); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); splash.Hide(); } }); }