Package br.com.buyFast.service.generate

Source Code of br.com.buyFast.service.generate.GenerateBoleto

package br.com.buyFast.service.generate;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Vector;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboleto.JBoleto;
import org.jboleto.JBoletoBean;
import org.jboleto.control.Generator;
import org.jboleto.control.PDFGenerator;

import br.com.buyFast.model.Bank;
import br.com.buyFast.model.ItemsOrder;
import br.com.buyFast.model.Order;

/**
* Classe responsável pela geração de boleto.
*/
public class GenerateBoleto {

  private static final String SANTANDER = "Santander";
  private static final String HSBC = "HSBC";
  private static final String ITAU = "Itaú";
  private static final String BB = "Banco do Brasil";
  private static final String CAIXA = "Caixa Econômica";
  private static final String BRADESCO = "Bradesco";
  private static final String UNIBANCO = "Unibanco";
  private static final String REAL = "Banco Real";
 
  /**
   * Responsável pelo log na aplicação.
   */
  private Log logger = LogFactory.getLog(GenerateBoleto.class);
 
  /**
   * O nome do arquivo do boleto.
   */
  private String fileName;
 
  /**
   * Método responsável por gerar boleto de pagamento.
   * @param order O pedido ao qual será gerado o pedido.
   */
  public void generateBoleto(Order order) {
    logger.info("Gerando boleto do pedido...");
    JBoletoBean boletoBean = new JBoletoBean();
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    boletoBean.setDataProcessamento(df.format(new Date()));
    Vector<String> descricoes = new Vector<String>();
    double valorBoleto = 0.0d;
    for (ItemsOrder itemsOrder : order.getItemsOrders()) {
      descricoes.add(itemsOrder.getProduct().getName());
      valorBoleto += itemsOrder.getPrice();
    }
    descricoes.add("Produtos:");
    descricoes.add("Código do pedido: " + order.getId());
    descricoes.add("Boleto referente a compras no site BuyFast");
    boletoBean.setDescricoes(descricoes);
    boletoBean.setLocalPagamento("ATE O VENCIMENTO, PREFERENCIALMENTE " + order.getBank().getBank().toUpperCase());
    boletoBean.setLocalPagamento2("APOS O VENCIMENTO, SOMENTE NO " + order.getBank().getBank().toUpperCase());
    boletoBean.setInstrucao1("APOS O VENCIMENTO COBRAR MULTA DE 2%");
    boletoBean.setInstrucao2("APOS O VENCIMENTO, COBRAR MULTA DE  R$ 0.50 AO DIA");
    boletoBean.setInstrucao3("APOS O VENCIMENTO NÃO APLICAR DESCONTO");
    boletoBean.setInstrucao4("APOS O VENCIMENTO COBRAR R$ 1.50 DE TAXA DE OPERAÇÃO");
    boletoBean.setInstrucao5("ANTES DO VENCIMENTO APLICAR DESCONTO DE 5%");
    boletoBean.setNomeSacado(order.getCustomer().getName());
    boletoBean.setEnderecoSacado(order.getCustomer().getAddress().getStreet());
    boletoBean.setBairroSacado(order.getCustomer().getAddress().getDistrict());
    boletoBean.setCidadeSacado(order.getCustomer().getAddress().getCity());
    boletoBean.setUfSacado(order.getCustomer().getAddress().getState());
    boletoBean.setCepSacado(order.getCustomer().getAddress().getCep());
    boletoBean.setCpfSacado(order.getCustomer().getCpf());
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date());
    calendar.add(Calendar.DATE, 7);
    boletoBean.setDataVencimento(df.format(calendar.getTime()));
    boletoBean.setValorBoleto(Double.valueOf(valorBoleto).toString());
    boletoBean.setDataDocumento(df.format(new Date()));
   
