PriceDiscountAdd


Request

Response

XMLOPS

VB.NET

C#

Tag Type Max length Implementation Required

IPriceDiscountAdd

    2.5  

PriceDiscountName

Name of the price discount being applied.
IQBStringType 200 chars   Y

PriceDiscountReason

Reason for the price discount.
IQBStringType 30 chars   Y

Comments

The Comment field contains a description of the transaction, for example, why a memo was issued, or why cash was paid out (receipt).
IQBStringType 300 chars    

Associate

The employee making the adjustment transaction.
IQBStringType 40 chars    

PriceDiscountType

PriceDiscountType may have one of the following values: YPercentOff, BuyXForY, BuyXGetYPercentOff
IQBENPriceDiscountTypeType      

IsInactive

Indicates whether the item is currently active.
IQBBoolType      

PriceDiscountPriceLevels

The price levels at which a discount is applied.
IQBStringType 12 chars    

PriceDiscountXValue

On X for Y discount types, the quantity of qualifying items that must be purchased to get the discount price.
IQBIntType      

PriceDiscountYValue

In X for Y% Off discounts, the Y% specifies the saving when purchasing X units, expressed as a percentage.
IQBFloatType      

IsApplicableOverXValue

Indicator if the discount is applicable if the value is over X.
IQBBoolType      

StartDate

Date that the discount begins.
IQBDateTimeType      

StopDate

Filtering by the stop date.
IQBDateTimeType      

PriceDiscountItemAddList

List of items that will be in the price discount.
IPriceDiscountItemAddList      

(List of IPriceDiscountItemAdd Objects)

       

ListID

The unique ID returned by QBPOS for this object. If supplied in a request, the ListID is a reference to an object required in the request. For example, in a SalesOrder or PurchaseOrder line item, the ListID that is required is an Item list ID.
IQBIDType     Y

useMacro

You use a macro in a request message set if you need to create some object in one request, then refer to it in a subsequent request within that same message set. For example, you could create an inventory item and then include that item as a line item in a sales order all in one request message set, rather than create the item, query for it, then include it in a separate SalesOrderAdd request. In this latter case, you are accessing QBPOS three times, versus only once, using macros. The item to be referenced is specified via the defmacro. The actual reference to that item in the succeeding request is done via the use macro, as follows: ItemInventoryAdd defMacro=”ListID:Inv1” In the above line, you simply replace Inv1 with the name you want to give the macro. When you reference this macro in another request (one that requires that object’s listID) in the same message set, you use this syntax: ListID useMacro=”ListID:Inv1” This is covered in more detail in the Programming Guide.
IQBStringType   2.0  

UnitOfMeasure

If the company is using only a single unit of measure, this specifies the unit of measure for the item. If the company is using multiple units of measure, this specifies the base unit of measure for the item. Inventory quantities are tracked and reported in terms of this base unit.
IQBStringType 20 chars    

IncludeRetElementList

You can use the IncludeRetElement feature to restrict the data returned in the response to the specified qbposXML field here. If you do this, only those elements specified will be returned. To use this feature, you simply add the qbposXML element name to the IncludeRetElementList. The following example shows how to do this, specifying that only the CreatedBy and ClockOutTime elements are to be returned in the TimeEntryAdd response: Dim MyTimeEntry As ITimeEntryAdd Set MyTimeEntry = requestMsgSet.AppendTimeEntryAddRq MyTimeEntry.IncludeRetElementList.Add “CreatedBy” MyTimeEntry.IncludeRetElementList.Add “ClockOutTime” ‘ set the other properties as desired…
IBSTRList 50 chars 2.5  
Tag Type Max length Implementation Required

IResponse

    2.5  

StatusCode

A number that corresponds to a statusSeverity and statusMessage. Five status codes relate directly to signon messages: 2000, 2010, 2020, 2030, and 2040. For details about these and other statusCode values that can be returned, see the statusCode table on the Error Codes page.
IQBIntType     Y

StatusSeverity

One of the following values: INFO The request was completed, and the results are consistent with what your application expected. WARNING The request was completed, but the results might not be consistent with what you expected. ERROR The request was not completed. No data will appear in the server’s response after the statusMessage.
IQBStringType     Y

StatusMessage

A user-readable explanation of the success or error condition that is indicated by the statusCode. For details about the statusMessage values that can be returned, see the “Explanation” column of the statusCode table on the Error Codes page.
IQBStringType     Y

Detail

IPriceDiscountRet      

TxnID

