''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get Invoice Record Count. Returns number of records in QuickBooks
    ''' In case of error returns: will return -1
    ''' </summary>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceRecordCount(Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As Integer

 ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get All Invoice. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' NOTE: IF YOU HAVE TOO MANY RECORDS GET Invoice BY DATERANGE
    ''' </summary>  
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetAllInvoice(Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get Invoice By TxnIDs. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' NOTE: IF YOU HAVE TOO MANY RECORDS GET Invoice BY DATERANGE
    ''' </summary>
    ''' <param name="TxnIDs">TxnIDs of the Invoice. If it is one TxnIDs, just add one TxnID to the List(Of String)</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByTxnIDs(ByVal TxnIDs As List(Of String), Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

   ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get Invoice By RefNumbers. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' NOTE: IF YOU HAVE TOO MANY RECORDS GET Invoice BY DATERANGE
    ''' </summary>
    ''' <param name="RefNumbers">RefNumbers of the Invoice. If it is one RefNumbers, just add one RefNumbers to the List(Of String)</param>
    ''' <param name="RefNumberCaseSensitive">set to true to check for Case Sensitive spelling</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    '''  <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByRefNumbers(ByVal RefNumbers As List(Of String), Optional ByVal RefNumberCaseSensitive As Boolean = False, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get Invoice Modified Date Range. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' </summary>
    ''' <param name="FromModifiedDate">FromDate</param>
    ''' <param name="ToModifiedDate">ToDate</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceModifiedDateRange(ByVal FromModifiedDate As DateTime, ByVal ToModifiedDate As DateTime, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

   ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get Invoice Txn Date Range. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' </summary>
    ''' <param name="FromTxnDate">FromDate</param>
    ''' <param name="ToTxnDate">ToDate</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceTxnDateRange(ByVal FromTxnDate As DateTime, ByVal ToTxnDate As DateTime, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

   ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get Invoice Txn Date Macro. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' </summary>
    ''' <param name="DateMacro">qbDateMacro enum. Values(All, Today, ThisWeek, ThisWeekToDate, ThisMonth, ThisMonthToDate, ThisCalendarQuarter, ThisCalendarQuarterToDate, ThisFiscalQuarter, ThisFiscalQuarterToDate, ThisCalendarYear, ThisCalendarYearToDate, ThisFiscalYear, ThisFiscalYearToDate, Yesterday, LastWeek, LastWeekToDate, LastMonth, LastMonthToDate, LastCalendarQuarter, LastCalendarQuarterToDate, LastFiscalQuarter, LastFiscalQuarterToDate, LastCalendarYear, LastCalendarYearToDate, LastFiscalYear, LastFiscalYearToDate, NextWeek, NextFourWeeks, NextMonth, NextCalendarQuarter, NextCalendarYear, NextFiscalQuarter, NextFiscalYear)</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceTxnDateMacro(ByVal DateMacro As qbDateMacro, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

   ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get InvoiceBy Entity ListIDs. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' An entity refers to a person on the QuickBooks Customer list, Vendor list, Invoice list, or Other Names list
    ''' </summary>
    ''' <param name="ListIDs">Entities ListIDs</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByEntityListIDs(ByVal ListIDs As List(Of String), Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get InvoiceBy Entity FullNames. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' An entity refers to a person on the QuickBooks Customer list, Vendor list, Invoice list, or Other Names list
    ''' </summary>
    ''' <param name="FullNames">Entities FullNames</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByEntityFullNames(ByVal FullNames As List(Of String), Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get InvoiceBy Entity ListIDWithChildren. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' An entity refers to a person on the QuickBooks Customer list, Vendor list, Invoice list, or Other Names list
    ''' </summary>
    ''' <param name="ListIDWithChildren">Entity ListIDWithChildren</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByEntityListIDWithChildren(ByVal ListIDWithChildren As String, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get InvoiceBy Entity FullNameWithChildren. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' An entity refers to a person on the QuickBooks Customer list, Vendor list, Invoice list, or Other Names list
    ''' </summary>
    ''' <param name="FullNameWithChildren">Entity FullNameWithChildren</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByEntityFullNameWithChildren(ByVal FullNameWithChildren As String, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get InvoiceBy Account ListIDs. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' Filters according to the account name or ListID. If the "Use account numbers" preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for FullName and get the account you're looking for.
    ''' But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050.
    ''' This problem will not happen if the "Use account numbers" preference Is turned off in the QuickBooks file, Or the account name exactly matches the account number. (In this Case, query would Return the correct account either way.)
    ''' To avoid this problem:
    ''' Do not name an account using a number unless the number exactly matches the account’s account number.
    ''' If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example to 2050a.
    ''' </summary>
    ''' <param name="ListIDs">Entities ListIDs</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByAccountListIDs(ByVal ListIDs As List(Of String), Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get InvoiceBy Account ListIDs. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' Filters according to the account name or ListID. If the "Use account numbers" preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for FullName and get the account you're looking for.
    ''' But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050.
    ''' This problem will not happen if the "Use account numbers" preference Is turned off in the QuickBooks file, Or the account name exactly matches the account number. (In this Case, query would Return the correct account either way.)
    ''' To avoid this problem:
    ''' Do not name an account using a number unless the number exactly matches the account’s account number.
    ''' If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example to 2050a.
    ''' </summary>
    ''' <param name="FullNames">Entities FullNames</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    '''  <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByAccountFullNames(ByVal FullNames As List(Of String), Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get InvoiceBy Account ListIDs. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' Filters according to the account name or ListID. If the "Use account numbers" preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for FullName and get the account you're looking for.
    ''' But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050.
    ''' This problem will not happen if the "Use account numbers" preference Is turned off in the QuickBooks file, Or the account name exactly matches the account number. (In this Case, query would Return the correct account either way.)
    ''' To avoid this problem:
    ''' Do not name an account using a number unless the number exactly matches the account’s account number.
    ''' If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example to 2050a.
    ''' </summary>
    ''' <param name="ListIDWithChildren">Account ListIDWithChildren</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByAccountListIDWithChildren(ByVal ListIDWithChildren As String, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get InvoiceBy Account ListIDs. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' Filters according to the account name or ListID. If the "Use account numbers" preference is enabled in the QuickBooks company file, you can specify an account number (instead of an account name) for FullName and get the account you're looking for.
    ''' But if numbers have been used as account names, confusion could arise. For example, if you queried for an account named 2050, and 2050 happened to be the account number of a totally different account, the query would not return what you asked for (the account named 2050), but instead would return the account with the account number 2050.
    ''' This problem will not happen if the "Use account numbers" preference Is turned off in the QuickBooks file, Or the account name exactly matches the account number. (In this Case, query would Return the correct account either way.)
    ''' To avoid this problem:
    ''' Do not name an account using a number unless the number exactly matches the account’s account number.
    ''' If an account name must contain a number that does not match its own account number, have the QuickBooks user change the account’s name slightly, for example to 2050a.
    ''' </summary>
    ''' <param name="FullNameWithChildren">Account FullNameWithChildren</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByAccountFullNameWithChildren(ByVal FullNameWithChildren As String, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get Invoice By RefNumber Match. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' NOTE: IF YOU HAVE TOO MANY RECORDS GET Invoice BY DATERANGE
    ''' </summary>
    ''' <param name="RefNumber">RefNumber of the Invoice. If it is one RefNumbers, just add one RefNumbers to the List(Of String)</param>
    ''' <param name="MatchCriterion">qbMatchCriterion enum. Values(StartsWith, Contains, EndsWith)</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByRefNumberMatch(ByVal RefNumber As String, ByVal MatchCriterion As qbMatchCriterion, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' QuickBooks connection needs to be open first.
    ''' Get Invoice By RefNumber Range. Returns List(Of Invoice)
    ''' In case of error returns: new List(Of Invoice)
    ''' NOTE: IF YOU HAVE TOO MANY RECORDS GET Invoice BY DATERANGE
    ''' </summary>
    ''' <param name="FromRefNumber">FromRefNumber</param>
    ''' <param name="ToRefNumber">ToRefNumber</param>
    ''' <param name="IncludeLineItems">includes line items</param>
    ''' <param name="IncludeLinkedTxns">includes Txns Linked</param>
    ''' <param name="PaidStatus">qbPaidStatus enum. Values(All [DEFAULT], PaidOnly, NotPaidOnly)</param>
    ''' <param name="MaxReturned">max number of records to get</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function GetInvoiceByRefNumberRange(ByVal FromRefNumber As String, ByVal ToRefNumber As String, Optional ByVal IncludeLineItems As Boolean = False, Optional ByVal IncludeLinkedTxns As Boolean = False, Optional ByVal PaidStatus As qbPaidStatus = qbPaidStatus.All, Optional ByVal MaxReturned As Integer = 0, Optional ByRef errorMsg As String = "") As List(Of Invoice)

    ''' <summary>
    ''' It will delete the record from QuickBooks.
    ''' Once deleted, there is no way to retrieve
    ''' </summary>
    ''' <param name="TxnID">to add new records to QB set TxnID to a temporal one</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function DeleteInvoiceFromQuickBooksByTxnID(ByVal TxnID As String, Optional ByRef errorMsg As String = "") As Boolean

    ''' <summary>
    ''' It will add a new Invoice to InvoiceList.
    ''' </summary>
    ''' <param name="_ListID">to add new records to QB set ListID to a temporal one</param>
    ''' <param name="_Operation">set to empty, update, add, or delete</param>
    ''' <param name="errorMsg">returned error message</param>
Public Function AddToInvoiceList(_TxnID As String, _CustomerRef_ListID As String, _CustomerRef_FullName As String, Optional ByVal _TimeCreated As String = "", Optional ByVal _TimeModified As String = "", Optional ByVal _EditSequence As String = "", Optional ByVal _TxnNumber As String = "", Optional ByVal _ClassRef_ListID As String = "", Optional ByVal _ClassRef_FullName As String = "", Optional ByVal _ARAccountRef_ListID As String = "", Optional ByVal _ARAccountRef_FullName As String = "", Optional ByVal _TemplateRef_ListID As String = "", Optional ByVal _TemplateRef_FullName As String = "", Optional ByVal _TxnDate As String = "", Optional ByVal _RefNumber As String = "", Optional ByVal _BillAddress_Addr1 As String = "", Optional ByVal _BillAddress_Addr2 As String = "", Optional ByVal _BillAddress_Addr3 As String = "", Optional ByVal _BillAddress_Addr4 As String = "", Optional ByVal _BillAddress_Addr5 As String = "", Optional ByVal _BillAddress_City As String = "", Optional ByVal _BillAddress_State As String = "", Optional ByVal _BillAddress_PostalCode As String = "", Optional ByVal _BillAddress_Country As String = "", Optional ByVal _BillAddress_Note As String = "", Optional ByVal _ShipAddress_Addr1 As String = "", Optional ByVal _ShipAddress_Addr2 As String = "", Optional ByVal _ShipAddress_Addr3 As String = "", Optional ByVal _ShipAddress_Addr4 As String = "", Optional ByVal _ShipAddress_Addr5 As String = "", Optional ByVal _ShipAddress_City As String = "", Optional ByVal _ShipAddress_State As String = "", Optional ByVal _ShipAddress_PostalCode As String = "", Optional ByVal _ShipAddress_Country As String = "", Optional ByVal _ShipAddress_Note As String = "", Optional ByVal _IsPending As String = "", Optional ByVal _IsFinanceCharge As String = "", Optional ByVal _PONumber As String = "", Optional ByVal _TermsRef_ListID As String = "", Optional ByVal _TermsRef_FullName As String = "", Optional ByVal _DueDate As String = "", Optional ByVal _SalesRepRef_ListID As String = "", Optional ByVal _SalesRepRef_FullName As String = "", Optional ByVal _FOB As String = "", Optional ByVal _ShipDate As String = "", Optional ByVal _ShipMethodRef_ListID As String = "", Optional ByVal _ShipMethodRef_FullName As String = "", Optional ByVal _Subtotal As String = "", Optional ByVal _ItemSalesTaxRef_ListID As String = "", Optional ByVal _ItemSalesTaxRef_FullName As String = "", Optional ByVal _SalesTaxPercentage As String = "", Optional ByVal _SalesTaxTotal As String = "", Optional ByVal _AppliedAmount As String = "", Optional ByVal _BalanceRemaining As String = "", Optional ByVal _CurrencyRef_ListID As String = "", Optional ByVal _CurrencyRef_FullName As String = "", Optional ByVal _ExchangeRate As String = "", Optional ByVal _BalRemainingInHomeCurrency As String = "", Optional ByVal _Memo As String = "", Optional ByVal _IsPaid As String = "", Optional ByVal _CustomerMsgRef_ListID As String = "", Optional ByVal _CustomerMsgRef_FullName As String = "", Optional ByVal _IsToBePrinted As String = "", Optional ByVal _IsToBeEmailed As String = "", Optional ByVal _IsTaxIncluded As String = "", Optional ByVal _CustSalesTaxCodeRef_ListID As String = "", Optional ByVal _CustSalesTaxCodeRef_FullName As String = "", Optional ByVal _SuggestedDiscountAmount As String = "", Optional ByVal _SuggestedDiscountDate As String = "", Optional ByVal _Other As String = "", Optional ByVal _CustomField1 As String = "", Optional ByVal _CustomField2 As String = "", Optional ByVal _CustomField3 As String = "", Optional ByVal _CustomField4 As String = "", Optional ByVal _CustomField5 As String = "", Optional ByVal _CustomField6 As String = "", Optional ByVal _CustomField7 As String = "", Optional ByVal _CustomField8 As String = "", Optional ByVal _CustomField9 As String = "", Optional ByVal _CustomField10 As String = "", Optional ByVal _CustomField11 As String = "", Optional ByVal _CustomField12 As String = "", Optional ByVal _CustomField13 As String = "", Optional ByVal _CustomField14 As String = "", Optional ByVal _CustomField15 As String = "", Optional ByVal _ExternalGUID As String = "", Optional ByVal _UserData As String = "", Optional ByVal _Operation As String = "", Optional ByRef errorMsg As String = "") As Invoice

Powered by BetterDocs