diff --git a/Intacct.SDK.Tests/Functions/InventoryControl/LineSubtotalTest.cs b/Intacct.SDK.Tests/Functions/InventoryControl/LineSubtotalTest.cs
new file mode 100644
index 00000000..90423940
--- /dev/null
+++ b/Intacct.SDK.Tests/Functions/InventoryControl/LineSubtotalTest.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using System.Xml;
+using Intacct.SDK.Functions.OrderEntry;
+using Intacct.SDK.Functions;
+using Intacct.SDK.Tests.Xml;
+using Intacct.SDK.Xml;
+using Xunit;
+using Intacct.SDK.Functions.InventoryControl;
+
+namespace Intacct.SDK.Tests.Functions.InventoryControl
+{
+ public class LineSubtotalTest : XmlObjectTestHelper
+ {
+ [Fact]
+ public void GetXmlTest()
+ {
+ string expected = @"
+
+ GST
+ 17.5
+";
+
+ var record = new LineSubtotal()
+ {
+ OverrideDetailId = "GST",
+ Trx_tax = 17.5m
+ };
+
+ this.CompareXml(expected, record);
+ }
+ }
+}
diff --git a/Intacct.SDK.Tests/Functions/OrderEntry/OrderEntryTransactionLineSubtotalTest.cs b/Intacct.SDK.Tests/Functions/OrderEntry/OrderEntryTransactionLineSubtotalTest.cs
new file mode 100644
index 00000000..3378ba91
--- /dev/null
+++ b/Intacct.SDK.Tests/Functions/OrderEntry/OrderEntryTransactionLineSubtotalTest.cs
@@ -0,0 +1,125 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using System.Xml;
+using Intacct.SDK.Functions.InventoryControl;
+using Intacct.SDK.Functions.OrderEntry;
+using Intacct.SDK.Functions;
+using Intacct.SDK.Tests.Xml;
+using Intacct.SDK.Xml;
+using Xunit;
+
+namespace Intacct.SDK.Tests.Functions.OrderEntry
+{
+ public class OrderEntryTransactionLineSubtotalTest : XmlObjectTestHelper
+ {
+ [Fact]
+ public void GetAllXmlTest()
+ {
+ string expected = @"
+
+ 092304
+ 26323
+ Item Description
+ true
+ 93294
+ 2340
+ 593
+ Test
+ 10.00
+ 32.35
+ None
+ SF
+ Receiving
+ Memo
+
+
+ customfield1
+ customvalue1
+
+
+ template
+
+ 2015
+ 06
+ 30
+
+
+ 2015
+ 07
+ 31
+
+ Quarterly
+ 235
+ 23423434
+ 797656
+ 90295
+ 243609
+ 9062
+ Complete
+ 9850
+ 3525
+
+
+ GST
+ 17.5
+
+
+ WET
+ 4.25
+
+
+";
+
+ OrderEntryTransactionLineCreate record = new OrderEntryTransactionLineCreate()
+ {
+ BundleNumber = "092304",
+ ItemId = "26323",
+ ItemDescription = "Item Description",
+ Taxable = true,
+ WarehouseId = "93294",
+ Quantity = 2340,
+ Unit = "593",
+ LineLevelSimpleTaxType = "Test",
+ DiscountPercent = 10.00M,
+ Price = 32.35M,
+ DiscountSurchargeMemo = "None",
+ Memo = "Memo",
+ RevRecTemplate = "template",
+ RevRecStartDate = new DateTime(2015, 06, 30),
+ RevRecEndDate = new DateTime(2015, 07, 31),
+ RenewalMacro = "Quarterly",
+ FulfillmentStatus = "Complete",
+ TaskNumber = "9850",
+ BillingTemplate = "3525",
+ LocationId = "SF",
+ DepartmentId = "Receiving",
+ ProjectId = "235",
+ CustomerId = "23423434",
+ VendorId = "797656",
+ EmployeeId = "90295",
+ ClassId = "243609",
+ ContractId = "9062",
+ CustomFields = new Dictionary
+ {
+ { "customfield1", "customvalue1" }
+ }
+ };
+
+ record.LineSubtotals.Add(new LineSubtotal()
+ {
+ OverrideDetailId = "GST",
+ Trx_tax = 17.5m
+ });
+
+ record.LineSubtotals.Add(new LineSubtotal()
+ {
+ OverrideDetailId = "WET",
+ Trx_tax = 4.25m
+ });
+
+ this.CompareXml(expected, record);
+ }
+ }
+}
diff --git a/Intacct.SDK/Functions/InventoryControl/AbstractLineSubtotal.cs b/Intacct.SDK/Functions/InventoryControl/AbstractLineSubtotal.cs
new file mode 100644
index 00000000..84e489bb
--- /dev/null
+++ b/Intacct.SDK/Functions/InventoryControl/AbstractLineSubtotal.cs
@@ -0,0 +1,22 @@
+using Intacct.SDK.Xml;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Intacct.SDK.Functions.InventoryControl
+{
+ public abstract class AbstractLineSubtotal : IXmlObject
+ {
+ public string OverrideDetailId;
+
+ public decimal? Trx_tax;
+
+ public abstract void WriteXml(ref IaXmlWriter xml);
+
+ protected AbstractLineSubtotal()
+ {
+ }
+ }
+}
diff --git a/Intacct.SDK/Functions/InventoryControl/LineSubtotal.cs b/Intacct.SDK/Functions/InventoryControl/LineSubtotal.cs
new file mode 100644
index 00000000..d046dc0c
--- /dev/null
+++ b/Intacct.SDK/Functions/InventoryControl/LineSubtotal.cs
@@ -0,0 +1,20 @@
+using Intacct.SDK.Xml;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Intacct.SDK.Functions.InventoryControl
+{
+ public class LineSubtotal : AbstractLineSubtotal
+ {
+ public override void WriteXml(ref IaXmlWriter xml)
+ {
+ xml.WriteStartElement("linesubtotal");
+ xml.WriteElement("overridedetailid", OverrideDetailId);
+ xml.WriteElement("trx_tax", Trx_tax);
+ xml.WriteEndElement();
+ }
+ }
+}
diff --git a/Intacct.SDK/Functions/OrderEntry/AbstractOrderEntryTransactionLine.cs b/Intacct.SDK/Functions/OrderEntry/AbstractOrderEntryTransactionLine.cs
index 995b3938..88380cd1 100644
--- a/Intacct.SDK/Functions/OrderEntry/AbstractOrderEntryTransactionLine.cs
+++ b/Intacct.SDK/Functions/OrderEntry/AbstractOrderEntryTransactionLine.cs
@@ -83,6 +83,8 @@ public abstract class AbstractOrderEntryTransactionLine : IXmlObject
public string ContractId;
+ public List LineSubtotals = new List();
+
public Dictionary CustomFields = new Dictionary();
protected AbstractOrderEntryTransactionLine()
diff --git a/Intacct.SDK/Functions/OrderEntry/OrderEntryTransactionLineCreate.cs b/Intacct.SDK/Functions/OrderEntry/OrderEntryTransactionLineCreate.cs
index 4e5bbc9a..43aa25b1 100644
--- a/Intacct.SDK/Functions/OrderEntry/OrderEntryTransactionLineCreate.cs
+++ b/Intacct.SDK/Functions/OrderEntry/OrderEntryTransactionLineCreate.cs
@@ -57,6 +57,16 @@ public override void WriteXml(ref IaXmlWriter xml)
xml.WriteEndElement(); //itemdetails
}
+ if (LineSubtotals.Count > 0)
+ {
+ xml.WriteStartElement("linesubtotals");
+ foreach (AbstractLineSubtotal subtotal in LineSubtotals)
+ {
+ subtotal.WriteXml(ref xml);
+ }
+ xml.WriteEndElement();
+ }
+
xml.WriteCustomFieldsExplicit(CustomFields);
xml.WriteElement("revrectemplate", RevRecTemplate);
diff --git a/Intacct.SDK/Functions/OrderEntry/OrderEntryTransactionLineUpdate.cs b/Intacct.SDK/Functions/OrderEntry/OrderEntryTransactionLineUpdate.cs
index fe66bcd9..e1ddf0c4 100644
--- a/Intacct.SDK/Functions/OrderEntry/OrderEntryTransactionLineUpdate.cs
+++ b/Intacct.SDK/Functions/OrderEntry/OrderEntryTransactionLineUpdate.cs
@@ -72,6 +72,16 @@ public override void WriteXml(ref IaXmlWriter xml)
xml.WriteEndElement(); //itemdetails
}
+ if (LineSubtotals.Count > 0)
+ {
+ xml.WriteStartElement("linesubtotals");
+ foreach (AbstractLineSubtotal subtotal in LineSubtotals)
+ {
+ subtotal.WriteXml(ref xml);
+ }
+ xml.WriteEndElement();
+ }
+
xml.WriteCustomFieldsExplicit(CustomFields);
xml.WriteElement("revrectemplate", RevRecTemplate);
diff --git a/Intacct.SDK/Functions/Purchasing/AbstractPurchasingTransactionLine.cs b/Intacct.SDK/Functions/Purchasing/AbstractPurchasingTransactionLine.cs
index 11a56333..94c55a82 100644
--- a/Intacct.SDK/Functions/Purchasing/AbstractPurchasingTransactionLine.cs
+++ b/Intacct.SDK/Functions/Purchasing/AbstractPurchasingTransactionLine.cs
@@ -72,6 +72,8 @@ public abstract class AbstractPurchasingTransactionLine : IXmlObject
public string ContractId;
+ public List LineSubtotals = new List();
+
public Dictionary CustomFields = new Dictionary();
protected AbstractPurchasingTransactionLine()
diff --git a/Intacct.SDK/Functions/Purchasing/PurchasingTransactionLineCreate.cs b/Intacct.SDK/Functions/Purchasing/PurchasingTransactionLineCreate.cs
index d4ca2b56..8d0dc623 100644
--- a/Intacct.SDK/Functions/Purchasing/PurchasingTransactionLineCreate.cs
+++ b/Intacct.SDK/Functions/Purchasing/PurchasingTransactionLineCreate.cs
@@ -64,6 +64,16 @@ public override void WriteXml(ref IaXmlWriter xml)
xml.WriteEndElement(); //itemdetails
}
+ if (LineSubtotals.Count > 0)
+ {
+ xml.WriteStartElement("linesubtotals");
+ foreach (AbstractLineSubtotal subtotal in LineSubtotals)
+ {
+ subtotal.WriteXml(ref xml);
+ }
+ xml.WriteEndElement();
+ }
+
xml.WriteElement("form1099", Form1099);
xml.WriteElement("form1099type", Form1099Type);
xml.WriteElement("form1099box", Form1099Box);
diff --git a/Intacct.SDK/Functions/Purchasing/PurchasingTransactionLineUpdate.cs b/Intacct.SDK/Functions/Purchasing/PurchasingTransactionLineUpdate.cs
index bf07b1fb..5444752a 100644
--- a/Intacct.SDK/Functions/Purchasing/PurchasingTransactionLineUpdate.cs
+++ b/Intacct.SDK/Functions/Purchasing/PurchasingTransactionLineUpdate.cs
@@ -77,6 +77,16 @@ public override void WriteXml(ref IaXmlWriter xml)
xml.WriteEndElement(); //itemdetails
}
+ if (LineSubtotals.Count > 0)
+ {
+ xml.WriteStartElement("linesubtotals");
+ foreach (AbstractLineSubtotal subtotal in LineSubtotals)
+ {
+ subtotal.WriteXml(ref xml);
+ }
+ xml.WriteEndElement();
+ }
+
xml.WriteElement("form1099", Form1099);
xml.WriteElement("form1099type", Form1099Type);
xml.WriteElement("form1099box", Form1099Box);