Пример #1
0
        /// <summary>
        /// Aplica os impostos e verifica o CFOP do Pedido
        /// </summary>
        /// <param name="pedido">Pedido que será verificado</param>
        /// <returns>Retorna uma lista com os itens da nota fiscal preenchido</returns>
        public List <NotaFiscalItem> PopulaItensNotaFiscal(Pedido pedido)
        {
            Cfop   cfop             = new Cfop();
            string valorImpostoCfop = cfop.VerificaCFOP(pedido);

            ManipulaEstados manipulaEstados = new ManipulaEstados();
            double          desconto        = manipulaEstados.DescontoParaEstadosDestino(pedido.EstadoDestino);

            return(pedido.ItensDoPedido.Select(_ =>
            {
                Impostos impostoICMS = new ImpostoICMS(pedido, _, valorImpostoCfop);
                Impostos impostoIPI = new ImpostoIPI(_);

                return new NotaFiscalItem()
                {
                    NomeProduto = _.NomeProduto,
                    CodigoProduto = _.CodigoProduto,
                    Cfop = valorImpostoCfop,
                    BaseIcms = impostoICMS.CalculaBase(),
                    TipoIcms = ((ImpostoICMS)impostoICMS).VerificaTipo(),
                    AliquotaIcms = impostoICMS.VerificaAliquota(),
                    ValorIcms = impostoICMS.Valor(),
                    BaseIpi = impostoIPI.CalculaBase(),
                    AliquotaIpi = impostoIPI.VerificaAliquota(),
                    ValorIpi = impostoIPI.Valor(),
                    Desconto = desconto
                };
            }).ToList());
        }
Пример #2
0
        public void TestVerificaAliquotaEstadoOrigemEstadoDestinoNotEquals()
        {
            Mocks  mock   = new Mocks();
            Pedido pedido = mock.Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "RJ";

            Impostos imposto       = new ImpostoICMS(pedido, pedido.ItensDoPedido[0], "");
            double   valorAliquota = imposto.VerificaAliquota();

            Assert.AreEqual(0.17d, valorAliquota);
        }
Пример #3
0
        public void TestVerificaTipoEstadoOrigemEstadoDestinoNotEquals()
        {
            Mocks  mock   = new Mocks();
            Pedido pedido = mock.Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "RJ";

            Impostos imposto   = new ImpostoICMS(pedido, pedido.ItensDoPedido[0], "");
            string   valorTipo = ((ImpostoICMS)imposto).VerificaTipo();

            Assert.AreEqual("10", valorTipo);
        }
Пример #4
0
        public void TestCalculaBaseCFOPEmpty()
        {
            Mocks  mock   = new Mocks();
            Pedido pedido = mock.Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "RJ";

            PedidoItem pedidoItem = pedido.ItensDoPedido[0];

            pedidoItem.ValorItemPedido = 100;

            Impostos imposto     = new ImpostoICMS(pedido, pedidoItem, "");
            double   calculoBase = imposto.CalculaBase();

            Assert.AreEqual(100d, calculoBase);
        }
Пример #5
0
        public void TestVerificaTipoBrinde()
        {
            Mocks  mock   = new Mocks();
            Pedido pedido = mock.Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "RJ";

            PedidoItem pedidoItem = pedido.ItensDoPedido[0];

            pedidoItem.Brinde = true;

            Impostos imposto   = new ImpostoICMS(pedido, pedidoItem, "");
            string   valorTipo = ((ImpostoICMS)imposto).VerificaTipo();

            Assert.AreEqual("60", valorTipo);
        }
Пример #6
0
        public void TestVerificaAliquotaNotBrinde()
        {
            Mocks  mock   = new Mocks();
            Pedido pedido = mock.Pedido();

            pedido.EstadoOrigem  = "SP";
            pedido.EstadoDestino = "RJ";

            PedidoItem pedidoItem = pedido.ItensDoPedido[0];

            pedidoItem.Brinde = false;

            Impostos imposto       = new ImpostoICMS(pedido, pedidoItem, "");
            double   valorAliquota = ((ImpostoICMS)imposto).VerificaAliquota();

            Assert.AreEqual(0.17d, valorAliquota);
        }