Ejemplo n.º 1
0
        private static ImpostoConfiguracao MontarImpostoConfiguracao(ProdutoNotaFiscal produtoNotaFiscal)
        {
            ImpostoConfiguracao impostoConfiguracao = new ImpostoConfiguracao();
            IcmsProduto         icmsProduto         = new IcmsProduto();
            Icms icms = new Icms();

            icms.IcmsProduto         = icmsProduto;
            icmsProduto.AliquotaICMS = produtoNotaFiscal.Produto.AliquotaICMS * 100;
            icmsProduto.ValorICMS    = produtoNotaFiscal.ValorICMS;
            impostoConfiguracao.Icms = icms;

            return(impostoConfiguracao);
        }
Ejemplo n.º 2
0
        public void DeveIncluirBaseIcmsMultiplicadoPorZeroNoveValorPedidoQuandoCfopSeisMilENove()
        {
            Estado  origem        = "SP";
            Estado  destino       = "MG";
            var     pedido        = new Pedido("Samir", origem, destino);
            var     pedidoItem    = new PedidoItem("Produto", "123", 120, false);
            decimal valorEsperado = 120 * 0.90M;
            Cfop    cfop          = "6.009";

            IcmsService icmsService = new IcmsService();
            Icms        icms        = icmsService.CalcularIcms(pedido, pedidoItem, cfop);

            Assert.AreEqual(valorEsperado, icms.BaseIcms);
        }
Ejemplo n.º 3
0
        public void DeveRetornarIcmsDezAliquitaZeroDezesseteParaEstadoDestinoEOrigemDiferentes()
        {
            Estado origem     = "SP";
            Estado destino    = "MG";
            var    pedido     = new Pedido("Samir", origem, destino);
            var    pedidoItem = new PedidoItem("Produto", "123", 120, false);
            Cfop   cfop       = "6.009";

            IcmsService icmsService = new IcmsService();
            Icms        icms        = icmsService.CalcularIcms(pedido, pedidoItem, cfop);

            Assert.AreEqual("10", icms.TipoIcms);
            Assert.AreEqual(0.17M, icms.AliquotaIcms);
        }
Ejemplo n.º 4
0
        public ExemploIcmsIss()
        {
            Console.WriteLine("Exemplo de ICMS e ISS");

            IImposto icms = new Icms();
            IImposto iss  = new Iss();

            Orcamento orcamento = new Orcamento();

            orcamento.AdicionarItem(new Item("Microondas", 500.00));

            CalculadorDeImpostos calculador = new CalculadorDeImpostos();

            calculador.RealizarCalculo(orcamento, icms);
            calculador.RealizarCalculo(orcamento, iss);
        }
Ejemplo n.º 5
0
        public static void StrategyCalcImpostos()
        {
            IImposto icms = new Icms();
            IImposto iss  = new Iss();
            IImposto iccc = new ICCC();

            Orcamento            orcamento  = new Orcamento(2000d);
            CalculadorDeImpostos calculador = new CalculadorDeImpostos();

            calculador.RealizaCalculo(orcamento, icms)
            .RealizaCalculo(orcamento, iss)
            .RealizaCalculo(orcamento, iccc);

            Console.WriteLine("Impostos sobre o orcamento!" + calculador.ValorCalculado);
            Console.WriteLine("VAlor Final = " + (orcamento.Valor + calculador.ValorCalculado));
            Console.ReadKey();
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            //O padrão estrategy é um design patthern que permite que multiplas estrátegias possam ser utilizadas no mesmo objetivo
            //Ele permite um menor desacoplamento entre as classes, permitindo por consequinte uma maior escalabilidade do código

            ItemNoEstoque itemN1 = new ItemNoEstoque(100_000.00, "Lancer");
            ItemNoEstoque itemN2 = new ItemNoEstoque(680.00, "Zenfone 7");
            ItemNoEstoque itemN3 = new ItemNoEstoque(90.00, "Xiaomi Airdots");

            WriteLine(itemN1.Informacoes);
            WriteLine(itemN2.Informacoes);
            WriteLine(itemN3.Informacoes);

            IImposto icms      = new Icms();
            IImposto alfandega = new TaxaAlfandega();

            CalculadoraDeImposto.MostraInformações(itemN1, icms);
            CalculadoraDeImposto.MostraInformações(itemN2, alfandega);
            CalculadoraDeImposto.MostraInformações(itemN3, alfandega);

            ReadKey();
        }
Ejemplo n.º 7
0
        public bool GerarNotaFiscal(Domain.Pedido pedido)
        {
            NotaFiscal notaFiscal
                = new NotaFiscal(new Random().Next(99999), 1, pedido.NomeCliente, pedido.EstadoDestino, pedido.EstadoOrigem);

            Cfop cfop = _cfopService.ObterCfop(pedido);

            if (string.IsNullOrEmpty(cfop.Valor))
            {
                return(false);
            }

            foreach (PedidoItem itemPedido in pedido.Itens)
            {
                Produto       produto = new Produto(itemPedido.NomeProduto, itemPedido.CodigoProduto, itemPedido.ValorItemPedido);
                Icms          icms    = _icmsService.CalcularIcms(pedido, itemPedido, cfop);
                Ipi           ipi     = _ipiService.CalcularIpi(itemPedido);
                EstadoService estado  = new EstadoService(pedido.EstadoDestino);

                NotaFiscalItem notaFiscalItem = new NotaFiscalItem(0, notaFiscal.NumeroNotaFiscal, cfop, icms, produto, ipi);

                if (estado.EhEstadoSudeste())
                {
                    notaFiscalItem.AplicarDesconto(0.10M);
                }

                notaFiscal.AdicionarItem(notaFiscalItem);
            }

            bool notaFiscalCriada = CriarXml(notaFiscal);

            if (notaFiscalCriada)
            {
                this._notaFiscalRepositorio.AdicionarNotaFiscal(notaFiscal);
            }

            return(notaFiscalCriada);
        }