QuickBooks generates a unique TxnID for each transaction that is added to QuickBooks. A TxnID returned from a request can be used to refer to the transaction in subsequent requests. Notice that you cannot supply the TxnID of a TimeTracking transaction to TransactionQueryRq requests. If you do, you get an error stating that no such record could be found, even though the transaction is in QuickBooks. This behavior reflects the behavior in the QuicKBooks UI in the Find window.
IQBIDType      

TimeCreated

The timestamp indicating the time when this object was created in QBPOS.
IQBDateTimeType      

TimeModified

The time when the object was modified by QBPOS.
IQBDateTimeType      

StoreExchangeStatus

In multi store configurations, if the customer’s information has changed, this information is updated at the headquarters store. This response field indicates whether the information was successfully updated or not.
IQBENStoreExchangeStatusType      

PriceDiscountName

Name of the price discount being applied.
IQBStringType 200 chars    

PriceDiscountReason

Reason for the price discount.
IQBStringType 30 chars    

Comments

The Comment field contains a description of the transaction, for example, why a memo was issued, or why cash was paid out (receipt).
IQBStringType 300 chars    

Associate

The employee making the adjustment transaction.
IQBStringType 40 chars    

LastAssociate

The last employee to enter the price discount.
IQBStringType 40 chars    

PriceDiscountType

PriceDiscountType may have one of the following values: YPercentOff, BuyXForY, BuyXGetYPercentOff
IQBENPriceDiscountTypeType      

IsInactive

Indicates whether the item is currently active.
IQBBoolType      

PriceDiscountPriceLevels

The price levels at which a discount is applied.
IQBStringType 12 chars    

PriceDiscountXValue

On X for Y discount types, the quantity of qualifying items that must be purchased to get the discount price.
IQBIntType      

PriceDiscountYValue

In X for Y% Off discounts, the Y% specifies the saving when purchasing X units, expressed as a percentage.
IQBFloatType      

IsApplicableOverXValue

Indicator if the discount is applicable if the value is over X.
IQBBoolType      

StartDate

Date that the discount begins.
IQBDateTimeType      

StopDate

Filtering by the stop date.
IQBDateTimeType      

ItemsCount

The number of line items in the adjustment add request that added the adjustment to QBPOS.
IQBIntType      

PriceDiscountItemRetList

List of items that will be in the price discount.
IPriceDiscountItemRetList      

(List of IPriceDiscountItemRet Objects)

       

ListID

The unique ID returned by QBPOS for this object. If supplied in a request, the ListID is a reference to an object required in the request. For example, in a SalesOrder or PurchaseOrder line item, the ListID that is required is an Item list ID.
IQBIDType      

TxnLineID

Identification number of the transaction line. (TxnLineID is supported as of v2.0 of the SDK. With qbXML v1.0 and v1.1, TxnLineID is always returned as zero.) If you need to add a new transaction line in a transaction Mod request, you can do so by setting the TxnLineID to -1.
IQBIntType      

UnitOfMeasure

If the company is using only a single unit of measure, this specifies the unit of measure for the item. If the company is using multiple units of measure, this specifies the base unit of measure for the item. Inventory quantities are tracked and reported in terms of this base unit.
IQBStringType 20 chars    

DataExtRetList

If you specify any custom fields/private data extensions to be returned in the query request (in the OwnerIDList), then this Ret List will contain all of the data extensions that belong to each specified OwnerID. For example, if you specify an OwnerID value of 0 (custom fields), then the query will return all custom data for the returned records.
IDataExtRetList      

(List of IDataExtRet Objects)

       

OwnerID

OwnerID refers to the owner of a data extension, and must be 0 or a valid GUID. (Custom fields, which are visible in the QuickBooks UI, always have an OwnerID of 0. ) Usually you would keep your application’s GUID confidential to prevent other applications from accessing your data extensions. But if you want to share data extensions with another application, the applications need to use the same GUID. In this case, each application could use two GUIDs, one for shared data extensions and one for confidential data extensions. (An application can have any number of GUIDs.) When you share a data extension with another application, the other application must know both the OwnerID and the DataExtName, as these together form a data extension’s unique name.
IQBGUIDType     Y

DataExtName

The name of the data extension. If this is a custom field, DataExtName will be visible as a label in the QuickBooks user interface. Also because OwnerID and DataExtName together make the data extension unique, and because custom fields all have the same OwnerID of zero, the DataExtName must be a unique value among existing custom fields. In contrast, the DataExtName for private data extensions must be unique only for the specified OwnerID GUID.
IQBStringType     Y

DataExtType

