Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            const string razaoSocial = "razaoSocial";
            const string cnpj        = "cnpj";
            const string observacoes = "Observacoes";
            //var dataDeEmissao = DateTime.Now;
            //const int valorBruto = 0;
            //const int impostos = 0;

            //var itens = new List<ItemDaNota> {new ItemDaNota("nome", 10)};

            var criador = new NotaFiscalBuilder()
                          .ParaEmpresa(razaoSocial)
                          .ComCnpj(cnpj)
                          .NaDataAtual()
                          .ComObservacoes(observacoes)
                          .ComItem(new ItemDaNota("nome 01", 10))
                          .ComItem(new ItemDaNota("nome 02", 15))
                          .AdicionaAcao(new EnviadorDeEmail())
                          .AdicionaAcao(new EnviadorDeSms())
                          .AdicionaAcao(new NotaFicalEntity());



            var nf = criador.Constroi();
        }
        private static ICollection <NotaFiscal> GetNotas(ISituacaoDaNotaRepository situacaoDaNotaRerpository)
        {
            var notaFiscal1 = new NotaFiscalBuilder()
                              .WithCnpjDaLoja("12605982000124")
                              .WithModelo(55)
                              .WithNumero(10)
                              .WithSerie(1)
                              .WithSituacao(situacaoDaNotaRerpository.GetByType <NaoAutorizada>())
                              .WithValorTotal(100.00m)
                              .Build();

            var notaFiscal2 = new NotaFiscalBuilder()
                              .WithCnpjDaLoja("12605982000124")
                              .WithModelo(65)
                              .WithNumero(900)
                              .WithSerie(3)
                              .WithSituacao(situacaoDaNotaRerpository.GetByType <NaoAutorizada>())
                              .WithValorTotal(150.00m)
                              .Build();

            var notaFiscal3 = new NotaFiscalBuilder()
                              .WithCnpjDaLoja("12605982000124")
                              .WithModelo(55)
                              .WithNumero(11)
                              .WithSerie(1)
                              .WithSituacao(situacaoDaNotaRerpository.GetByType <NaoAutorizada>())
                              .WithValorTotal(10.00m)
                              .Build();

            return(new List <NotaFiscal> {
                notaFiscal1, notaFiscal2, notaFiscal3
            });
        }
Ejemplo n.º 3
0
        private static void BuilderTest()
        {
            var notafiscal = new NotaFiscalBuilder()
                             .FromCnpj("12341234")
                             .FromRazaoSocial("Test")
                             .FromObservacao("Test")
                             .Add(new ItemNota("test 1", 10)).Add(new ItemNota("test 2", 10))
                             .Build();

            Console.WriteLine($"nota fiscal cnpj... {notafiscal.Cnpj}");
        }
