Пример #1
0
        private void GuardarCaracteristicas()
        {
            Cargando.Mostrar();

            LineaCaracteristica oReg;

            foreach (DataGridViewRow oFila in this.dgvCaracteristicas.Rows)
            {
                if (oFila.IsNewRow)
                {
                    continue;
                }

                int iId     = this.dgvCaracteristicas.ObtenerId(oFila);
                int iCambio = this.dgvCaracteristicas.ObtenerIdCambio(oFila);
                switch (iCambio)
                {
                case Cat.TiposDeAfectacion.Agregar:
                case Cat.TiposDeAfectacion.Modificar:
                    if (iCambio == Cat.TiposDeAfectacion.Agregar)
                    {
                        oReg = new LineaCaracteristica();
                    }
                    else
                    {
                        oReg = Datos.GetEntity <LineaCaracteristica>(c => c.LineaCaracteristicaID == iId);
                    }

                    // Se llenan los datos
                    oReg.LineaID          = this.Linea.LineaID;
                    oReg.CaracteristicaID = Util.Entero(oFila.Cells["colCaracteristicaID"].Value);
                    // Se valida que no exista ya
                    if (iCambio == Cat.TiposDeAfectacion.Agregar)
                    {
                        if (Datos.Exists <LineaCaracteristica>(c => c.LineaID == this.Linea.LineaID && c.CaracteristicaID == oReg.CaracteristicaID))
                        {
                            continue;
                        }
                    }
                    // Se verifican los cambios a la característica en sí
                    var oCaracteristica = Datos.GetEntity <Caracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID);
                    if (oCaracteristica == null)
                    {
                        oCaracteristica = new Caracteristica()
                        {
                            Caracteristica1 = Util.Cadena((oFila.Cells["colCaracteristicaID"] as DataGridViewComboBoxCell).FormattedValue)
                        }
                    }
                    ;
                    // Se valida si cambiaron las opciones
                    bool   bOpcionEnUso = false;
                    string sOpciones    = Util.Cadena(oFila.Cells["colMultipleOpciones"].Value);
                    if (oCaracteristica.MultipleOpciones != null && sOpciones != oCaracteristica.MultipleOpciones)
                    {
                        var oOpcionesAnt = oCaracteristica.MultipleOpciones.Split(',');
                        var oOpciones    = sOpciones.Split(',');
                        var oDif         = oOpcionesAnt.Except(oOpciones);
                        foreach (var sOpcion in oDif)
                        {
                            if (Datos.Exists <ParteCaracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID && c.Valor == sOpcion))
                            {
                                UtilLocal.MensajeError("Alguna de las características removidas está siendo usada. No se puede guardar.");
                                bOpcionEnUso = true;
                                break;
                            }
                        }
                    }
                    if (!bOpcionEnUso)
                    {
                        //
                        oCaracteristica.MultipleOpciones = sOpciones;
                        oCaracteristica.Multiple         = (oCaracteristica.MultipleOpciones != "");
                        Datos.Guardar <Caracteristica>(oCaracteristica);
                        // Se guarda
                        oReg.CaracteristicaID = oCaracteristica.CaracteristicaID;
                        Datos.Guardar <LineaCaracteristica>(oReg);
                    }
                    break;

                case Cat.TiposDeAfectacion.Borrar:
                    oReg = Datos.GetEntity <LineaCaracteristica>(c => c.LineaCaracteristicaID == iId);
                    Datos.Eliminar <LineaCaracteristica>(oReg);
                    break;
                }
            }

            Cargando.Cerrar();
            // this.CargarCaracteristicas();
        }
Пример #2
0
        private void GuardarCaracteristicas()
        {
            Cargando.Mostrar();

            LineaCaracteristica oReg;
            foreach (DataGridViewRow oFila in this.dgvCaracteristicas.Rows)
            {
                if (oFila.IsNewRow) continue;

                int iId = this.dgvCaracteristicas.ObtenerId(oFila);
                int iCambio = this.dgvCaracteristicas.ObtenerIdCambio(oFila);
                switch (iCambio)
                {
                    case Cat.TiposDeAfectacion.Agregar:
                    case Cat.TiposDeAfectacion.Modificar:
                        if (iCambio == Cat.TiposDeAfectacion.Agregar)
                            oReg = new LineaCaracteristica();
                        else
                            oReg = Datos.GetEntity<LineaCaracteristica>(c => c.LineaCaracteristicaID == iId);

                        // Se llenan los datos
                        oReg.LineaID = this.Linea.LineaID;
                        oReg.CaracteristicaID = Util.Entero(oFila.Cells["colCaracteristicaID"].Value);
                        // Se valida que no exista ya
                        if (iCambio == Cat.TiposDeAfectacion.Agregar)
                        {
                            if (Datos.Exists<LineaCaracteristica>(c => c.LineaID == this.Linea.LineaID && c.CaracteristicaID == oReg.CaracteristicaID))
                                continue;
                        }
                        // Se verifican los cambios a la característica en sí
                        var oCaracteristica = Datos.GetEntity<Caracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID);
                        if (oCaracteristica == null)
                            oCaracteristica = new Caracteristica()
                            {
                                Caracteristica1 = Util.Cadena((oFila.Cells["colCaracteristicaID"] as DataGridViewComboBoxCell).FormattedValue)
                            };
                        // Se valida si cambiaron las opciones
                        bool bOpcionEnUso = false;
                        string sOpciones = Util.Cadena(oFila.Cells["colMultipleOpciones"].Value);
                        if (oCaracteristica.MultipleOpciones != null && sOpciones != oCaracteristica.MultipleOpciones)
                        {
                            var oOpcionesAnt = oCaracteristica.MultipleOpciones.Split(',');
                            var oOpciones = sOpciones.Split(',');
                            var oDif = oOpcionesAnt.Except(oOpciones);
                            foreach (var sOpcion in oDif)
                            {
                                if (Datos.Exists<ParteCaracteristica>(c => c.CaracteristicaID == oReg.CaracteristicaID && c.Valor == sOpcion))
                                {
                                    UtilLocal.MensajeError("Alguna de las características removidas está siendo usada. No se puede guardar.");
                                    bOpcionEnUso = true;
                                    break;
                                }
                            }
                        }
                        if (!bOpcionEnUso)
                        {
                            //
                            oCaracteristica.MultipleOpciones = sOpciones;
                            oCaracteristica.Multiple = (oCaracteristica.MultipleOpciones != "");
                            Datos.Guardar<Caracteristica>(oCaracteristica);
                            // Se guarda
                            oReg.CaracteristicaID = oCaracteristica.CaracteristicaID;
                            Datos.Guardar<LineaCaracteristica>(oReg);
                        }
                        break;
                    case Cat.TiposDeAfectacion.Borrar:
                        oReg = Datos.GetEntity<LineaCaracteristica>(c => c.LineaCaracteristicaID == iId);
                        Datos.Eliminar<LineaCaracteristica>(oReg);
                        break;
                }
            }

            Cargando.Cerrar();
            // this.CargarCaracteristicas();
        }