neues OP Listen Template
This commit is contained in:
parent
3631fed1c6
commit
9a6c7e0741
2 changed files with 81 additions and 19 deletions
|
|
@ -159,8 +159,8 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
|
||||||
double saldoEUR1 = 0;
|
double saldoEUR1 = 0;
|
||||||
double saldoUSD2 = 0;
|
double saldoUSD2 = 0;
|
||||||
double saldoEUR2 = 0;
|
double saldoEUR2 = 0;
|
||||||
double saldoUSD3 = 0;
|
// double saldoUSD3 = 0;
|
||||||
double saldoEUR3 = 0;
|
// double saldoEUR3 = 0;
|
||||||
List<String> spaceNames = new ArrayList<String>();
|
List<String> spaceNames = new ArrayList<String>();
|
||||||
|
|
||||||
// compute all departments
|
// compute all departments
|
||||||
|
|
@ -203,6 +203,8 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
|
||||||
XSSFRow referenceRowValues = sheet.getRow(11);
|
XSSFRow referenceRowValues = sheet.getRow(11);
|
||||||
XSSFRow referenceRowCurrentWeek = sheet.getRow(12);
|
XSSFRow referenceRowCurrentWeek = sheet.getRow(12);
|
||||||
|
|
||||||
|
XSSFRow referenceRowTotal = sheet.getRow(15);
|
||||||
|
|
||||||
// Aktuelle KW berechnen
|
// Aktuelle KW berechnen
|
||||||
calendar.setTime(new Date());
|
calendar.setTime(new Date());
|
||||||
int currentWeekNumber = calendar.get(Calendar.WEEK_OF_YEAR);
|
int currentWeekNumber = calendar.get(Calendar.WEEK_OF_YEAR);
|
||||||
|
|
@ -214,9 +216,16 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
|
||||||
currentWeekCategory = currentWeekCategory + currentWeekNumber;
|
currentWeekCategory = currentWeekCategory + currentWeekNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* --- Phase 1 -------------------------------------------------------
|
||||||
|
* Im folgenden fügen wir erst einmal in der Kopfzeile zusätzlich
|
||||||
|
* Spaltenüberschriften für jede Abteilung ein
|
||||||
|
*/
|
||||||
XSSFCell cellSpaceLabelReference = rowSpacesLabels.getCell(2);
|
XSSFCell cellSpaceLabelReference = rowSpacesLabels.getCell(2);
|
||||||
XSSFCell cellSpaceCurrencyReference = referenceRowSpacesCurrencies.getCell(1);
|
XSSFCell cellSpaceCurrencyReference = referenceRowSpacesCurrencies.getCell(1);
|
||||||
int column = 1;
|
// XSSFCell cellKWTotalReference = referenceRowCurrentWeek.getCell(1);
|
||||||
|
XSSFCell cellKWTotalReference = referenceRowTotal.getCell(14);
|
||||||
|
int column = 1; // beginn in der 2. Spalte!
|
||||||
for (ItemCollection space : spaces) {
|
for (ItemCollection space : spaces) {
|
||||||
XSSFCell cell = null;
|
XSSFCell cell = null;
|
||||||
String spaceName = space.getItemValueString("space.name");
|
String spaceName = space.getItemValueString("space.name");
|
||||||
|
|
@ -251,12 +260,40 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
|
||||||
logger.info("...grouping invoices by week...");
|
logger.info("...grouping invoices by week...");
|
||||||
// collect all invoices for this space grouped by week....
|
// collect all invoices for this space grouped by week....
|
||||||
groupInvoicesByWeek(spaceID, spaceName, weekDataMap);
|
groupInvoicesByWeek(spaceID, spaceName, weekDataMap);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// now build a new row for each week and print out the collected invoice data
|
/*
|
||||||
// first iterate over all objects and collect all known weeks and sort them into
|
* --- Phase 2 -------------------------------------------------------
|
||||||
// a ordered list....
|
* Nun bilden wir nochmal 2 weitere Spalten am Ende um eine Summenbildung in
|
||||||
|
* EUR/USD pro KW zu ermöglichen
|
||||||
|
*/
|
||||||
|
XSSFCell cell = null;
|
||||||
|
// column++;
|
||||||
|
// Space currency EUR
|
||||||
|
cell = referenceRowSpacesCurrencies.getCell(column);
|
||||||
|
cell.copyCellFrom(cellKWTotalReference, new CellCopyPolicy());
|
||||||
|
cell.setCellValue("EUR");
|
||||||
|
cell = rowSpacesLabels.getCell(column);
|
||||||
|
cell.copyCellFrom(cellKWTotalReference, new CellCopyPolicy());
|
||||||
|
cell.setCellValue("");
|
||||||
|
|
||||||
|
// Space currency USD
|
||||||
|
column++;
|
||||||
|
cell = referenceRowSpacesCurrencies.getCell(column);
|
||||||
|
cell.copyCellFrom(cellKWTotalReference, new CellCopyPolicy());
|
||||||
|
cell.setCellValue("USD");
|
||||||
|
|
||||||
|
// Space Label
|
||||||
|
cell = rowSpacesLabels.getCell(column);
|
||||||
|
cell.copyCellFrom(cellKWTotalReference, new CellCopyPolicy());
|
||||||
|
cell.setCellValue("Gesamt");
|
||||||
|
|
||||||
|
/*
|
||||||
|
* --- Phase 3 -------------------------------------------------------
|
||||||
|
* now build a new row for each week and print out the collected invoice data
|
||||||
|
* first iterate over all objects and collect all known weeks and sort them into
|
||||||
|
* a ordered list....
|
||||||
|
*/
|
||||||
List<String> sortedWeekList = new ArrayList<String>();
|
List<String> sortedWeekList = new ArrayList<String>();
|
||||||
Iterator<Map.Entry<String, WeekInvoiceData>> iterator = weekDataMap.entrySet().iterator();
|
Iterator<Map.Entry<String, WeekInvoiceData>> iterator = weekDataMap.entrySet().iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
|
|
@ -268,18 +305,19 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
|
||||||
}
|
}
|
||||||
Collections.sort(sortedWeekList);
|
Collections.sort(sortedWeekList);
|
||||||
|
|
||||||
int rowPos = 11;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
* --- Phase 4 -------------------------------------------------------
|
||||||
* Nun müssen wir so viele Zeilen nach unten schieben wie wir gleich einfügen.
|
* Nun müssen wir so viele Zeilen nach unten schieben wie wir gleich einfügen.
|
||||||
* Dazu müssen wir kurz einen Probelauf machen um die geplante Anzahl zu
|
* Dazu müssen wir kurz einen Probelauf machen um die geplante Anzahl zu
|
||||||
* errechnen....
|
* errechnen....
|
||||||
*/
|
*/
|
||||||
|
int rowPos = 11;
|
||||||
int insertCount = sortedWeekList.size();
|
int insertCount = sortedWeekList.size();
|
||||||
sheet.shiftRows(rowPos + 1, 2999, insertCount, true, true);
|
sheet.shiftRows(rowPos + 1, 2999, insertCount, true, true);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Jetzt Zeile für Zeile einfügen....
|
* --- Phase 5 -------------------------------------------------------
|
||||||
|
* Jetzt Zahlen Zeile für Zeile einfügen....
|
||||||
*/
|
*/
|
||||||
boolean ueberFaellig = true;
|
boolean ueberFaellig = true;
|
||||||
for (String week : sortedWeekList) {
|
for (String week : sortedWeekList) {
|
||||||
|
|
@ -301,6 +339,8 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
|
||||||
// iterate over all spaceNames and test if we have any data to put it into the
|
// iterate over all spaceNames and test if we have any data to put it into the
|
||||||
// row cells....
|
// row cells....
|
||||||
column = 1;
|
column = 1;
|
||||||
|
double kwTotalEUR = 0;
|
||||||
|
double kwTotalUSD = 0;
|
||||||
for (String name : spaceNames) {
|
for (String name : spaceNames) {
|
||||||
String key = name + "/" + week;
|
String key = name + "/" + week;
|
||||||
logger.info("search WeekInvoiceData for " + key);
|
logger.info("search WeekInvoiceData for " + key);
|
||||||
|
|
@ -309,29 +349,48 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
|
||||||
if (weekData != null) {
|
if (weekData != null) {
|
||||||
logger.info(" EUR=" + weekData.totalEUR + " USD=" + weekData.totalUSD);
|
logger.info(" EUR=" + weekData.totalEUR + " USD=" + weekData.totalUSD);
|
||||||
row.getCell(column).setCellValue(weekData.totalEUR);
|
row.getCell(column).setCellValue(weekData.totalEUR);
|
||||||
|
|
||||||
column++;
|
column++;
|
||||||
row.getCell(column).setCellValue(weekData.totalUSD);
|
row.getCell(column).setCellValue(weekData.totalUSD);
|
||||||
saldoUSD3 = InvoiceUtil.round(saldoUSD3 + weekData.totalUSD);
|
|
||||||
|
|
||||||
if (ueberFaellig) {
|
if (ueberFaellig) {
|
||||||
saldoEUR1 = InvoiceUtil.round(saldoEUR1 + weekData.totalEUR);
|
saldoEUR1 = InvoiceUtil.round(saldoEUR1 + weekData.totalEUR);
|
||||||
saldoUSD1 = InvoiceUtil.round(saldoUSD1 + weekData.totalUSD);
|
saldoUSD1 = InvoiceUtil.round(saldoUSD1 + weekData.totalUSD);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
saldoEUR2 = InvoiceUtil.round(saldoEUR2 + weekData.totalEUR);
|
saldoEUR2 = InvoiceUtil.round(saldoEUR2 + weekData.totalEUR);
|
||||||
saldoUSD2 = InvoiceUtil.round(saldoUSD2 + weekData.totalUSD);
|
saldoUSD2 = InvoiceUtil.round(saldoUSD2 + weekData.totalUSD);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
kwTotalEUR = kwTotalEUR + weekData.totalEUR;
|
||||||
|
kwTotalUSD = kwTotalUSD + weekData.totalUSD;
|
||||||
column++;
|
column++;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
logger.info("...... NOT FOUND");
|
logger.info("...... NOT FOUND");
|
||||||
// skip columns
|
// skip columns
|
||||||
column = column + 2;
|
column = column + 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// KW Summe anzeigen
|
||||||
|
if (week.equals(currentWeekCategory)) {
|
||||||
|
XSSFCell kwTotalCell = row.getCell(column);
|
||||||
|
// kwTotalCell.copyCellFrom(cellKWTotalReference, new CellCopyPolicy());
|
||||||
|
kwTotalCell.setCellValue(kwTotalEUR);
|
||||||
|
|
||||||
|
column++;
|
||||||
|
// row.getCell(column).setCellValue(kwTotalUSD);
|
||||||
|
kwTotalCell = row.getCell(column);
|
||||||
|
// kwTotalCell.copyCellFrom(cellKWTotalReference, new CellCopyPolicy());
|
||||||
|
kwTotalCell.setCellValue(kwTotalUSD);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
XSSFCell kwTotalCell = row.getCell(column);
|
||||||
|
kwTotalCell.copyCellFrom(cellKWTotalReference, new CellCopyPolicy());
|
||||||
|
kwTotalCell.setCellValue(kwTotalEUR);
|
||||||
|
|
||||||
|
column++;
|
||||||
|
// row.getCell(column).setCellValue(kwTotalUSD);
|
||||||
|
kwTotalCell = row.getCell(column);
|
||||||
|
kwTotalCell.copyCellFrom(cellKWTotalReference, new CellCopyPolicy());
|
||||||
|
kwTotalCell.setCellValue(kwTotalUSD);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
// delete reference rows
|
// delete reference rows
|
||||||
|
|
@ -339,8 +398,11 @@ public class OPListExportAdapterByWeek extends POIFindReplaceAdapter {
|
||||||
sheet.shiftRows(12, rowPos, -1, true, true);
|
sheet.shiftRows(12, rowPos, -1, true, true);
|
||||||
sheet.shiftRows(rowPos + 2, rowPos + 6, -3, true, true);
|
sheet.shiftRows(rowPos + 2, rowPos + 6, -3, true, true);
|
||||||
|
|
||||||
// now lets update the totals...
|
/*
|
||||||
// Überfällig
|
* --- Phase 6 -------------------------------------------------------
|
||||||
|
* now lets update the totals...
|
||||||
|
* Überfällig
|
||||||
|
*/
|
||||||
XSSFCell cTotalEUR1 = getCellByRef(doc, sheet, "TOTALEUR1");
|
XSSFCell cTotalEUR1 = getCellByRef(doc, sheet, "TOTALEUR1");
|
||||||
XSSFCell cTotalUSD1 = getCellByRef(doc, sheet, "TOTALUSD1");
|
XSSFCell cTotalUSD1 = getCellByRef(doc, sheet, "TOTALUSD1");
|
||||||
cTotalEUR1.setCellValue(saldoEUR1);
|
cTotalEUR1.setCellValue(saldoEUR1);
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Reference in a new issue