package ivasoft.mainwindow.teklif;
import ivasoft.IvasoftApp;
import java.math.BigDecimal;
import com.vaadin.ui.AbsoluteLayout;
import com.vaadin.ui.Button;
import com.vaadin.ui.ComboBox;
import com.vaadin.ui.Label;
import com.vaadin.ui.PopupDateField;
import com.vaadin.ui.Table;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
import com.vaadin.ui.Button.ClickEvent;
import com.vaadin.ui.Button.ClickListener;
import com.vaadin.ui.themes.Runo;
@SuppressWarnings("serial")
public class OdemePlaniTabUi extends VerticalLayout{
Label richText = null;
Table odemePlaniTable ;
TextField vadeField;
TextField faizField;
PopupDateField tahsilatTarihiDateField;
Double tahsilatTutari;
ComboBox birimBoxTable;
ComboBox odemeTuruTableBox ;
ComboBox odemeBoxTable;
public OdemePlaniTabUi() {
Button odemePlani = new Button("Tahsilat Planı Oluşturunuz");
final IvasoftApp app = new IvasoftApp();
setSpacing(true);
tahsilatTable();
addComponent(odemePlani);
addComponent(odemePlaniTable);
odemePlani.addListener(new ClickListener() {
public void buttonClick(ClickEvent event) {
app.addWindows(tahsilatPlaniWindow());
}
});
}
@SuppressWarnings("deprecation")
private void tahsilatTable() {
odemePlaniTable = new Table();
odemePlaniTable.setStyle(Runo.TABLE_SMALL);
odemePlaniTable.setWidth("100%");
odemePlaniTable.addContainerProperty("Ödendi", Boolean.class, null);
odemePlaniTable.addContainerProperty("Tahsilat Tarihi", PopupDateField.class, null);
odemePlaniTable.addContainerProperty("Ödeme", ComboBox.class, null);
odemePlaniTable.addContainerProperty("Tahsilat Şekli", ComboBox.class, null);
odemePlaniTable.addContainerProperty("Tutarı", Double.class, null);
odemePlaniTable.addContainerProperty("Birim", ComboBox.class, null);
odemePlaniTable.setImmediate(true);
odemePlaniTable.setSelectable(true);
odemePlaniTable.setNullSelectionAllowed(false);
odemePlaniTable.setEditable(true);
odemePlaniTable.setPageLength(8);
odemePlaniTable.setFooterVisible(true);
}
private Window tahsilatPlaniWindow() {
final Window odemeWindow = new Window("Tahsilat Planı Oluşturunuz");
final IvasoftApp app = new IvasoftApp();
Button okButton = new Button("Tahsilat Planı Oluştur");
odemeWindow.setModal(true);
odemeWindow.setWidth("360px");
odemeWindow.setHeight("400px");
final AbsoluteLayout layout = new AbsoluteLayout();
layout.setWidth("360px");
layout.setHeight("310px");
final TextField toplamTutar = new TextField("Toplam Tutar", "0.0");
final ComboBox birimBox = new ComboBox();
birimBox.addItem("TL");
birimBox.addItem("DOLAR");
birimBox.addItem("EURO");
birimBox.addItem("GB");
birimBox.setNullSelectionAllowed(false);
birimBox.setImmediate(false);
birimBox.setValue("TL");
vadeField = new TextField("Vade Sayısı","0");
faizField = new TextField("Faiz Oranı","0");
final PopupDateField datetime = new PopupDateField("İlk Ödeme Tarihi");
datetime.setValue(new java.util.Date());
datetime.setResolution(PopupDateField.RESOLUTION_DAY);
datetime.setImmediate(true);
final ComboBox odemeTuruBox = new ComboBox("Ödeme Türü");
odemeTuruBox.setImmediate(true);
odemeTuruBox.setNullSelectionAllowed(false);
odemeTuruBox.addItem("Açık Hesap");
odemeTuruBox.addItem("Nakit");
odemeTuruBox.addItem("Banka Havalesi");
odemeTuruBox.addItem("Kredi Kartı");
odemeTuruBox.addItem("Çek");
odemeTuruBox.addItem("Senet");
odemeTuruBox.addItem("Diğer");
odemeTuruBox.setValue("Açık Hesap");
Button vazgecButton = new Button("Vazgeç");
birimBox.setWidth("75px");
layout.addComponent(toplamTutar, "left:10px; top:20px");
layout.addComponent(birimBox, "left:210px; top:20px");
layout.addComponent(vadeField, "left:10px; top:70px");
layout.addComponent(faizField, "left:10px; top:120px");
layout.addComponent(datetime, "left:10px; top:170px");
layout.addComponent(odemeTuruBox, "left:10px; top:220px");
layout.addComponent(okButton, "left:10px; top:270px");
layout.addComponent(vazgecButton, "left:210px; top:270px");
vazgecButton.addListener(new ClickListener() {
public void buttonClick(ClickEvent event) {
app.removeWindows(odemeWindow);
}
});
okButton.addListener(new ClickListener() {
public void buttonClick(ClickEvent event) {
odemePlaniTable.removeAllItems();
double toplam = Double.parseDouble(toplamTutar.getValue().toString());
double faiz = Double.parseDouble(faizField.getValue().toString());
int vadeSayisi = Integer.parseInt(vadeField.getValue().toString());
toplam += (toplam*faiz)/100;
double aylikTutar = toplam/vadeSayisi;
odemePlaniTable.setColumnFooter("Tutarı", String.valueOf(round(toplam, 2)));
int date = 0;
for (int i = 1; i <= vadeSayisi ; i++) {
odemeTuruTableBox = new ComboBox("Ödeme Türü");
odemeTuruTableBox.addItem("Açık Hesap");
odemeTuruTableBox.addItem("Nakit");
odemeTuruTableBox.addItem("Banka Havalesi");
odemeTuruTableBox.addItem("Kredi Kartı");
odemeTuruTableBox.addItem("Çek");
odemeTuruTableBox.addItem("Senet");
birimBoxTable = new ComboBox();
birimBoxTable.addItem("TL");
birimBoxTable.addItem("DOLAR");
birimBoxTable.addItem("EURO");
birimBoxTable.addItem("GB");
birimBoxTable.setImmediate(true);
odemeBoxTable = new ComboBox();
odemeBoxTable.addItem("Sipariş Teyidinde");
odemeBoxTable.addItem("Teslim Tarihinde");
odemeBoxTable.addItem("Taksit");
odemeBoxTable.addItem("Kalan Tutar");
odemeBoxTable.setImmediate(true);
odemeBoxTable.setNullSelectionAllowed(true);
tahsilatTarihiDateField = new PopupDateField();
tahsilatTarihiDateField.setValue(new java.util.Date());
tahsilatTarihiDateField.setResolution(PopupDateField.RESOLUTION_DAY);
tahsilatTarihiDateField.setValue(new java.util.Date(date));
odemeTuruTableBox.setValue(odemeTuruBox.getValue());
birimBoxTable.setValue(birimBox.getValue());
tahsilatTutari =round(aylikTutar, 2);
odemePlaniTable.addItem(
new Object[] {
Boolean.FALSE,
tahsilatTarihiDateField,
odemeBoxTable,
odemeTuruTableBox,
tahsilatTutari,
birimBoxTable,
},i);
date += 30;
}
app.removeWindows(odemeWindow);
}
});
odemeWindow.addComponent(layout);
return odemeWindow;
}
public static double round(double d, int decimalPlace){
BigDecimal bd = new BigDecimal(Double.toString(d));
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_HALF_UP);
return bd.doubleValue();
}
}