Files
mustangproject/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java

250 lines
4.8 KiB
Java

/** **********************************************************************
*
* Copyright 2018 Jochen Staerk
*
* Use is subject to license terms.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at http://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* See the License for the specific language governing permissions and
* limitations under the License.
*
*********************************************************************** */
package org.mustangproject.ZUGFeRD;
/**
* Mustangproject's ZUGFeRD implementation
* Neccessary interface for ZUGFeRD exporter
* Licensed under the APLv2
* @date 2014-05-10 to 2014-06-25
* @version 1.2.0
* @author jstaerk
* */
import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants;
import java.util.Date;
public interface IZUGFeRDExportableTransaction {
/**
* appears in /rsm:CrossIndustryDocument/rsm:HeaderExchangedDocument/ram:Name
* @return Name of document
*/
default String getDocumentName() {
return "RECHNUNG";
}
/**
*
*
* @return Code of Document
*/
default String getDocumentCode() {
return DocumentCodeTypeConstants.INVOICE;
}
/**
* Number, typically invoice number of the invoice
*
* @return invoice number
*/
default String getNumber() {
return null;
}
/**
* the date when the invoice was created
*
* @return when the invoice was created
*/
default Date getIssueDate() {
return null;
}
/**
* this should be the full sender institution name, details, manager and tax registration. It is one of the few functions which may return null. e.g.
* <p>
* Lieferant GmbH Lieferantenstraße 20 80333 München Deutschland Geschäftsführer: Hans Muster Handelsregisternummer: H A 123
*
* @return null or full sender institution name, details, manager and tax registration
*/
default String getOwnOrganisationFullPlaintextInfo() {
return null;
}
/**
* when the invoice is to be paid
*
* @return when the invoice is to be paid
*/
default Date getDueDate() {
return null;
}
/**
* who processed the order
*
* @return the contact person at the supplier side
*/
default IZUGFeRDExportableContact getOwnContact() {
return null;
}
IZUGFeRDAllowanceCharge[] getZFAllowances();
IZUGFeRDAllowanceCharge[] getZFCharges();
IZUGFeRDAllowanceCharge[] getZFLogisticsServiceCharges();
IZUGFeRDExportableItem[] getZFItems();
/**
* the recipient
*
* @return the recipient of the invoice
*/
IZUGFeRDExportableContact getRecipient();
/**
* the creditors payment informations
*
* @return an array of IZUGFeRDTradeSettlementPayment
*/
IZUGFeRDTradeSettlementPayment[] getTradeSettlementPayment();
/**
* Tax ID (not VAT ID) of the sender
*
* @return Tax ID (not VAT ID) of the sender
*/
default String getOwnTaxID() {
return null;
}
/**
* VAT ID (Umsatzsteueridentifikationsnummer) of the sender
*
* @return VAT ID (Umsatzsteueridentifikationsnummer) of the sender
*/
default String getOwnVATID() {
return null;
}
/**
* supplier identification assigned by the costumer
*
* @return the sender's identification
*/
default String getOwnForeignOrganisationID() {
return null;
}
/**
* own name
*
* @return the sender's organisation name
*/
default String getOwnOrganisationName() {
return null;
}
/**
* own street address
*
* @return sender street address
*/
default String getOwnStreet() {
return null;
}
/**
* own street postal code
*
* @return sender postal code
*/
default String getOwnZIP() {
return null;
}
/**
* own city
*
* @return the invoice sender's city
*/
default String getOwnLocation() {
return null;
}
/**
* own two digit country code
*
* @return the invoice senders two character country iso code
*/
default String getOwnCountry() {
return null;
}
/**
* get delivery date
*
* @return the day the goods have been delivered
*/
Date getDeliveryDate();
/**
* get main invoice currency used on the invoice
*
* @return three character currency of this invoice
*/
default String getCurrency() {
return null;
}
/**
* get payment term descriptional text e.g. Bis zum 22.10.2015 ohne Abzug
*
* @return get payment terms
*/
default String getPaymentTermDescription() {
return null;
}
/**
* get reference document number typically used for Invoice Corrections Will be added as IncludedNote in comfort profile
*
* @return the ID of the document this document refers to
*/
default String getReferenceNumber() {
return null;
}
}