/// <summary> /// Aplica os impostos do resultado do calculo. /// </summary> /// <param name="sessao"></param> /// <param name="resultado"></param> private void AplicarImpostos(GDA.GDASession sessao, ICalculoImpostoResultado resultado) { foreach (var item in resultado.Itens) { AplicarImpostos(sessao, item); } }
/// <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> /// Aplica os impostos do resultado do calculo. /// </summary> /// <param name="sessao"></param> /// <param name="resultado"></param> private void AplicarImpostos(GDA.GDASession sessao, ICalculoImpostoResultado resultado) { var orcamentoImpostoContainer = resultado.Container as OrcamentoImpostoContainer; if (orcamentoImpostoContainer == null) { return; } var orcamento = orcamentoImpostoContainer.Orcamento; foreach (var item in resultado.Itens) { AplicarImpostos(sessao, item); } var atualizarTotalOrcamento = false; if (Loja.CalcularIpiPedido && Cliente.CobrarIpi) { orcamento.ValorIpi = resultado.Itens.Sum(f => f.ValorIpi); orcamento.AliquotaIpi = resultado.Itens.Any(f => f.AliqIpi > 0) ? resultado.Itens.Sum(f => f.AliqIpi) / resultado.Itens.Count(f => f.AliqIpi > 0f) : 0f; orcamento.Total += orcamento.ValorIpi; atualizarTotalOrcamento = true; } else { orcamento.ValorIpi = 0; orcamento.AliquotaIpi = 0; } if (Loja.CalcularIcmsPedido && Cliente.CobrarIcmsSt) { orcamento.ValorIcms = resultado.Itens.Sum(f => f.ValorIcmsSt); orcamento.AliquotaIcms = resultado.Itens.Any(f => f.AliqIcmsSt > 0) ? resultado.Itens.Sum(f => f.AliqIcmsSt) / resultado.Itens.Count(f => f.AliqIcmsSt > 0f) : 0f; orcamento.Total += orcamento.ValorIcms; atualizarTotalOrcamento = true; } else { orcamento.ValorIcms = 0; orcamento.AliquotaIcms = 0; } Data.DAL.OrcamentoDAO.Instance.AtualizarImpostos(sessao, orcamento, atualizarTotalOrcamento); }
/// <summary> /// Construtor padrão. /// </summary> /// <param name="container"></param> /// <param name="resultadoInterno"></param> public Resultado(IItemImpostoContainer container, ICalculoImpostoResultado resultadoInterno) { Container = container; ResultadoInterno = resultadoInterno; }