b>DataExtType The type of the data extension.
IQBENDataExtTypeType     Y

DataExtValue

The data in this field. The maximum length of DataExtValue will depend on the DataExtType of this data extension. For example, if DataExtType is STR255TYPE, the maximum length of DataExtValue is 255 characters. If DataExtType is STR1024TYPE, the maximum size of DataExtValue is 1KB.
IQBStringType     Y

 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
<?xml version="1.0" encoding="utf-8"?>
<?qbposxml version="4.0"?>
<QBPOSXML>
        <QBPOSXMLMsgsRq onError="stopOnError">
                <PriceDiscountAddRq>
                        <PriceDiscountAdd> <!-- required -->
                                <PriceDiscountName >STRTYPE</PriceDiscountName> <!-- required -->
                                <PriceDiscountReason >STRTYPE</PriceDiscountReason> <!-- required -->
                                <Comments >STRTYPE</Comments> <!-- optional -->
                                <Associate >STRTYPE</Associate> <!-- optional -->
                                <!-- PriceDiscountType may have one of the following values: YPercentOff, BuyXForY, BuyXGetYPercentOff -->
                                <PriceDiscountType >ENUMTYPE</PriceDiscountType> <!-- optional -->
                                <IsInactive >BOOLTYPE</IsInactive> <!-- optional -->
                                <PriceDiscountPriceLevels >STRTYPE</PriceDiscountPriceLevels> <!-- optional -->
                                <PriceDiscountXValue >INTTYPE</PriceDiscountXValue> <!-- optional -->
                                <PriceDiscountYValue >FLOATTYPE</PriceDiscountYValue> <!-- optional -->
                                <IsApplicableOverXValue >BOOLTYPE</IsApplicableOverXValue> <!-- optional -->
                                <StartDate >DATETIMETYPE</StartDate> <!-- optional -->
                                <StopDate >DATETIMETYPE</StopDate> <!-- optional -->
                                <PriceDiscountItemAdd> <!-- optional, may repeat -->
                                        <ListID  useMacro="MACROTYPE">IDTYPE</ListID> <!-- required -->
                                        <UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
                                </PriceDiscountItemAdd>
                        </PriceDiscountAdd>
                        <IncludeRetElement >STRTYPE</IncludeRetElement> <!-- optional, may repeat -->
                </PriceDiscountAddRq>

                <PriceDiscountAddRs statusCode="INTTYPE" statusSeverity="STRTYPE" statusMessage="STRTYPE">
                        <PriceDiscountRet> <!-- optional -->
                                <TxnID >IDTYPE</TxnID> <!-- optional -->
                                <TimeCreated >DATETIMETYPE</TimeCreated> <!-- optional -->
                                <TimeModified >DATETIMETYPE</TimeModified> <!-- optional -->
                                <!-- StoreExchangeStatus may have one of the following values: Modified, Sent, Acknowledged -->
                                <StoreExchangeStatus >ENUMTYPE</StoreExchangeStatus> <!-- optional -->
                                <PriceDiscountName >STRTYPE</PriceDiscountName> <!-- optional -->
                                <PriceDiscountReason >STRTYPE</PriceDiscountReason> <!-- optional -->
                                <Comments >STRTYPE</Comments> <!-- optional -->
                                <Associate >STRTYPE</Associate> <!-- optional -->
                                <LastAssociate >STRTYPE</LastAssociate> <!-- optional -->
                                <!-- PriceDiscountType may have one of the following values: YPercentOff, BuyXForY, BuyXGetYPercentOff -->
                                <PriceDiscountType >ENUMTYPE</PriceDiscountType> <!-- optional -->
                                <IsInactive >BOOLTYPE</IsInactive> <!-- optional -->
                                <PriceDiscountPriceLevels >STRTYPE</PriceDiscountPriceLevels> <!-- optional -->
                                <PriceDiscountXValue >INTTYPE</PriceDiscountXValue> <!-- optional -->
                                <PriceDiscountYValue >FLOATTYPE</PriceDiscountYValue> <!-- optional -->
                                <IsApplicableOverXValue >BOOLTYPE</IsApplicableOverXValue> <!-- optional -->
                                <StartDate >DATETIMETYPE</StartDate> <!-- optional -->
                                <StopDate >DATETIMETYPE</StopDate> <!-- optional -->
                                <ItemsCount >INTTYPE</ItemsCount> <!-- optional -->
                                <PriceDiscountItemRet> <!-- optional, may repeat -->
                                        <ListID >IDTYPE</ListID> <!-- optional -->
                                        <TxnLineID >INTTYPE</TxnLineID> <!-- optional -->
                                        <UnitOfMeasure >STRTYPE</UnitOfMeasure> <!-- optional -->
                                </PriceDiscountItemRet>
                                <DataExtRet> <!-- optional, may repeat -->
                                        <OwnerID >GUIDTYPE</OwnerID> <!-- required -->
                                        <DataExtName >STRTYPE</DataExtName> <!-- required -->
                                        <!-- DataExtType may have one of the following values: INTTYPE, AMTTYPE, PRICETYPE, QUANTYPE, PERCENTTYPE, DATETIMETYPE, STR255TYPE, STR1024TYPE -->
                                        <DataExtType >ENUMTYPE</DataExtType> <!-- required -->
                                        <DataExtValue >STRTYPE</DataExtValue> <!-- required -->
                                </DataExtRet>
                        </PriceDiscountRet>
                </PriceDiscountAddRs>
        </QBPOSXMLMsgsRq>
