Adds a discount item. A discount item is a percentage or a fixed amount that will be subtracted from a total or subtotal. Items should be subtotaled (using an ItemSubtotal item) before a discount item is applied to them, because a discount only acts on the line that is directly above it. A discount item is different from a discount for early payment, which is represented as part of a StandardTerms object or DateDrivenTerms object. Note: When you specify an ItemDiscount item in any transaction (by using an ItemRef), do not specify a Quantity in the transaction. If you do, you will receive an error. Be Sharp When Using Flat Discounts Flat rate discounts are treated VERY differently vs. percentage discounts. A percentage discount only applies to the line right above it, so all of the tax implications for discounts apply ONLY to that line (Note that the story gets more complicated here for group items, subtotal lines, etc). A flat rate discount applies to EVERY line that is recorded above the discount. Thus, the $10.00 off you see is applied equally to the $100.00 Nontaxable target and the $100.00 Taxable target. Thus, the sales tax for the 10.00 discount totals up to -$5.00. Therefore, for the desired behavior, the user must fill out the invoice like this: Item $100.00 Non Item $100.00 Tax Discount $20.00 Tax In this scenario, the $20.00 discount is properly distributed to be half taxed and half not taxed, so the taxable amount for the discount line is only -$10.00. The moral of the story: Non-Taxable Discounts are VERY dangerous. You should almost never use them unless discounts in your state are never applied to sales tax.
Request
Response
XMLOps
VB.NET
C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | <?xml version="1.0" encoding="utf-8"?> <?qbxml version="16.0"?> <QBXML> <QBXMLMsgsRq onError="stopOnError"> <ItemDiscountAddRq> <ItemDiscountAdd> <!-- required --> <Name >STRTYPE</Name> <!-- required --> <BarCode> <!-- optional --> <BarCodeValue >STRTYPE</BarCodeValue> <!-- optional --> <AssignEvenIfUsed >BOOLTYPE</AssignEvenIfUsed> <!-- optional --> <AllowOverride >BOOLTYPE</AllowOverride> <!-- optional --> </BarCode> <IsActive >BOOLTYPE</IsActive> <!-- optional --> <ClassRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </ClassRef> <ParentRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </ParentRef> <ItemDesc >STRTYPE</ItemDesc> <!-- optional --> <SalesTaxCodeRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </SalesTaxCodeRef> <!-- BEGIN OR --> <DiscountRate >PRICETYPE</DiscountRate> <!-- optional --> <!-- OR --> <DiscountRatePercent >PERCENTTYPE</DiscountRatePercent> <!-- optional --> <!-- END OR --> <AccountRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </AccountRef> <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional --> </ItemDiscountAdd> <IncludeRetElement >STRTYPE</IncludeRetElement> <!-- optional, may repeat --> </ItemDiscountAddRq> <ItemDiscountAddRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE"> <ItemDiscountRet> <!-- optional --> <ListID >IDTYPE</ListID> <!-- required --> <TimeCreated >DATETIMETYPE</TimeCreated> <!-- required --> <TimeModified >DATETIMETYPE</TimeModified> <!-- required --> <EditSequence >STRTYPE</EditSequence> <!-- required --> <Name >STRTYPE</Name> <!-- required --> <FullName >STRTYPE</FullName> <!-- required --> <BarCodeValue >STRTYPE</BarCodeValue> <!-- optional --> <IsActive >BOOLTYPE</IsActive> <!-- optional --> <ClassRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </ClassRef> <ParentRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </ParentRef> <Sublevel >INTTYPE</Sublevel> <!-- required --> <ItemDesc >STRTYPE</ItemDesc> <!-- optional --> <SalesTaxCodeRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </SalesTaxCodeRef> <!-- BEGIN OR --> <DiscountRate >PRICETYPE</DiscountRate> <!-- optional --> <!-- OR --> <DiscountRatePercent >PERCENTTYPE</DiscountRatePercent> <!-- optional --> <!-- END OR --> <AccountRef> <!-- optional --> <ListID >IDTYPE</ListID> <!-- optional --> <FullName >STRTYPE</FullName> <!-- optional --> </AccountRef> <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional --> <DataExtRet> <!-- optional, may repeat --> <OwnerID >GUIDTYPE</OwnerID> <!-- optional --> <DataExtName >STRTYPE</DataExtName> <!-- required --> <!-- DataExtType may have one of the following values: AMTTYPE, DATETIMETYPE, INTTYPE, PERCENTTYPE, PRICETYPE, QUANTYPE, STR1024TYPE, STR255TYPE --> <DataExtType >ENUMTYPE</DataExtType> <!-- required --> <DataExtValue >STRTYPE</DataExtValue> <!-- required --> </DataExtRet> </ItemDiscountRet> <ErrorRecovery> <!-- optional --> <!-- BEGIN OR --> <ListID >IDTYPE</ListID> <!-- optional --> <!-- OR --> <OwnerID >GUIDTYPE</OwnerID> <!-- optional --> <!-- OR --> <TxnID >IDTYPE</TxnID> <!-- optional --> <!-- END OR --> <TxnNumber >INTTYPE</TxnNumber> <!-- optional --> <EditSequence >STRTYPE</EditSequence> <!-- optional --> <ExternalGUID >GUIDTYPE</ExternalGUID> <!-- optional --> </ErrorRecovery> </ItemDiscountAddRs> </QBXMLMsgsRq> </QBXML> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 | 'The following sample code is generated as an illustration of 'Creating requests and parsing responses ONLY 'This code is NOT intended to show best practices or ideal code 'Use at your most careful discretion imports System imports System.Net imports System.Drawing imports System.Collections imports System.ComponentModel imports System.Windows.Forms imports System.Data imports System.IO imports Interop.QBFC16 Module com.intuit.idn.samples Public Class Sample Public Sub DoItemDiscountAdd() Dim sessionBegun as Boolean sessionBegun = False Dim connectionOpen as Boolean connectionOpen = False Dim sessionManager as QBSessionManager sessionManager = nothing Try 'Create the session Manager object sessionManager = new QBSessionManager 'Create the message set request object to hold our request Dim requestMsgSet as IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US",16,0) requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue BuildItemDiscountAddRq(requestMsgSet) 'Connect to QuickBooks and begin a session sessionManager.OpenConnection("","Sample Code from OSR") connectionOpen = True sessionManager.BeginSession("", ENOpenMode.omDontCare) sessionBegun = True 'Send the request and get the response from QuickBooks Dim responseMsgSet as IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet) 'End the session and close the connection to QuickBooks sessionManager.EndSession() sessionBegun = False sessionManager.CloseConnection() connectionOpen = False WalkItemDiscountAddRs(responseMsgSet) Catch e as Exception MessageBox.Show(e.Message, "Error") if (sessionBegun) then sessionManager.EndSession() End If if (connectionOpen) then sessionManager.CloseConnection() End If End Try End Sub Public Sub BuildItemDiscountAddRq(requestMsgSet as IMsgSetRequest) Dim ItemDiscountAddRq as IItemDiscountAdd ItemDiscountAddRq= requestMsgSet.AppendItemDiscountAddRq() 'Set field value for Name ItemDiscountAddRq.Name.SetValue("ab") 'Set field value for BarCodeValue ItemDiscountAddRq.BarCode.BarCodeValue.SetValue("ab") 'Set field value for AssignEvenIfUsed ItemDiscountAddRq.BarCode.AssignEvenIfUsed.SetValue(True) 'Set field value for AllowOverride ItemDiscountAddRq.BarCode.AllowOverride.SetValue(True) 'Set field value for IsActive ItemDiscountAddRq.IsActive.SetValue(True) 'Set field value for ListID ItemDiscountAddRq.ClassRef.ListID.SetValue("200000-1011023419") 'Set field value for FullName ItemDiscountAddRq.ClassRef.FullName.SetValue("ab") 'Set field value for ListID ItemDiscountAddRq.ParentRef.ListID.SetValue("200000-1011023419") 'Set field value for FullName ItemDiscountAddRq.ParentRef.FullName.SetValue("ab") 'Set field value for ItemDesc ItemDiscountAddRq.ItemDesc.SetValue("ab") 'Set field value for ListID ItemDiscountAddRq.SalesTaxCodeRef.ListID.SetValue("200000-1011023419") 'Set field value for FullName ItemDiscountAddRq.SalesTaxCodeRef.FullName.SetValue("ab") Dim ORDiscountRateElementType12273 as String ORDiscountRateElementType12273 = "DiscountRate" if (ORDiscountRateElementType12273 == "DiscountRate") then 'Set field value for DiscountRate ItemDiscountAddRq.ORDiscountRate.DiscountRate.SetValue(15.65) End If if (ORDiscountRateElementType12273 == "DiscountRatePercent") then 'Set field value for DiscountRatePercent ItemDiscountAddRq.ORDiscountRate.DiscountRatePercent.SetValue(20.00) End If 'Set field value for ListID ItemDiscountAddRq.AccountRef.ListID.SetValue("200000-1011023419") 'Set field value for FullName ItemDiscountAddRq.AccountRef.FullName.SetValue("ab") 'Set field value for ExternalGUID ItemDiscountAddRq.ExternalGUID.SetValue(System.Guid.NewGuid().ToString()) 'Set field value for IncludeRetElementList 'May create more than one of these if needed ItemDiscountAddRq.IncludeRetElementList.Add("ab") End Sub Public Sub WalkItemDiscountAddRs( responseMsgSet as IMsgSetResponse) if (responseMsgSet is nothing) then Exit Sub End If Dim responseList as IResponseList responseList = responseMsgSet.ResponseList if (responseList is nothing) then Exit Sub End If 'if we sent only one request, there is only one response, we'll walk the list for this sample for j=0 to responseList.Count-1 Dim response as IResponse response = responseList.GetAt(j) 'check the status code of the response, 0=ok, >0 is warning if (response.StatusCode >= 0) then 'the request-specific response is in the details, make sure we have some if (not response.Detail is nothing) then 'make sure the response is the type we're expecting Dim responseType as ENResponseType responseType = CType(response.Type.GetValue(),ENResponseType) if (responseType == ENResponseType.rtItemDiscountAddRs) then 'upcast to more specific type here, this is safe because we checked with response.Type check above Dim ItemDiscountRet as IItemDiscountRet ItemDiscountRet = CType(response.Detail,IItemDiscountRet) WalkItemDiscountRet(ItemDiscountRet) End If End If End If Next j End Sub Public Sub WalkItemDiscountRet(ItemDiscountRet as IItemDiscountRet) if (ItemDiscountRet is nothing) then Exit Sub End If 'Go through all the elements of IItemDiscountRet 'Get value of ListID Dim ListID12274 as String ListID12274 = ItemDiscountRet.ListID.GetValue() 'Get value of TimeCreated Dim TimeCreated12275 as DateTime TimeCreated12275 = ItemDiscountRet.TimeCreated.GetValue() 'Get value of TimeModified Dim TimeModified12276 as DateTime TimeModified12276 = ItemDiscountRet.TimeModified.GetValue() 'Get value of EditSequence Dim EditSequence12277 as String EditSequence12277 = ItemDiscountRet.EditSequence.GetValue() 'Get value of Name Dim Name12278 as String Name12278 = ItemDiscountRet.Name.GetValue() 'Get value of FullName Dim FullName12279 as String FullName12279 = ItemDiscountRet.FullName.GetValue() 'Get value of BarCodeValue if ( not ItemDiscountRet.BarCodeValue is nothing) then Dim BarCodeValue12280 as String BarCodeValue12280 = ItemDiscountRet.BarCodeValue.GetValue() End If 'Get value of IsActive if ( not ItemDiscountRet.IsActive is nothing) then Dim IsActive12281 as Boolean IsActive12281 = ItemDiscountRet.IsActive.GetValue() End If if (not ItemDiscountRet.ClassRef. is nothing) then 'Get value of ListID if ( not ItemDiscountRet.ClassRef.ListID is nothing) then Dim ListID12282 as String ListID12282 = ItemDiscountRet.ClassRef.ListID.GetValue() End If 'Get value of FullName if ( not ItemDiscountRet.ClassRef.FullName is nothing) then Dim FullName12283 as String FullName12283 = ItemDiscountRet.ClassRef.FullName.GetValue() End If End If if (not ItemDiscountRet.ParentRef. is nothing) then 'Get value of ListID if ( not ItemDiscountRet.ParentRef.ListID is nothing) then Dim ListID12284 as String ListID12284 = ItemDiscountRet.ParentRef.ListID.GetValue() End If 'Get value of FullName if ( not ItemDiscountRet.ParentRef.FullName is nothing) then Dim FullName12285 as String FullName12285 = ItemDiscountRet.ParentRef.FullName.GetValue() End If End If 'Get value of Sublevel Dim Sublevel12286 as Integer Sublevel12286 = ItemDiscountRet.Sublevel.GetValue() 'Get value of ItemDesc if ( not ItemDiscountRet.ItemDesc is nothing) then Dim ItemDesc12287 as String ItemDesc12287 = ItemDiscountRet.ItemDesc.GetValue() End If if (not ItemDiscountRet.SalesTaxCodeRef. is nothing) then 'Get value of ListID if ( not ItemDiscountRet.SalesTaxCodeRef.ListID is nothing) then Dim ListID12288 as String ListID12288 = ItemDiscountRet.SalesTaxCodeRef.ListID.GetValue() End If 'Get value of FullName if ( not ItemDiscountRet.SalesTaxCodeRef.FullName is nothing) then Dim FullName12289 as String FullName12289 = ItemDiscountRet.SalesTaxCodeRef.FullName.GetValue() End If End If if (not ItemDiscountRet.ORDiscountRate is nothing) then if (not ItemDiscountRet.ORDiscountRate.DiscountRate is nothing) then 'Get value of DiscountRate if ( not ItemDiscountRet.ORDiscountRate.DiscountRate is nothing) then Dim DiscountRate12291 as Double DiscountRate12291 = ItemDiscountRet.ORDiscountRate.DiscountRate.GetValue() End If End If if (not ItemDiscountRet.ORDiscountRate.DiscountRatePercent is nothing) then 'Get value of DiscountRatePercent if ( not ItemDiscountRet.ORDiscountRate.DiscountRatePercent is nothing) then Dim DiscountRatePercent12292 as Double DiscountRatePercent12292 = ItemDiscountRet.ORDiscountRate.DiscountRatePercent.GetValue() End If End If End If if (not ItemDiscountRet.AccountRef. is nothing) then 'Get value of ListID if ( not ItemDiscountRet.AccountRef.ListID is nothing) then Dim ListID12293 as String ListID12293 = ItemDiscountRet.AccountRef.ListID.GetValue() End If 'Get value of FullName if ( not ItemDiscountRet.AccountRef.FullName is nothing) then Dim FullName12294 as String FullName12294 = ItemDiscountRet.AccountRef.FullName.GetValue() End If End If 'Get value of ExternalGUID if ( not ItemDiscountRet.ExternalGUID is nothing) then Dim ExternalGUID12295 as String ExternalGUID12295 = ItemDiscountRet.ExternalGUID.GetValue() End If if (not ItemDiscountRet.DataExtRetList is nothing) Dim i12296 as Integer for i12296 = 0 to ItemDiscountRet.DataExtRetList.Count - 1 Dim DataExtRet as IDataExtRet DataExtRet = ItemDiscountRet.DataExtRetList.GetAt(i12296) 'Get value of OwnerID if ( not DataExtRetOwnerID is nothing) then Dim OwnerID12297 as String OwnerID12297 = DataExtRetOwnerID.GetValue() End If 'Get value of DataExtName Dim DataExtName12298 as String DataExtName12298 = DataExtRetDataExtName.GetValue() 'Get value of DataExtType Dim DataExtType12299 as ENDataExtType DataExtType12299 = DataExtRetDataExtType.GetValue() 'Get value of DataExtValue Dim DataExtValue12300 as String DataExtValue12300 = DataExtRetDataExtValue.GetValue() Next i12296 End If End Sub End Class End Module |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 | //The following sample code is generated as an illustration of //Creating requests and parsing responses ONLY //This code is NOT intended to show best practices or ideal code //Use at your most careful discretion using System; using System.Net; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.IO; using Interop.QBFC16; namespace com.intuit.idn.samples { public class Sample { public void DoItemDiscountAdd() { bool sessionBegun = false; bool connectionOpen = false; QBSessionManager sessionManager = null; try { //Create the session Manager object sessionManager = new QBSessionManager(); //Create the message set request object to hold our request IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest("US",16,0); requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue; BuildItemDiscountAddRq(requestMsgSet); //Connect to QuickBooks and begin a session sessionManager.OpenConnection("","Sample Code from OSR"); connectionOpen = true; sessionManager.BeginSession("", ENOpenMode.omDontCare); sessionBegun = true; //Send the request and get the response from QuickBooks IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet); //End the session and close the connection to QuickBooks sessionManager.EndSession(); sessionBegun = false; sessionManager.CloseConnection(); connectionOpen = false; WalkItemDiscountAddRs(responseMsgSet); } catch (Exception e) { MessageBox.Show(e.Message, "Error"); if (sessionBegun) { sessionManager.EndSession(); } if (connectionOpen) { sessionManager.CloseConnection(); } } } void BuildItemDiscountAddRq(IMsgSetRequest requestMsgSet) { IItemDiscountAdd ItemDiscountAddRq= requestMsgSet.AppendItemDiscountAddRq(); //Set field value for Name ItemDiscountAddRq.Name.SetValue("ab"); //Set field value for BarCodeValue ItemDiscountAddRq.BarCode.BarCodeValue.SetValue("ab"); //Set field value for AssignEvenIfUsed ItemDiscountAddRq.BarCode.AssignEvenIfUsed.SetValue(true); //Set field value for AllowOverride ItemDiscountAddRq.BarCode.AllowOverride.SetValue(true); //Set field value for IsActive ItemDiscountAddRq.IsActive.SetValue(true); //Set field value for ListID ItemDiscountAddRq.ClassRef.ListID.SetValue("200000-1011023419"); //Set field value for FullName ItemDiscountAddRq.ClassRef.FullName.SetValue("ab"); //Set field value for ListID ItemDiscountAddRq.ParentRef.ListID.SetValue("200000-1011023419"); //Set field value for FullName ItemDiscountAddRq.ParentRef.FullName.SetValue("ab"); //Set field value for ItemDesc ItemDiscountAddRq.ItemDesc.SetValue("ab"); //Set field value for ListID ItemDiscountAddRq.SalesTaxCodeRef.ListID.SetValue("200000-1011023419"); //Set field value for FullName ItemDiscountAddRq.SalesTaxCodeRef.FullName.SetValue("ab"); string ORDiscountRateElementType12245 = "DiscountRate"; if (ORDiscountRateElementType12245 == "DiscountRate") { //Set field value for DiscountRate ItemDiscountAddRq.ORDiscountRate.DiscountRate.SetValue(15.65); } if (ORDiscountRateElementType12245 == "DiscountRatePercent") { //Set field value for DiscountRatePercent ItemDiscountAddRq.ORDiscountRate.DiscountRatePercent.SetValue(20.00); } //Set field value for ListID ItemDiscountAddRq.AccountRef.ListID.SetValue("200000-1011023419"); //Set field value for FullName ItemDiscountAddRq.AccountRef.FullName.SetValue("ab"); //Set field value for ExternalGUID ItemDiscountAddRq.ExternalGUID.SetValue(Guid.NewGuid().ToString()); //Set field value for IncludeRetElementList //May create more than one of these if needed ItemDiscountAddRq.IncludeRetElementList.Add("ab"); } void WalkItemDiscountAddRs(IMsgSetResponse responseMsgSet) { if (responseMsgSet == null) return; IResponseList responseList = responseMsgSet.ResponseList; if (responseList == null) return; //if we sent only one request, there is only one response, we'll walk the list for this sample for(int i=0; i < responseList.Count; i++) { IResponse response = responseList.GetAt(i); //check the status code of the response, 0=ok, >0 is warning if (response.StatusCode >= 0) { //the request-specific response is in the details, make sure we have some if (response.Detail != null) { //make sure the response is the type we're expecting ENResponseType responseType = (ENResponseType)response.Type.GetValue(); if (responseType == ENResponseType.rtItemDiscountAddRs) { //upcast to more specific type here, this is safe because we checked with response.Type check above IItemDiscountRet ItemDiscountRet = (IItemDiscountRet)response.Detail; WalkItemDiscountRet(ItemDiscountRet); } } } } } void WalkItemDiscountRet(IItemDiscountRet ItemDiscountRet) { if (ItemDiscountRet == null) return; //Go through all the elements of IItemDiscountRet //Get value of ListID string ListID12246 = (string)ItemDiscountRet.ListID.GetValue(); //Get value of TimeCreated DateTime TimeCreated12247 = (DateTime)ItemDiscountRet.TimeCreated.GetValue(); //Get value of TimeModified DateTime TimeModified12248 = (DateTime)ItemDiscountRet.TimeModified.GetValue(); //Get value of EditSequence string EditSequence12249 = (string)ItemDiscountRet.EditSequence.GetValue(); //Get value of Name string Name12250 = (string)ItemDiscountRet.Name.GetValue(); //Get value of FullName string FullName12251 = (string)ItemDiscountRet.FullName.GetValue(); //Get value of BarCodeValue if (ItemDiscountRet.BarCodeValue != null) { string BarCodeValue12252 = (string)ItemDiscountRet.BarCodeValue.GetValue(); } //Get value of IsActive if (ItemDiscountRet.IsActive != null) { bool IsActive12253 = (bool)ItemDiscountRet.IsActive.GetValue(); } if (ItemDiscountRet.ClassRef != null) { //Get value of ListID if (ItemDiscountRet.ClassRef.ListID != null) { string ListID12254 = (string)ItemDiscountRet.ClassRef.ListID.GetValue(); } //Get value of FullName if (ItemDiscountRet.ClassRef.FullName != null) { string FullName12255 = (string)ItemDiscountRet.ClassRef.FullName.GetValue(); } } if (ItemDiscountRet.ParentRef != null) { //Get value of ListID if (ItemDiscountRet.ParentRef.ListID != null) { string ListID12256 = (string)ItemDiscountRet.ParentRef.ListID.GetValue(); } //Get value of FullName if (ItemDiscountRet.ParentRef.FullName != null) { string FullName12257 = (string)ItemDiscountRet.ParentRef.FullName.GetValue(); } } //Get value of Sublevel int Sublevel12258 = (int)ItemDiscountRet.Sublevel.GetValue(); //Get value of ItemDesc if (ItemDiscountRet.ItemDesc != null) { string ItemDesc12259 = (string)ItemDiscountRet.ItemDesc.GetValue(); } if (ItemDiscountRet.SalesTaxCodeRef != null) { //Get value of ListID if (ItemDiscountRet.SalesTaxCodeRef.ListID != null) { string ListID12260 = (string)ItemDiscountRet.SalesTaxCodeRef.ListID.GetValue(); } //Get value of FullName if (ItemDiscountRet.SalesTaxCodeRef.FullName != null) { string FullName12261 = (string)ItemDiscountRet.SalesTaxCodeRef.FullName.GetValue(); } } if (ItemDiscountRet.ORDiscountRate != null) { if (ItemDiscountRet.ORDiscountRate.DiscountRate != null) { //Get value of DiscountRate if (ItemDiscountRet.ORDiscountRate.DiscountRate != null) { double DiscountRate12263 = (double)ItemDiscountRet.ORDiscountRate.DiscountRate.GetValue(); } } if (ItemDiscountRet.ORDiscountRate.DiscountRatePercent != null) { //Get value of DiscountRatePercent if (ItemDiscountRet.ORDiscountRate.DiscountRatePercent != null) { double DiscountRatePercent12264 = (double)ItemDiscountRet.ORDiscountRate.DiscountRatePercent.GetValue(); } } } if (ItemDiscountRet.AccountRef != null) { //Get value of ListID if (ItemDiscountRet.AccountRef.ListID != null) { string ListID12265 = (string)ItemDiscountRet.AccountRef.ListID.GetValue(); } //Get value of FullName if (ItemDiscountRet.AccountRef.FullName != null) { string FullName12266 = (string)ItemDiscountRet.AccountRef.FullName.GetValue(); } } //Get value of ExternalGUID if (ItemDiscountRet.ExternalGUID != null) { string ExternalGUID12267 = (string)ItemDiscountRet.ExternalGUID.GetValue(); } if (ItemDiscountRet.DataExtRetList != null) { for (int i12268 = 0; i12268 < ItemDiscountRet.DataExtRetList.Count; i12268++) { IDataExtRet DataExtRet = ItemDiscountRet.DataExtRetList.GetAt(i12268); //Get value of OwnerID if (DataExtRet.OwnerID != null) { string OwnerID12269 = (string)DataExtRet.OwnerID.GetValue(); } //Get value of DataExtName string DataExtName12270 = (string)DataExtRet.DataExtName.GetValue(); //Get value of DataExtType ENDataExtType DataExtType12271 = (ENDataExtType)DataExtRet.DataExtType.GetValue(); //Get value of DataExtValue string DataExtValue12272 = (string)DataExtRet.DataExtValue.GetValue(); } } } } } |