Ejemplo n.º 8
0
 public decimal CalculateIcms()
 {
     return(Icms.CalculateIcms(Value));
 }
Ejemplo n.º 9
0
 public decimal ValorIcmsST()
 {
     return(Icms.ValorIcmsST());
 }
Ejemplo n.º 10
0
 public decimal BaseIcmsST()
 {
     return(Icms.BaseIcmsST());
 }
Ejemplo n.º 11
0
 public Boolean Excluir(Icms icms)
 {
     return(conexao.Excluir(nomeTabela, PreencheCondicoes(icms)));
 }
Ejemplo n.º 12
0
 public Boolean Alterar(Icms icms)
 {
     return(conexao.Atualizar(nomeTabela, PreencheParametros(icms), PreencheCondicoes(icms)));
 }
Ejemplo n.º 13
0
 public Boolean Inserir(Icms icms)
 {
     return(conexao.Inserir(nomeTabela, PreencheParametros(icms)));
 }
Ejemplo n.º 14
0
 public void GeraMestre(Icms Mestre)
 {
 }
Ejemplo n.º 15
0
 public decimal PercRedBaseIcmsST()
 {
     return(Icms.PercRedBaseIcmsST());
 }
Ejemplo n.º 16
0
        private PlugNotasApi Initialize(Invoice invoice)
        {
            var plugNotas = new PlugNotasApi();

            var address = invoice.Order.Customer.Adresses.Where(a => a.Type == AddressType.Billing).FirstOrDefault();

            plugNotas.IdIntegracao    = invoice.Id.ToString();
            plugNotas.Presencial      = true;
            plugNotas.ConsumidorFinal = true;
            plugNotas.Natureza        = invoice.OriginOperation;

            var issuer = new Emitente();

            issuer.CpfCnpj = _configuration["IssuerCnpj"];

            plugNotas.Emitente = issuer;

            var receiver = new Destinatario();

            receiver.CpfCnpj     = invoice.Order.Customer.Cnpj;
            receiver.RazaoSocial = invoice.Order.Customer.CompanyName;
            receiver.Email       = invoice.Order.Customer.Email;

            var receiverAddress = new Endereco();

            receiverAddress.Logradouro      = address.Street;
            receiverAddress.Numero          = address.Number.ToString();
            receiverAddress.Bairro          = address.Neighborhood;
            receiverAddress.CodigoCidade    = address.CodeCity;
            receiverAddress.DescricaoCidade = address.City;
            receiverAddress.Estado          = address.State;
            receiverAddress.Cep             = address.ZipCode;

            receiver.Endereco = receiverAddress;

            plugNotas.Destinatario = receiver;

            var itemsPlugNotas = new List <Iten>();

            foreach (var item in invoice.InvoiceLines)
            {
                var itemPlugNotas = new Iten();

                itemPlugNotas.Codigo    = item.ItemName;
                itemPlugNotas.Descricao = item.ItemName;
                itemPlugNotas.Ncm       = item.NcmCode;
                itemPlugNotas.Cfop      = "5101";

                var unitaryValue = new ValorUnitario();
                unitaryValue.Comercial      = (double)item.UnitaryPrice;
                unitaryValue.Tributavel     = (double)item.UnitaryPrice;
                itemPlugNotas.ValorUnitario = unitaryValue;

                var quantity = new Quantidade();
                quantity.Comercial       = item.Quantity;
                quantity.Tributavel      = item.Quantity;
                itemPlugNotas.Quantidade = quantity;

                var taxes = new Tributos();

                var icms = new Icms();
                icms.Origem = item.OriginIcms;
                icms.Cst    = item.CstIcms;
                var baseCalcIcms = new BaseCalculo();
                baseCalcIcms.ModalidadeDeterminacao = item.DeterminationMode;
                baseCalcIcms.Valor = (double)item.ValueBaseCalcIcms;
                icms.BaseCalculo   = baseCalcIcms;
                icms.Aliquota      = item.AliquotIcms;
                icms.Valor         = (double)item.ValueIcms;
                taxes.Icms         = icms;

                var pis = new Pis();
                pis.Cst = item.CstPis;
                var baseCalcPis = new BaseCalculo();
                baseCalcPis.Valor = (double)item.ValueBaseCalcPis;
                pis.BaseCalculo   = baseCalcPis;
                pis.Aliquota      = item.AliquotPis;
                pis.Valor         = (double)item.ValuePis;
                taxes.Pis         = pis;

                var cofins = new Cofins();
                cofins.Cst = item.CstCofins;
                var baseCalcCofins = new BaseCalculo();
                baseCalcCofins.Valor = (double)item.ValueBaseCalcCofins;
                cofins.BaseCalculo   = baseCalcCofins;
                cofins.Aliquota      = item.AliquotCofins;
                cofins.Valor         = (double)item.ValueCofins;
                taxes.Cofins         = cofins;

                itemPlugNotas.Tributos = taxes;

                itemsPlugNotas.Add(itemPlugNotas);
            }

            plugNotas.Itens = itemsPlugNotas;

            var payments = new List <Pagamento>();

            var payment = new Pagamento();

            payment.AVista = true;
            payment.Meio   = "18";
            payments.Add(payment);

            plugNotas.Pagamentos = payments;

            return(plugNotas);
        }