Package gui

Source Code of gui.PSAKrediKartiOdeme

package gui;

import hibernateSwingApi.hibernate.HibernateManager;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.LinkedList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
import javax.swing.border.LineBorder;

import pojos.BankaPOSBilgileri;
import pojos.BankaPOSVadeBilgileri;
import pojos.OdemeBilgileri;
import pojos.UrunSatis;
import pojos.YapilanSatis;
import pojos.YapilanSatisPOSBilgileri;
import pojos.YapilanSatisPOSVadeBilgileri;
import service.AutoClosingMessageDialog;
import service.PSAUtil;

public class PSAKrediKartiOdeme extends JFrame {

  private static final long serialVersionUID = 1L;
  private static PSAKrediKartiOdeme instance;
  private int maxLength;
  private int initx;
  private int inity;
  private int buttonCount;
  private int loopTime;
  private int panelWidth;
  private int panelHeight;
  private JLabel jLabelBankaSeciniz;
  private JPanel jPanelPosBilgileri;
  private YapilanSatis satisBilgi;
  private List<UrunSatis> urunListesi = new LinkedList<>();
  private List<UrunSatis> satilanUrunListesi = new LinkedList<>();
  private UrunSatis urunSatis;
  private OdemeBilgileri odemeBilgisi;
  List<BankaPOSBilgileri> posBilgileri;

  public static PSAKrediKartiOdeme getInstance(YapilanSatis satis,
      List<UrunSatis> urunSatisListesi) {
    instance = new PSAKrediKartiOdeme(satis, urunSatisListesi);
    return instance;
  }

  public PSAKrediKartiOdeme(YapilanSatis satis,
      List<UrunSatis> urunSatisListesi) {
    urunListesi = urunSatisListesi;
    satisBilgi = satis;
    initialize();
  }

  private void initialize() {
    setTitle("PSA MERKEZ KREDİ KARTI");
    setResizable(false);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    setIconImage(PSAUtil.getImageIconViaRelativePath("picture/psaIcon.png")
        .getImage());
    setSize(480, 150);
    locateFrameToMiddle();
    getContentPane().setLayout(null);

    jLabelBankaSeciniz = new JLabel("BANKA SEÇİNİZ");
    jLabelBankaSeciniz.setFont(new Font("Tahoma", Font.BOLD, 14));
    jLabelBankaSeciniz.setHorizontalAlignment(SwingConstants.CENTER);
    jLabelBankaSeciniz.setBounds(10, 11, 454, 14);
    getContentPane().add(jLabelBankaSeciniz);

    jPanelPosBilgileri = new JPanel();
    jPanelPosBilgileri.setBounds(10, 36, 454, 77);
    jPanelPosBilgileri.setBorder(new LineBorder(new Color(0, 0, 0), 2));
    jPanelPosBilgileri.setBackground(UIManager.getColor("Button.shadow"));
    jPanelPosBilgileri.setLayout(null);

    getContentPane().add(jPanelPosBilgileri);

    initListeners();
    initPosButtons();
  }

  @SuppressWarnings("unchecked")
  private void initPosButtons() {
    posBilgileri = (List<BankaPOSBilgileri>) HibernateManager.getInstance()
        .get(BankaPOSBilgileri.class, false);
    bankaPanelDoldur(posBilgileri, null, true);
  }

  @SuppressWarnings("unchecked")
  private void bankaPanelDoldur(List<?> pojoData, BankaPOSBilgileri pb,
      boolean isBanka) {
    setSize(480, 150);
    jPanelPosBilgileri.removeAll();
    maxLength = 3;
    initx = 5;
    inity = 5;
    buttonCount = 0;
    loopTime = 0;

    if (isBanka == true) {

      for (int i = 0; i < posBilgileri.size(); i++) {
        if (buttonCount % maxLength == 0) {
          loopTime++;

          if (loopTime == 1) {
            initx = 5;
          } else {
            initx = 5;
            inity += 67;
          }
          butonEkle(posBilgileri.get(i).getBankaAd(), true, pb, null,
              isBanka);
          buttonCount++;
        } else {

          initx += 148;
          butonEkle(posBilgileri.get(i).getBankaAd(), true, pb, null,
              isBanka);
          buttonCount++;
        }
      }
      if (loopTime == 1) {
        panelHeight = 80;
        panelWidth = buttonCount * 148 + 15;
      } else {
        panelHeight = loopTime * 67 + 13;
        panelWidth = maxLength * 148 + 15;
      }
      jPanelPosBilgileri.setBounds(5, 40, panelWidth, panelHeight);

    } else {
      butonEkle("TEK ÇEKİM", false, pb, null, isBanka);
      buttonCount++;
      List<BankaPOSVadeBilgileri> posBilgileri = (List<BankaPOSVadeBilgileri>) pojoData;
      for (int i = 0; i < posBilgileri.size(); i++) {
        if (buttonCount % maxLength == 0) {
          loopTime++;

          initx = 5;
          inity += 67;

          String vadeSayisi = String.valueOf(posBilgileri.get(i)
              .getVadeSayisi() + " AY");
          butonEkle(vadeSayisi, false, pb, posBilgileri.get(i),
              isBanka);
          buttonCount++;
        } else {

          initx += 148;
          String vadeSayisi = String.valueOf(posBilgileri.get(i)
              .getVadeSayisi() + " AY");
          butonEkle(vadeSayisi, false, pb, posBilgileri.get(i),
              isBanka);
          buttonCount++;
        }
      }
      if (loopTime == 0) {
        panelHeight = 80;

      } else {
        panelHeight = loopTime * 67 + 80;

      }
      panelWidth = maxLength * 148 + 15;
      geriButtonEkle();
      jPanelPosBilgileri.setBounds(5, 40, panelWidth, panelHeight + 60);
    }
    if (jLabelBankaSeciniz.getHeight() + jPanelPosBilgileri.getHeight()
        + 40 >= getHeight()) {
      setSize(getWidth(), jLabelBankaSeciniz.getHeight()
          + jPanelPosBilgileri.getHeight() + 60);
    }

  }

