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); }
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); }
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); }
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); }
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(); }
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(); }
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); }
public decimal CalculateIcms() { return(Icms.CalculateIcms(Value)); }
public decimal ValorIcmsST() { return(Icms.ValorIcmsST()); }
public decimal BaseIcmsST() { return(Icms.BaseIcmsST()); }
public Boolean Excluir(Icms icms) { return(conexao.Excluir(nomeTabela, PreencheCondicoes(icms))); }
public Boolean Alterar(Icms icms) { return(conexao.Atualizar(nomeTabela, PreencheParametros(icms), PreencheCondicoes(icms))); }
public Boolean Inserir(Icms icms) { return(conexao.Inserir(nomeTabela, PreencheParametros(icms))); }
public void GeraMestre(Icms Mestre) { }
public decimal PercRedBaseIcmsST() { return(Icms.PercRedBaseIcmsST()); }
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); }