Public/Helpers/Import-HaloSuppliersFromAccountingPackage.ps1

function Import-HaloSupplierFromQBO {
    <#
        .SYNOPSIS
            Imports Halo Suppliers from QuickBooks Online
        .DESCRIPTION
            Imports Halo Suppliers from QuickBooks Online into the Halo API.
        .OUTPUTS
            A powershell object containing the response.
    #>

    [CmdletBinding()]
    param (
        # The QuickBooks Online Supplier object to import
        [System.Object]$APSupplier,
        # The type of import to perform
        [string]$ImportType = 'quickbooksonline',
        # The QuickBooks Online Company ID
        [string] $APCompanyID
    )
    [PSCustomObject]$returnData = @{
        _isimport = $true
        _importtype = $ImportType
        accounts_id = $APSupplier.id
        details_id = 1
        qbo_company_id = $APCompanyID
        name = $APSupplier.companyName
        address = ('{0}{4}{1}{4}{2}{4}{3}' -f $APSupplier.billAddr.line1, $APSupplier.billAddr.city, $APSupplier.billAddr.countrySubDivisionCode, $APSupplier.billAddr.postalCode, [Environment]::NewLine)
    }

    if ($Email = $APSupplier.primaryEmailAddr.address) {
        Add-Member -InputObject $returnData -Name email_address -Value $Email -MemberType NoteProperty -Force
    }
    if ($PhoneNumber = $APSupplier.printOnCheckName.freeFormNumber) {
        Add-Member -InputObject $returnData -Name phone_number -Value $PhoneNumber -MemberType NoteProperty -Force
    }

    if (($FirstName = $APSupplier.givenName) -or ($LastName = $APSupplier.familyName)) {
        Add-Member -InputObject $returnData -Name contact_name -Value (('{0} {1}' -f $FirstName, $LastName).trim()) -MemberType NoteProperty -Force
    }
    return $returnData
}