Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions openTRANS/INVOICE/Invoice.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace openTRANS {
[XmlRoot("INVOICE", Namespace = "http://www.opentrans.org/XMLSchema/2.1", IsNullable = false)]
public class Invoice {
[XmlElement("schemaLocation", Namespace = XmlSchema.InstanceNamespace)]
public string xsiSchemaLocation = "http://www.opentrans.org/XMLSchema/2.1%20opentrans_2_1.xsd";

[XmlAttribute("version")]
public const string Version = "2.1";

[XmlElement("INVOICE_HEADER", Namespace = XmlSchema.InstanceNamespace)]
public InvoiceHeader InvoiceHeader { get; set; }

[XmlArray("INVOICE_ITEM_LIST")]
[XmlArrayItem("INVOICE_ITEM")]
public List<InvoiceItem> InvoiceItemList { get; set; }

[XmlElement("INVOICE_SUMMARY")]
public InvoiceSummary InvoiceSummary {
get => new InvoiceSummary(this);
set { }
}

}
}
16 changes: 16 additions & 0 deletions openTRANS/INVOICE/InvoiceCorrection.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using System.Collections.Generic;
using System.Xml.Serialization;
using static openTRANS.Common;

namespace openTRANS {
public class InvoiceCorrection {
[XmlElement("INVOICE_REFERENCE")]
public InvoiceReference InvoiceReference { get; set; }

[XmlElement("ADJUSTMENT_REASON_DESCR")]
public string AdjustmentReasonDescr { get; set; }

[XmlElement("ADJUSTMENT_REASON_CODES")]
public List<string> AdjustmentReasonCodes { get; set; }
}
}
14 changes: 14 additions & 0 deletions openTRANS/INVOICE/InvoiceHeader.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
using System.Xml.Serialization;

namespace openTRANS {
public class InvoiceHeader {
[XmlElement("CONTROL_INFO")]
public ControlInfo ControlInfo { get; set; }

[XmlElement("INVOICE_INFO")]
public InvoiceInfo InvoiceInfo { get; set; }

[XmlElement("ORDER_HISTROY")]
public OrderHistory OrderHistory { get; set; }
}
}
87 changes: 87 additions & 0 deletions openTRANS/INVOICE/InvoiceInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using static openTRANS.Common;

namespace openTRANS {
public class InvoiceInfo {
[XmlElement("INVOICE_ID")]
public string InvoiceId { get; set; }

[XmlElement("INVOICE_DATE")]
public DateTime InvoiceDate { get; set; }

[XmlElement("REASON_FOR_TRANSFER")]
public string ReasonForTransfer { get; set; }

[XmlElement("INVOICE_TYPE")]
public string InvoiceType { get; set; } = Common.InvoiceType.Invoice;

[XmlElement("INVOICE_COVERAGE")]
public string InvoiceCoverage { get; set; } = InvoiceCoverageType.Single;

[XmlElement("DELIVERYNOTE_ID")]
public string DeliverynoteId { get; set; }

[XmlElement("DELIVERY_DATE")]
public DeliveryDate DeliveryDate { get; set; }

[XmlElement("DELIVERY_IDREF")]
public TypedItem DeliveryIdref { get; set; }

[XmlElement("LANGUAGE", Namespace = Namespace.bmecat, IsNullable = false)]
public Language Language { get; set; }

[XmlElement("MIME_ROOT", Namespace = Namespace.bmecat, IsNullable = false)]
public string MimeRoot { get; set; }

[XmlArray("PARTIES")]
[XmlArrayItem("PARTY")]
public List<Party> Parties { get; set; }

[XmlElement("INVOICE_ISSUER_IDREF")]
public TypedItem InvoiceIssuerIdref { get; set; }

[XmlElement("INVOICE_RECIPIENT_IDREF")]
public TypedItem InvoiceRecipientIdref { get; set; }

[XmlElement("BUYER_IDREF", Namespace = Namespace.bmecat, IsNullable = false)]
public TypedItem BuyerIdref { get; set; }

[XmlElement("SUPPLIER_IDREF", Namespace = Namespace.bmecat, IsNullable = false)]
public TypedItem SupplierIdref { get; set; }

[XmlElement("PAYER_IDREF")]
public TypedItem Payer_Idref { get; set; }

[XmlElement("REMITTEE_IDREF")]
public TypedItem RemitteeIdref { get; set; }

[XmlElement("DOCEXCHANGE_PARTIES_REFERENCE")]
public DocExchangePartiesReference DocExchangePartiesReference { get; set; }

[XmlElement("CURRNECY", Namespace = Namespace.bmecat, IsNullable = false)]
public string Currency { get; set; }

[XmlElement("PAYMENT")]
public Payment Payment { get; set; }

[XmlElement("TERMS_AND_CONDITIONS")]
public string TermsAndConditions { get; set; }

[XmlElement("ACCOUNTING_INFO", Namespace = Namespace.bmecat, IsNullable = false)]
public AccountingInfo AccountingInfo { get; set; }

[XmlElement("E_BILLING")]
public EBilling EBilling { get; set; }

[XmlElement("LOGISTIC_DETAILS_INFO")]
public LogisticDetailsInfo LogisticDetailsInfo { get; set; }

[XmlElement("MIME_INFO")]
public MimeInfo MimeInfo { get; set; }

[XmlElement("REMARKS")]
public List<TypedItem> Remarks { get; set; }
}
}
68 changes: 68 additions & 0 deletions openTRANS/INVOICE/InvoiceItem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
using System.Collections.Generic;
using System.Xml.Serialization;
using static openTRANS.Common;

