Example #1
0
        static void Main(string[] args)
        {
            var criador     = new NotaFiscalBuilder();
            var criadorItem = new ItemDaNotaBuilder();

            criador.ParaEmpresa("Thiago")
            .ComCnpj("23.456.789/0001-12")

            .ComItem(criadorItem.ComNome("Item1").ComValor(100).Controi())
            .ComItem(criadorItem.ComNome("Item2").ComValor(200).Controi())
            .NaData(DateTime.Now)
            .ComObs("uma obs qualquer");

            criador.AdicionaAcao(new EnviadorDeEmail());
            criador.AdicionaAcao(new EnviadorDeSms());
            criador.AdicionaAcao(new NotaFiscalDao());
            criador.AdicionaAcao(new Multiplicador(2));

            var nf = criador.Constroi();

            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);
            Console.WriteLine(nf.DataDeEmissao);

            Console.ReadKey();
        }
Example #2
0
        private static void TestaDataOpcionalEDefaultNoNotaFiscalBuilder()
        {
            var nf = new NotaFiscalBuilder()
                     .ParaEmpresa("MatrixMax")
                     .ComCnpj("12.345.678.0001-12")
                     .Com(new ItemDaNota("Banana", 30))
                     .Com(new ItemDaNota("Amendoim", 20))
                     .ComObservacao("Comprei bananas e amendoins.")
                     .Constroi();

            Console.WriteLine($"{nf.DataDeEmissao.ToShortDateString()}\n{nf.ValorBruto} - {nf.Impostos}");
            foreach (var item in nf.Itens)
            {
                Console.WriteLine(item.Nome);
            }
            Console.WriteLine(nf.Observavoes);

            var nf2 = new NotaFiscalBuilder()
                      .NaData(new DateTime(2000, 01, 01))
                      .ParaEmpresa("MatrixMax")
                      .ComCnpj("12.345.678.0001-12")
                      .Com(new ItemDaNota("Ovo", 10))
                      .Com(new ItemDaNota("Farinha", 5))
                      .ComObservacao("Comprei ovos e farinha.")
                      .Constroi();

            Console.WriteLine($"{nf2.DataDeEmissao.ToShortDateString()}\n{nf2.ValorBruto} - {nf2.Impostos}");
            foreach (var item in nf2.Itens)
            {
                Console.WriteLine(item.Nome);
            }
            Console.WriteLine(nf2.Observavoes);

            Console.ReadKey();
        }
        private static void TestaNotaBuilder() //Builder
        {
            var listaAcoes = new List <AcaoAposGerarNota>()
            {
                new EnviadorDeEmail(),
                new NotaFiscalDao(),
                new EnviadorDeSms(),
                new Impressora(),
                new Multiplicador(2)
            };

            NotaFiscalBuilder builder = new NotaFiscalBuilder(listaAcoes);

            NotaFiscal nf = builder.ParaEmpresa("Caelum")
                            .ComCnpj("123.456.789/0001-10")
                            .Com(new ItemDaNotaBuilder()
                                 .ComNome("item 1")
                                 .ComValor(100.0)
                                 .Constroi())
                            .Com(new ItemDaNotaBuilder()
                                 .ComNome("item 2")
                                 .ComValor(200.0)
                                 .Constroi())
                            .Com(new ItemDaNotaBuilder()
                                 .ComNome("item 3")
                                 .ComValor(300.0)
                                 .Constroi())
                            .ComObservacoes("entregar nf pessoalmente")
                            .Constroi();

            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);
        }
