Example #1
0
        /// <summary>
		/// Adiciona Saquinho na bandeja
		/// </summary>
		/// <param name="ISaquinho">Entidades.ISaquinho.ISaquinho a ser adicionado</param>
        public void Adicionar(Entidades.ISaquinho saquinhoOriginal)
        {
            ListViewItem item;

            UseWaitCursor = true;

            SinalizarSaquinho(saquinhoOriginal);

            if (agrupar)
            {
                /* É concebido que a bandeja já está completamente agrupado.
                 * Portanto, só devemos olhar por um item apenas.
                 */
                string chave = saquinhoOriginal.IdentificaçãoAgrupável();
                ISaquinho agrupável = null;
                if (hashAgrupamento.TryGetValue(chave, out agrupável))
                {
                    // O próprio Remover() irá retirar da hashAgrupamento.
                    saquinhoOriginal = saquinhoOriginal.Clone(saquinhoOriginal.Quantidade + agrupável.Quantidade);
                    RemoverInterno(agrupável);
                    hashAgrupamento[chave] = saquinhoOriginal;
                }
            }
            
            saquinhos.Add(saquinhoOriginal);
            
            item = ConstruirListView(saquinhoOriginal);

            lista.Items.Add(item);
            item.EnsureVisible();

            item.Group = lista.Groups[saquinhoOriginal.Mercadoria.DePeso ? "peso" : "peça"];

            // Atualiza contagem para status
            totalMercadorias += saquinhoOriginal.Quantidade;
            totalPeso += saquinhoOriginal.Quantidade * saquinhoOriginal.Peso;
            totalÍndice += saquinhoOriginal.Quantidade * saquinhoOriginal.Mercadoria.ÍndiceArredondado;

            if (saquinhoOriginal.Mercadoria.DePeso)
                totalÍndicePeso += saquinhoOriginal.Quantidade * saquinhoOriginal.Mercadoria.ÍndiceArredondado;
            else
                totalÍndicePeça += saquinhoOriginal.Quantidade * saquinhoOriginal.Mercadoria.ÍndiceArredondado;

            if (cotação != null)
                totalPreço += CalcularValor(saquinhoOriginal);

            try
            {
                MarcarStatusDesatualizado();
            }
            catch { }

            UseWaitCursor = false;
        }