namespace openTRANS {
public class InvoiceItem {
[XmlAttribute("type")]
public string Type { get; set; }

[XmlElement("LINE_ITEM_ID")]
public string LineItemId { get; set; }

[XmlElement("PRODUCT_ID")]
public ProductId ProductId { get; set; }

[XmlArray("PRODUCT_FEATURES")]
[XmlArrayItem("FEATURE")]
public List<Feature> ProductFeatures { get; set; }

[XmlElement("PRODUCT_COMPONENTS")]
public ProductComponents ProductComponents { get; set; }

[XmlElement("QUANTITY")]
public decimal Quantity { get; set; }

[XmlElement("ORDER_UNIT")]
public string OrderUnit { get; set; }

[XmlElement("PRODUCT_PRICE_FIX")]
public ProductPriceFix ProductPriceFix { get; set; }

[XmlElement("PRICE_LINE_AMOUNT")]
public decimal PriceLineAmount { get; set; }

[XmlElement("FOREIGN_CURRENCY")]
public string ForeignCurrency { get; set; }

[XmlElement("EXCHANGE_RATE")]
public decimal ExchangeRate { get; set; }

[XmlElement("INVOICE_CORRECTION")]
public InvoiceCorrection InvoiceCorrection { get; set; }

[XmlElement("ORDER_REFERENCE")]
public OrderReference OrderReference { get; set; }

[XmlElement("SUPPLIER_ORDER_REFERENCE")]
public SupplierOrderReference SupplierOrderReference { get; set; }

[XmlElement("CUSTOMER_ORDER_REFERENCE")]
public CustomerOrderReference CustomerOrderReference { get; set; }

[XmlElement("DELIVERY_REFERENCE")]
public DeliveryReference DeliveryReference { get; set; }

[XmlElement("LOGISTIC_DETAILS")]
public LogisticDetails LogisticDetails { get; set; }

[XmlElement("ACCOUNTING_INFO")]
public AccountingInfo AccountingInfo { get; set; }

[XmlElement("MIME_INFO")]
public MimeInfo MimeInfo { get; set; }

[XmlElement("REMARKS")]
public List<TypedItem> Remarks { get; set; }
}
}
27 changes: 27 additions & 0 deletions openTRANS/INVOICE/InvoiceReference.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System;
using System.Xml.Serialization;