Example #4
0
        static void Main(string[] args)
        {
            //AULA 1
            //IImposto iss = new ISS();
            //IImposto icms = new ICMS();

            //Orcamento orcamento = new Orcamento(500.0);

            //CalculadorDeImpostos calculador = new CalculadorDeImpostos();
            //calculador.RealizaCalculo(orcamento, iss);
            //calculador.RealizaCalculo(orcamento, icms);

            //AULA 2
            //CalculadorDeDescontos calculador = new CalculadorDeDescontos();

            //Orcamento orcamento = new Orcamento(500);
            //orcamento.AdicionaItem(new Item("CANETA", 500));
            //orcamento.AdicionaItem(new Item("LAPIS", 500));

            //double desconto = calculador.Calcula(orcamento);
            //Console.WriteLine(desconto);

            //AULA 4
            //Imposto iss = new ISS(new ICMS());
            //Orcamento orcamento = new Orcamento(500);
            //double valor = iss.Calcula(orcamento);
            //Console.WriteLine(valor);

            //AULA 5
            //Orcamento reforma = new Orcamento(500);
            //Console.WriteLine(reforma.Valor);
            //reforma.AplicaDescontoExtra();
            //Console.WriteLine(reforma.Valor);

            //reforma.Aprova();
            //reforma.AplicaDescontoExtra();
            //Console.WriteLine(reforma.Valor);
            //reforma.Finaliza();
            //reforma.AplicaDescontoExtra();

            //AULA 6
            NotaFiscalBuilder criador = new NotaFiscalBuilder();

            criador
            .ParaEmpresa("Fillipe Partiu Portugal")
            .ComCNPJ("12.234.456/0001-78")
            .ComItem(new ItemDaNota("item 1", 200.0))
            .ComItem(new ItemDaNota("item 2", 200.0));

            criador.AdicionaAcao(new EnviadorDeEmail());
            criador.AdicionaAcao(new NotaFiscalDAO());
            criador.AdicionaAcao(new EnviadorDeSms());

            NotaFiscal nf = criador.Constroi();

            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);
        }
Example #5
0
        private static void TestaObserverMultiplicador()
        {
            var nf = new NotaFiscalBuilder()
                     .ParaEmpresa("MatrixMax")
                     .ComCnpj("12.345.678.0001-12")
                     .Com(new ItemDaNota("Banana", 30))
                     .Com(new ItemDaNota("Amendoim", 20))
                     .ComObservacao("Comprei bananas e amendoins.")
                     .ComAcaoPosterior(new Multiplicador(3))
                     .Constroi();

            Console.ReadKey();
        }
        private static void Builder1()
        {
            var criadorDeNotaFiscal = new NotaFiscalBuilder();
            var itens = new ItemDaNotaBuilder();

            criadorDeNotaFiscal
            .ParaEmpresa("LG")
            .ComCnpj("999.999.99-99")
            .ComItem(itens.ComNome("Sapato").ComValor(100).Controi())
            .ComItem(itens.ComNome("Calça").ComValor(500).Controi())
            .NaData(new DateTime(2017, 1, 18))
            .ComObservacoes("Teste obs ");

            var nf = criadorDeNotaFiscal.Constroi();

            Console.WriteLine(nf);
        }
        static void Main(string[] args)
        {
            NotaFiscalBuilder builder = new NotaFiscalBuilder();

            builder.AdicionaAcao(new Multiplica(2));
            builder.AdicionaAcao(new Multiplica(3));
            builder.AdicionaAcao(new Multiplica(5.5));

            NotaFiscal notaFiscal = builder.Empresa("Caelum")
                                    .UsarCnpj("123.456.789/0001-10")
                                    .ComItem(new ItemDaNota("item 1", 100.0))
                                    .ComItem(new ItemDaNota("item 2", 200.0))
                                    .ComItem(new ItemDaNota("item 3", 300.0))
                                    .Constroi();

            Console.ReadKey();
        }
Example #8
0
        private static void MotraNotaFiscal()
        {
            NotaFiscalBuilder criador = new NotaFiscalBuilder();

            criador.ParaEmpresa("Empresa 1")
            .ComCnpj("12039102930193")
            .ComItem(new ItemDaNota("Lapis", 100.00))
            .ComItem(new ItemDaNota("caneta", 1000.00))
            .NaDataAtual()
            .ComObservacoes("obs qualquer");

            NotaFiscal.NotaFiscal nf = criador.Constroi();

            Console.WriteLine(nf.Itens.Count);
            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);
        }