Ejemplo n.º 4
0
        /// <summary>
        /// O padrão Builder: Utiliza-se este pattner quando é necessário montar objetos muito grandes e complexos
        /// no caso de uma nota fiscal, que possui diversos itens, vindos de diversos lugares, podemos facilitar a montagem
        /// desta nota criando uma classe responsavel por montar a nota ( builder ) , assim, o utilizador da nota economiza um enorme
        /// tempo na montagem e nao precisa conhecer internamente como funciona a criação do objeto.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            NotaFiscal.NotaFiscal nf = new NotaFiscalBuilder().builderRazaoSocial("Microsoft")
                                       .builderCNPJ("000.000.000./0001-03")
                                       .builderItemNota(new ItemNotaFiscal(350))
                                       .builderItemNota(new ItemNotaFiscal(450))
                                       .builderItemNota(new ItemNotaFiscal(120))
                                       .builderItemNota(new ItemNotaFiscal(890))
                                       .Constroi().Print();

            Console.Read();
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            #region Exemplo Pattern Builder
            List <IAcaoAposGererNota> listaAcoes = new List <IAcaoAposGererNota>();
            listaAcoes.Add(new EnviadorDeEmail());
            listaAcoes.Add(new NotaFiscalDao());
            listaAcoes.Add(new EnviadorDeSms());

            NotaFiscalBuilder criador = new NotaFiscalBuilder(listaAcoes);
            //Mudado os métodos para formar um "Fluent Interface"/"Method Chaining".
            criador
            .ParaEmpresa("Caelum Ensino e Inovacao")
            .ComCnpj("23.456.789/0001-12")
            .ComItem(new ItemDaNota("Item 1", 100))
            .ComItem(new ItemDaNota("Item 2", 200))
            .NaDataAtual()
            .ComObservacoes("Obs!");

            //criador.AdicionarAcao(new EnviadorDeEmail());
            //criador.AdicionarAcao(new NotaFiscalDao());
            //criador.AdicionarAcao(new EnviadorDeSms());
            criador.AdicionarAcao(new Impressora());
            criador.AdicionarAcao(new Multiplicador(2.5));

            NotaFiscal notaFiscal = criador.Constroi();

            Console.WriteLine(notaFiscal.ValorBruto);
            Console.WriteLine(notaFiscal.Impostos);
            Console.ReadKey();
            Console.Clear();
            #endregion

            #region Exemplo Tutorials Point
            Subject subject = new Subject();

            new HexaObserver(subject);
            new OctalObserver(subject);
            new BinaryObserver(subject);

            Console.WriteLine("First state change: 15");
            subject.setState(15);
            Console.WriteLine();
            Console.WriteLine("Second state change: 10");
            subject.setState(10);
            #endregion

            Console.ReadKey();
        }
Ejemplo n.º 6
0
        public void DadosNotafiscal()
        {
            NotaFiscalBuilder criador = new NotaFiscalBuilder();
            Notafiscal        nf;

            nf = criador.ComRazaoSocial("TiaoEmbalagens")
                 .ComCnpj("0315080/0001-001")
                 .ComDataEmissao(new DateTime(2016, 2, 2))
                 .ComObservacoes("Observação qualquer")
                 .IncluirItem(new ItemNotaFiscalBulder().ComDescricao("Item qualquer").ComValor(200).Criar())
                 .IncluirItem(new ItemNotaFiscalBulder().ComDescricao("Outro item qualquer").ComValor(100d).Criar())
                 .Criar();

            Console.WriteLine(nf.ValorBruto + "\n " + nf.Impostos);
            Console.ReadKey();
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Padrao Observer - Utiliza-se em cenarios onde precisa-se executar N ações após determinado evento
        /// de maneira desacoplada do codigo principal. Nesse caso, após a geração da nota fiscal, deve-se gerar
        /// varios eventos pertinentes ao negocio, neste caso, o observer se aplica.
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            NotaFiscalBuilder builder = new NotaFiscalBuilder();

            builder.AdicionarAcao(new Acoes.EnvioEmail());
            builder.AdicionarAcao(new Acoes.Impressoes());
            builder.AdicionarAcao(new Acoes.Persistencia());


            NotaFiscal.NotaFiscal nf = builder.builderRazaoSocial("Microsoft")
                                       .builderCNPJ("000.000.000./0001-03")
                                       .builderItemNota(new ItemNotaFiscal(350))
                                       .builderItemNota(new ItemNotaFiscal(450))
                                       .builderItemNota(new ItemNotaFiscal(120))
                                       .builderItemNota(new ItemNotaFiscal(890))
                                       .Constroi().Print();

            Console.Read();
        }
Ejemplo n.º 8
0
        public static void Main(string[] args)
        {
            NotaFiscalBuilder builder = new NotaFiscalBuilder();

            builder.AdicionaAcao(new Multiplicador(5));
            builder.AdicionaAcao(new Multiplicador(7));
            builder.AdicionaAcao(new Multiplicador(1.5));

            NotaFiscal notaFiscal = builder.ParaEmpresa("Stark")
                                    .ComCnpj("54698798756498")
                                    .ComItem(new ItemDaNota("item 1", 1000.0))
                                    .ComItem(new ItemDaNota("item 2", 2020.0))
                                    .ComItem(new ItemDaNota("item 3", 3440.0))
                                    .ComObservacoes("entregar notaFiscal pessoalmente")
                                    .NaDataAtual()
                                    .Constroi();

            Console.ReadKey();
        }
