Exemplo n.º 1
0
        public ResultadoEntidad GuardarSubFamilia(SubFamiliaEntidad SubFamiliaObjetoEntidad)
        {
            string           CadenaConexion         = string.Empty;
            ResultadoEntidad Resultado              = new ResultadoEntidad();
            SubFamiliaAcceso SubFamiliaAccesoObjeto = new SubFamiliaAcceso();
            SqlTransaction   Transaccion;
            SqlConnection    Conexion;

            CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Almacen);

            if (BuscarSubFamiliaDuplicada(SubFamiliaObjetoEntidad) == false)
            {
                Conexion = new SqlConnection(CadenaConexion);
                Conexion.Open();

                Transaccion = Conexion.BeginTransaction();

                try
                {
                    if (SubFamiliaObjetoEntidad.SubFamiliaId == 0)
                    {
                        //Se inserta la subfamilia
                        Resultado = SubFamiliaAccesoObjeto.InsertarSubFamilia(Conexion, Transaccion, SubFamiliaObjetoEntidad);
                        SubFamiliaObjetoEntidad.SubFamiliaId = Int16.Parse(Resultado.NuevoRegistroId.ToString());
                    }
                    else
                    {
                        Resultado = SubFamiliaAccesoObjeto.ActualizarSubFamilia(Conexion, Transaccion, SubFamiliaObjetoEntidad);

                        if (Resultado.ErrorId == 0)
                        {
                            //Si salio bien, se eliminan los puestos que tenia
                            Resultado = SubFamiliaAccesoObjeto.EliminarSubFamiliaPuesto(Conexion, Transaccion, SubFamiliaObjetoEntidad);
                        }
                    }

                    if (Resultado.ErrorId == 0)
                    {
                        //Si salio bien, se insertan los puestos
                        Resultado = SubFamiliaAccesoObjeto.InsertarSubFamiliaPuesto(Conexion, Transaccion, SubFamiliaObjetoEntidad);
                    }

                    if (Resultado.ErrorId == 0)
                    {
                        Transaccion.Commit();
                        Conexion.Close();
                    }
                    else
                    {
                        Transaccion.Rollback();
                        Conexion.Close();
                    }
                }
                catch
                {
                    Resultado.ErrorId          = (int)ConstantePrograma.SubFamilia.SubFamiliaConNombreDuplicado;
                    Resultado.DescripcionError = TextoError.SubFamiliaConNombreDuplicado;
                }
            }
            else
            {
                Resultado.ErrorId          = (int)ConstantePrograma.SubFamilia.SubFamiliaConNombreDuplicado;
                Resultado.DescripcionError = TextoError.SubFamiliaConNombreDuplicado;
            }

            return(Resultado);
        }