Example #9
0
        static void Main(string[] args)
        {
            NotaFiscalBuilder criador = new NotaFiscalBuilder();

            criador
            .ParaEmpresa("Caelum Ensino e Inovacao")
            .ComCnpj("23.456.789/0001-12")
            .ComItem(new ItemDaNota("item 1", 100.0))
            .ComItem(new ItemDaNota("item 2", 200.0))
            .NaDataAtual()
            .ComObservacoes("uma obs qualquer");

            NotaFiscal nf = criador.Constroi();

            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);

            Console.ReadKey(); /*demorar o tempo um pouco*/
        }
Example #10
0
        static void Main(string[] args)
        {
            var acoes = new List <IAcaoAposGerarNota>()
            {
                new Multiplicador(3.5),
                new EnviadorDeSms(),
                new EnviadorDeEmail(),
                new NotaFiscalDao()
            };

            var nf = new NotaFiscalBuilder(acoes)
                     .ParaEmpresa("MatrixMax")
                     .ComCnpj("12.345.678.0001-12")
                     .Com(new ItemDaNota("Banana", 30))
                     .Com(new ItemDaNota("Amendoim", 20))
                     .ComObservacao("Comprei bananas e amendoins.")
                     .Constroi();

            Console.ReadKey();
        }
Example #11
0
        private static void TestaNotaFiscalBuilder()
        {
            var nf = new NotaFiscalBuilder()
                     .ParaEmpresa("MatrixMax")
                     .ComCnpj("12.345.678.0001-12")
                     //.NaDataAtual() <- Substituído no exercício.
                     .Com(new ItemDaNota("Banana", 30))
                     .Com(new ItemDaNota("Amendoim", 20))
                     .ComObservacao("Comprei bananas e amendoins.")
                     .Constroi();

            Console.WriteLine($"{nf.DataDeEmissao.ToShortDateString()}\n{nf.ValorBruto} - {nf.Impostos}");
            foreach (var item in nf.Itens)
            {
                Console.WriteLine(item.Nome);
            }
            Console.WriteLine(nf.Observavoes);

            Console.ReadKey();
        }
Example #12
0
        static void Main(string[] args)
        {
            NotaFiscalBuilder criador = new NotaFiscalBuilder()
                                        .ParaEmpresas("Caelum")
                                        .ComCnpj("123.456.789/0001-10")
                                        .ComItem(new ItemDaNotaFiscal("item 1", 100.0))
                                        .ComItem(new ItemDaNotaFiscal("item 2", 200.0))
                                        //.ComItem(new ItemDaNotaFiscal("item 3", 300.0))
                                        .ComObservacoes("entregar nf pessoalmente")
                                        .NaDataAtual();

            criador.AdicionaAcao(new EnviaEmail());
            criador.AdicionaAcao(new NotaFiscalDAO());
            criador.AdicionaAcao(new EnviaSms());

            NotaFiscal nf = criador.Constroi();

            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);
            Console.ReadKey();
        }
        private static void Observer1()
        {
            var listaDeAcoes = new List <IAcaoAposGerarNota>()
            {
                new EnviadorDeEmail(), new NotaFiscalDao(), new EnviadorPorSMS(), new Multiplicador(10)
            };
            var criadorDeNotaFiscal = new NotaFiscalBuilder(listaDeAcoes);
            var itens = new ItemDaNotaBuilder();

            criadorDeNotaFiscal
            .ParaEmpresa("LG")
            .ComCnpj("999.999.99-99")
            .ComItem(itens.ComNome("Sapato").ComValor(100).Controi())
            .ComItem(itens.ComNome("Calça").ComValor(500).Controi())
            .NaData(new DateTime(2017, 1, 18))
            .ComObservacoes("Teste obs ");

            var nf = criadorDeNotaFiscal.Constroi();

            Console.WriteLine(nf);
        }