Ejemplo n.º 9
0
        public void DadosNotafiscalRealizaAcoesNoConstrutor()
        {
            NotaFiscalBuilder criador = new NotaFiscalBuilder(new List <IAcoesComNF>()
            {
                new EnviadorDeEmail()
                , new NotaFiscalDao()
                , new EnviadorDeSms()
                , new Impressora()
                , new Multiplicador(2.5d)
            }
                                                              );
            Notafiscal nf;

            nf = criador.ComRazaoSocial("TiaoEmbalagens")
                 .ComCnpj("0315080/0001-001")
                 .ComDataEmissao(new DateTime(2016, 2, 2))
                 .ComObservacoes("Observação qualquer")
                 .IncluirItem(new ItemNotaFiscalBulder().ComDescricao("Item qualquer").ComValor(200).Criar())
                 .IncluirItem(new ItemNotaFiscalBulder().ComDescricao("Outro item qualquer").ComValor(100d).Criar())
                 .Criar();

            Console.WriteLine(nf.ValorBruto + "\n " + nf.Impostos);
            Console.ReadKey();
        }
Ejemplo n.º 10
0
        static void Main(string[] args)
        {
            const string razaoSocial = "razaoSocial";
            const string cnpj = "cnpj";
            const string observacoes = "Observacoes";
            //var dataDeEmissao = DateTime.Now;
            //const int valorBruto = 0;
            //const int impostos = 0;

            //var itens = new List<ItemDaNota> {new ItemDaNota("nome", 10)};

            var criador = new NotaFiscalBuilder()
                .ParaEmpresa(razaoSocial)
                .ComCnpj(cnpj)
                .NaDataAtual()
                .ComObservacoes(observacoes)
                .ComItem(new ItemDaNota("nome 01", 10))
                .ComItem(new ItemDaNota("nome 02", 15))
                .AdicionaAcao(new EnviadorDeEmail())
                .AdicionaAcao(new EnviadorDeSms())
                .AdicionaAcao(new NotaFicalEntity());

            var nf = criador.Constroi();
        }
        static void Main(string[] args)
        {
            //ex 1 - strategy
            //Imposto iss = new ISS();
            //Imposto icms = new ICMS();
            //Imposto iccc = new ICCC();

            //Investimento conversador = new Conservador();
            //Investimento moderado = new Moderado();
            //Investimento arrojado = new Arrojado();

            //Orcamento orcamento = new Orcamento(500.0);

            //// Calculando o ISS
            //CalculadorImposto.RealizaCalculo(orcamento, iss);

            //// Calculando o ICMS
            //CalculadorImposto.RealizaCalculo(orcamento, icms);

            //// Calculando o ISSS
            //CalculadorImposto.RealizaCalculo(orcamento, iccc);

            //// Calculando o ISS
            //CalculadorInvestimento.RealizaCalculo(orcamento, conversador);

            //// Calculando o ICMS
            //CalculadorInvestimento.RealizaCalculo(orcamento, moderado);

            //// Calculando o ISSS
            //CalculadorInvestimento.RealizaCalculo(orcamento, arrojado);

            //ex 2 - Chain of Responsability
            //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);

            // ex 5 STATE

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


            // ex 6 - Builder & Fluent Interface
            NotaFiscalBuilder builder = new NotaFiscalBuilder();

            builder
            .ParaEmpresa("Caelum Ensino")
            .ComCnpj("223.456/789/0001-12")
            .ComItem(new ItemDaNota("item 1", 100.0))
            .ComItem(new ItemDaNota("item 2", 200.0))
            .NaDataAtual()
            .ComObservacoes("uma obs qualquer");
            // ex 7 - Observer
            builder.AdicionaAcao(new EnviadorDeEmail());
            builder.AdicionaAcao(new NotaFiscalDao());
            builder.AdicionaAcao(new EnviadorDeSms());

            NotaFiscal nf = builder.Constroi();

            Console.ReadKey();
        }