Invoice.java
1
/ / Obwohl DynamicPDF für Java unterstützt J2SE 1.4.x- Funktionen für die
meisten ist dieses Beispiel nur mit J2SE 5.0 und höher kompatibel.
2 Einfuhr
com.cete.dynamicpdf * .
3
Import com.cete.dynamicpdf.pageelements * .
4
Import com.cete.dynamicpdf.pageelements.barcoding.Interleaved25 ;
5 Import
java.io.FileNotFoundException ;
6 Import
java.io.IOException ;
7 Import
java.math.BigDecimal ;
8 Import java.sql * .
9 Import
java.text.DecimalFormat ;
10 Import
java.text.SimpleDateFormat ;
11 Import
java.util.Enumeration ;
12 Import
java.util.Locale ;
13 Import
java.util.Vector ;
14 Import
javax.servlet.ServletConfig ;
15
Import javax.servlet.ServletException ;
16
Import javax.servlet.ServletOutputStream ;
17
Import javax.servlet.http.HttpServlet ;
18
Import javax.servlet.http.HttpServletRequest ;
19
Import javax.servlet.http.HttpServletResponse ;
20
21
öffentliche Klasse Rechnung erstreckt HttpServlet {
22
23
ServletOutputStream sOut ;
24 Anschluss
-Anschluss;
25
26
public void init ( ServletConfig ServletConfig ) wirft ServletException {
27 super.init (
ServletConfig );
28}
29
public void doGet ( HttpServletRequest req , HttpServletResponse res)
30
throws IOException , ServletException {
.
31. CeTeConnection CETE = ( CeTeConnection ) getServletContext () getAttribute
( " cetecon ");
32 =
Verbindung ceTe.getConnection ();
33 sOut
res.getOutputStream = ();
34
/ / Erstellen Sie ein Dokument , und legen Sie seine Eigenschaften
35
Document ObjDocument = new Document ();
36
objDocument.setCreator ( " Invoice.html ");
37
objDocument.setAuthor ( " CETE Software") ;
38
objDocument.setTitle ( "Rechnung" );
39
40
41
42
String [] = RechnungNr req.getParameterValues ( " RechnungNr ");
43 if ( RechnungNr !
= Null) {
44 / / In den
Rechnungen des Dokuments
45
for (int i = 0; i < invoiceNo.length ; i + +) {
46
MyInvoice objInvoice = new MyInvoice ();
47 / /
Fügen Sie die Vorlage in das Dokument
48
objDocument.setTemplate ( objInvoice.getTemplate ());
49
objInvoice.draw (Anschluss, ObjDocument ,
50
Integer.parseInt ( RechnungNr [i]) );
51 }
52 }
53
54
55
/ / Gibt die Rechnungen auf der aktuellen Webseite
56
objDocument.drawToWeb ( req , res, sOut " Invoice.pdf ");
57 ceTe.close ();
58 sOut.close ();
59
60}
61
62 private Klasse
MyInvoice {
63
64
Privat BigDecimal Zwischensumme = new BigDecimal (0.0 );
65
Privat BigDecimal Fracht = new BigDecimal (0.0 );
66 Privat
Schwimmer yOffset = 0;
67 Enumeration e1 =
null;
68
Privat Vorlage Vorlage = new Template ();
69
private boolean pageTemplateImagesSet = false;
70
Privat RGBColor objBGColor = new WebColor ("# E0E0FF ");
71
Privat WebColor objTotalBGColor = new WebColor ("# FFC0C0 ");
72
Privat WebColor objThankYouText = new WebColor ("# 000080 ");
73 Privat
CeteDAO ceteDAO = null;
74
75 öffentliche MyInvoice
() {
76 / / Top Teil der
Rechnung
77
template.getElements (). Hinzufügen ( neue Bezeichnung ( " Nordwind \
N1234 " +
78
" International Drive \ nAnywhere , Erde ABC123 " , 56 , 0, 200 , 44,
79 Font.getHelvetica
()) );
80
template.getElements (). Hinzufügen ( neue Bezeichnung ( "Rechnung" ,
0, 0 , 540 , 18,
81
Font.getHelveticaBold () , 18, TextAlign.RIGHT ));
82
83
template.getElements (). Hinzufügen ( neue PageNumberingLabel ( "Seite %%
% % der SP %% %% ST " ,
84
450 , 253, 90 , 20, Font.getHelveticaBold () , 12, TextAlign.CENTER ));
85
86 / / Add
Rechnungsdetails Vorlage
.
Template.getElements 87 () hinzufügen ( getDetailsGroup ());
88
89 / / Add BillTo
Vorlage
.
Template.getElements 90 () hinzufügen ( getBillToGroup ());
91
92 / / Add ShipTo
Vorlage
.
Template.getElements 93 () hinzufügen ( getShipToGroup ());
94
95 / / Add Line
Elementvorlage
.
Template.getElements 96 () hinzufügen ( getLineItemGroup ());
97
98
/ / Das Bild wird auf der Seite Vorlage
99
setPageTemplateImage ();
100}
101
102
103
öffentliche Vorlage getTemplate () {
104 Rück Vorlage;
105 }
106
107 Privat
Gruppe getDetailsGroup () {
108
/ / Gibt eine Gruppe, welche die Detailvorlage
109 Gruppe
objGroup = new Group ( );
110
111
objGroup.add ( new Rectangle (340 , 24, 200 , 72, Grayscale.getBlack ()
112 objBGColor , 0,5 f
));
113
objGroup.add ( neue Bezeichnung ( "Order -ID: " , 343 , 25, 85 , 12,
114
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
115
objGroup.add ( neue Bezeichnung ( "Order Date: " , 343 , 39, 85 , 12,
116
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
117
objGroup.add ( neue Bezeichnung ( " Kunden-ID " , 343 , 53, 85 , 12,
118
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
119
objGroup.add ( neue Bezeichnung ( " Versanddatum " , 343 , 67, 85 ,
12,
120
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
121
objGroup.add ( neue Bezeichnung ( "Order -ID: " , 343 , 25, 85 , 12,
122
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
123
objGroup.add ( neue Bezeichnung ( " geliefert Via: " , 343, 81, 85 ,
12,
124
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
125
126 Rück objGroup ;
127 }
128
129 Privat
Gruppe getBillToGroup () {
130
/ / Gibt eine Gruppe mit dem Gesetzentwurf zur Vorlage
131 Gruppe
objGroup = new Group ( );
132
133
objGroup.add ( new Rectangle (25 , 120, 200 , 90, 0,5 f ));
134
objGroup.add (new Line ( 25 , 136, 225 , 136, 0,5 f ));
135
objGroup.add ( neue Bezeichnung ( " Bill To:" , 28 , 121, 200 , 12,
136
Font.getHelveticaBold () 12) );
137
138 Rück objGroup ;
139 }
140
141 Privat
Gruppe getShipToGroup () {
142
/ / Gibt eine Gruppe das Schiff enthält, Vorlage
143 Gruppe
objGroup = new Group ( );
144
145
objGroup.add ( new Rectangle (315 , 120, 200 , 90, 0,5 f ));
146
objGroup.add ( neue Linie ( 315 , 136, 515 , 136, 0,5 f ));
147
objGroup.add ( neue Bezeichnung ( "Ship To:" , 318 , 121, 200 , 12,
148
Font.getHelveticaBold () 12) );
149
150 Rück objGroup ;
151 }
152
153
Privat Gruppe getLineItemGroup () {
154
155
/ / Gibt eine Gruppe, welche die Positionen Vorlage
156 Gruppe
objGroup = new Group ( );
157
158 for
(int i = 0; i < 10; i + +) {
159
objGroup.add ( new Rectangle (0 , 306 + i * 36 , 540 , 18, objBGColor ,
160 objBGColor ));
161 }
162
objGroup.add ( new Rectangle (450 , 250, 90 , 20, 0,5 f ));
163
objGroup.add ( new Rectangle (450 , 702, 90 , 18, objTotalBGColor ,
164 objTotalBGColor ));
165
objGroup.add ( new Rectangle (0 , 270, 540 , 450, 0,5 f ));
166
objGroup.add (new Line ( 0 , 288, 540 , 288, 0,5 f ));
167
objGroup.add (new Line ( 0 , 666, 540 , 666, 0,5 f ));
168
objGroup.add (new Line ( 60 , 270, 60 , 666, 0,5 f ));
169
objGroup.add ( neue Linie ( 360 , 270, 360 , 720, 0,5 f ));
170
objGroup.add ( neue Linie ( 450 , 270, 450 , 720, 0,5 f ));
171
objGroup.add ( neue Linie ( 450 , 702, 540 , 702, 0,5 f ));
172
objGroup.add ( neue Bezeichnung ( "Menge ", 0 , 272, 60 , 12,
173
Font.getHelveticaBold () , 12, TextAlign.CENTER ));
174
objGroup.add ( neue Bezeichnung ( " Beschreibung" , 60 , 272, 300 ,
12,
175
Font.getHelveticaBold () , 12, TextAlign.CENTER ));
176
objGroup.add ( neue Bezeichnung ( " Einheitspreis " , 360 , 272, 90 ,
12,
177
Font.getHelveticaBold () , 12, TextAlign.CENTER ));
178
objGroup.add ( neue Bezeichnung ( " Preis " , 450, 272 , 90 , 12,
179
Font.getHelveticaBold () , 12, TextAlign.CENTER ));
180
181
objGroup.add ( neue Bezeichnung ( "Vielen Dank für Ihren Einkauf. \ NWir
" +
182
" schätzen Ihr Geschäft. " , 5, 672, 350 , 54,
183
Font.getHelveticaBold () , 18, objThankYouText ));
184
objGroup.add ( neue Bezeichnung ( " Zwischensumme " , 364, 668 , 82 ,
12,
185
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
186
objGroup.add ( neue Bezeichnung ( " Fracht" , 364, 686 , 82 , 12,
187
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
188
objGroup.add ( neue Bezeichnung ( "Total" , 364, 704 , 82 , 12,
189
Font.getHelveticaBold () , 12, TextAlign.RIGHT ));
190 Rück objGroup ;
191 }
192
193
private void setPageTemplateImage () {
194
/ / Fügt das Bild, um Seitenvorlage , wenn es nicht bereits hinzugefügt
195 if (!
PageTemplateImagesSet ) {
196 try {
197
template.getElements (). Hinzufügen ( neues Bild ( getServletContext ()
198
. GetRealPath ( "images / DPDFLogo.png ")
199 0 , 0, 0.16f ));
200 }
catch ( FileNotFoundException ex) {
201
ex.printStackTrace ( System.err );
202 }
203
pageTemplateImagesSet = true;
204 }
205 }
206
207
public void draw ( Anschlussverbindung, Dokument -Dokument
208 InvoiceNumber int )
{
209
/ / Jede Rechnung sollte einen neuen Abschnitt beginnen
210
document.getSections () begin () .
211 / / Ruft die
Rechnungsdaten
212
Vektor v1 = getInvoiceData (Anschluss, InvoiceNumber );
213 e1 = v1.elements ();
214
215 / /
Fügt die Rechnung, wenn es Daten gibt,
216 if ( e1 ! = Null) {
217
/ / Zeichnet die Rechnungsdaten , gibt eine Seite, Objekt, wenn es
218 / / die letzte Seite
219
Seite objLastPage = drawInvoiceData (Dokument) ;
220 /
/ Zeichnet aditional Seiten ggf.
221 while (
objLastPage == null) {
222
objLastPage = drawInvoiceData (Dokument) ;
223 }
224
/ / Zeichnet die Summen auf den Grund der letzten Seite der
225 / / Rechnung
226
drawTotals ( ceteDAO , objLastPage );
227 }
228
229 }
230
231
privaten Seite drawInvoiceData (Document document) {
232 / /
Spuren , wenn die Rechnung fertig
233
invoiceFinished boolean = true;
234 / /
Spuren die y-Position auf der Seite
235
236 if (
e1.hasMoreElements ()) {
237
ceteDAO = ( CeteDAO ) e1.nextElement ();
238 / / Setzt die
Frachtmenge
239 Fracht
ceteDAO.getFreight = ();
240 }
241
242 yOffset = 288 ;
243 / /
eine Seite für die Rechnung erstellen
244
Seite objPage = new -Seite ( PageSize.LETTER ,
245
PageOrientation.PORTRAIT , 36.0f );
246 / / Add
Details zu der Rechnung
247
drawInvoiceDetails ( ceteDAO , objPage );
248 / / In den
Gesetzentwurf Adresse
249 drawBillTo
( ceteDAO , objPage );
250 / / In den Schiff
-Adresse
251 drawShipTo
( ceteDAO , objPage );
252
253 / / In
Einzelposten auf der Rechnung
254
drawLineItem ( ceteDAO , objPage );
255
256 while (
e1.hasMoreElements ()) {
257 /
/ brechen, wenn an der Unterseite der Seite
258 if ( yOffset
> = 666 ) {
259 invoiceFinished
= false;
260 break;
261 }
262
ceteDAO = ( CeteDAO ) e1.nextElement ();
263 / / In
Einzelposten auf der Rechnung
264
drawLineItem ( ceteDAO , objPage );
265 }
266
267 / /
Seite hinzufügen zu dem Dokument
268
document.getPages () hinzufügen ( objPage ) .
269
270
/ / Wenn Die Rechnung wird zurück die Seite sonst null zurück , so beendet
271 / / wird
eine weitere Seite hinzugefügt werden
272 if (
invoiceFinished ) {
273 Rück objPage ;
274 } else {
275
objPage.getElements (). Hinzufügen ( neue Bezeichnung ( "Fortsetzung
...", 454 , 704 , 82,
276
12, Font.getHelvetica () , 12, TextAlign.RIGHT ));
277 return null ;
278 }
279 }
280
281
private void drawInvoiceDetails ( CeteDAO ceteDAO , Seite Seite ) {
282
283 / /
Fügt Rechnungsdetails auf die Seite
284
page.getElements (). Hinzufügen ( neue Bezeichnung ( String.valueOf ( ceteDAO
285
. GetOrderID ()) , 437, 25, 100 , 12, Font.getHelvetica ()
286 12) );
287
Simpledateformat= new Simple ( "d MMM yyyy ");
288
page.getElements (). Hinzufügen ( neue Bezeichnung ( dateFormat.format (
ceteDAO
289 .
GetOrderDate ()) , 437 , 39, 100 , 12,
290 Font.getHelvetica
() 12) );
291
page.getElements (). Hinzufügen ( neue Bezeichnung ( String.valueOf ( ceteDAO
292 .
GetCustomerID ()) , 437 , 53, 100 , 12,
293
Font.getHelvetica () 12) );
294
Datum date = ceteDAO.getShippedDate ();
295 if ( date! = Null) {
296
page.getElements (). Hinzufügen ( neue Bezeichnung ( dateFormat.format (Datum)
,
297
437 , 67, 100 , 12, Font.getHelvetica () 12) );
298 }
299
page.getElements (). Hinzufügen ( neue Bezeichnung ( ceteDAO.getShipperName ()
300
437 , 81, 100 , 12, Font.getHelvetica () 12) );
301
page.getElements (). Hinzufügen ( neue Interleaved25 ( String.valueOf ( ceteDAO
. 302
getOrderID ()) , 380, 4, 18, false) );
303
304 }
305
306
private void drawBillTo ( CeteDAO ceteDAO , Seite Seite ) {
307
308 / / Fügt
Rechnung zu adressieren
309
String billToAddress = ceteDAO.getBillName () + "\ n " +
310
ceteDAO.getBillAddress () + "\ n " +
311
ceteDAO.getBillCity () + "," +
312
ceteDAO.getBillPostalCode () + "\ n " +
313
ceteDAO.getBillCountry ();
314
page.getElements (). Hinzufügen ( neue Textarea ( billToAddress , 28 , 139,
315 194
, 49, Font.getHelvetica () , 12) );
316
317 }
318
319
private void drawShipTo ( CeteDAO ceteDAO , Seite Seite ) {
320
321 / / Fügt Schiff,
um Adresse
322
String shipToAddress = ceteDAO.getShipName () + "\ n " +
323
ceteDAO.getShipAddress () + "\ n " +
324
ceteDAO.getShipCity () + "," +
325
ceteDAO.getShipPostalCode () + "\ n " +
326
ceteDAO.getShipCountry ();
327
page.getElements (). Hinzufügen ( neue Textarea ( shipToAddress , 318 , 139,
328 194
, 49, Font.getHelvetica () , 12) );
329
330 }
331
332
private void drawLineItem ( CeteDAO ceteDAO , Seite Seite ) {
333 / /
Fügt einen Posten auf der Rechnung
334
BigDecimal Menge = new BigDecimal (0.0 );
335
BigDecimal unitprice = new BigDecimal (0.0 );
336
Menge = new BigDecimal ( ceteDAO.getQuantity ());
337
unitprice = ceteDAO.getUnitPrice ();
338
339
BigDecimal Linetotal = unitPrice.multiply (Menge );
340
Zwischensumme = subTotal.add ( Linetotal );
341
342
page.getElements (). Hinzufügen ( neue Bezeichnung ( quantity.toString () , 4,
343
3 + yOffset , 52 , 12, Font.getHelvetica () , 12,
344 TextAlign.RIGHT ));
345
346
page.getElements (). Hinzufügen ( neue Bezeichnung ( ceteDAO.getProductName ()
347
64 , 3 + yOffset , 292 , 12, Font.getHelvetica () , 12) );
348
349
unitprice = unitPrice.setScale (2, BigDecimal.ROUND_HALF_EVEN );
Linetotal
350 = lineTotal.setScale (2, BigDecimal.ROUND_HALF_EVEN );
351
DecimalFormat df = new DecimalFormat ("# , # # 0.00 ");
352
page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format ( unitprice
353
. Double ()) , 364, 3 + yOffset , 82 , 12,
354
Font.getHelvetica () , 12, TextAlign.RIGHT ));
355
page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format ( Linetotal
356
. Double ()) , 454, 3 + yOffset , 82 , 12,
357
Font.getHelvetica () , 12, TextAlign.RIGHT ));
358
359 yOffset + = 18;
360 }
361
362
private void drawTotals ( CeteDAO ceteDAO , Seite Seite ) {
363
/ / In den Summen der Unterseite der Rechnung
364
BigDecimal Grandtotal = subTotal.add (Fracht );
365
Zwischensumme = subTotal.setScale (2, BigDecimal.ROUND_HALF_EVEN );
366
Fracht = freight.setScale (2, BigDecimal.ROUND_HALF_EVEN );
Grandtotal
367 = grandTotal.setScale (2, BigDecimal.ROUND_HALF_EVEN );
368
DecimalFormat df = new DecimalFormat ("# , # # 0.00 ");
369
page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format (Zwischensumme
370
. Double ()) , 454, 667 , 82 , 12, Font.getHelvetica () , 12,
371 TextAlign.RIGHT ));
372
page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format (Fracht
373
. Double ()) , 454, 685 , 82 , 12, Font.getHelvetica () , 12,
374 TextAlign.RIGHT ));
375
page.getElements (). Hinzufügen ( neue Bezeichnung ( df.format ( Grandtotal
376
. Double ()) , 454, 703 , 82 , 12, Font.getHelvetica () , 12,
377 TextAlign.RIGHT ));
378 }
379
380
Privat Vektor getInvoiceData (Anschluss -Anschluss,
381 InvoiceNumber int )
{
382 Vektor v1 = null;
383 /
/ Erstellt ein ResultSet für die invioce
384 try {
385
PreparedStatement ps = Connection.prepareStatement (
386
"SELECT o.OrderID , o.CustomerID , o.OrderDate , o.ShippedDate , Fracht,
" +
387
" o.ShipName , o.ShipAddress , o.ShipCity , o.ShipPostalCode ,
o.ShipCountry , " +
388
" c.CompanyName als BillName , c.Address als BillAddress , " +
389
" c.City als BillCity , c.PostalCode als BillPostalCode , " +
390
" c.Country als BillCountry , s.CompanyName als ShipperName , " +
391
" p.ProductName , od.UnitPrice , od.Quantity " +
392
" FROM Bestellungen o " +
393
"JOIN Kunden c ON" +
394
" o.CustomerID c.CustomerID = " +
395
"JOIN Shippers s ON" +
396
" o.ShipVia s.ShipperID = " +
397
"JOIN [Order Details] od ON" +
398
" o.OrderID od.OrderID = " +
399
"JOIN Produkte p ON" +
400
" od.ProductID p.ProductID = " +
401
"Wo o.OrderID = ");
402
403 ps.setInt
(1, InvoiceNumber );
404
ResultSet rs = ps.executeQuery ();
405 v1 = new Vector (
1,1) ;
406 while ( rs.next ())
{
407
CeteDAO ceteDAO = new CeteDAO ( rs.getInt (1) , rs.getString (2) ,
408 rs.getDate
(3) , rs.getDate (4) ,
409
rs.getBigDecimal (5) , rs.getString (6) ,
410
rs.getString (7) , rs.getString (8) ,
411
rs.getString (9) , rs.getString (10) ,
412
rs.getString (11) , rs.getString (12) ,
413
rs.getString (13) , rs.getString (14) ,
414
rs.getString (15) , rs.getString (16)
415
rs.getString (17) , rs.getBigDecimal (18)
416 rs.getShort (19 ));
417 v1.add ( ceteDAO );
418 }
419 } catch (
SQLException ex1 ) {
420
ex1.printStackTrace ( System.err );
421 }
422 Rück v1 ;
423 }
424 }
425
426 Klasse CeteDAO {
427
428 private int orderID
;
429 private
String customerID ;
430 Privat Datum
orderdate ;
431 Privat Datum
ShippedDate ;
432 Privat
BigDecimal Fracht;
433 private String
Liefername ;
434 private
String shipAddress ;
435 private String
ShipCity ;
436 private
String ShipPostalCode ;
437 private
String Bestimmungsland ;
438 private String
billName ;
439 private
String billAddress ;
440 private String
billCity ;
441
private String billPostalCode ;
442 private
String billCountry ;
443 private
String shipperName ;
444 private
String product ;
445 Privat
BigDecimal unitprice ;
446 PrivatkurzMenge
;
447
448
öffentliche CeteDAO (int orderID , String customerID , Datum orderdate ,
449
Datum Lieferdatum , BigDecimal Fracht , String Schiffsnamen ,
450
shipAddress String , String ShipCity , String ShipPostalCode ,
451
ShipCountry String , String billName , String billAddress ,
452
billCity String , String billPostalCode , String billCountry ,
453
shipperName String , String product , BigDecimal unitprice ,
454 Kurz Menge ) {
455 this.orderID =
orderID ;
456
this.customerID = customerID ;
457
this.orderDate = orderdate ;
458
this.shippedDate = Lieferdatum ;
459 this.freight =
Fracht;
460 this.shipName
= Liefername ;
461
this.shipAddress = shipAddress ;
462 this.shipCity
= ShipCity ;
463
this.shipPostalCode = ShipPostalCode ;
464
this.shipCountry = Bestimmungsland ;
465 this.billName
= billName ;
466
this.billAddress = billAddress ;
467 this.billCity
= billCity ;
468
this.billPostalCode = billPostalCode ;
469
this.billCountry = billCountry ;
470
this.shipperName = shipperName ;
471
this.productName = product ;
472 this.unitPrice
unitprice = ;
473 this.quantity
= Menge ;
474 }
475
476 public int
getOrderID () {
477 Rück orderID ;
478 }
479
480 public
String getCustomerID () {
481 Rück customerID ;
482 }
483
484 öffentliche
Datum getOrderDate () {
485 Rückorderdate;
486 }
487
488
öffentliche Datum getShippedDate () {
489 Rück ShippedDate ;
490 }
491
492
öffentliche BigDecimal getFreight () {
493 Rückfracht ;
494 }
495
496 public
String getShipName () {
497 Rückliefername;
498 }
499
500
öffentliche getShipAddress String () {
501 Rück shipAddress ;
502 }
503
504 public
String getShipCity () {
505 Rück ShipCity ;
506 }
507
508
public String getShipPostalCode () {
509 Rück
ShipPostalCode ;
510 }
511
512 public
String getShipCountry () {
513 Rückbestimmungsland;
514 }
515
516 public
String getBillName () {
517 Rück billName ;
518 }
519
520 public
String getBillAddress () {
521 Rück billAddress ;
522 }
523
524 public
String getBillCity () {
525 Rück billCity ;
526 }
527
528
public String getBillPostalCode () {
529 Rück
billPostalCode ;
530 }
531
532 public
String getBillCountry () {
533 Rück billCountry ;
534 }
535
536 public
String getShipperName () {
537 Rück shipperName ;
538 }
539
540 public
String getProductName () {
541 Rückproduct;
542 }
543
544
öffentliche BigDecimal getUnitPrice () {
545 Rückunitprice;
546 }
547
548 öffentliche
Kurz getQuantity () {
549 Rücklaufmenge ;
550 }
551
552
553
554
555 }
556
557
558
559
560 }