@ -1,12 +1,17 @@
package com.jFxKasse.datatypes ;
import java.util.ArrayList ;
public class PrintDataSplitted extends PrintData
{
private ArrayList < String > printString = new ArrayList < String > ( ) ;
private ArrayList < Category > categories = new ArrayList < Category > ( ) ;
private String printString ;
private int categoryCount = 0 ;
/ * *
* Constructor with all data that is not in the DB
* Constructor with all data that is not in the DB
* @param lineBreak
* @param headerSpace
* @param footerSpace
@ -23,17 +28,20 @@ public class PrintDataSplitted extends PrintData
/ * *
* Generates the String
* @return the final Print String
* @return the final Array with the Print Strings
* /
public String getPrintString ( )
public ArrayList < String > getPrintStrings ( )
{
generatePrintString ( ) ;
return this . printString ;
return printString ;
}
@Override
protected void generatePrintString ( )
{
String firstBill ;
/* Header */
String header = "\n" ;
for ( int i = 1 ; i < headerSpace ; i + + ) {
@ -49,45 +57,113 @@ public class PrintDataSplitted extends PrintData
+ setRight ( "Druck: " , timeAndDatePrint ) + "\n"
+ setRight ( "Bestellnummer: " , jobID ) ;
/* Positionen */
/* Splitted Bills */
String positionen = "\n" ;
/* Price */
int posCount = positionenQuantity . length ( )
- positionenQuantity . replace ( ";" , "" ) . length ( ) + 1 ;
String price = setRight ( "Gesamt: " , ( jobValue + " €" ) ) ;
String [ ] positionQuantity = positionenQuantity . split ( ";" ) ;
/* Footer */
String [ ] positionName = positionenName . split ( ";" ) ;
String footer = setCenter ( this . footer ) ;
String [ ] positionValue = positionenValue . split ( ";" ) ;
for ( int i = 1 ; i < footerSpace ; i + + ) {
footer = footer + "\n" ;
}
footer = footer + "_" ;
for ( int i = 0 ; i < posCount ; i + + ) { //All different posNames
/* Build first Print String */
firstBill = header + "\n" + getSeparator ( ) + "\n" + info + "\n"
+ getSeparator ( ) + "\n" + setCenter ( "Bon wurde aufgeteilt" ) + "\n"
+ getSeparator ( ) + "\n" + price + "\n" + getSeparator ( ) + "\n"
+ footer ;
printString . add ( firstBill ) ;
/* first bill ends here */
/* Categories in extra bills*/
String positions = null ;
int posCount = positionsQuantity . length ( )
- positionsQuantity . replace ( ";" , "" ) . length ( ) + 1 ;
String [ ] positionQuantity = positionsQuantity . split ( ";" ) ;
String [ ] positionName = positionsName . split ( ";" ) ;
String [ ] positionValue = positionsValue . split ( ";" ) ;
String [ ] positionCategory = positionsCategory . split ( ";" ) ;
for ( int i = 0 ; i < posCount ; i + + ) { // All different posNames
int quantity = Integer . parseInt ( positionQuantity [ i ] ) ;
for ( int j = 0 ; j < quantity ; j + + ) { //quantities
positionen = positionen + setRight ( breakLines ( positionName [ i ] ) ,
positionValue [ i ] + " €" ) + "\n" ;
}
insertToCategory ( quantity , positionName [ i ] , positionValue [ i ] ,
positionCategory [ i ] ) ;
}
/* Price */
// loops through all categories
for ( int i = 0 ; i < categories . size ( ) ; i + + ) {
String price = setRight ( "Gesamt: " , ( jobValue + " €" ) ) ;
String thisBill ;
/* Footer */
/* Header */
header = "\n" ;
for ( int o = 1 ; o < headerSpace ; o + + ) {
header = header + "\n" ;
}
String footer = setCenter ( this . footer ) ;
// This is the final header
header = header + setCenter ( this . header ) ;
/* Info */
info = setRight ( "Bestellung: " , timeAndDateOrder ) + "\n"
+ setRight ( "Druck: " , timeAndDatePrint ) + "\n"
+ setRight ( "Bestellnummer: " , jobID ) ;
/* Positions */
positions = categories . get ( i ) . getPositionsString ( ) ;
/* Footer */
footer = setCenter ( this . footer ) ;
for ( int o = 1 ; o < footerSpace ; o + + ) {
footer = footer + "\n" ;
}
footer = footer + "_" ;
thisBill = header + "\n" + getSeparator ( ) + "\n" + info + "\n"
+ getSeparator ( ) + "\n"
+ setCenter ( categories . get ( i ) . getCategoryName ( ) ) + "\n"
+ getSeparator ( ) +
positions + "\n" + getSeparator ( ) ;
printString . add ( thisBill ) ;
for ( int i = 1 ; i < footerSpace ; i + + ) {
footer = footer + "\n" ;
}
footer = footer + "_" ;
/* Build final Print String */
}
private void insertToCategory ( int quantity , String name , String value ,
String category )
{
boolean createNewCategorie = true ;
for ( int i = 0 ; i < categoryCount ; i + + ) {
if ( category . equals ( categories . get ( i ) . getCategoryName ( ) ) ) {
categories . get ( i ) . addPosition ( quantity , name , value , this ) ;
createNewCategorie = false ;
}
}
if ( createNewCategorie ) {
// position has a new category
categories . add ( new Category ( category ) ) ;
categories . get ( categoryCount ) . addPosition ( quantity , name , value , this ) ;
categoryCount + + ;
}
printString = header + "\n" + getSeparator ( ) + "\n" + info + "\n"
+ getSeparator ( ) + "\n" + positionen + "\n" + getSeparator ( ) + "\n"
+ price + "\n" + getSeparator ( ) + "\n" + footer ;
}
}