Public/Invoices/Get-Pax8Invoice.ps1
|
function Get-Pax8Invoice { [CmdletBinding(DefaultParameterSetName = 'Paging')] param ( [Parameter(ParameterSetName = 'Paging')] [int]$page, [Parameter(ParameterSetName = 'Paging')] [ValidateRange(1, 200)] [int]$size, [string]$sort, [string]$status, [ValidateScript({ [DateTime]::ParseExact($_, "yyyy-MM-dd", $null) })] [string]$invoiceDate, [ValidateScript({ [DateTime]::ParseExact($_, "yyyy-MM-dd", $null) })] [string]$invoiceDateRangeStart, [ValidateScript({ [DateTime]::ParseExact($_, "yyyy-MM-dd", $null) })] [string]$invoiceDateRangeEnd, [ValidateScript({ [DateTime]::ParseExact($_, "yyyy-MM-dd", $null) })] [string]$dueDate, [double]$total, [double]$balance, [double]$carriedBalance, [guid]$companyId, [Parameter(ParameterSetName = 'All')] [switch]$all ) dynamicparam { if ($PSBoundParameters.ContainsKey('sort')) { $dynParamDictionary = [System.Management.Automation.RuntimeDefinedParameterDictionary]::new() $dynParam = [System.Management.Automation.RuntimeDefinedParameter]::new('direction', [string], [System.Attribute[]]@( [Parameter]@{Position = 0 } [ValidateSet]::new('asc', 'desc') )) $dynParamDictionary.Add($dynParam.Name, $dynParam) $dynParamDictionary } } begin { $endPoint = 'invoices' } process { Invoke-Pax8GetRequest -Arguments $PSBoundParameters -EndPoint $endPoint } } |