Exemplo n.º 1
0
  // EXCLUI UM CAIXA
  @Override
  public void excluir(Caixa caixa) throws PersistenceException {
    EntityManagerFactory conexao = Persistence.createEntityManagerFactory("MDJPapeisPU");
    try {
      EntityManager entityManager = conexao.createEntityManager();
      entityManager.getTransaction().begin();

      // Tornando o caixa gerenciável pelo entityManager, necessário para usar o método remove a
      // seguir
      caixa = entityManager.find(Caixa.class, caixa.getCodigo());

      entityManager.remove(caixa);
      entityManager.getTransaction().commit();
      entityManager.close();
    } catch (IllegalArgumentException ex) {
      System.out.println("CaixaDAO - CATCH IllegalArgumentException");
      ex.printStackTrace();
      throw new PersistenceException(ex);
    } catch (PersistenceException ex) {
      System.out.println("CaixaDAO - CATCH PersistenceException");
      ex.printStackTrace();
      throw new PersistenceException(ex);
    } finally {
      conexao.close();
    }
  }
Exemplo n.º 2
0
  public static void main(String[] args) {

    // new UsuarioDAO().inserir(new Usuario("admin", "1234", "Fulano", "*****@*****.**",
    // Usuario.Perfil.ADMINISTRADOR));

    /*new PerfilUsuarioDAO().inserir(new PerfilUsuario("Administrador"));
    new PerfilUsuarioDAO().inserir(new PerfilUsuario("Comprador"));
    new PerfilUsuarioDAO().inserir(new PerfilUsuario("Vendedor"));

    new TipoFornecedorDAO().inserir(new TipoFornecedor("Empresa"));
    new TipoFornecedorDAO().inserir(new TipoFornecedor("Catador"));

    List<PerfilUsuario> perfis = new PerfilUsuarioDAO().listar();
    for(PerfilUsuario perfil : perfis){
    	if(perfil.getPerfil().equals("Administrador")){
    		new UsuarioDAO().inserir(new Usuario("admin", "1234", "Fulano", "*****@*****.**", perfil));
    	}
    }*/

    // ------------------- MONTANDO DADOS PARA PEDIDO DE COMPRA --------------------------
    // Fornecedor fornecedor = new FornecedorDAO().listar().get(4);
    /*
    Produto produto1 = new Produto(14);
    produto1 = new ProdutoDAO().buscaProdutoPorCodigo(produto1);

    Produto produto2 = new Produto(15);
    produto2 = new ProdutoDAO().buscaProdutoPorCodigo(produto2);

    Produto produto3 = new Produto(16);
    produto3 = new ProdutoDAO().buscaProdutoPorCodigo(produto3);

    ItemPedido item1 = new ItemPedido(produto1, new BigDecimal(150), produto1.getPrecoCompra());
    ItemPedido item2 = new ItemPedido(produto2, new BigDecimal(150), produto2.getPrecoCompra());
    ItemPedido item3 = new ItemPedido(produto3, new BigDecimal(150), produto3.getPrecoCompra());

    List<ItemPedido> itens = new ArrayList<ItemPedido>();
    /*itens.add(item1);
    itens.add(item2);
    itens.add(item3);

    BigDecimal valorPedido = item1.getValorItem().add(item2.getValorItem().add(item3.getValorItem()));

    PedidoCompra pedido = new PedidoCompra();
    pedido.setDataAbertura(Calendar.getInstance());
    pedido.setDataPagamento(Calendar.getInstance());
    pedido.setFornecedor(fornecedor);
    pedido.setStatusCompra(StatusCompra.PENDENTE);
    pedido.setValorTotal(valorPedido);

    pedido.setItensPedidoCompra(itens);

    //------------------- MONTANDO DADOS PARA PEDIDO DE VENDA --------------------------
    Cliente cliente = new ClienteDAO().listar().get(4);

    ItemPedido item1 = new ItemPedido(produto1, new BigDecimal(150), produto1.getPrecoVenda());
    ItemPedido item2 = new ItemPedido(produto2, new BigDecimal(150), produto2.getPrecoVenda());
    ItemPedido item3 = new ItemPedido(produto3, new BigDecimal(150), produto3.getPrecoVenda());

    itens = null;
    itens = new ArrayList<ItemPedido>();
    itens.add(item1);
    itens.add(item2);
    itens.add(item3);

    BigDecimal valorPedido = item1.getValorItem().add(item2.getValorItem().add(item3.getValorItem()));

    PedidoVenda pedidoVenda = new PedidoVenda();
    pedidoVenda.setDataAbertura(Calendar.getInstance());
    pedidoVenda.setDataPagamento(Calendar.getInstance());
    pedidoVenda.setCliente(cliente);
    pedidoVenda.setStatusVenda(StatusVenda.PENDENTE);
    pedidoVenda.setValorTotal(valorPedido);

    pedidoVenda.setItensPedidoVenda(itens);

    //Instant inicio = Instant.now();
    /*
    //------------------- CADASTRANDO E EXIBINDO PEDIDO DE COMPRA --------------------------
    try{
    	new PedidoCompraDAO().inserir(pedido);
    	System.out.println("CADASTRADO:");

    	for(PedidoCompra ped : new PedidoCompraDAO().listar()){
    		System.out.println("---------------------------------------------------------------------------");
    		System.out.println("\nPEDIDO COMPRA Nº " + ped.getnPedido() +
    				" DATA: " + new SimpleDateFormat("dd/MM/yyyy").format(ped.getDataAbertura().getTime()) + "\nSTATUS: " +
    				ped.getStatusCompra().toString() + "\n" +
    				"EMPRESA: " + ped.getFornecedor().getEmpresa() + "\n" +
    				"CNPJ: " + ped.getFornecedor().getCnpj() + " INSC. ESTADUAL: " + ped.getFornecedor().getInscEstadual() + "\n" +
    				"ENDERECO: " + ped.getFornecedor().getEndereco() + "\n" +
    				"CONTATO: " + ped.getFornecedor().getContato() + " TELEFONE: " + ped.getFornecedor().getTelefone() + " E-MAIL: " + ped.getFornecedor().getEmail() + "\n\n" +
    				ped.getItensPedidoCompra().size() + " ITENS:");
    		for(ItemPedido item : ped.getItensPedidoCompra()){
    			System.out.println(ped.getItensPedidoCompra().indexOf(item)+1 + " - "
    					+ item.getProduto().getProduto() + " - "
    					+ item.getPeso() + "Kg - R$"
    					+ item.getValorItem());
    		}
    		System.out.println("VLR. TOTAL: R$" + ped.getValorTotal());
    	}

    }catch(PersistenceException e){
    	System.out.println("XIIIIIIIII - NAO CADASTROU");
    }
    */
    // ------------------- CADASTRANDO E EXIBINDO PEDIDO DE VENDA --------------------------
    /*try{
    	new PedidoVendaDAO().inserir(pedidoVenda);
    	/*System.out.println("CADASTRADO:");

    	for(PedidoVenda ped : new PedidoVendaDAO().listar()){
    		System.out.println("---------------------------------------------------------------------------");
    		System.out.println("\nPEDIDO VENDA Nº " + ped.getnPedido() +
    				" DATA: " + new SimpleDateFormat("dd/MM/yyyy").format(ped.getDataAbertura().getTime()) + "\nSTATUS: " +
    				ped.getStatusVenda().toString() + "\n" +
    				"EMPRESA: " + ped.getCliente().getEmpresa() + "\n" +
    				"CNPJ: " + ped.getCliente().getCnpj() + " INSC. ESTADUAL: " + ped.getCliente().getInscEstadual() + "\n" +
    				"ENDERECO: " + ped.getCliente().getEndereco() + "\n" +
    				"CONTATO: " + ped.getCliente().getContato() + " TELEFONE: " + ped.getCliente().getTelefone() + " E-MAIL: " + ped.getCliente().getEmail() + "\n\n" +
    				ped.getItensPedidoVenda().size() + " ITENS:");
    		for(ItemPedido item : ped.getItensPedidoVenda()){
    			System.out.println(ped.getItensPedidoVenda().indexOf(item)+1 + " - "
    					+ item.getProduto().getProduto() + " - "
    					+ item.getPeso() + "Kg - R$"
    					+ item.getValorItem());
    		}
    		System.out.println("VLR. TOTAL: R$" + ped.getValorTotal());
    	}

    }catch(PersistenceException e){
    	System.out.println("XIIIIIIIII - NAO CADASTROU");
    }


    //--------------------------------------- EXIBINDO DADOS DOS PEDIDOS -----------------------------------
    //pedido = new PedidoCompraDAO().buscaPedidoCompraPorCodigo(3);
    pedidoVenda = new PedidoVendaDAO().buscaPedidoVendaPorCodigo(4);
    /*
    System.out.println("\nPEDIDO COMPRA..: " + pedido.getnPedido() +
    		"\nDATA ABERTURA..: " + new SimpleDateFormat("dd/MM/yyyy").format(pedido.getDataAbertura().getTime()) +
    		"\nDATA PAGAMENTO.: " + new SimpleDateFormat("dd/MM/yyyy").format(pedido.getDataPagamento().getTime()) +
    		"\nFORNECEDOR.....: " + pedido.getFornecedor().getEmpresa() +
    		"\nVALOR DO PEDIDO: R$ " + pedido.getValorTotal() +
    		"\nSTATUS.........: " + pedido.getStatusCompra().toString());

    System.out.println("\nPEDIDO VENDA...: " + pedidoVenda.getnPedido() +
    		"\nDATA ABERTURA..: " + new SimpleDateFormat("dd/MM/yyyy").format(pedidoVenda.getDataAbertura().getTime()) +
    		"\nDATA PAGAMENTO.: " + new SimpleDateFormat("dd/MM/yyyy").format(pedidoVenda.getDataPagamento().getTime()) +
    		"\nCLIENTE........: " + pedidoVenda.getCliente().getEmpresa() +
    		"\nVALOR DO PEDIDO: R$ " + pedidoVenda.getValorTotal() +
    		"\nSTATUS.........: " + pedidoVenda.getStatusVenda().toString());

    //-------------------------- MOVIMENTAÇÕES --- CADASTRANDO MOVIMENTAÇÕES DE ENTRADA E SAÍDA -------------------
    Movimentacao movimentacaoCompra = new Movimentacao();
    movimentacaoCompra.setPedidoCompra(pedido);
    new MovimentacaoDAO().inserir(movimentacaoCompra);

    Movimentacao movimentacaoVenda = new Movimentacao();
    movimentacaoVenda.setPedidoVenda(pedidoVenda);
    new MovimentacaoDAO().inserir(movimentacaoVenda);

    //List<Movimentacao> movimentacoes = new MovimentacaoDAO().listar();
    /*
    for(Movimentacao mov : movimentacoes){
    	System.out.println("ITEM " + mov.getnLancamento() +
    			": " + new SimpleDateFormat("dd/MM/yyyy").format(mov.getData().getTime()) +
    			" " + mov.getTipoLancamento().toString() +
    			" R$ " + mov.getValorLancamento());
    }


    //------------------------------------------------- CAIXA ---------------------------------------------
    Caixa caixa = new CaixaDAO().buscaCaixaPorCodigo(1);
    List<Movimentacao> movimentacoes = caixa.getMovimentacoes();
    movimentacoes.add(movimentacaoVenda);

    if(caixa.getSaldo() == null) caixa.setSaldo(new BigDecimal(0));
    if(caixa.getTotalEntrada() == null) caixa.setTotalEntrada(new BigDecimal(0));
    if(caixa.getTotalSaida() == null) caixa.setTotalSaida(new BigDecimal(0));


    if(movimentacoes.get(movimentacoes.size()-1).getTipoLancamento().equals(Movimentacao.TipoLancamento.ENTRADA)){
    	caixa.setTotalEntrada(caixa.getTotalEntrada().add(movimentacaoVenda.getValorLancamento()));
    	caixa.setSaldo(caixa.getSaldo().add(caixa.getTotalEntrada()).subtract(caixa.getTotalSaida()));
    	System.out.println("ENTRADA: R$ " + caixa.getTotalEntrada());
    }else{
    	//caixa.setTotalSaida(caixa.getTotalSaida().add(movimentacaoCompra.getValorLancamento()));
    	System.out.println("SAÍDA: R$ " + caixa.getTotalSaida());
    }
    /*
    for(Movimentacao mov : movimentacoes){
    	if(mov.getTipoLancamento().equals(Movimentacao.TipoLancamento.ENTRADA)){
    		caixa.setTotalEntrada(caixa.getTotalEntrada().add(mov.getValorLancamento()));
    		System.out.println("ENTRADA: R$ " + caixa.getTotalEntrada());
    	}else{
    		caixa.setTotalSaida(caixa.getTotalSaida().add(mov.getValorLancamento()));
    		System.out.println("SAÍDA: R$ " + caixa.getTotalSaida());
    	}
    }
    //caixa.setSaldo(caixa.getSaldo().add(caixa.getTotalEntrada()).subtract(caixa.getTotalSaida()));
    caixa.setMovimentacoes(movimentacoes);
    new CaixaDAO().atualizar(caixa);

    //System.out.println("SALDO: " + new CaixaDAO().buscaCaixaPorCodigo(1).getSaldo());















    //Instant fim = Instant.now();
    /*
    // Data para Computadores
    Duration duracao = Duration.between(inicio, fim);
    long duracaoEmMilissegundos = duracao.toMillis();
    System.out.println("DURAÇÃO EM MILLIS: " + duracaoEmMilissegundos);

    // Data para Humanos - LocalDate pega o dia todo, não só a data
    LocalDate hoje = LocalDate.now();
    System.out.println("DATA: " + hoje); //2014-04-08 (formato ISO-8601)

    // Especificando uma Data
    LocalDate emissaoRG = LocalDate.of(2000, 1, 15);

    // Especificando uma Data com o enum Month
    LocalDate emissaoRGEnum = LocalDate.of(2000, Month.JANUARY, 15);

    // Cálculo de um Período entre dois LocalDate
    LocalDate homemNoEspaco = LocalDate.of(1961, Month.APRIL, 12);
    LocalDate homemNaLua = LocalDate.of(1969, Month.MAY, 25);

    // Period já trata anos bissextos
    Period periodo = Period.between(homemNoEspaco, homemNaLua);

    System.out.printf("%s anos, %s mês e %s dias",
      periodo.getYears() , periodo.getMonths(), periodo.getDays());	//8 anos, 1 mês e 13 dias

    // LocalTime - especifica um horário sem data específica
    LocalTime horarioDeEntrada = LocalTime.of(9, 0);
    System.out.println(horarioDeEntrada); //09:00

    // LocalDateTime especifica uma data e hora
    LocalDateTime agora = LocalDateTime.now();
    System.out.println(agora); //2014-06-12T17:00 (formato ISO-8601)

    LocalDateTime aberturaDaCopa = LocalDateTime.of(2014, Month.JUNE, 12, 17, 0);
    System.out.println(aberturaDaCopa); //2014-06-12T17:00 (formato ISO-8601)

    // Classes:
    // MonthDay, para datas importantes que se repetem todos os anos, e
    // YearMonth, para representar um mês inteiro de um ano específico.

    MonthDay natal = MonthDay.of(Month.DECEMBER, 25);
    YearMonth copaDoMundo2014 = YearMonth.of(2014, Month.JUNE);

    // Formatando Datas
    LocalDate hojeHoje = LocalDate.now();
    DateTimeFormatter formatador = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    hojeHoje.format(formatador); //08/04/2014

    // Manipulando Datas
    LocalDate hojeManipula = LocalDate.now();
    LocalDate amanhaManipula = hojeManipula.plusDays(1);

    // Cronômetro - Mede a quantidade de tempo
    MonthDay natalMede = MonthDay.of(Month.DECEMBER, 25);
    LocalDate natalDesseAno = natalMede.atYear(Year.now().getValue());
    long diasAteONatal = LocalDate.now().until(natalDesseAno, ChronoUnit.DAYS);
    */

    // SEGUNDO TESTE CAIXA ZUADO
    /*Caixa caixa = new CaixaDAO().buscaCaixaPorCodigo(1);


    System.out.println("\nINICIO\n\nCAIXA:\nENTRADAS: " + caixa.getTotalEntrada() + "\nSAÍDAS: " + caixa.getTotalSaida() + "\nSALDO: " + caixa.getSaldo());
    /* ENTRADA: 1306,50
     * SAIDA  :  544,55
     * SALDO  :  761,95
     */
    /*
    System.out.println("\n\n1.ENTRADA de Venda: 500,00");
    caixa.setTotalEntrada(caixa.getTotalEntrada().add(new BigDecimal(500.00)));
    caixa.setSaldo(caixa.getTotalEntrada().subtract(caixa.getTotalSaida()));
    /* ENTRADA: 1806,50
     * SAIDA  :  544,55
     * SALDO  : 1261,95
     */
    /*System.out.println("\n1.CAIXA:\nENTRADAS: " + caixa.getTotalEntrada() + "\nSAÍDAS: " + caixa.getTotalSaida() + "\nSALDO: " + caixa.getSaldo());


    System.out.println("\n\n2.SAIDA de Compra: 100,00");
    caixa.setTotalSaida(caixa.getTotalSaida().add(new BigDecimal(100.00)));
    caixa.setSaldo(caixa.getTotalEntrada().subtract(caixa.getTotalSaida()));
    /* ENTRADA: 1806,50
     * SAIDA  :  644,55
     * SALDO  : 1161,95
     */
    /*System.out.println("\n2.CAIXA:\nENTRADAS: " + caixa.getTotalEntrada() + "\nSAÍDAS: " + caixa.getTotalSaida() + "\nSALDO: " + caixa.getSaldo());


    System.out.println("\n\n3.ENTRADA Excluida: 500,00");
    caixa.setTotalEntrada(caixa.getTotalEntrada().subtract(new BigDecimal(500.00)));
    caixa.setSaldo(caixa.getTotalEntrada().subtract(caixa.getTotalSaida()));
    /* ENTRADA: 1306,50
     * SAIDA  :  644,55
     * SALDO  :  661,95
     */
    /*System.out.println("\n3.CAIXA:\nENTRADAS: " + caixa.getTotalEntrada() + "\nSAÍDAS: " + caixa.getTotalSaida() + "\nSALDO: " + caixa.getSaldo());


    System.out.println("\n\n4.SAIDA Excluida: 100,00");
    caixa.setTotalSaida(caixa.getTotalSaida().subtract(new BigDecimal(100.00)));
    caixa.setSaldo(caixa.getTotalEntrada().subtract(caixa.getTotalSaida()));
    /* ENTRADA: 1306,50
     * SAIDA  :  544,55
     * SALDO  :  761,95
     */
    /*System.out.println("\n4.CAIXA:\nENTRADAS: " + caixa.getTotalEntrada() + "\nSAÍDAS: " + caixa.getTotalSaida() + "\nSALDO: " + caixa.getSaldo());

    System.out.println("\n\nFIM");
    */

    // ORDENACAO POR DATA
    Caixa caixa = new CaixaDAO().buscaCaixaPorCodigo(1);
    List<Movimentacao> mov = caixa.getMovimentacoes();

    for (int i = 0; i < mov.size(); i++) {
      Movimentacao ms = mov.get(i);

      // SE FOR DIFERENTE DO ÚLTIMO ÍNDICE
      if (i != mov.size() - 1) {
        // SE ESTA DATA FOR MAIOR QUE A DATA SEGUINTE
        if (ms.getData().after(mov.get(i + 1).getData())) {
          mov.remove(i); // REMOVE ESTA DATA
          mov.add(i + 1, ms); // ADICIONA ESTA DATA NA POSIÇÃO SEGUINTE
          i = 0;
        }
      }
    }
    for (int i = mov.size() - 1; i >= mov.size() - 5; i--) {
      System.out.println(
          "DATA: " + new SimpleDateFormat("dd/MM/yyyy").format(mov.get(i).getData().getTime()));
    }

    // Comparator - para datas não funcionou
    /*mov.sort(new Comparator(){
    	@Override
    	public int compare(Object o1, Object o2) {
    		Movimentacao m1 = (Movimentacao) o1;
    		Movimentacao m2 = (Movimentacao) o2;
    		return m1.getData().MONTH < m2.getData().MONTH ? -1 : (m1.getData().MONTH > m2.getData().MONTH ? +1 : 0);
              }
    });*/
  }