public ImpostoAproximadoResult CalculoImpostoAproximado(Model.Faturamento.Lancamento.Movimento.Item.IItem item) { ImpostoAproximadoResult result = new ImpostoAproximadoResult(); IAcabado prod = item.ItemMovimentado as IAcabado; INCM ncm = prod.NCM; // Se origem Importado if (prod.Importado) { // Importado - Calcular imposto aproximado importacao result.ValorImpostoImportacao = item.ValorTotalLiquido * (ncm.ImpostoAproxImport / 100); result.PercentualImpostoImportacao = ncm.ImpostoAproxImport; } else { // Nacional - Calcular imposto aproximado result.ValorImpostoFederal = item.ValorTotalLiquido * (ncm.ImpostoAproximado / 100); result.PercentualImpostoFederal = ncm.ImpostoAproximado; } // Se tem imposto estadual if (ncm.ImpostoAproxEstadual != 0d) { result.ValorImpostoEstadual = item.ValorTotalLiquido * (ncm.ImpostoAproxEstadual / 100); result.PercentualImpostoEstadual = ncm.ImpostoAproxEstadual; } // Se tem imposto municipal if ((ncm.ImpostoAproxMunicip != 0d)) { result.ValorImpostoMunicipal = item.ValorTotalLiquido * (ncm.ImpostoAproxMunicip / 100); result.PercentualImpostoMunicipal = ncm.ImpostoAproxMunicip; } return result; }
/// <summary> /// Calcula os valores dos impostos aproximados /// </summary> /// <returns></returns> public void CalculaImpostosAproximados(IItem item) { //Se o item movimentado for nulo ou vazio e for serviço, não calcula o imposto aproximado if(item.ItemMovimentado.IsNullOrEmpty() || item.ItemMovimentado.TipoItem == Enuns.Cadastro.Item.TipoItem.Servico) return; ImpostoAproximadoResult resultImposto = new ImpostoAproximadoResult().CalculoImpostoAproximado(item); //Imposto aproximado estadual item.PercentualImpostoAproximadoEstadual = resultImposto.PercentualImpostoEstadual; item.ValorImpostoAproximadoEstadual = resultImposto.ValorImpostoEstadual; //Imposto aproximado federal item.ValorImpostoAproximadoFederal = resultImposto.ValorImpostoFederal; item.PercentualImpostoAproximadoFederal = resultImposto.PercentualImpostoFederal; //Imposto aproximado importacao item.ValorImpostoAproximadoImportado = resultImposto.ValorImpostoImportacao; item.PercentualImpostoAproximadoImport = resultImposto.PercentualImpostoImportacao; //Imposto aproximado Municicipal item.ValorImpostoAproximadoMunicipio = resultImposto.ValorImpostoMunicipal; item.PercentualImpostoAproximadoMunicipal = resultImposto.PercentualImpostoMunicipal; }