Beispiel #1
0
        public ValorFreteDto GetValorFrete(CotarFreteDto cotacao)
        {
            var          oD          = _unitOfWork.OrigemDestinos.GetByOrigemDestino(cotacao.IdCidadeOrigem, cotacao.IdCidadeDestino);
            var          vlBaseFrete = _unitOfWork.BaseFretes.GetByOrigemDestino(oD.IdOrigemDestino).VlBase;
            FreteCliente cliente     = _unitOfWork.FreteClientes.GetByEmail(cotacao.Email);

            cotacao.Cubagem = cotacao.Altura * cotacao.Largura * cotacao.Comprimento;

            if (cliente != null)
            {
                _valorFinalFrete = FreteComDesconto(cotacao, cliente, vlBaseFrete);
            }
            else
            {
                _valorFinalFrete = FreteSemDesconto(cotacao, vlBaseFrete);
            }

            var retorno = new ValorFreteDto
            {
                IdCidadeDestino   = cotacao.IdCidadeDestino,
                IdCidadeOrigem    = cotacao.IdCidadeOrigem,
                DtCotacao         = DateTime.Now,
                PzEstimadoEntrega = 8,
                VlFrete           = _valorFinalFrete,
                Cubagem           = cotacao.Cubagem,
                Peso        = cotacao.Peso,
                Altura      = cotacao.Altura,
                Comprimento = cotacao.Comprimento,
                Largura     = cotacao.Largura
            };

            return(retorno);
        }
Beispiel #2
0
 private double FreteComDesconto(CotarFreteDto cotacao, FreteCliente cliente, decimal valorFrete)
 {
     if (cotacao.Cubagem * 300 < cotacao.Peso)
     {
         return(System.Convert.ToDouble(valorFrete * (decimal)cliente.VlDesconto * ((decimal)cotacao.Peso / 1000)));
     }
     else
     {
         return(System.Convert.ToDouble(valorFrete * (decimal)cliente.VlDesconto * (((decimal)cotacao.Cubagem * 300) / 1000)));
     }
 }