public Resultado Fechar(List <ProcessoCompraItem> ListaProcessoCompraItem)
        {
            Resultado resultado = new Resultado();
            List <ProcessoCompraItem> ListaOrdenada = ListaProcessoCompraItem.FindAll(delegate(ProcessoCompraItem itm)
            {
                return(itm.Status < 4);
            });

            if (ListaOrdenada.Count > 0)
            {
                Mensagem mensagem = new Mensagem();
                mensagem.Campo = "ProcessoCompraFechar";
                mensagem.Descricoes.Add("Processo não pode ser Finalizado! Exite Itens que não foram finalizados.");

                resultado.Mensagens.Add(mensagem);
                resultado.Sucesso = false;
            }
            else
            {
                resultado = new PCompraData().Atualizar(ListaProcessoCompraItem[0].CodProcesso);

                Mensagem mensagem = new Mensagem();
                mensagem.Campo = "ProcessoCompraAtualizar";
                mensagem.Descricoes.Add("Processo Fechado com Sucesso!");
                resultado.Mensagens.Add(mensagem);
            }

            return(resultado);
        }
        public List <ProcessoCompra> Listar(ref Resultado resultado)
        {
            List <ProcessoCompra> listaPCompras = new PCompraData().Listar();
            List <ProcessoCompra> ListaAgrupada = new List <ProcessoCompra>();

            if (listaPCompras.Count == 0)
            {
                Mensagem mensagem = new Mensagem();
                mensagem.Campo = "ProcessoCompra";
                mensagem.Descricoes.Add("Nenhum Processo de Compra Iniciado!");

                resultado.Mensagens.Add(mensagem);
                resultado.Sucesso = false;
            }
            else
            {
                List <ProcessoCompra> ListaOrdenada = new List <ProcessoCompra>();
                int oCodProcesso = 0;

                foreach (ProcessoCompra item in listaPCompras)
                {
                    if (oCodProcesso != item.CodProcessoCompra)
                    {
                        oCodProcesso = item.CodProcessoCompra;

                        ListaOrdenada = listaPCompras.FindAll(delegate(ProcessoCompra itm)
                        {
                            return(itm.CodProcessoCompra == item.CodProcessoCompra);
                        });

                        if (ListaOrdenada.Count > 1)
                        {
                            string CodProcesso = string.Empty;
                            foreach (ProcessoCompra pitm in ListaOrdenada)
                            {
                                CodProcesso += pitm.Pedidos + "; ";
                            }

                            item.Pedidos = CodProcesso;
                            ListaAgrupada.Add(item);
                        }
                        else
                        {
                            item.Pedidos = item.Pedidos.ToString() + ";";
                            ListaAgrupada.Add(item);
                        }
                    }
                }
                resultado.Sucesso = true;
            }

            return(ListaAgrupada);
        }