E-Fatura Betik Kodları ( Orkestra Scripts )
Cari Hesap Bakiyesini Fatura Üzerinde Göstermek İçin ve Ayrık Veritabanlarında Cari Hesap Bakiyesini Getirmek İçin Betik
Aşağıdaki betiği Orkestra E-Fatura programınızda, Logo Tanımları / Firmalar / X Firması / Efatura Uyarlamaları / X Uyarlama / Betik (Fatura) sekmesi altına yapıştırıldığında Cari Hesaba ait bakiye fatura üzerinde görünecektir.
String mysql = "SELECT pt.DATE_ FROM LG_$F$_$P$_PAYTRANS pt WHERE pt.FICHEREF=" + $F{reference}+" AND pt.MODULENR=4";
Console.println("SQL : "+mysql);
Object query = createSql(mysql);
Object row = executeSql(query);
if (row != null){
Date sonTarih = row.getDate("DATE_");
ubl.addNote("Son Ödeme Tarihi : " + DateUtil.format(sonTarih,"dd/MM/yyyyy"));
Console.println("SON ODEME : "+ DateUtil.format(sonTarih,"dd/MM/yyyyy"));
}
String sql_bakiye = "SELECT CLCARD.CODE AS KODU, CLCARD.DEFINITION_ AS UNVANI,(SUM((1-CLFLINE.SIGN) * CLFLINE.AMOUNT) - SUM(CLFLINE.SIGN * CLFLINE.AMOUNT)) AS BAKIYE FROM LG_$F$_$P$_CLFLINE CLFLINE INNER JOIN LG_$F$_CLCARD CLCARD ON CLFLINE.CLIENTREF = CLCARD.LOGICALREF AND CLFLINE.CANCELLED = 0 WHERE CLCARD.LOGICALREF="+$F{clientref}+" GROUP BY CLCARD.CODE, CLCARD.DEFINITION_, CLCARD.ACTIVE HAVING (CLCARD.CODE LIKE '%') and (CLCARD.DEFINITION_ LIKE '%') AND (CLCARD.ACTIVE = 0) ORDER BY CLCARD.CODE DESC";
Object query_bakiye = createSql(sql_bakiye);
Object row_bakiye = executeSql(query_bakiye);
if (row_bakiye != null){
BigDecimal bakiye = row_bakiye.getBigDecimal("BAKIYE");
BigDecimal sifir = new BigDecimal(0);
if(bakiye < sifir){
ubl.addNote("Cari Hesap Alacağınız : " + MathUtil.format(bakiye*-1,"#,###.00"));
}else if(bakiye > sifir){
ubl.addNote("Cari Hesap Borcunuz : " + MathUtil.format(bakiye,"#,###.00"));
}
}
Ayrık veritabanlarında cari hesap bakiyesini getirmek için;
String sql_bakiye =
"SELECT " +
" CLCARD.CODE AS KODU, " +
" CLCARD.DEFINITION_ AS UNVANI, " +
" (SUM((1 - CLFLINE.SIGN) * CLFLINE.AMOUNT) - SUM(CLFLINE.SIGN * CLFLINE.AMOUNT)) AS BAKIYE " +
"FROM $SN$LG_$F$_$P$_CLFLINE CLFLINE " +
"INNER JOIN $SN$LG_$F$_CLCARD CLCARD " +
" ON CLFLINE.CLIENTREF = CLCARD.LOGICALREF " +
" AND CLFLINE.CANCELLED = 0 " +
"WHERE CLCARD.LOGICALREF = " + $F{clientref} + " " +
"GROUP BY CLCARD.CODE, CLCARD.DEFINITION_, CLCARD.ACTIVE " +
"HAVING CLCARD.ACTIVE = 0 " +
"ORDER BY CLCARD.CODE DESC";
Object query_bakiye = createSql(sql_bakiye);
Object row_bakiye = executeSql(query_bakiye);
if (row_bakiye != null) {
BigDecimal bakiye = row_bakiye.getBigDecimal("BAKIYE");
BigDecimal sifir = new BigDecimal("0");
BigDecimal duzgunBakiye =
bakiye.multiply(new BigDecimal("1.00"));
if (duzgunBakiye.compareTo(sifir) < 0) {
ubl.addNote(
"Cari Hesap Alacağınız : " +
MathUtil.format(
duzgunBakiye.multiply(new BigDecimal("-1")),
"#,##0.00"
)
);
} else if (duzgunBakiye.compareTo(sifir) > 0) {
ubl.addNote(
"Cari Hesap Borcunuz : " +
MathUtil.format(
duzgunBakiye,
"#,##0.00"
)
);
} else {
ubl.addNote("Cari Hesap Borcunuz Yoktur.");
}
}