package yonetici;
import hibernateSwingApi.hibernate.HibernateManager;
import java.util.Date;
import java.util.List;
import personel.pojos.Personel;
import satis.pojos.Taksit;
import satis.pojos.YapilanSatis;
import satisBilgi.pojos.OdemeBilgileri;
import satisBilgi.pojos.UrunSatis;
import servis.OndalikDeger;
import urun.pojos.UrunStok;
import banka.pojos.Banka;
import cari.pojos.Cari;
public class SatisYonetici {
private static final String NAKIT = "NAKİT";
private static final String KREDI_KART = "KREDİ KART";
private static final String PARCALI_ODEME = "PARÇALI ÖDEME";
private static final String VERESIYE = "VERESİYE";
private static UrunStok urunStok;
public static boolean satisYap(double iskontoMiktari, boolean vadeFark,
double kdvToplam, double pesinToplam, double kampanyaTutar,
Personel personel, Cari musteri, List<UrunSatis> urunSatisListesi,
OdemeBilgileri odemeBilgisi) {
YapilanSatis satis = new YapilanSatis();
HibernateManager.getInstance().save(satis);
satis.setIskontoMiktari(iskontoMiktari);
satis.setVade(vadeFark);
satis.setKdvMiktari(Double.parseDouble(OndalikDeger
.ondalikDegerGetir(kdvToplam)));
satis.setTarih(new Date());
satis.setTutar(Double.parseDouble(OndalikDeger
.ondalikDegerGetir(pesinToplam)));
satis.setOdemeBilgisi(odemeBilgisi);
satis.setKampanyaTutari(Double.parseDouble(OndalikDeger
.ondalikDegerGetir(kampanyaTutar)));
satis.setOdemeTur(odemeBilgisi.toString());
UrunSatis urunSatis;
for (int i = 0; i < urunSatisListesi.size(); i++) {
urunSatis = urunSatisListesi.get(i);
urunSatis.setSystemName(HibernateManager.getInstance()
.getSystemName());
urunSatis.setSatisId(satis.getId());
urunSatis.setTarih(satis.getTarih());
urunSatis.setYapilanSatis(true);
boolean kontrol = HibernateManager.getInstance().save(urunSatis);
if (kontrol) {
urunStok = (UrunStok) HibernateManager.getInstance()
.getObjectWithUniqueColumn(UrunStok.class, "barkod",
urunSatis.getBarkod());
urunStok.setAdet(urunStok.getAdet() - urunSatis.getAdet());
HibernateManager.getInstance().update(urunStok);
}
}
if (personel != null)
satis.setPersonel(personel);
if (musteri != null) {
satis.setMusteri(musteri);
}
satis.setSatisListesi(urunSatisListesi);
boolean control = HibernateManager.getInstance().update(satis);
if (control) {
KasaYonetici.addSatisHareket(satis);
if (satis.getOdemeTur().equals(VERESIYE)
&& odemeBilgisi.getNakitTutar() > 0)
KasaYonetici.addVeresiyePesinatHareket(satis,
odemeBilgisi.getNakitTutar());
return true;
}
return false;
}
public static OdemeBilgileri getOdemeBilgisi(double nakitTutar,
double krediTutar, double borc, String odemeTur, Banka pos,
List<Taksit> taksitListesi) {
OdemeBilgileri odemeBilgisi = new OdemeBilgileri();
odemeBilgisi.setSystemName(HibernateManager.getInstance()
.getSystemName());
odemeBilgisi.setOdemeTur(odemeTur);
switch (odemeTur) {
case NAKIT:
odemeBilgisi.setNakitTutar(nakitTutar);
break;
case KREDI_KART:
odemeBilgisi.setKrediKartTutar(krediTutar);
odemeBilgisi.setPos(pos);
break;
case PARCALI_ODEME:
odemeBilgisi.setNakitTutar(nakitTutar);
odemeBilgisi.setKrediKartTutar(krediTutar);
odemeBilgisi.setPos(pos);
break;
case VERESIYE:
odemeBilgisi.setNakitTutar(nakitTutar);
odemeBilgisi.setTaksitTutar(borc);
odemeBilgisi.setTaksitListesi(taksitListesi);
break;
default:
break;
}
boolean control = HibernateManager.getInstance().save(odemeBilgisi);
if (control)
return odemeBilgisi;
return null;
}
}