public Int32 UltimoID()
        {
            Dato.Modelo.Categoria _entidadToIDAdd = db.CategoriaSet.ToList().LastOrDefault();
            Int32 _id = _entidadToIDAdd.ID;

            return(_id);
        }
        public Boolean Delete(EntidadNegocio.Entidades.Categoria _categoria)
        {
            Int32 id = _categoria.ID; Boolean resul = false;

            Dato.Modelo.Categoria categoriaToDelete = db.CategoriaSet.First(cb => cb.ID == id);

            categoriaToDelete.ID          = _categoria.ID;
            categoriaToDelete.Codigo      = _categoria.Codigo;
            categoriaToDelete.Descripcion = _categoria.Descripcion;
            if (_categoria.Status == EntidadNegocio.Enumerados.EnumEstatus.Registro.Activo)
            {
                categoriaToDelete.Estatus = 1;
            }
            else
            {
                categoriaToDelete.Estatus = 0;
            }

            //valido la categoria tiene un producto
            if (db.ProductoSet.FirstOrDefault(b => b.IDCategoria == id) != null)
            {
                MessageBox.Show(String.Format("Esta intentando Borrar una categoria que tiene una Producto"), EntidadNegocio.Entidades.Mensajes.Titulo_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                try
                {
                    if (db.Connection.State != System.Data.ConnectionState.Open)
                    {
                        db.Connection.Open();
                    }

                    DbTransaction dbTransaction = db.Connection.BeginTransaction();

                    // Delete
                    db.DeleteObject(categoriaToDelete);
                    db.SaveChanges();
                    dbTransaction.Commit();
                    /// Si la transaccion es exitosa enviamos true
                    resul = true;
                }
                catch (Exception ex)
                {
                    HandleException excepcion = new HandleException();
                    String          msjLog    = "Error en " + ObtenerMetodoEnEjecucion(false).ToString() + ".\n" + excepcion.RegistrarExcepcion(ex, ObtenerMetodoEnEjecucion(false).ToString());
                    excepcion.EscribirLogExcepcion(msjLog); String clientMessage = excepcion.HandleExceptionEx(ex); excepcion = null;
                    resul = false;
                }
            }

            return(resul);
        }
        public Boolean Edit(EntidadNegocio.Entidades.Categoria _categoria)
        {
            Int32 id = _categoria.ID; Boolean resul = false;

            Dato.Modelo.Categoria categoriaToUpdate = db.CategoriaSet.First(cb => cb.ID == id);

            categoriaToUpdate.ID          = _categoria.ID;
            categoriaToUpdate.Codigo      = _categoria.Codigo;
            categoriaToUpdate.Descripcion = _categoria.Descripcion;
            if (_categoria.Status == EntidadNegocio.Enumerados.EnumEstatus.Registro.Activo)
            {
                categoriaToUpdate.Estatus = 1;
            }
            else
            {
                categoriaToUpdate.Estatus = 0;
            }

            if (db.Connection.State != System.Data.ConnectionState.Open)
            {
                db.Connection.Open();
            }

            DbTransaction dbTransaction = db.Connection.BeginTransaction();

            try
            {
                // Guardar y confirmar.
                db.SaveChanges();
                dbTransaction.Commit();
                /// Si la transaccion es exitosa enviamos true
                resul = true;
            }
            catch (Exception ex)
            {
                dbTransaction.Rollback();
                HandleException excepcion = new HandleException();
                String          msjLog    = "Error en " + ObtenerMetodoEnEjecucion(false).ToString() + ".\n" + excepcion.RegistrarExcepcion(ex, ObtenerMetodoEnEjecucion(false).ToString());
                excepcion.EscribirLogExcepcion(msjLog); String clientMessage = excepcion.HandleExceptionEx(ex); excepcion = null;
                resul = false;
            }

            return(resul);
        }
 public EntidadNegocio.Entidades.Categoria Details(int id)
 {
     Dato.Modelo.Categoria _categoria = new Dato.Modelo.Categoria();
     if (id == 0)
     {
         _categoria = new Dato.Modelo.Categoria();
     }
     else
     {
         _categoria = db.CategoriaSet.First(c => c.ID == id);
     }
     EntidadNegocio.Entidades.Categoria categoriaDetail = new EntidadNegocio.Entidades.Categoria();
     categoriaDetail.ID          = _categoria.ID;
     categoriaDetail.Codigo      = _categoria.Codigo;
     categoriaDetail.Descripcion = _categoria.Descripcion;
     if (_categoria.Estatus == 1)
     {
         categoriaDetail.Status = EntidadNegocio.Enumerados.EnumEstatus.Registro.Activo;
     }
     else
     {
         categoriaDetail.Status = EntidadNegocio.Enumerados.EnumEstatus.Registro.Inactivo;
     }
     categoriaDetail.Tipo             = new EntidadNegocio.Entidades.Tipo();
     categoriaDetail.Tipo.ID          = _categoria.IDTipo;
     categoriaDetail.IDTipo           = _categoria.IDTipo;
     categoriaDetail.Tipo.Codigo      = _categoria.Tipo.Codigo;
     categoriaDetail.Tipo.Descripcion = _categoria.Tipo.Descripcion;
     if (_categoria.Tipo.Estatus == 1)
     {
         categoriaDetail.Tipo.Status = EntidadNegocio.Enumerados.EnumEstatus.Registro.Activo;
     }
     else
     {
         categoriaDetail.Tipo.Status = EntidadNegocio.Enumerados.EnumEstatus.Registro.Inactivo;
     }
     categoriaDetail.Tipo.Edicion = EntidadNegocio.Enumerados.EnumEstatus.Edicion.Normal;
     categoriaDetail.Edicion      = EntidadNegocio.Enumerados.EnumEstatus.Edicion.Normal;
     return(categoriaDetail);
 }
        public Boolean Create(EntidadNegocio.Entidades.Categoria _categoria)
        {
            Dato.Modelo.Categoria categoriaToAdd = new Dato.Modelo.Categoria();
            Boolean resul = false; String IDTipo = "";

            categoriaToAdd.ID = _categoria.ID;

            Int32 iIDTipo = _categoria.IDTipo;

            categoriaToAdd.IDTipo = iIDTipo;
            IDTipo = iIDTipo.ToString();

            categoriaToAdd.Codigo      = _categoria.Codigo;
            categoriaToAdd.Descripcion = _categoria.Descripcion;
            if (_categoria.Status == EntidadNegocio.Enumerados.EnumEstatus.Registro.Activo)
            {
                categoriaToAdd.Estatus = 1;
            }
            else
            {
                categoriaToAdd.Estatus = 0;
            }

            if (!String.IsNullOrEmpty(IDTipo))
            {
                categoriaToAdd.Tipo = db.TipoSet.FirstOrDefault(c => c.ID == iIDTipo);
            }

            if (categoriaToAdd.Tipo == null)
            {
                MessageBox.Show(String.Format("El número de IDTipo {0} no está registrado en la base de datos."), EntidadNegocio.Entidades.Mensajes.Titulo_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            //valido claves primaria
            if (db.CategoriaSet.FirstOrDefault(b => b.ID == categoriaToAdd.ID) != null)
            {
                MessageBox.Show(EntidadNegocio.Entidades.Mensajes.Info_ErrorAlGuardarViolacionPK, EntidadNegocio.Entidades.Mensajes.Titulo_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                if (db.Connection.State != System.Data.ConnectionState.Open)
                {
                    db.Connection.Open();
                }

                DbTransaction dbTransaction = db.Connection.BeginTransaction();

                try
                {
                    // Guardar y confirmar.
                    db.AddToCategoriaSet(categoriaToAdd);
                    db.SaveChanges();
                    dbTransaction.Commit();
                    /// Si la transaccion es exitosa enviamos true
                    Dato.Modelo.Categoria _entidadToIDAdd = db.CategoriaSet.ToList().LastOrDefault();
                    Int32 _id = _entidadToIDAdd.ID;
                    _entidadToIDAdd.ID = _id;
                    resul = true;
                }
                catch (Exception ex)
                {
                    dbTransaction.Rollback();
                    HandleException excepcion = new HandleException();
                    String          msjLog    = "Error en " + ObtenerMetodoEnEjecucion(false).ToString() + ".\n" + excepcion.RegistrarExcepcion(ex, ObtenerMetodoEnEjecucion(false).ToString());
                    excepcion.EscribirLogExcepcion(msjLog); String clientMessage = excepcion.HandleExceptionEx(ex); excepcion = null;
                    resul = false;
                }
            }

            return(resul);
        }