</QBPOSXML>

  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
'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.qbposfc4

        Public Class SamplePriceDiscountAdd
                Public Sub  DoPriceDiscountAdd()
                        Dim sessionBegun as Boolean
                        sessionBegun = False
                        Dim connectionOpen as Boolean
                        connectionOpen = False
                        Dim sessionManager as QBPOSSessionManager
                        sessionManager = nothing

                        Try
                                'Create the session Manager object
                                sessionManager = new QBPOSSessionManager

                                'Create the message set request object to hold our request
                                Dim requestMsgSet as IMsgSetRequest
                                requestMsgSet = sessionManager.CreateMsgSetRequest(4,0)
                                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue

                                BuildPriceDiscountAddRq(requestMsgSet)

                                'Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR")
                                connectionOpen = True
                                sessionManager.BeginSession("")
                                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

                                WalkPriceDiscountAddRs(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 BuildPriceDiscountAddRq(requestMsgSet as IMsgSetRequest)
                        Dim PriceDiscountAddRq as IPriceDiscountAdd
                        PriceDiscountAddRq= requestMsgSet.AppendPriceDiscountAddRq()
                        'Set field value for PriceDiscountName
                        PriceDiscountAddRq.PriceDiscountName.SetValue("ab")
                        'Set field value for PriceDiscountReason
                        PriceDiscountAddRq.PriceDiscountReason.SetValue("ab")
                        'Set field value for Comments
                        PriceDiscountAddRq.Comments.SetValue("ab")
                        'Set field value for Associate
                        PriceDiscountAddRq.Associate.SetValue("ab")
                        'Set field value for PriceDiscountType
                        PriceDiscountAddRq.PriceDiscountType.SetValue(ENPriceDiscountType.pdtYPercentOff)
                        'Set field value for IsInactive
                        PriceDiscountAddRq.IsInactive.SetValue(True)
                        'Set field value for PriceDiscountPriceLevels
                        PriceDiscountAddRq.PriceDiscountPriceLevels.SetValue("ab")
                        'Set field value for PriceDiscountXValue
                        PriceDiscountAddRq.PriceDiscountXValue.SetValue(6)
                        'Set field value for PriceDiscountYValue
                        PriceDiscountAddRq.PriceDiscountYValue.SetValue(12.34)
                        'Set field value for IsApplicableOverXValue
                        PriceDiscountAddRq.IsApplicableOverXValue.SetValue(True)
                        'Set field value for StartDate
                        PriceDiscountAddRq.StartDate.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                        'Set field value for StopDate
                        PriceDiscountAddRq.StopDate.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false)
                        Dim PriceDiscountItemAdd2459 as IPriceDiscountItemAdd
                        PriceDiscountItemAdd2459=PriceDiscountAddRq.PriceDiscountItemAddList.Append()
                        'Set field value for ListID
                        PriceDiscountItemAdd2459.ListID.SetValue("200000-1011023419")
                        'Set attributes
                        'Set field value for ListID to use Macro
                        PriceDiscountItemAdd2459.ListID.SetValueUseMacro("200000-1011023419")
                        'Set field value for UnitOfMeasure
                        PriceDiscountItemAdd2459.UnitOfMeasure.SetValue("ab")
                        'Set field value for IncludeRetElementList
                        'May create more than one of these if needed
                        PriceDiscountAddRq.IncludeRetElementList.Add("ab")
                End Sub




                Public Sub WalkPriceDiscountAddRs( 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.rtPriceDiscountAddRs) then
                                                        'upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        Dim PriceDiscountRet as IPriceDiscountRet
                                                        PriceDiscountRet = CType(response.Detail,IPriceDiscountRet)
                                                                WalkPriceDiscountRet(PriceDiscountRet)
                                                End If
                                        End If
                                End If
                        Next j
                End Sub




                Public Sub WalkPriceDiscountRet(PriceDiscountRet as IPriceDiscountRet)
                        if (PriceDiscountRet is nothing) then
                                Exit Sub
                        End If

                        'Go through all the elements of IPriceDiscountRet
                        'Get value of TxnID
                        if ( not PriceDiscountRet.TxnID is nothing) then
                                Dim TxnID2460 as String
                                TxnID2460 = PriceDiscountRet.TxnID.GetValue()
                        End If
                        'Get value of TimeCreated
                        if ( not PriceDiscountRet.TimeCreated is nothing) then
                                Dim TimeCreated2461 as DateTime
                                TimeCreated2461 = PriceDiscountRet.TimeCreated.GetValue()
                        End If
                        'Get value of TimeModified
                        if ( not PriceDiscountRet.TimeModified is nothing) then
                                Dim TimeModified2462 as DateTime
                                TimeModified2462 = PriceDiscountRet.TimeModified.GetValue()
                        End If
                        'Get value of StoreExchangeStatus
                        if ( not PriceDiscountRet.StoreExchangeStatus is nothing) then
                                Dim StoreExchangeStatus2463 as ENStoreExchangeStatus
                                StoreExchangeStatus2463 = PriceDiscountRet.StoreExchangeStatus.GetValue()
                        End If
                        'Get value of PriceDiscountName
                        if ( not PriceDiscountRet.PriceDiscountName is nothing) then
                                Dim PriceDiscountName2464 as String
                                PriceDiscountName2464 = PriceDiscountRet.PriceDiscountName.GetValue()
                        End If
                        'Get value of PriceDiscountReason
                        if ( not PriceDiscountRet.PriceDiscountReason is nothing) then
                                Dim PriceDiscountReason2465 as String
                                PriceDiscountReason2465 = PriceDiscountRet.PriceDiscountReason.GetValue()
                        End If
                        'Get value of Comments
                        if ( not PriceDiscountRet.Comments is nothing) then
                                Dim Comments2466 as String
                                Comments2466 = PriceDiscountRet.Comments.GetValue()
                        End If
                        'Get value of Associate
                        if ( not PriceDiscountRet.Associate is nothing) then
                                Dim Associate2467 as String
                                Associate2467 = PriceDiscountRet.Associate.GetValue()
                        End If
                        'Get value of LastAssociate
                        if ( not PriceDiscountRet.LastAssociate is nothing) then
                                Dim LastAssociate2468 as String
                                LastAssociate2468 = PriceDiscountRet.LastAssociate.GetValue()
                        End If
                        'Get value of PriceDiscountType
                        if ( not PriceDiscountRet.PriceDiscountType is nothing) then
                                Dim PriceDiscountType2469 as ENPriceDiscountType
                                PriceDiscountType2469 = PriceDiscountRet.PriceDiscountType.GetValue()
                        End If
                        'Get value of IsInactive
                        if ( not PriceDiscountRet.IsInactive is nothing) then
                                Dim IsInactive2470 as Boolean
                                IsInactive2470 = PriceDiscountRet.IsInactive.GetValue()
                        End If
                        'Get value of PriceDiscountPriceLevels
                        if ( not PriceDiscountRet.PriceDiscountPriceLevels is nothing) then
                                Dim PriceDiscountPriceLevels2471 as String
                                PriceDiscountPriceLevels2471 = PriceDiscountRet.PriceDiscountPriceLevels.GetValue()
                        End If
                        'Get value of PriceDiscountXValue
                        if ( not PriceDiscountRet.PriceDiscountXValue is nothing) then
                                Dim PriceDiscountXValue2472 as Integer
                                PriceDiscountXValue2472 = PriceDiscountRet.PriceDiscountXValue.GetValue()
                        End If
                        'Get value of PriceDiscountYValue
                        if ( not PriceDiscountRet.PriceDiscountYValue is nothing) then
                                Dim PriceDiscountYValue2473 as Single
                                PriceDiscountYValue2473 = PriceDiscountRet.PriceDiscountYValue.GetValue()
                        End If
                        'Get value of IsApplicableOverXValue
                        if ( not PriceDiscountRet.IsApplicableOverXValue is nothing) then
                                Dim IsApplicableOverXValue2474 as Boolean
                                IsApplicableOverXValue2474 = PriceDiscountRet.IsApplicableOverXValue.GetValue()
                        End If
                        'Get value of StartDate
                        if ( not PriceDiscountRet.StartDate is nothing) then
                                Dim StartDate2475 as DateTime
                                StartDate2475 = PriceDiscountRet.StartDate.GetValue()
                        End If
                        'Get value of StopDate
                        if ( not PriceDiscountRet.StopDate is nothing) then
                                Dim StopDate2476 as DateTime
                                StopDate2476 = PriceDiscountRet.StopDate.GetValue()
                        End If
                        'Get value of ItemsCount
                        if ( not PriceDiscountRet.ItemsCount is nothing) then
                                Dim ItemsCount2477 as Integer
                                ItemsCount2477 = PriceDiscountRet.ItemsCount.GetValue()
                        End If
                        if (not PriceDiscountRet.PriceDiscountItemRetList is nothing)
                                Dim i2478 as Integer
                                for i2478 = 0  to PriceDiscountRet.PriceDiscountItemRetList.Count - 1
                                        Dim PriceDiscountItemRet as IPriceDiscountItemRet
                                        PriceDiscountItemRet = PriceDiscountRet.PriceDiscountItemRetList.GetAt(i2478)
                                        'Get value of ListID
                                        if ( not PriceDiscountItemRet.ListID is nothing) then
                                                Dim ListID2479 as String
                                                ListID2479 = PriceDiscountItemRet.ListID.GetValue()
                                        End If
                                        'Get value of TxnLineID
                                        if ( not PriceDiscountItemRet.TxnLineID is nothing) then
                                                Dim TxnLineID2480 as Integer
                                                TxnLineID2480 = PriceDiscountItemRet.TxnLineID.GetValue()
                                        End If
                                        'Get value of UnitOfMeasure
                                        if ( not PriceDiscountItemRet.UnitOfMeasure is nothing) then
                                                Dim UnitOfMeasure2481 as String
                                                UnitOfMeasure2481 = PriceDiscountItemRet.UnitOfMeasure.GetValue()
                                        End If
                                Next i2478
                        End If
                        if (not PriceDiscountRet.DataExtRetList is nothing)
                                Dim i2482 as Integer
                                for i2482 = 0  to PriceDiscountRet.DataExtRetList.Count - 1
                                        Dim DataExtRet as IDataExtRet
                                        DataExtRet = PriceDiscountRet.DataExtRetList.GetAt(i2482)
                                        'Get value of OwnerID
                                        Dim OwnerID2483 as String
                                        OwnerID2483 = DataExtRet.OwnerID.GetValue()
                                        'Get value of DataExtName
                                        Dim DataExtName2484 as String
                                        DataExtName2484 = DataExtRet.DataExtName.GetValue()
                                        'Get value of DataExtType
                                        Dim DataExtType2485 as ENDataExtType
                                        DataExtType2485 = DataExtRet.DataExtType.GetValue()
                                        'Get value of DataExtValue
                                        Dim DataExtValue2486 as String
                                        DataExtValue2486 = DataExtRet.DataExtValue.GetValue()
                                Next i2482
                        End If
                End Sub




        End Class

  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