    generate(boletoBean, order.getBank());
  }
 
  /**
   * Gerar boleto.
   * @param boletoBean O Boleto.
   * @param bank O banco que será gerado o boleto.
   */
  private void generate(JBoletoBean jBoletoBean, Bank bank) {
    this.fileName = "/" + jBoletoBean.getNomeSacado() + "_boleto.pdf";
   
    if (SANTANDER.equals(bank.getBank())) {
      geraSantander(jBoletoBean);
    } else if (HSBC.equals(bank.getBank())) {
      geraHSBC(jBoletoBean);
    } else if (ITAU.equals(bank.getBank())) {
      geraItau(jBoletoBean);
    } else if (BB.equals(bank.getBank())) {
      geraBB(jBoletoBean);
    } else if (CAIXA.equals(bank.getBank())) {
      geraCaixa(jBoletoBean);
    } else if (BRADESCO.equals(bank.getBank())) {
      geraBradesco(jBoletoBean);
    } else if (UNIBANCO.equals(bank.getBank())) {
      geraUnibanco(jBoletoBean);
    } else if (REAL.equals(bank.getBank())) {
      geraReal(jBoletoBean);
    }
  }
 
  /**
   * Gera o boleto do banco Santander.
   * @param jBoletoBean a bean para a gerenciamento do boleto.
   */
  private void geraSantander(JBoletoBean jBoletoBean) {
    jBoletoBean.setCarteira("");
    jBoletoBean.setAgencia("2971");
    jBoletoBean.setContaCorrente("08690");
    jBoletoBean.setDvContaCorrente("1");
    jBoletoBean.setNossoNumero("0000003248437", 13);
    jBoletoBean.setNoDocumento("0324843");
    Generator generator = new PDFGenerator(jBoletoBean, JBoleto.SANTANDER);
    JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.SANTANDER);
    jBoleto.addBoleto();
    jBoleto.closeBoleto(fileName);
  }
 
  /**
   * Gera o boleto do banco HSBC.
   * @param jBoletoBean a bean para a gerenciamento do boleto.
   */
  private void geraHSBC(JBoletoBean jBoletoBean) {
    jBoletoBean.setCarteira("");
    jBoletoBean.setAgencia("2971");
    jBoletoBean.setContaCorrente("08690");
    jBoletoBean.setDvContaCorrente("1");
    jBoletoBean.setNossoNumero("102008044", 9);
    jBoletoBean.setNoDocumento("102008");
    Generator generator = new PDFGenerator(jBoletoBean, JBoleto.HSBC);
    JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.HSBC);
    jBoleto.addBoleto();
    jBoleto.closeBoleto(fileName);
  }

  /**
   * Gera o boleto do banco Itaú.
   * @param jBoletoBean a bean para a gerenciamento do boleto.
   */
  private void geraItau(JBoletoBean jBoletoBean) {
    jBoletoBean.setCarteira("175");
    jBoletoBean.setAgencia("2971");
    jBoletoBean.setContaCorrente("08690");
    jBoletoBean.setDvContaCorrente("1");
    jBoletoBean.setNossoNumero("34556", 8);
    jBoletoBean.setNoDocumento("34556");
    Generator generator = new PDFGenerator(jBoletoBean, JBoleto.ITAU);
    JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.ITAU);
    jBoleto.addBoleto();
    jBoleto.closeBoleto(fileName);
  }

  /**
   * Gera o boleto do banco do Brasil.
   * @param jBoletoBean a bean para a gerenciamento do boleto.
   */
  private void geraBB(JBoletoBean jBoletoBean) {
    jBoletoBean.setCarteira("17");
    jBoletoBean.setAgencia("3415");
    jBoletoBean.setContaCorrente("00543004"); // completar com zeros quando necessario
    jBoletoBean.setNumConvenio("1101354");
    jBoletoBean.setNossoNumero("0005963971", 10);
    jBoletoBean.setDvContaCorrente("2");
    jBoletoBean.setDvAgencia("8");
    Generator generator = new PDFGenerator(jBoletoBean, JBoleto.BANCO_DO_BRASIL);
    JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.BANCO_DO_BRASIL);
    jBoleto.addBoleto();
    jBoleto.closeBoleto(fileName);
  }

  /**
   * Gera o boleto do banco Caixa Econômica.
   * @param jBoletoBean a bean para a gerenciamento do boleto.
   */
  private void geraCaixa(JBoletoBean jBoletoBean) {
    jBoletoBean.setCarteira("57");
    jBoletoBean.setAgencia("0155");
    jBoletoBean.setContaCorrente("13877");
    jBoletoBean.setDvContaCorrente("4");
    jBoletoBean.setCarteira("80"); // pode ser 80 ou 81 ou 82 (Confirmar com gerente)
    jBoletoBean.setCodigoOperacao("870");
    jBoletoBean.setCodigoFornecidoAgencia("00000324");
    jBoletoBean.setDvCodigoFornecidoAgencia("02");
    jBoletoBean.setNossoNumero("19525086", 8);
    jBoletoBean.setNoDocumento("987656123");
    Generator generator = new PDFGenerator(jBoletoBean, JBoleto.CAIXA_ECONOMICA);
    JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.CAIXA_ECONOMICA);
    jBoleto.addBoleto();
    jBoleto.closeBoleto(fileName);
  }

  /**
   * Gera o boleto do banco Bradesco.
   * @param jBoletoBean a bean para a gerenciamento do boleto.
   */
  private void geraBradesco(JBoletoBean jBoletoBean) {
    jBoletoBean.setCarteira("06");
    jBoletoBean.setAgencia("2949");
    jBoletoBean.setDvAgencia("1");
    jBoletoBean.setNoDocumento("321546");
    jBoletoBean.setContaCorrente("0006580");
    jBoletoBean.setDvContaCorrente("3");
    jBoletoBean.setNossoNumero("003", 11);
    Generator generator = new PDFGenerator(jBoletoBean, JBoleto.BRADESCO);
    JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.BRADESCO);
    jBoleto.addBoleto();
    jBoleto.closeBoleto(fileName);
  }

  /**
   * Gera o boleto do banco Unibanco.
   * @param jBoletoBean a bean para a gerenciamento do boleto.
   */
  private void geraUnibanco(JBoletoBean jBoletoBean) {
    jBoletoBean.setCarteira("20");
    jBoletoBean.setAgencia("0123");
    jBoletoBean.setContaCorrente("100618");
    jBoletoBean.setDvContaCorrente("9");
    jBoletoBean.setNossoNumero("1803029901", 14);
    // código do cliente fornecido pelo unibanco.
    jBoletoBean.setCodCliente("2031671");
    Generator generator = new PDFGenerator(jBoletoBean, JBoleto.UNIBANCO);
    JBoleto jBoleto = new JBoleto(generator, jBoletoBean, JBoleto.UNIBANCO);
    jBoleto.addBoleto();
    jBoleto.closeBoleto(fileName);
  }

  /**
   * Gera o boleto do banco Real.
   * @param jBoletoBean a bean para a gerenciamento do boleto.
   */
  private void geraReal(JBoletoBean jBoletoBean) {
    // ag. 0957
    // cc. 5003709 6
    jBoletoBean.setCarteira("57");
    jBoletoBean.setAgencia("0957");
    jBoletoBean.setContaCorrente("5003709");
    jBoletoBean.setDvContaCorrente("6");
    jBoletoBean.setNossoNumero("3020", 13);
    jBoletoBean.setNoDocumento("3020");
    Generator generator = new PDFGenerator(jBoletoBean, JBoleto.BANCO_REAL);
    JBoleto jBoleto = new JBoleto(generator, jBoletoBean,
        JBoleto.BANCO_REAL);
    jBoleto.addBoleto();
    jBoleto.closeBoleto(fileName);
  }

}
TOP

Related Classes of br.com.buyFast.service.generate.GenerateBoleto

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.