예제 #1
0
        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);
        }
예제 #2
0
        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();
                }
            });
        }