2018-12-06 14:11:26 +01:00
package com.jFxKasse.application ;
2018-12-06 23:15:06 +01:00
import java.util.ArrayList ;
2018-12-06 14:11:26 +01:00
import com.jFxKasse.controller.DBController ;
import com.jFxKasse.controller.PrinterController ;
import com.jFxKasse.controller.XMLController ;
import com.jFxKasse.datatypes.PrintDataSimple ;
2018-12-06 23:15:06 +01:00
import com.jFxKasse.datatypes.PrintDataSplitted ;
2018-12-06 14:11:26 +01:00
import javafx.geometry.Insets ;
import javafx.scene.control.ButtonType ;
import javafx.scene.control.Dialog ;
import javafx.scene.control.Label ;
import javafx.scene.layout.GridPane ;
import javafx.util.Pair ;
public class PrintJob
{
private TimeDate timedate = new TimeDate ( ) ;
public void printJob ( int jobID , XMLController xmlc , DBController dbc ,
PrinterController pc )
{
if ( ( xmlc . getPrintername ( ) . equals ( " Drucker auswählen " )
| | xmlc . getPrintername ( ) = = null ) ) {
// no printer selected
System . out . println ( " Kein Drucker eingestellt!!! " ) ;
// creates a dialog
Dialog < Pair < String , String > > dialog = new Dialog < > ( ) ;
dialog . setTitle ( " Kein Drucker " ) ;
dialog . setHeaderText ( " Es ist kein Drucker einestellt. \ n "
+ " In den Einstellungen einen Drucker auswählen. " ) ;
dialog . getDialogPane ( ) . getButtonTypes ( ) . addAll ( ButtonType . OK ) ;
GridPane grid = new GridPane ( ) ;
grid . setHgap ( 10 ) ;
grid . setVgap ( 10 ) ;
grid . setPadding ( new Insets ( 20 , 150 , 10 , 10 ) ) ;
grid . add ( new Label ( " Tipp: \ n "
+ " Es kann ein virtueller Drucker installiert werden: \ n \ n "
+ " www.cups-pdf.de " ) , 0 , 0 ) ;
dialog . getDialogPane ( ) . setContent ( grid ) ;
dialog . setResizable ( true ) ;
dialog . showAndWait ( ) ;
} else {
// printer selected
pc . selectPrinter ( xmlc . getPrintername ( ) ) ;
2018-12-06 23:59:01 +01:00
/* Single bill or splitted */
2018-12-06 14:11:26 +01:00
if ( xmlc . getCategorySplitted ( ) ) {
// split the bills
2018-12-06 23:59:01 +01:00
PrintDataSplitted pdsplitted = new PrintDataSplitted (
xmlc . getLinebreak ( ) , xmlc . getOffsetHeader ( ) ,
xmlc . getOffsetFooter ( ) ,
2018-12-06 23:15:06 +01:00
timedate . getSystemTime ( ) + " " + timedate . getSystemDate ( ) ,
xmlc . getHeader ( ) , xmlc . getFooter ( ) ) ;
2018-12-06 14:11:26 +01:00
2018-12-06 23:15:06 +01:00
pdsplitted . setData ( Integer . toString ( jobID ) , dbc . getTime_Job ( jobID ) ,
dbc . getQuantity_Job ( jobID ) , dbc . getName_Job ( jobID ) ,
dbc . getValue_Job ( jobID ) , dbc . getCategory_Job ( jobID ) ,
dbc . getJobValue_Job ( jobID ) ) ;
2018-12-06 23:59:01 +01:00
2018-12-06 23:15:06 +01:00
System . out . println ( " Printing job ... " ) ;
2018-12-06 23:59:01 +01:00
2018-12-06 23:15:06 +01:00
ArrayList < String > printString = pdsplitted . getPrintStrings ( ) ;
2018-12-06 23:59:01 +01:00
for ( int i = 0 ; i < printString . size ( ) ; i + + ) {
2018-12-06 23:15:06 +01:00
pc . printString ( printString . get ( i ) ) ;
}
2018-12-06 23:59:01 +01:00
2018-12-06 14:11:26 +01:00
} else {
// one single bills
PrintDataSimple pds = new PrintDataSimple ( xmlc . getLinebreak ( ) ,
xmlc . getOffsetHeader ( ) , xmlc . getOffsetFooter ( ) ,
timedate . getSystemTime ( ) + " " + timedate . getSystemDate ( ) ,
xmlc . getHeader ( ) , xmlc . getFooter ( ) ) ;
pds . setData ( Integer . toString ( jobID ) , dbc . getTime_Job ( jobID ) ,
dbc . getQuantity_Job ( jobID ) , dbc . getName_Job ( jobID ) ,
dbc . getValue_Job ( jobID ) , dbc . getCategory_Job ( jobID ) ,
dbc . getJobValue_Job ( jobID ) ) ;
System . out . println ( " Printing job ... " ) ;
pc . printString ( pds . getPrintString ( ) ) ;
}
}
}
}