public void Abrir(HistóricoRelacionamento coleção)
        {
            // Indice que deve ser mostrado é o do saquinho e nao da mercadoria.
            bool erroAlteracaoConcorrente;

            LimparLista();

            AdicionarVários(coleção.ObterSaquinhosAgrupados(out erroAlteracaoConcorrente));

            if (erroAlteracaoConcorrente)
            {
                AguardeDB.Fechar();

                MessageBox.Show("Este documento possui pelo pelos um item com quantidade negativa. " + 
                    " Isto aconteceu porque mais de uma pessoa excluiu itens no mesmo instante. " + 
                    "Favor verificar.", "Documento inconsistente",
                    MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
        public void Abrir(HistóricoRelacionamento coleção)
        {
            LimparLista();

            ArrayList lista = new ArrayList(coleção.Count);

            foreach (HistóricoRelacionamentoItem item in coleção)
                lista.Add(new SaquinhoHistóricoRelacionado(item));

            AdicionarVários(lista);
        }
        /// <summary>
        /// Carrega entidade, preenchendo o controle.
        /// Solicitado no Set da propriedade Coleção
        /// </summary>
        private void RecuperarEntidade(HistóricoRelacionamento coleção)
        {
            bandejaAgrupada.LimparLista();
            hashSaquinhoItemRelacionado.Clear();
            ArrayList lista = new ArrayList();

            foreach (HistóricoRelacionamentoItem item in coleção)
            {
                Saquinho saquinho = new Saquinho(item.Mercadoria, item.Quantidade);

                lista.Add(saquinho);
                hashSaquinhoItemRelacionado.Add(saquinho, item);
            }

            bandejaAgrupada.AdicionarVários(lista);
        }
        internal void Abrir(HistóricoRelacionamento coleção, Relacionamento entidade, BaseEditarRelacionamento baseInferior)
        {
            this.baseInferior = baseInferior;
            this.coleção = coleção;
            this.entidade = entidade;

            RelacionamentoAcerto entidadeAcerto = entidade as RelacionamentoAcerto;

            /* Não permitir edição de tabela em documentos cujo
             * acerto possui tabela definida.
             */
            if (entidadeAcerto == null || entidadeAcerto.AcertoConsignado != null && 
                entidadeAcerto.AcertoConsignado.TabelaPreço != null)
            {
                bandejaAgrupada.PermitirSeleçãoTabela = false;
                bandejaHistórico.PermitirSeleçãoTabela = false;
            }

            bool acertoPossuiTabela = entidadeAcerto != null && 
                entidadeAcerto.AcertoConsignado != null && entidadeAcerto.AcertoConsignado.TabelaPreço != null;

            if (entidade.TabelaPreço == null)
            {
                if (acertoPossuiTabela)
                    entidadeAcerto.TabelaPreço = entidadeAcerto.AcertoConsignado.TabelaPreço;
                else
                    QuestionarTabelaPreço(entidadeAcerto);
            }

            // Deve-se garantir que existe uma tabelad e preço definida.
            while (entidade.TabelaPreço == null)
            {
                if (MessageBox.Show(
                    ParentForm,
                    "Por favor, escolha uma tabela de preços para iniciar a sua digitação de mercadorias.",
                    "Digitação de mercadorias",
                    MessageBoxButtons.RetryCancel, MessageBoxIcon.Warning) == DialogResult.Cancel)
                {
                    throw new ExceçãoTabelaVazia();
                }
                else
                    QuestionarTabelaPreço(entidadeAcerto);
            }

            quadroMercadoria.Tabela = entidade.TabelaPreço;
            bandejaAgrupada.Tabela = entidade.TabelaPreço;
            bandejaHistórico.Tabela = entidade.TabelaPreço;
            bandejaAgrupada.Abrir(coleção);
            bandejaHistórico.Abrir(coleção);

            entidade.AoAlterarTabela += new Acesso.Comum.DbManipulação.DbManipulaçãoHandler(AoAlterarTabelaEntidade);

            if (coleção.Count > 0)
                PermitirSeleçãoTabela = false;
            else if (entidade is Entidades.Relacionamento.Venda.Venda &&
                Entidades.Privilégio.PermissãoFuncionário.ValidarPermissão(Entidades.Privilégio.Permissão.PersonalizarVenda))
            {
                bandejaAgrupada.PermitirSeleçãoTabela = true;
                bandejaHistórico.PermitirSeleçãoTabela = true;
            }
        }
 public virtual void LiberarRecursos()
 {
     if (Cadastrado)
         itens = null;
 }