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