static void Main(string[] args) { Imposto iss = new ISS(); Imposto icms = new ICMS(); Imposto issretido = new ISSRetido(); Orcamento orcamento = new Orcamento(250.00); CalculadordeImpostos calculador = new CalculadordeImpostos(); Console.WriteLine($"Valor ISS: {calculador.RealizaCalculo(orcamento, iss)}"); Console.WriteLine($"Valor ICMS: {calculador.RealizaCalculo(orcamento, icms)}"); Console.WriteLine($"Valor ISSRetido: {calculador.RealizaCalculo(orcamento, issretido)}"); Console.ReadKey(); }
private void geraDetalhe() { NUMERO_RPS = 1; string SERIE_RPS = ApoioXML.Space(5); string codigoServicoPrestado = "02461"; ISSRetido issRetido = ISSRetido.SEM_ISS_RETIDO; var query = from linha in ctx.TB_NOTA_SAIDAs where linha.USUARIO_REMESSA_RPS == ID_USUARIO && linha.MARCA_REMSSA_RPS == 1 select linha; foreach (var item in query) { //if (item.DATA_EMISSAO_NF.Value.Month != MES_PERIODO || item.DATA_EMISSAO_NF.Value.Year != ANO_PERIODO) // throw new Exception("A nota fiscal [" + item.NUMERO_NF.ToString() + "] está fora do período selecionado."); conteudo.Append("2"); conteudo.Append("RPS "); conteudo.Append(SERIE_RPS); conteudo.Append(NUMERO_RPS.ToString().PadLeft(12, '0')); conteudo.Append(ApoioXML.TrataDataRPS(DateTime.Today)); conteudo.Append("T"); conteudo.Append(ApoioXML.TrataValorRPS(item.TOTAL_SERVICOS_NF, 15)); conteudo.Append(ApoioXML.TrataValorRPS(item.TOTAL_DEDUCOES, 15)); conteudo.Append(codigoServicoPrestado); decimal ALIQ_ISS = (from linha in ctx.TB_ITEM_NOTA_SAIDAs where linha.NUMERO_ITEM_NF == item.NUMERO_SEQ select linha.ALIQ_ISS_ITEM_NF).First().Value; conteudo.Append(ApoioXML.TrataValorRPS(ALIQ_ISS, 4)); conteudo.Append(Convert.ToInt32(issRetido).ToString()); conteudo.Append(item.TB_CLIENTE.PESSOA == 0 ? "2" : "1"); conteudo.Append(ApoioXML.TrataSinais4(item.CNPJ_CLIENTE_NF).PadRight(14, ' ')); string IE_CLIENTE = item.IE_CLIENTE_NF.Trim().ToUpper().StartsWith("ISENT") ? ApoioXML.Space(12) : ApoioXML.TrataSinais4(item.IE_CLIENTE_NF).PadRight(12, ' '); conteudo.Append(ApoioXML.Space(8)); conteudo.Append(IE_CLIENTE); conteudo.Append(ApoioXML.TrataSinais(item.NOME_CLIENTE_NF).PadRight(75, ' ')); string tipoLogradouro = item.ENDERECO_FATURA_NF.Substring(0, item.ENDERECO_FATURA_NF.IndexOf(" ") > -1 ? item.ENDERECO_FATURA_NF.IndexOf(" ") : 3); tipoLogradouro = tipoLogradouro.Replace(".", ""); tipoLogradouro = tipoLogradouro.Length > 3 ? tipoLogradouro.Substring(0, 3) : tipoLogradouro; conteudo.Append(tipoLogradouro.PadRight(3, ' ')); string Logradouro = item.ENDERECO_FATURA_NF.IndexOf(" ") > -1 ? item.ENDERECO_FATURA_NF.Substring(item.ENDERECO_FATURA_NF.IndexOf(" ") + 1).Trim() : item.ENDERECO_FATURA_NF.Trim(); conteudo.Append(ApoioXML.TrataSinais(Logradouro).Length > 50 ? ApoioXML.TrataSinais(Logradouro).Substring(0, 50) : ApoioXML.TrataSinais(Logradouro).PadRight(50, ' ')); conteudo.Append(item.NUMERO_END_FATURA_NF.Trim().Length > 10 ? item.NUMERO_END_FATURA_NF.Substring(0, 10) : item.NUMERO_END_FATURA_NF.Trim().PadRight(10, ' ')); conteudo.Append(ApoioXML.TrataSinais(item.COMP_END_FATURA_NF).Length > 30 ? ApoioXML.TrataSinais(item.COMP_END_FATURA_NF).Substring(0, 30) : ApoioXML.TrataSinais(item.COMP_END_FATURA_NF).PadRight(30, ' ')); conteudo.Append(ApoioXML.TrataSinais(item.BAIRRO_FATURA_NF).Length > 30 ? ApoioXML.TrataSinais(item.BAIRRO_FATURA_NF).Substring(0, 30) : ApoioXML.TrataSinais(item.BAIRRO_FATURA_NF).PadRight(30, ' ')); conteudo.Append(ApoioXML.TrataSinais(item.MUNICIPIO_NF).Length > 50 ? ApoioXML.TrataSinais(item.MUNICIPIO_NF).Substring(0, 50) : ApoioXML.TrataSinais(item.MUNICIPIO_NF).PadRight(50, ' ')); conteudo.Append(item.UF_NF.Trim()); conteudo.Append(ApoioXML.TrataSinais(item.CEP_FATURA_NF).Length > 8 ? ApoioXML.TrataSinais(item.CEP_FATURA_NF).Substring(0, 8) : ApoioXML.TrataSinais(item.CEP_FATURA_NF).PadRight(8, ' ')); conteudo.Append(item.TB_CLIENTE.EMAIL_CLIENTE.Trim().PadRight(75, ' ')); StringBuilder servicos = new StringBuilder(); var query1 = from linha in ctx.TB_ITEM_NOTA_SAIDAs where linha.NUMERO_ITEM_NF == item.NUMERO_SEQ select linha; foreach (var item1 in query1) { if (servicos.ToString().Length == 0) { servicos.Append(ApoioXML.TrataSinais(item1.DESCRICAO_PRODUTO_ITEM_NF.Trim())); } else { servicos.Append("|" + ApoioXML.TrataSinais(item1.DESCRICAO_PRODUTO_ITEM_NF.Trim())); } } conteudo.Append(servicos.ToString()); conteudo.Append(Environment.NewLine); TOTAL_SERVICOS += item.TOTAL_SERVICOS_NF.Value; TOTAL_DEDUCOES += item.TOTAL_DEDUCOES.HasValue ? item.TOTAL_DEDUCOES.Value : 0; NUMERO_RPS++; item.MARCA_REMSSA_RPS = 2; item.USUARIO_REMESSA_RPS = 0; Doran_Base.Auditoria_ERP_Servicos.Doran_Auditoria.Audita_Update(ctx, ctx.TB_NOTA_SAIDAs.GetModifiedMembers(item), ctx.TB_NOTA_SAIDAs.ToString(), ID_USUARIO); } ctx.SubmitChanges(); }