  private void geriButtonEkle() {
    JButton jButtonGeri = new JButton("GERİ");

    jButtonGeri.setBounds(152, panelHeight, 120, 50);
    jButtonGeri.setIcon(PSAUtil
        .getImageIconViaRelativePath("picture/geriButonu.png"));
    jPanelPosBilgileri.add(jButtonGeri);

    jButtonGeri.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent arg0) {
        initPosButtons();
        jLabelBankaSeciniz.setText("BANKA SEÇİNİZ");

      }
    });
  }

  private void butonEkle(final String buttonText,
      final boolean isBankaButton, final BankaPOSBilgileri pb,
      final BankaPOSVadeBilgileri pvb, boolean isBanka) {
    JButton jButtonBanka = new JButton(buttonText);
    jButtonBanka.setBounds(initx, inity, 148, 67);
    jButtonBanka.setToolTipText(buttonText);
    if (isBanka == true) {
      jButtonBanka.setIcon(PSAUtil
          .getImageIconViaRelativePath("picture/bankaEkle.png"));
    } else {
      jButtonBanka.setIcon(PSAUtil
          .getImageIconViaRelativePath("picture/vade.png"));
    }
    jButtonBanka.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent arg0) {
        if (isBankaButton == true) {
          bankaButtonClicked(buttonText);
        } else {
          vadeButtonClicked(pb, pvb);
        }

      }
    });
    jPanelPosBilgileri.add(jButtonBanka);
  }

  protected void vadeButtonClicked(BankaPOSBilgileri pb,
      BankaPOSVadeBilgileri pvb) {

    YapilanSatisPOSVadeBilgileri yspvb = null;
    YapilanSatisPOSBilgileri yspb;
    if (pvb != null) {
      yspvb = new YapilanSatisPOSVadeBilgileri(pvb);
      HibernateManager.getInstance().save(yspvb);
      yspb = new YapilanSatisPOSBilgileri(pb, yspvb);
      HibernateManager.getInstance().save(yspb);
    } else {
      yspb = new YapilanSatisPOSBilgileri(pb, yspvb);
      HibernateManager.getInstance().save(yspb);
    }

    odemeBilgisi = new OdemeBilgileri();
    odemeBilgisi.setSystemName(HibernateManager.getInstance()
        .getSystemName());
    odemeBilgisi.setKrediKartTutar(satisBilgi.getTutar());
    odemeBilgisi.setPosBilgisiId(yspb.getId());

    if (pvb != null) {
      odemeBilgisi.setPosVadeBilgisiId(yspvb.getId());
    }

    boolean check1 = HibernateManager.getInstance().save(satisBilgi);
    if (check1) {
      for (int i = 0; i < urunListesi.size(); i++) {
        urunSatis = urunListesi.get(i);
        urunSatis.setSatisId(satisBilgi.getId());
        urunSatis.setTarih(satisBilgi.getTarih());
        urunSatis.setYapilanSatis(true);
        satilanUrunListesi.add(urunSatis);
        HibernateManager.getInstance().save(urunSatis);
      }
      satisBilgi.setOdemeBilgisi(odemeBilgisi);
      satisBilgi.setSatisListesi(satilanUrunListesi);
      boolean check = HibernateManager.getInstance().update(satisBilgi);

      if (check) {
        if (check) {
          AutoClosingMessageDialog
              .showAutoClosingMessageDialog(
                  "Kredi kartı satış işlemi başarı ile tamamlanmıştır.",
                  2);
          PSAAnaEkran.getDefaultValue();
          anaEkranSetEnable();
        }
      }
    }
  }

  @SuppressWarnings("unchecked")
  protected void bankaButtonClicked(String bankaAd) {
    BankaPOSBilgileri ps = (BankaPOSBilgileri) HibernateManager
        .getInstance().getObjectWithUniqueColumn(
            BankaPOSBilgileri.class, "bankaAd", bankaAd, false);
    jPanelPosBilgileri.removeAll();

    jLabelBankaSeciniz.setText(bankaAd + " İÇİN ÖDEME ŞEKLİ SEÇİNİZ");

    List<BankaPOSVadeBilgileri> posVadeBilgileri = (List<BankaPOSVadeBilgileri>) HibernateManager
        .getInstance().getEntitysList(ps, "bankaPosVadeBilgileri");
    bankaPanelDoldur(posVadeBilgileri, ps, false);

  }

  protected void anaEkranSetEnable() {
    PSAAnaEkran.getInstance(null).setEnabled(true);
    instance.dispose();
  }

  private void initListeners() {

    addWindowListener(new WindowAdapter() {
      @Override
      public void windowClosing(WindowEvent e) {
        anaEkranSetEnable();
      }
    });

  }

  private void locateFrameToMiddle() {
    Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
    int w = this.getSize().width;
    int h = this.getSize().height;
    int x = (dim.width - w) / 2;
    int y = (dim.height - h) / 2;
    setLocation(x, y);
  }
}
TOP

Related Classes of gui.PSAKrediKartiOdeme

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.