Пример #1
0
        public virtual CotacaoItem InformarCotacaoDeItem(int idProcessoDeCotacaoItem, int idCotacao, decimal preco,
                                                         decimal?mva, decimal quantidadeDisponivel, DateTime prazoDeEntrega, string observacoes)
        {
            base.InformarCotacao();

            var cotacao = (CotacaoMaterial)FornecedoresParticipantes.Where(fp => fp.Cotacao != null && fp.Cotacao.Id == idCotacao)
                          .Select(fp => fp.Cotacao).Single().CastEntity();

            ProcessoDeCotacaoItem processoDeCotacaoItem = Itens.Single(item => item.Id == idProcessoDeCotacaoItem);

            return(cotacao.InformarCotacaoDeItem(processoDeCotacaoItem, preco, mva, quantidadeDisponivel, prazoDeEntrega, observacoes));
        }
Пример #2
0
 public virtual void Fechar()
 {
     if (Status == Enumeradores.StatusProcessoCotacao.Fechado)
     {
         throw new FecharProcessoDeCotacaoFechadoException();
     }
     if (FornecedoresParticipantes.Count(x => x.Cotacao != null && x.Cotacao.Itens.Any(c => c.Selecionada)) == 0)
     {
         throw new ProcessoDeCotacaoFecharSemCotacaoSelecionadaException();
     }
     Status           = Enumeradores.StatusProcessoCotacao.Fechado;
     DataDeFechamento = DateTime.Now.Date;
 }
Пример #3
0
        public virtual void RemoverFornecedor(string codigoFornecedor)
        {
            if (Status != Enumeradores.StatusProcessoCotacao.NaoIniciado)
            {
                throw new ProcessoDeCotacaoIniciadoAtualizacaoFornecedorException(Status.Descricao());
            }
            var fornecedorParticipante = FornecedoresParticipantes.SingleOrDefault(x => x.Fornecedor.Codigo == codigoFornecedor);

            if (fornecedorParticipante == null)
            {
                return;
            }
            FornecedoresParticipantes.Remove(fornecedorParticipante);
        }
Пример #4
0
        public virtual FornecedorParticipante AdicionarFornecedor(Fornecedor fornecedor)
        {
            if (Status != Enumeradores.StatusProcessoCotacao.NaoIniciado)
            {
                throw  new ProcessoDeCotacaoIniciadoAtualizacaoFornecedorException(Status.Descricao());
            }
            var fornecedorConsulta = FornecedoresParticipantes.SingleOrDefault(x => x.Fornecedor.Codigo == fornecedor.Codigo);

            if (fornecedorConsulta != null)
            {
                return(fornecedorConsulta);
            }
            var fornecedorParticipante = new FornecedorParticipante(this, fornecedor);

            FornecedoresParticipantes.Add(fornecedorParticipante);
            return(fornecedorParticipante);
        }
Пример #5
0
        public virtual CotacaoFrete InformarCotacao(string codigoFornecedor, decimal valorTotalComImpostos,
                                                    decimal quantidadeDisponivel, string observacoes)
        {
            base.InformarCotacao();
            //busca a cotação do fornecedor
            FornecedorParticipante fornecedorParticipante = FornecedoresParticipantes.First(x => x.Fornecedor.Codigo == codigoFornecedor);

            var cotacao = (CotacaoFrete)fornecedorParticipante.Cotacao.CastEntity();

            if (cotacao == null)
            {
                cotacao = new CotacaoFrete();
                fornecedorParticipante.InformarCotacao(cotacao);
            }
            ProcessoDeCotacaoItem processoDeCotacaoItem = Itens.First();

            cotacao.InformarCotacaoDeItem(processoDeCotacaoItem, valorTotalComImpostos, quantidadeDisponivel, observacoes);
            return(cotacao);
        }
Пример #6
0
        public virtual CotacaoMaterial InformarCotacao(string codigoFornecedor, CondicaoDePagamento condicaoDePagamento,
                                                       Incoterm incoterm, string descricaoDoIncoterm)
        {
            base.InformarCotacao();
            //busca a cotação do fornecedor
            FornecedorParticipante fornecedorParticipante = FornecedoresParticipantes.First(x => x.Fornecedor.Codigo == codigoFornecedor);

            var cotacao = (CotacaoMaterial)fornecedorParticipante.Cotacao.CastEntity();

            if (cotacao == null)
            {
                cotacao = new CotacaoMaterial(condicaoDePagamento, incoterm, descricaoDoIncoterm);
                fornecedorParticipante.InformarCotacao(cotacao);
            }
            else
            {
                cotacao.Atualizar(condicaoDePagamento, incoterm, descricaoDoIncoterm);
            }

            return(cotacao);
        }
Пример #7
0
 protected Cotacao BuscarPodId(int idCotacao)
 {
     return(FornecedoresParticipantes.First(x => x.Cotacao != null && x.Cotacao.Id == idCotacao).Cotacao);
 }