コード例 #1
0
        private void btnCargarMasivaGestSubCom_Click(object sender, EventArgs e)
        {
            Global.iniciarEspera(this);
            int resultadoVal = realizarValidaciones();

            if (resultadoVal == 0)
            {
                Global.terminarEspera(this);
                return;
            }

            if (txtNomArchSubComMav.Text != "")
            {
                string[] lineasSubcompetencias = File.ReadAllLines(txtNomArchSubComMav.Text);

                //Para Actualizar:
                if (rdbActMavSubCom.Checked)
                {
                    foreach (var linea in lineasSubcompetencias)
                    {
                        if (linea == "")
                        {
                            continue;
                        }
                        var valores = linea.Split(',');

                        CriterioWS.criterio criterio = new CriterioWS.criterio();
                        int    idCriterio            = Int32.Parse(valores[0]);
                        String strIdCriterioPadre    = valores[1];
                        String nombre      = valores[2];
                        String descripcion = valores[3];
                        criterio.idCriterio    = idCriterio;
                        criterio.criterioPadre = new CriterioWS.criterio();

                        //en estos momentos no se puede actualizar el idCriterioPadre
                        if (strIdCriterioPadre != "no")
                        {
                            //se actualiza
                            criterio.criterioPadre.idCriterio = Int32.Parse(strIdCriterioPadre);
                        }
                        else
                        {
                            //No se actualiza
                            criterio.criterioPadre.idCriterio = -1;
                        }
                        if (nombre != "no")
                        {
                            //Se actualiza
                            criterio.nombre = nombre;
                        }
                        else
                        {
                            //No se actualiza
                            criterio.nombre = "";
                        }

                        if (descripcion != "no")
                        {
                            //Se actualiza
                            criterio.descripcion = descripcion;
                        }
                        else
                        {
                            //No se actualiza
                            criterio.descripcion = "";
                        }

                        resultado = daoCriterio.actualizarCriterio(criterio);
                        if (resultado == 0)
                        {
                            errores = errores + linea + "\n";
                        }
                    }
                    if (errores != "")
                    {
                        MessageBox.Show("Error: Hubo errores en algunas filas, ya que no ingresaron correctamente los ID's de las subcompetencias." +
                                        "Por favor, ingrese la dirección donde desea descargar el archivo con los datos no actualizados:");
                        cargarErrores();
                    }
                    else if (errores == "")
                    {
                        MessageBox.Show("El archivo se cargó correctamente de competencias");
                    }
                }
                //Para insertar
                else if (rdbInsMavSubCom.Checked)
                {
                    BindingList <CriterioWS.criterio> listaSubcompetencias = new BindingList <CriterioWS.criterio>(daoCriterio.listar(2, ""));
                    int validar = 0;
                    foreach (var linea in lineasSubcompetencias)
                    {
                        validar = 0;
                        if (linea == "")
                        {
                            continue;
                        }
                        var valores = linea.Split(',');

                        CriterioWS.criterio criterio = new CriterioWS.criterio();
                        int id = int.Parse(valores[0]);

                        int    idCriterioPadre = Int32.Parse(valores[1]);
                        String nombre          = valores[2];
                        String descripcion     = valores[3];
                        criterio.idCriterio               = id;
                        criterio.nombre                   = nombre;
                        criterio.descripcion              = descripcion;
                        criterio.tipo                     = (int)TipoCriterio.Subcompetencia;
                        criterio.criterioPadre            = new CriterioWS.criterio();
                        criterio.criterioPadre.idCriterio = idCriterioPadre;
                        foreach (CriterioWS.criterio subcompetencia in listaSubcompetencias)
                        {
                            if (subcompetencia.nombre.Equals(criterio.nombre))
                            {
                                validar = 1;
                            }
                        }
                        if (validar == 0)
                        {
                            resultado = daoCriterio.insertarMasivo(criterio);
                        }
                        if (resultado == 0 || validar == 1)
                        {
                            errores = errores + linea + "\n";
                        }
                    }
                    if (errores != "")
                    {
                        MessageBox.Show("Alerta: Hubo datos del archivo csv de subcompetencias que ya existian en el sistema; sin embargo, no se ingresaron." +
                                        "Por favor, ingrese la dirección donde desea descargar el archivo con los datos que no se ingresaron:");
                        cargarErrores();
                    }
                    else if (errores == "")
                    {
                        MessageBox.Show("El archivo se cargó correctamente");
                    }
                }
            }


            if (txtNomArchSubComPesosMav.Text != "")
            {
                string[] lineasPesos = File.ReadAllLines(txtNomArchSubComPesosMav.Text);

                //Para actualizar
                if (rdbActMavSubComPesos.Checked)
                {
                    foreach (var linea in lineasPesos)
                    {
                        if (linea == "")
                        {
                            continue;
                        }
                        var valores = linea.Split(',');

                        PesoCriterioWS.pesoCriterio pesoCriterio = new PesoCriterioWS.pesoCriterio();

                        String nombreCriterio = valores[0];
                        String nombrePuesto   = valores[1];
                        String nombrePeriodo  = valores[2];
                        double peso           = Double.Parse(valores[3]);

                        pesoCriterio.criterio             = new PesoCriterioWS.criterio();
                        pesoCriterio.criterio.nombre      = nombreCriterio;
                        pesoCriterio.puestoTrabajo        = new PesoCriterioWS.puestoTrabajo();
                        pesoCriterio.puestoTrabajo.nombre = nombrePuesto;
                        pesoCriterio.periodo        = new PesoCriterioWS.periodo();
                        pesoCriterio.periodo.nombre = nombrePeriodo;
                        pesoCriterio.peso           = peso;

                        resultado = daoPesoCriterio.actualizarPesoCriterio(pesoCriterio);
                        if (resultado == 0)
                        {
                            errores = errores + linea + "\n";
                        }
                    }
                    if (errores != "")
                    {
                        MessageBox.Show("Error: Hubo errores en algunas filas, ya que no ingresó correctamente el nombre de la subcompetencia" +
                                        ",el nombre del puesto de trabajo o el nombre del periodo actual." +
                                        "Por favor, ingrese la dirección donde desea descargar el archivo con los datos no actualizados:");
                        cargarErrores();
                    }
                    else if (errores == "")
                    {
                        MessageBox.Show("El archivo se cargó correctamente");
                    }
                }
                //Para insertar
                if (rdbInsMavSubComPesos.Checked)
                {
                    BindingList <PesoCriterioWS.pesoCriterio> listapesossubcompetencias = new BindingList <PesoCriterioWS.pesoCriterio>(daoPesoCriterio.listarPesosCriterios(2, "", "", ""));
                    int validar = 0;
                    foreach (var linea in lineasPesos)
                    {
                        validar = 0;
                        if (linea == "")
                        {
                            continue;
                        }
                        var valores = linea.Split(',');

                        PesoCriterioWS.pesoCriterio pesoCriterio = new PesoCriterioWS.pesoCriterio();

                        String nombreCriterio = valores[0];
                        String nombrePuesto   = valores[1];
                        String nombrePeriodo  = valores[2];
                        double peso           = Double.Parse(valores[3]);

                        pesoCriterio.criterio             = new PesoCriterioWS.criterio();
                        pesoCriterio.criterio.nombre      = nombreCriterio;
                        pesoCriterio.puestoTrabajo        = new PesoCriterioWS.puestoTrabajo();
                        pesoCriterio.puestoTrabajo.nombre = nombrePuesto;
                        pesoCriterio.periodo        = new PesoCriterioWS.periodo();
                        pesoCriterio.periodo.nombre = nombrePeriodo;
                        pesoCriterio.peso           = peso;

                        foreach (PesoCriterioWS.pesoCriterio pesos in listapesossubcompetencias)
                        {
                            if ((pesos.periodo.nombre.Equals(pesoCriterio.periodo.nombre)) &&
                                (pesos.puestoTrabajo.nombre.Equals(pesoCriterio.puestoTrabajo.nombre)) &&
                                (pesos.criterio.nombre.Equals(pesoCriterio.criterio.nombre)))
                            {
                                validar = 1;
                            }
                        }
                        if (validar == 0)
                        {
                            resultado = daoPesoCriterio.insertarPesoCriterio(pesoCriterio);
                        }
                        if (resultado == 0 || validar == 1)
                        {
                            errores = errores + linea + "\n";
                        }
                    }
                    if (errores != "")
                    {
                        MessageBox.Show("Alerta: Hubo datos del archivo csv de pesos subcompetencias que ya existian en el sistema; sin embargo, no se ingresaron." +
                                        "Por favor, ingrese la dirección donde desea descargar el archivo con los datos que no se ingresaron:");
                        cargarErrores();
                    }
                    else if (errores == "")
                    {
                        MessageBox.Show("El archivo se cargó correctamente");
                    }
                }
            }


            //Falta realizar validacion para ver si se insertaron/actualizarion correctamente las competencias/pesos
            Global.terminarEspera(this);
            //MessageBox.Show("Se procesaron correctamente los archivos.",
            //                       "Mensaje de confirmación",
            //                       MessageBoxButtons.OK,
            //                       MessageBoxIcon.Information);
            this.DialogResult = DialogResult.OK;
            this.Close();
        }