//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.qbposfc4;

namespace com.intuit.idn.samples
{
        public class SamplePriceDiscountAdd
        {
                public void  DoPriceDiscountAdd()
                {
                        bool sessionBegun = false;
                        bool connectionOpen = false;
                        QBPOSSessionManager sessionManager = null;

                        try
                        {
                                //Create the session Manager object
                                sessionManager = new QBPOSSessionManager();

                                //Create the message set request object to hold our request
                                IMsgSetRequest requestMsgSet = sessionManager.CreateMsgSetRequest(4,0);
                                requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;

                                BuildPriceDiscountAddRq(requestMsgSet);

                                //Connect to QuickBooks and begin a session
                                sessionManager.OpenConnection("","Sample Code from OSR");
                                connectionOpen = true;
                                sessionManager.BeginSession("");
                                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;

                                WalkPriceDiscountAddRs(responseMsgSet);
                        }
                        catch (Exception e)
                        {
                                MessageBox.Show(e.Message, "Error");
                                if (sessionBegun)
                                {
                                        sessionManager.EndSession();
                                }
                                if (connectionOpen)
                                {
                                        sessionManager.CloseConnection();
                                }
                        }
                }
                void BuildPriceDiscountAddRq(IMsgSetRequest requestMsgSet)
                {
                        IPriceDiscountAdd PriceDiscountAddRq= requestMsgSet.AppendPriceDiscountAddRq();
                        //Set field value for PriceDiscountName
                        PriceDiscountAddRq.PriceDiscountName.SetValue("ab");
                        //Set field value for PriceDiscountReason
                        PriceDiscountAddRq.PriceDiscountReason.SetValue("ab");
                        //Set field value for Comments
                        PriceDiscountAddRq.Comments.SetValue("ab");
                        //Set field value for Associate
                        PriceDiscountAddRq.Associate.SetValue("ab");
                        //Set field value for PriceDiscountType
                        PriceDiscountAddRq.PriceDiscountType.SetValue(ENPriceDiscountType.pdtYPercentOff);
                        //Set field value for IsInactive
                        PriceDiscountAddRq.IsInactive.SetValue(true);
                        //Set field value for PriceDiscountPriceLevels
                        PriceDiscountAddRq.PriceDiscountPriceLevels.SetValue("ab");
                        //Set field value for PriceDiscountXValue
                        PriceDiscountAddRq.PriceDiscountXValue.SetValue(6);
                        //Set field value for PriceDiscountYValue
                        PriceDiscountAddRq.PriceDiscountYValue.SetValue(12.34F);
                        //Set field value for IsApplicableOverXValue
                        PriceDiscountAddRq.IsApplicableOverXValue.SetValue(true);
                        //Set field value for StartDate
                        PriceDiscountAddRq.StartDate.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                        //Set field value for StopDate
                        PriceDiscountAddRq.StopDate.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);
                        IPriceDiscountItemAdd PriceDiscountItemAdd2487=PriceDiscountAddRq.PriceDiscountItemAddList.Append();
                        //Set field value for ListID
                        PriceDiscountItemAdd2487.ListID.SetValue("200000-1011023419");
                        //Set attributes
                        //Set field value for ListID to use Macro
                        PriceDiscountItemAdd2487.ListID.SetValueUseMacro("200000-1011023419");
                        //Set field value for UnitOfMeasure
                        PriceDiscountItemAdd2487.UnitOfMeasure.SetValue("ab");
                        //Set field value for IncludeRetElementList
                        //May create more than one of these if needed
                        PriceDiscountAddRq.IncludeRetElementList.Add("ab");
                }