Example #14
0
        static void Main(string[] args)
        {
            NotaFiscalBuilder criador = new NotaFiscalBuilder();

            criador
            .ParaEmpresa("Caelum Ensino e Inovação")
            .ComCnpj("23.456.789/0001-12")

            .comItem(new ItemDaNota("item 1", 100.0))
            .comItem(new ItemDaNota("item 2", 200.0))
            .NaDataAtual()
            .ComObservacoes("Uma obs qualquer");

            criador.AdicionaAcao(new EnviadorDeEmail());
            criador.AdicionaAcao(new NotaFiscalDAO());
            criador.AdicionaAcao(new EnviadorDeSms());

            NotaFiscal nf = criador.Constroi();

            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            NotaFiscalBuilder criador = new NotaFiscalBuilder(
                new List <AcaoAposGerarNota>()
            {
                new EnviadorDeEmail(),
                new NotaFiscalDao(),
                new EnviadorPorSms(),
                new Multiplicador(100)
            }).ParaEmpresa("TESTE")
                                        .ComCnpj("123456789")
                                        .ComI(new ItemDaNota("Item 1", 100.0))
                                        .ComI(new ItemDaNota("Item 2", 200.0))
                                        .NaData(DateTime.Parse("09/12/1989"))
                                        .ComObservacoes("CONSTRUINDO UMA NOTA FISCAL");


            NotaFiscal nota = criador.Constroi();

            Console.WriteLine(nota.ValorBruto);
            Console.WriteLine(nota.DataDeEmissao);

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            /*Imposto iss = new ISS();
             * Imposto icms = new ICMS();
             *
             *
             * Orcamento orcament = new Orcamento(500.0);
             * CalculadorDeImpostos calculador = new CalculadorDeImpostos();
             *
             * calculador.RealizaCalculo(orcament, icms);
             * calculador.RealizaCalculo(orcament, iss);
             *
             *
             * Imposto iccc = new ICCC();
             *
             * Orcamento orcamento = new Orcamento(1500.00);
             * //calculador.RealizaCalculo(orcament, iccc);
             *
             * Console.WriteLine(iccc.Calcula(orcament));*/
            /*
             *          EstrategiaDeInvestimento convervador = new Conservador();
             *          Conta conta = new Conta();
             *          conta.Deposita(1000);
             *
             *          RealizadorDeInvestimentos investimento = new RealizadorDeInvestimentos();
             *          investimento.Investir(conta, convervador);*/
            /*
             *          CalculadorDeDescontos calculador = new CalculadorDeDescontos();
             *          Orcamento orcamento = new Orcamento(500);
             *
             *          orcamento.AdicionaItem(new Item("CANETA", 250));
             *          orcamento.AdicionaItem(new Item("LAPIS", 250));
             *          orcamento.AdicionaItem(new Item("GELADEIRA", 250));
             *          orcamento.AdicionaItem(new Item("FOGAO", 250));
             *          orcamento.AdicionaItem(new Item("MICROONDAS", 250));
             *          orcamento.AdicionaItem(new Item("XBOX", 250));
             *
             *          double desconto = calculador.Calcula(orcamento);
             *
             *          Console.WriteLine(desconto);*/
            /*
             *          Conta conta = new Conta("Artur Dent");
             *          conta.Deposita(969.0);
             *
             *          Requisicao requisicao = new Requisicao(Formato.CSV);
             *          Resposta r1 = new RespostaEmCsv();
             *          Resposta r2 = new RespostaXML();
             *          Resposta r3 = new RespostaEmPorcento();
             *          Resposta r4 = new SemFormato();
             *
             *          r1.OutraResposta = r2;
             *          r2.OutraResposta = r3;
             *          r3.OutraResposta = r4;
             *
             *          r1.Responde(requisicao, conta);*/
            /*
             *          Conta c1 = new Conta("Artur Dent");
             *          c1.Deposita(969.0);
             *
             *          Conta c2 = new Conta("Ford");
             *          c2.Deposita(5.66);
             *
             *          Conta c3 = new Conta("Zhanphord");
             *          c3.Deposita(964841889.32);
             *
             *          TemplateRelatorio RSimples = new RelatorioSimples();
             *          TemplateRelatorio RComplexo = new RelatorioComplexos();
             *
             *          IList<Conta> contas = new List<Conta>();
             *
             *          contas.Add(c1);
             *          contas.Add(c2);
             *          contas.Add(c3);
             *
             *          RSimples.Imprimir(contas);
             *          RComplexo.Imprimir(contas);*/
            /*
             *          Imposto iss = new ISS(new ImpostoMuitoAlto());
             *          Orcamento orcamento = new Orcamento(500);
             *          double valor = iss.Calcula(orcamento);
             *
             *          Console.WriteLine(valor);
             */
            /*
             * Orcamento reforma = new Orcamento(500);
             * Console.WriteLine(reforma.Valor);
             * reforma.AplicaDescontoExtra();
             * reforma.AplicaDescontoExtra();
             * Console.WriteLine(reforma.Valor);
             *
             * reforma.Aprova();
             *
             * reforma.AplicaDescontoExtra();
             * Console.WriteLine(reforma.Valor);
             *
             * reforma.Finaliza();*/
            /*
             *          Conta c1 = new Conta("Artur Dent");
             *          c1.Deposita(100);
             *
             *          Console.WriteLine(c1.Status.ToString());
             *          Console.WriteLine(c1.Saldo);
             *
             *          c1.Saca(99);
             *
             *          Console.WriteLine(c1.Status.ToString());
             *          Console.WriteLine(c1.Saldo);
             *
             *          c1.Deposita(100);
             *
             *          Console.WriteLine(c1.Status.ToString());
             *          Console.WriteLine(c1.Saldo);*/
            /*  IList<ItemDaNota> itens = new List<ItemDaNota>();
             *
             * double valorTotal = 0;
             *
             * foreach (ItemDaNota item in itens)
             * {
             *    valorTotal += item.Valor;
             * }
             *
             * double impostos = valorTotal + 0.05;
             *
             * NotaFiscal nf = new NotaFiscal("razão", "cnpj", DateTime.Now, valorTotal, impostos, itens, "obs qualquer");*/

            NotaFiscalBuilder criador = new NotaFiscalBuilder();

            criador.ParaEmpresa("Caelum Ensino e Inovação")
            .ComCnpj("23.456.789/0001-12")
            .Com(new ItemDaNota("item 1", 100.0))
            .Com(new ItemDaNota("item 2", 200.0))
            .ComObservacoes("uma obs qualquer");

            criador.AdicionaAcao(new EnviadorDeEmail());
            criador.AdicionaAcao(new NotaFiscalDAO());
            criador.AdicionaAcao(new EnviadorDeSMS());
            criador.AdicionaAcao(new Multiplicador(2));

            NotaFiscal nf = criador.Constroi();

            Console.WriteLine(nf.ValorBruto);
            Console.WriteLine(nf.Impostos);

            Console.ReadKey();
        }
