public List <string> Validate(RequestItem obj, int user_id, string action)
        {
            Request        request        = new Request();
            RequestDao     requestDao     = new RequestDao(conn, tran);
            RequestItemDao requestItemDao = new RequestItemDao(conn, tran);
            UserDao        userDao        = new UserDao(conn, tran);

            List <string> list_erros = new List <string>();

            // Verificar permissão do usuário para realizar a operação
            if (!userDao.GetPermission(user_id, "purchase", action))
            {
                list_erros.Add("Permissão Negada.");
                return(list_erros);
            }

            // Verificar se a ação for criar, atualizar ou deletar, buscar a requisição referente ao item
            if (action == "create" || action == "update" || action == "delete")
            {
                request = requestDao.GetById(obj.itm_request_id);

                if (request.req_status != "E")
                {
                    list_erros.Add("Não é possível efetuar a ação, pois o status da requisição não permite.");
                }
            }

            // Verificar se a atualização ou exclusão é possível para o item
            if (action == "update" || action == "delete")
            {
                // É um novo registro
                if (obj.itm_id == 0)
                {
                    list_erros.Add("O objeto informado se refere a um novo registro.");
                    return(list_erros);
                }
                // Não foi encontrado o registro
                if (requestItemDao.GetById((int)obj.itm_id).itm_id == 0)
                {
                    list_erros.Add("Registro não encontrado.");
                    return(list_erros);
                }
            }

            return(list_erros);
        }
        /// <summary>Retorna um determinado item</sumary>
        public ObjResult GetById(int item_id)
        {
            connection = db.GetCon();
            connection.Open();

            RequestItem    item   = new RequestItem();
            ObjResult      result = new ObjResult();
            RequestItemDao dao    = new RequestItemDao(connection, null);

            try
            {
                item = dao.GetById(item_id);
                result.SetData(item);
                result.Success();
            }
            finally
            {
                connection.Close();
                db.Close();
            }

            return(result);
        }