                void WalkPriceDiscountAddRs(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.rtPriceDiscountAddRs)
                                                {
                                                        //upcast to more specific type here, this is safe because we checked with response.Type check above
                                                        IPriceDiscountRet PriceDiscountRet = (IPriceDiscountRet)response.Detail;
                                                                WalkPriceDiscountRet(PriceDiscountRet);
                                                }
                                        }
                                }
                        }
                }




                void WalkPriceDiscountRet(IPriceDiscountRet PriceDiscountRet)
                {
                        if (PriceDiscountRet == null) return;
                        //Go through all the elements of IPriceDiscountRet
                        //Get value of TxnID
                        if (PriceDiscountRet.TxnID != null)
                        {
                                string TxnID2488 = (string)PriceDiscountRet.TxnID.GetValue();
                        }
                        //Get value of TimeCreated
                        if (PriceDiscountRet.TimeCreated != null)
                        {
                                DateTime TimeCreated2489 = (DateTime)PriceDiscountRet.TimeCreated.GetValue();
                        }
                        //Get value of TimeModified
                        if (PriceDiscountRet.TimeModified != null)
                        {
                                DateTime TimeModified2490 = (DateTime)PriceDiscountRet.TimeModified.GetValue();
                        }
                        //Get value of StoreExchangeStatus
                        if (PriceDiscountRet.StoreExchangeStatus != null)
                        {
                                ENStoreExchangeStatus StoreExchangeStatus2491 = (ENStoreExchangeStatus)PriceDiscountRet.StoreExchangeStatus.GetValue();
                        }
                        //Get value of PriceDiscountName
                        if (PriceDiscountRet.PriceDiscountName != null)
                        {
                                string PriceDiscountName2492 = (string)PriceDiscountRet.PriceDiscountName.GetValue();
                        }
                        //Get value of PriceDiscountReason
                        if (PriceDiscountRet.PriceDiscountReason != null)
                        {
                                string PriceDiscountReason2493 = (string)PriceDiscountRet.PriceDiscountReason.GetValue();
                        }
                        //Get value of Comments
                        if (PriceDiscountRet.Comments != null)
                        {
                                string Comments2494 = (string)PriceDiscountRet.Comments.GetValue();
                        }
                        //Get value of Associate
                        if (PriceDiscountRet.Associate != null)
                        {
                                string Associate2495 = (string)PriceDiscountRet.Associate.GetValue();
                        }
                        //Get value of LastAssociate
                        if (PriceDiscountRet.LastAssociate != null)
                        {
                                string LastAssociate2496 = (string)PriceDiscountRet.LastAssociate.GetValue();
                        }
                        //Get value of PriceDiscountType
                        if (PriceDiscountRet.PriceDiscountType != null)
                        {
                                ENPriceDiscountType PriceDiscountType2497 = (ENPriceDiscountType)PriceDiscountRet.PriceDiscountType.GetValue();
                        }
                        //Get value of IsInactive
                        if (PriceDiscountRet.IsInactive != null)
                        {
                                bool IsInactive2498 = (bool)PriceDiscountRet.IsInactive.GetValue();
                        }
                        //Get value of PriceDiscountPriceLevels
                        if (PriceDiscountRet.PriceDiscountPriceLevels != null)
                        {
                                string PriceDiscountPriceLevels2499 = (string)PriceDiscountRet.PriceDiscountPriceLevels.GetValue();
                        }
                        //Get value of PriceDiscountXValue
                        if (PriceDiscountRet.PriceDiscountXValue != null)
                        {
                                int PriceDiscountXValue2500 = (int)PriceDiscountRet.PriceDiscountXValue.GetValue();
                        }
                        //Get value of PriceDiscountYValue
                        if (PriceDiscountRet.PriceDiscountYValue != null)
                        {
                                float PriceDiscountYValue2501 = (float)PriceDiscountRet.PriceDiscountYValue.GetValue();
                        }
                        //Get value of IsApplicableOverXValue
                        if (PriceDiscountRet.IsApplicableOverXValue != null)
                        {
                                bool IsApplicableOverXValue2502 = (bool)PriceDiscountRet.IsApplicableOverXValue.GetValue();
                        }
                        //Get value of StartDate
                        if (PriceDiscountRet.StartDate != null)
                        {
                                DateTime StartDate2503 = (DateTime)PriceDiscountRet.StartDate.GetValue();
                        }
                        //Get value of StopDate
                        if (PriceDiscountRet.StopDate != null)
                        {
                                DateTime StopDate2504 = (DateTime)PriceDiscountRet.StopDate.GetValue();
                        }
                        //Get value of ItemsCount
                        if (PriceDiscountRet.ItemsCount != null)
                        {
                                int ItemsCount2505 = (int)PriceDiscountRet.ItemsCount.GetValue();
                        }
                        if (PriceDiscountRet.PriceDiscountItemRetList != null)
                        {
                                for (int i2506 = 0; i2506 < PriceDiscountRet.PriceDiscountItemRetList.Count; i2506++)
                                {
                                        IPriceDiscountItemRet PriceDiscountItemRet = PriceDiscountRet.PriceDiscountItemRetList.GetAt(i2506);
                                        //Get value of ListID
                                        if (PriceDiscountItemRet.ListID != null)
                                        {
                                                string ListID2507 = (string)PriceDiscountItemRet.ListID.GetValue();
                                        }
                                        //Get value of TxnLineID
                                        if (PriceDiscountItemRet.TxnLineID != null)
                                        {
                                                int TxnLineID2508 = (int)PriceDiscountItemRet.TxnLineID.GetValue();
                                        }
                                        //Get value of UnitOfMeasure
                                        if (PriceDiscountItemRet.UnitOfMeasure != null)
                                        {
                                                string UnitOfMeasure2509 = (string)PriceDiscountItemRet.UnitOfMeasure.GetValue();
                                        }
                                }
                        }
                        if (PriceDiscountRet.DataExtRetList != null)
                        {
                                for (int i2510 = 0; i2510 < PriceDiscountRet.DataExtRetList.Count; i2510++)
                                {
                                        IDataExtRet DataExtRet = PriceDiscountRet.DataExtRetList.GetAt(i2510);
                                        //Get value of OwnerID
                                        string OwnerID2511 = (string)DataExtRet.OwnerID.GetValue();
                                        //Get value of DataExtName
                                        string DataExtName2512 = (string)DataExtRet.DataExtName.GetValue();
                                        //Get value of DataExtType
                                        ENDataExtType DataExtType2513 = (ENDataExtType)DataExtRet.DataExtType.GetValue();
                                        //Get value of DataExtValue
                                        string DataExtValue2514 = (string)DataExtRet.DataExtValue.GetValue();
                                }
                        }
                }




        }
}