예제 #1
0
        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();
        }
예제 #2
0
        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();
        }