Example #17
0
        static void Main(string[] args)
        {
            /*Imposto iss = new ISS();
             * Imposto icms = new ICMS();
             * Imposto iccc = new ICCC();
             *
             * Orcamento orcamento = new Orcamento(3001);
             *
             * CalculadorDeImpostos calculadora = new CalculadorDeImpostos();
             */

            /*Investimento conservador = new Conservador();
             * Investimento moderado = new Moderado();
             * Investimento arrojado = new Arrojado();
             *
             * Conta marcelo = new Conta();
             *
             * marcelo.Deposita(50);
             *
             * RealizadorDeInvestimentos calInvest = new RealizadorDeInvestimentos();
             *
             * calInvest.Realiza(marcelo, conservador);
             * calInvest.Realiza(marcelo, moderado);
             * calInvest.Realiza(marcelo, arrojado);
             */
            /*
             * CalculadorDeDescontos calculador = new CalculadorDeDescontos();
             * Orcamento orcamento = new Orcamento(500);
             * orcamento.AdicionaItem(new Item("CANETA", 250));
             * orcamento.AdicionaItem(new Item("LAPIS", 250));
             * orcamento.AdicionaItem(new Item("copo", 250));
             *
             * double desconto = calculador.Calcula(orcamento);
             * Console.WriteLine(desconto);
             */
            /*
             * Conta marcelo = new Conta(100, "Marcelo");
             *
             * //CorrenteArquivo d4 = new CorrenteSemArquivo();
             * CorrenteArquivo d3 = new CorrenteXML();
             * CorrenteArquivo d2 = new CorrentePORCENTO(d3);
             * CorrenteArquivo d1 = new CorrenteCSV(d2);
             *
             *
             *
             *
             * d1.OutroResultado = d2;
             * d2.OutroResultado = d3;
             * d3.OutroResultado = d4;
             *
             * d1.Resultado(new Requisicao(Formato.PORCENTO), marcelo);
             * d1.Resultado(new Requisicao(Formato.XML), marcelo);
             * d1.Resultado(new Requisicao(Formato.CSV), marcelo);
             */
            /*
             * Imposto ikcv = new IKCV();
             * Imposto icpp = new ICPP();
             * Imposto ihit = new IHIT();
             *
             *
             * Orcamento orcamento = new Orcamento(100);
             * orcamento.AdicionaItem(new Item("CANETA", 250));
             * orcamento.AdicionaItem(new Item("LAPIS", 250));
             * orcamento.AdicionaItem(new Item("copo1", 250));
             * orcamento.AdicionaItem(new Item("copo6", 250));
             * orcamento.AdicionaItem(new Item("copo3", 250));
             * orcamento.AdicionaItem(new Item("copo2", 250));
             * orcamento.AdicionaItem(new Item("copo4", 250));
             * orcamento.AdicionaItem(new Item("copo5", 250));
             * orcamento.AdicionaItem(new Item("copo6", 250));
             * orcamento.AdicionaItem(new Item("copo7", 250));
             *
             *
             * CalculadorDeImpostos calculadora = new CalculadorDeImpostos();
             *
             * calculadora.RealizaCalculo(orcamento, ikcv);
             * calculadora.RealizaCalculo(orcamento, icpp);
             * calculadora.RealizaCalculo(orcamento, ihit);
             */

            /*IList<Conta> Contas;
             * Contas = new List<Conta>();
             * Contas.Add(new Conta(100, "Marcelo"));
             * Contas.Add(new Conta(200, "Gabriele"));
             * Contas.Add(new Conta(300, "Marco"));
             * Contas.Add(new Conta(400, "Marilene"));
             * Contas.Add(new Conta(500, "Ivani"));
             *
             * Relatorio complexo = new RelatorioComplexo();
             * Relatorio simples = new RelatorioSimples();
             *
             * Console.WriteLine("Complexo\n");
             * complexo.Impressao(Contas);
             *
             * Console.WriteLine("\n\nSimples\n" + simples);
             * simples.Impressao(Contas);
             */

            /*
             * Imposto impostoComplexo = new IMA(new ISS(new ICMS()));
             * Orcamento orcamento = new Orcamento(500.0);
             * double valor = impostoComplexo.Calcula(orcamento);
             * Console.WriteLine(valor);
             */

            /*
             * IList<Conta> Contas;
             * Contas = new List<Conta>();
             * Contas.Add(new Conta(100, "Marcelo"));
             * Contas.Add(new Conta(200, "Gabriele"));
             * Contas.Add(new Conta(300, "Marco"));
             * Contas.Add(new Conta(400, "Marilene"));
             * Contas.Add(new Conta(500, "Ivani"));
             * Filtro Filtro1 = new FiltroContaAberturaNoMes();
             * IList<Conta> ContasFiltradas;
             */

            /*
             * Orcamento reforma = new Orcamento(500.0);
             *
             * reforma.AplicaDescontoExtra();
             * Console.WriteLine(reforma.Valor);
             *
             * reforma.Aprova();
             *
             * reforma.AplicaDescontoExtra();
             * Console.WriteLine(reforma.Valor);
             *
             * reforma.Finaliza();
             *
             * // reforma.AplicaDescontoExtra(); lancaria excecao, pois não pode dar desconto nesse estado
             * // reforma.Aprova(); lança exceção, pois não pode ir para aprovado
             */

            /*
             * Conta marcelo = new Conta(500,"Marcelo");
             *
             * marcelo.Saca(100);
             * Console.WriteLine(marcelo.Saldo + " " + marcelo.Estado);
             *
             * marcelo.Saca(500);
             * Console.WriteLine(marcelo.Saldo + " " + marcelo.Estado);
             *
             * marcelo.Saca(500);
             * Console.WriteLine(marcelo.Saldo + " " + marcelo.Estado);
             *
             * marcelo.Deposita(300);
             * Console.WriteLine(marcelo.Saldo + " " + marcelo.Estado);
             */
            NotaFiscalBuilder criador = new NotaFiscalBuilder();

            criador.AdicionaAcao(new EnviadorDeEmail());
            criador.AdicionaAcao(new NotaFiscalDao());
            criador.AdicionaAcao(new EnviadorDeSms());
            criador.AdicionaAcao(new Impressora());
            criador.AdicionaAcao(new Multiplicador(2));

            criador.ParaEmpresa("Caelum")
            .ComCnpj("123.456.789/0001-10")
            .ComItem(new ItemDaNota("item 1", 100.0))
            .ComItem(new ItemDaNota("item 2", 200.0))
            .ComItem(new ItemDaNota("item 3", 300.0))
            .ComObservacoes("entregar nf pessoalmente");

            //.NaData();

            NotaFiscal nf = criador.Constroi();

            Console.WriteLine(nf);
            Console.ReadLine();
        }
