/// <summary> /// Construtor padrão. /// </summary> /// <param name="container"></param> /// <param name="resultadoInterno"></param> /// <param name="loja"></param> /// <param name="cliente"></param> public Resultado( IItemImpostoContainer container, ICalculoImpostoResultado resultadoInterno, Global.Negocios.Entidades.Loja loja, Global.Negocios.Entidades.Cliente cliente) { Container = container; ResultadoInterno = resultadoInterno; Loja = loja; Cliente = cliente; }
/// <summary> /// Realiza o calculo do impostao para o container de itens informado. /// </summary> /// <param name="container"></param> public ICalculoImpostoResultado Calcular(IItemImpostoContainer container) { _container = container; // Calcula o percentual de desconto, considerando todas as casas decimais (TotalProd na nota fiscal salva arredondado) // O totalProd foi alterado para recuperar da lista de produtos para ao inserir um produto ele ser considerado. var totalProd = container.Itens.Sum(f => f.Total); decimal percDesconto = (container.ValorDesconto / (totalProd > 0 ? totalProd : 1)); var itens = container.Itens.Select(f => new ItemImpostoResultado(f, container.CalcularAliquotaIcmsSt)).ToList(); _totalDescontoAplicado = 0m; foreach (var item in itens) { // Calcula os impostos do item Calcular(item, percDesconto); } return(new Resultado(container, itens)); }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="container"></param> /// <param name="resultadoInterno"></param> public Resultado(IItemImpostoContainer container, ICalculoImpostoResultado resultadoInterno) { Container = container; ResultadoInterno = resultadoInterno; }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="container"></param> /// <param name="itens"></param> public Resultado(IItemImpostoContainer container, IEnumerable <IItemCalculoImpostoResultado> itens) { Container = container; Itens = itens; }