public static Invoice createInvoice()
        {
            ZfDate today     = new ZfDateDay();
            ZfDate nextMonth = new ZfDateMonth(DateUtils.addMonths(today, 1));

            Invoice invoice = new Invoice(ConformanceLevel.BASIC);                 // <1>

            invoice.setHeader(new Header()
                              .setInvoiceNumber("20131122-42")
                              .setCode(DocumentCode._380)
                              .setIssued(today)
                              .addNote(new Note("MFG"))
                              .setName("Rechnung"));

            Trade trade = new Trade();

            trade.setAgreement(new Agreement()                  // <2>
                               .setSeller(new TradeParty()
                                          .setName("Seller Inc.")
                                          .setAddress(new Address("80331", "Marienplatz 1", "München", Country.DE))
                                          .addTaxRegistrations(new TaxRegistration("DE122...", Reference.FC)))
                               .setBuyer(new TradeParty()
                                         .setName("Buyer Inc.")
                                         .setAddress(new Address("50667", "Domkloster 4", "Köln", Country.DE))
                                         .addTaxRegistrations(new TaxRegistration("DE123...", Reference.FC))));

            trade.setDelivery(new Delivery(nextMonth));

            trade.setSettlement(new Settlement()
                                .setPaymentReference("20131122-42")
                                .setCurrency(Currency.EUR)
                                .addPaymentMeans(new PaymentMeans()
                                                 .setPayeeAccount(new CreditorFinancialAccount("DE01234.."))
                                                 .setPayeeInstitution(new FinancialInstitution("GENO...")))
                                .setMonetarySummation(new MonetarySummation()
                                                      .setLineTotal(new Amount(100, Currency.EUR))
                                                      .setChargeTotal(new Amount(0, Currency.EUR))
                                                      .setAllowanceTotal(new Amount(0, Currency.EUR))
                                                      .setTaxBasisTotal(new Amount(100, Currency.EUR))
                                                      .setTaxTotal(new Amount(19, Currency.EUR))
                                                      .setGrandTotal(new Amount(119, Currency.EUR))));

            trade.addItem(new Item()
                          .setProduct(new Product().setName("Saddle"))
                          .setDelivery(new SpecifiedDelivery(new Quantity(1, UnitOfMeasurement.UNIT))));
            invoice.setTrade(trade);

            return(invoice);
        }
		public static Invoice createInvoice ()
		{

			ZfDate today = new ZfDateDay ();
			ZfDate nextMonth = new ZfDateMonth (DateUtils.addMonths (today, 1));

			Invoice invoice = new Invoice (ConformanceLevel.BASIC);    // <1>
			invoice.setHeader(new Header()
				.setInvoiceNumber("20131122-42")
				.setCode(DocumentCode._380)
				.setIssued(today)
				.addNote(new Note("MFG"))
				.setName ("Rechnung"));

			Trade trade = new Trade ();
			trade.setAgreement (new Agreement ()    // <2>
				.setSeller (new TradeParty ()
					.setName ("Seller Inc.")
					.setAddress (new Address ("80331", "Marienplatz 1", "München", Country.DE))
					.addTaxRegistrations (new TaxRegistration ("DE122...", Reference.FC)))
				.setBuyer (new TradeParty ()
					.setName ("Buyer Inc.")
					.setAddress (new Address ("50667", "Domkloster 4", "Köln", Country.DE))
					.addTaxRegistrations (new TaxRegistration ("DE123...", Reference.FC))));

			trade.setDelivery (new Delivery (nextMonth));

			trade.setSettlement (new Settlement ()
				.setPaymentReference ("20131122-42")
				.setCurrency (Currency.EUR)
				.addPaymentMeans (new PaymentMeans ()
					.setPayeeAccount (new CreditorFinancialAccount ("DE01234.."))
					.setPayeeInstitution (new FinancialInstitution ("GENO...")))
				.setMonetarySummation (new MonetarySummation ()
					.setLineTotal (new Amount (100, Currency.EUR))
					.setChargeTotal (new Amount (0, Currency.EUR))
					.setAllowanceTotal (new Amount (0, Currency.EUR))
					.setTaxBasisTotal (new Amount (100, Currency.EUR))
					.setTaxTotal (new Amount (19, Currency.EUR))               
					.setGrandTotal (new Amount (119, Currency.EUR))));

			trade.addItem (new Item ()
				.setProduct (new Product ().setName ("Saddle"))
				.setDelivery (new SpecifiedDelivery (new Quantity (1, UnitOfMeasurement.UNIT))));
			invoice.setTrade (trade);

			return invoice;
		}