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()
 };