namespace openTRANS {
public class InvoiceReference {
[XmlAttribute("type")]
public string Type { get; set; }

[XmlElement("INVOICE_ID")]
public string InvoiceId { get; set; }

[XmlElement("LINE_ITEM_ID")]
public string LineItemId { get; set; }

[XmlElement("INVOICE_DATE")]
public DateTime InvoiceDate { get; set; }

[XmlElement("POST_DATE")]
public DateTime PostDate { get; set; }

[XmlElement("REASON_FOR_TRANSPORT")]
public string ReasonForTransport { get; set; }

[XmlElement("INVOICE_DESCR")]
public string InvoiceDescr { get; set; }
}
}
33 changes: 33 additions & 0 deletions openTRANS/INVOICE/InvoiceSummary.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
using System.Linq;
using System.Xml.Serialization;

namespace openTRANS {
public class InvoiceSummary {
public InvoiceSummary() {

}
public InvoiceSummary(Invoice invoice) {
TotalItemNum = invoice.InvoiceItemList.Count;
TotalAmount = invoice.InvoiceItemList.Sum(ii => ii.PriceLineAmount);
}

[XmlElement("TOTAL_ITEM_NUM")]
public int TotalItemNum { get; set; }

[XmlElement("NET_VALUE_GOODS")]
public decimal NetValueGoods { get; set; }

[XmlElement("NET_VALUE_EXTRA")]
public decimal NetValueExtra { get; set; }

[XmlElement("TOTAL_AMOUNT")]
public decimal TotalAmount { get; set; }

[XmlElement("ALLOW_OR_CHARGES_FIX")]
public AllowOrChargesFix AllowOrChargesFix { get; set; }

[XmlElement("TOTAL_TAX")]
public TotalTax TotalTax { get; set; }

}
}
16 changes: 16 additions & 0 deletions openTRANS/SHARED/AccountingInfo.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using System.Xml.Serialization;
using static openTRANS.Common;

namespace openTRANS {
public class AccountingInfo {
[XmlElement("COST_CATEGORY_ID")]
public TypedItem CostCategoryId { get; set; }

[XmlElement("COST_TYPE")]
public string CostType { get; set; }

[XmlElement("COST_ACCOUNT")]
public string CostAccount { get; set; }

}
}
8 changes: 8 additions & 0 deletions openTRANS/SHARED/AreaRefs.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
using System.Xml.Serialization;

namespace openTRANS {
public class AreaRefs {
[XmlElement("AREA_IDREF")]
public string AreaIdref { get; set; }
}
}
52 changes: 52 additions & 0 deletions openTRANS/SHARED/Common.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,58 @@ public static class TaxCategory
public const string ZeroRate = "zero_rate";
}

public static class AdjustmentReasonCodes {
public const string Handelsrabatt = "19";
}
public static class InvoiceItemType {
public const string OrderItem = "order_item";
public const string ExtraItem = "extra_item";
public const string PledgeItem = "pledge_item";
}
public static class InvoiceType {
public const string AdviceOfamendment = "advice_of_amendment";
public const string CreditInfo = "credit_memo";
public const string Invoice = "invoice";
public const string InvoiceCopy = "invoice_copy";
}

public static class InvoiceReferenceType {
public const string Invoice = "invoice";
public const string InvoiceList = "invloicelist";
public const string CreditMemo = "credit_memo";
}

public static class InvoiceCoverageType {
public const string Single = "single";
public const string Collective = "collective";
}

public static class MeansOfTransportType {
public const string Air = "air";
public const string Maritime = "maritime";
public const string Multimodal = "multimodal";
public const string Rail = "rail";
public const string Road = "road";
public const string Custom = "";
}

public static class CostCategoryIdType {
public const string CostCenter = "cost_center";
public const string Project = "project";
public const string WorkOrder = "work_order";

}

public static class PackageType {
public const string BuyerSpecific = "buyer_specific";
public const string DelivererSpecific = "deliverer_specific";
public const string Grai = "grai";
public const string Mtv = "mtv";
public const string Nve = "nve";
public const string Sscc = "sscc";
public const string Custom = "";
}

public class TypedItem
{
public TypedItem() //needed for serializer
Expand Down
6 changes: 0 additions & 6 deletions openTRANS/SHARED/Components.cs

This file was deleted.

Loading