private List <Tributo> ObterTributos(Domain.XML.FeiraDeSantana.Servico servico, bool faturamento) { List <Tributo> tributos = new List <Tributo>(); decimal baseCalculo = servico.Valores.BaseCalculo.ToDecimal(); if (!string.IsNullOrWhiteSpace(servico.Valores.ValorIss)) { tributos.Add(ObterTributo("ISS", baseCalculo, servico.Valores.ValorIss.ToDecimal())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorIssRetido)) { tributos.Add(ObterTributo("ISS", baseCalculo, servico.Valores.ValorIssRetido.ToDecimal())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorIr)) { tributos.Add(ObterTributo("IRRFPJ", baseCalculo, servico.Valores.ValorIr.ToDecimal())); } if (faturamento) { if (!string.IsNullOrWhiteSpace(servico.Valores.ValorPis)) { tributos.Add(ObterTributo("PIS-RF", baseCalculo, servico.Valores.ValorPis.ToDecimal())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorCofins)) { tributos.Add(ObterTributo("COFINS-RF", baseCalculo, servico.Valores.ValorCofins.ToDecimal())); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorCsll)) { tributos.Add(ObterTributo("CSLL-RF", baseCalculo, servico.Valores.ValorCsll.ToDecimal())); } } else { decimal valor = 0; if (!string.IsNullOrWhiteSpace(servico.Valores.ValorPis)) { valor += servico.Valores.ValorPis.ToDecimal(); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorCofins)) { valor += servico.Valores.ValorCofins.ToDecimal(); } if (!string.IsNullOrWhiteSpace(servico.Valores.ValorCsll)) { valor += servico.Valores.ValorCsll.ToDecimal(); } tributos.Add(ObterTributo("PCC", baseCalculo, valor)); } return(tributos); }
private Produto ObterItemMovimento(Domain.XML.FeiraDeSantana.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.FeiraDeSantana.Servico servico, int sequencial, Parametros parametros, bool faturamento) => new ItemMovimento() { Coligada = parametros.CodigoColigada, Sequencial = sequencial, Quantidade = 1, Preco = servico.Valores.ValorServicos.ToDecimal(), ValorTotal = servico.Valores.ValorServicos.ToDecimal(), //ValorDeducao = servico.Valores.ValorDeducoes.ToDecimal(), Produto = ObterItemMovimento(servico, parametros), Tributos = ObterTributos(servico, faturamento).ToList() };