private List <Tributo> ObterTributos(Domain.XML.Salvador.Servico servico, bool faturamento) { List <Tributo> tributos = new List <Tributo>(); decimal baseCalculo = servico.Valores.BaseCalculo.ToDecimalBR(); if (!string.IsNullOrWhiteSpace(servico.Valores.ValorInss)) { tributos.Add(ObterTributo("INSS", baseCalculo, servico.Valores.ValorInss.ToDecimalBR())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorIss)) { tributos.Add(ObterTributo("ISS", baseCalculo, servico.Valores.ValorIss.ToDecimalBR())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorIssRetido)) { tributos.Add(ObterTributo("ISS", baseCalculo, servico.Valores.ValorIssRetido.ToDecimalBR())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorIr)) { tributos.Add(ObterTributo("IRRFPJ", baseCalculo, servico.Valores.ValorIr.ToDecimalBR())); } if (faturamento) { if (!string.IsNullOrWhiteSpace(servico.Valores.ValorPis)) { tributos.Add(ObterTributo("PIS-RF", baseCalculo, servico.Valores.ValorPis.ToDecimalBR())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorCofins)) { tributos.Add(ObterTributo("COFINS-RF", baseCalculo, servico.Valores.ValorCofins.ToDecimalBR())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorCsll)) { tributos.Add(ObterTributo("CSLL-RF", baseCalculo, servico.Valores.ValorCsll.ToDecimalBR())); } } else { decimal valor = 0; if (!string.IsNullOrWhiteSpace(servico.Valores.ValorPis)) { valor += servico.Valores.ValorPis.ToDecimalBR(); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorCofins)) { valor += servico.Valores.ValorCofins.ToDecimalBR(); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorCsll)) { valor += servico.Valores.ValorCsll.ToDecimalBR(); } tributos.Add(ObterTributo("PCC", baseCalculo, valor)); } return(tributos); }
private Produto ObterItemMovimento(Domain.XML.Salvador.Servico servico, Parametros parametros) => new Produto() { Coligada = parametros.CodigoColigada, Global = true, Codigo = servico.ItemListaServico, CodigoAuxiliar = servico.CodigoCnae, CodigoReduzido = servico.ItemListaServico, Nome = (servico.Discriminacao.Length > 120) ? servico.Discriminacao.Substring(0, 120).RemoveAccents() : servico.Discriminacao.RemoveAccents(), Unidade = "UN", Tipo = ETipoProduto.Serviço };
private ItemMovimento ObterItemMovimento(Domain.XML.Salvador.Servico servico, int sequencial, Parametros parametros, bool faturamento) => new ItemMovimento() { Coligada = parametros.CodigoColigada, Sequencial = sequencial, Quantidade = 1, Preco = servico.Valores.ValorServicos.ToDecimalBR(), ValorTotal = servico.Valores.ValorServicos.ToDecimalBR(), ValorDeducao = servico.Valores.ValorDeducoes.ToDecimalBR(), Produto = ObterItemMovimento(servico, parametros), Tributos = ObterTributos(servico, faturamento).ToList() };