Example #18
0
        static void Main(string[] args)
        {
            //Imposto iss = new ISS();
            //Imposto icms = new ICMS();
            //Imposto iccc = new ICCC();

            //Orcamento orcamento = new Orcamento(3000);
            //CalculadorImpostos calculador = new CalculadorImpostos();

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



            //Investimento conservador = new Convervador();
            //Investimento moderado = new Moderado();
            //Investimento arrojado = new Arrojado();

            //Conta conta = new Conta();

            //conta.Deposita(100);

            //RealizadorDeInvestimentos realizador = new RealizadorDeInvestimentos();
            //realizador.Realiza(conta, conservador);
            //realizador.Realiza(conta, moderado);
            //realizador.Realiza(conta, arrojado);

            //CalculadorDeDescontos calculador = new CalculadorDeDescontos();
            //Orcamento orcamento = new Orcamento(500);
            //orcamento.AdicionaItem(new Item("CANETA", 250));
            //orcamento.AdicionaItem(new Item("LAPIS", 250));


            //double desconto = calculador.Calcula(orcamento);
            //Console.WriteLine(desconto);

            //Imposto iss = new ISS(new ICMS(new IKCV())); // impostos compostos
            //Orcamento orcamento = new Orcamento(500);
            //double valor = iss.Calcula(orcamento);

            //Imposto muitoAlto = new ImpostoMuitoAlto(new ICMS());
            //Orcamento orcamento = new Orcamento(1000);
            //double valor = muitoAlto.Calcula(orcamento);

            //Console.WriteLine(valor);

            //Orcamento reforma = new Orcamento(500);

            //Console.WriteLine(reforma.Valor);


            //reforma.AplicaDescontoExtra();
            //Console.WriteLine(reforma.Valor);

            //reforma.Aprova();
            //reforma.AplicaDescontoExtra();
            //reforma.AplicaDescontoExtra();

            //Console.WriteLine(reforma.Valor);

            //reforma.Finaliza();
            //reforma.AplicaDescontoExtra();
            //Console.WriteLine(reforma.Valor);

            var builder = new NotaFiscalBuilder()
                          .ParaEmpresa("Caelum Ensino e Inovação")
                          .ComCnpj("23.456.789/0001-12")
                          .Com(new ItemNota("item 1", 100))
                          .Com(new ItemNota("item 2", 200))
                          .NaData()
                          .ComObservacoes("observações...");


            // Ações
            builder.AdicionaAcao(new SalvarNoBanco());
            builder.AdicionaAcao(new EnviaPorEmail());
            builder.AdicionaAcao(new Multiplicador(12));

            NotaFiscal nf = builder.Constroi();

            Console.ReadLine();
        }