Produktstamm.psm1
function New-Produkt { [CmdletBinding()] param( [Parameter(Mandatory, HelpMessage = "Zulässige Produkt-Typen: ProduktOhneLieferung, ProduktAuslieferbar, ProduktBuendel")] [string]$ProduktTyp, [Parameter(Mandatory)] [string]$Bezeichnung, [Parameter(Mandatory, HelpMessage = "Sicherheitseinstellung (erstellt z.B. mit New-Sicherheitseinstellung-Object)")] [PSCustomObject]$SicherheitsEinstellung, [string]$Beschreibung, [string]$Kurzbeschreibung, [string]$AdminHinweis, [boolean]$IstEinzelnBestellbar, [Parameter(HelpMessage = "Format: 2019-02-01T00:00")] $VerfuegbarAb, [Parameter(HelpMessage = "Format: 2019-02-01T00:00")] $VerfuegbarBis, [int]$BestellmengeMinimal, [int]$BestellmengeMaximal, [Parameter(HelpMessage = "Format: Komma-separierte Liste, z.B. 10, 20, 30")] [int[]]$ZulaessigeBestellmengen, [decimal]$MaximumKundenPreis, [decimal]$MinimumKundenPreis, [boolean]$IstKundenPreis, [boolean]$HatIndividuellenPreis, [decimal]$Preis, [decimal]$Referenzpreis, [string]$WaehrungsCode, [Parameter(HelpMessage = "Format: Komma-separierte Liste von Uids")] [array]$Bestandteile ) process { $Body = [PSCustomObject]@{ type = $ProduktTyp; Bezeichnung = $Bezeichnung; Sicherheitseinstellung = $SicherheitsEinstellung; }; if ($PSBoundParameters.ContainsKey("Beschreibung")) { $Body | Add-Member -MemberType NoteProperty -Name "Beschreibung" -Value $Beschreibung; } if ($PSBoundParameters.ContainsKey("Kurzbeschreibung")) { $Body | Add-Member -MemberType NoteProperty -Name "Kurzbeschreibung" -Value $Kurzbeschreibung; } if ($PSBoundParameters.ContainsKey("AdminHinweis")) { $Body | Add-Member -MemberType NoteProperty -Name "AdminHinweis" -Value $AdminHinweis; } if ($PSBoundParameters.ContainsKey("IstEinzelnBestellbar")) { $Body | Add-Member -MemberType NoteProperty -Name "IstEinzelnBestellbar" -Value $IstEinzelnBestellbar; } if ($PSBoundParameters.ContainsKey("VerfuegbarAb")) { $Body | Add-Member -MemberType NoteProperty -Name "VerfuegbarAb" -Value $VerfuegbarAb; } if ($PSBoundParameters.ContainsKey("VerfuegbarBis")) { $Body | Add-Member -MemberType NoteProperty -Name "VerfuegbarBis" -Value $VerfuegbarBis; } if ($PSBoundParameters.ContainsKey("BestellmengeMinimal")) { $Body | Add-Member -MemberType NoteProperty -Name "BestellmengeMinimal" -Value $BestellmengeMinimal; } if ($PSBoundParameters.ContainsKey("BestellmengeMaximal")) { $Body | Add-Member -MemberType NoteProperty -Name "BestellmengeMaximal" -Value $BestellmengeMaximal; } if ($PSBoundParameters.ContainsKey("ZulaessigeBestellmengen")) { $Body | Add-Member -MemberType NoteProperty -Name "ZulaessigeBestellmengen" -Value $ZulaessigeBestellmengen; } if ($PSBoundParameters.ContainsKey("MaximumKundenPreis")) { $Body | Add-Member -MemberType NoteProperty -Name "MaximumKundenPreis" -Value $MaximumKundenPreis; } if ($PSBoundParameters.ContainsKey("MinimumKundenPreis")) { $Body | Add-Member -MemberType NoteProperty -Name "MinimumKundenPreis" -Value $MinimumKundenPreis; } if ($PSBoundParameters.ContainsKey("IstKundenPreis")) { $Body | Add-Member -MemberType NoteProperty -Name "IstKundenPreis" -Value $IstKundenPreis; } if ($PSBoundParameters.ContainsKey("HatIndividuellenPreis")) { $Body | Add-Member -MemberType NoteProperty -Name "HatIndividuellenPreis" -Value $HatIndividuellenPreis; } if ($PSBoundParameters.ContainsKey("Preis")) { $Body | Add-Member -MemberType NoteProperty -Name "Preis" -Value $Preis; } if ($PSBoundParameters.ContainsKey("Referenzpreis")) { $Body | Add-Member -MemberType NoteProperty -Name "Referenzpreis" -Value $Referenzpreis; } if ($PSBoundParameters.ContainsKey("WaehrungsCode")) { $Body | Add-Member -MemberType NoteProperty -Name "WaehrungsCode" -Value $WaehrungsCode; } if ($PSBoundParameters.ContainsKey("Bestandteile")) { $Body | Add-Member -MemberType NoteProperty -Name "Bestandteile" -Value $Bestandteile; } $res = Invoke-Weedu -Uri "rest/Produkte" -Method POST -Body $Body; return $res; } } function Set-Produkt { [CmdletBinding(DefaultParameterSetName = "Default")] param( [Parameter(Mandatory, HelpMessage = "Uid des Produkts")] $ProduktUid, [Parameter(Mandatory, HelpMessage = "Zulässige Produkt-Typen: ProduktOhneLieferung, ProduktAuslieferbar, ProduktBuendel")] [string]$ProduktTyp, [Parameter(ParameterSetName = "Uebersetzung", HelpMessage = "Zweistelliger Sprachcode (ISO 639-1), z.B. fr, en oder it")] [string]$Sprache, [string]$Bezeichnung, [string]$Beschreibung, [string]$Kurzbeschreibung, [Parameter(ParameterSetName = "Default")] [string]$AdminHinweis, [Parameter(ParameterSetName = "Default")] [boolean]$IstEinzelnBestellbar, [Parameter(ParameterSetName = "Default", HelpMessage = "Format: 2019-02-01T00:00")] $VerfuegbarAb, [Parameter(ParameterSetName = "Default", HelpMessage = "Format: 2019-02-01T00:00")] $VerfuegbarBis, [Parameter(ParameterSetName = "Default")] [int]$BestellmengeMinimal, [Parameter(ParameterSetName = "Default")] [int]$BestellmengeMaximal, [Parameter(ParameterSetName = "Default", HelpMessage = "Format: Komma-separierte Liste, z.B. 10, 20, 30")] [int[]]$ZulaessigeBestellmengen, [Parameter(ParameterSetName = "Default")] [decimal]$MaximumKundenPreis, [Parameter(ParameterSetName = "Default")] [decimal]$MinimumKundenPreis, [Parameter(ParameterSetName = "Default")] [boolean]$IstKundenPreis, [Parameter(ParameterSetName = "Default")] [boolean]$HatIndividuellenPreis, [Parameter(ParameterSetName = "Default")] [decimal]$Preis, [Parameter(ParameterSetName = "Default")] [decimal]$Referenzpreis, [Parameter(ParameterSetName = "Default")] [string]$WaehrungsCode, [Parameter(ParameterSetName = "Default", HelpMessage = "Format: Komma-separierte Liste von Uids")] [array]$Bestandteile ) process { $Body = [PSCustomObject]@{ type = $ProduktTyp; }; $Uid = ConvertTo-WeeduGuid $ProduktUid; if ($PSBoundParameters.ContainsKey("Bezeichnung")) { $Body | Add-Member -MemberType NoteProperty -Name "Bezeichnung" -Value $Bezeichnung; } if ($PSBoundParameters.ContainsKey("Beschreibung")) { $Body | Add-Member -MemberType NoteProperty -Name "Beschreibung" -Value $Beschreibung; } if ($PSBoundParameters.ContainsKey("Kurzbeschreibung")) { $Body | Add-Member -MemberType NoteProperty -Name "Kurzbeschreibung" -Value $Kurzbeschreibung; } if ($PSBoundParameters.ContainsKey("AdminHinweis")) { $Body | Add-Member -MemberType NoteProperty -Name "AdminHinweis" -Value $AdminHinweis; } if ($PSBoundParameters.ContainsKey("IstEinzelnBestellbar")) { $Body | Add-Member -MemberType NoteProperty -Name "IstEinzelnBestellbar" -Value $IstEinzelnBestellbar; } if ($PSBoundParameters.ContainsKey("VerfuegbarAb")) { $Body | Add-Member -MemberType NoteProperty -Name "VerfuegbarAb" -Value $VerfuegbarAb; } if ($PSBoundParameters.ContainsKey("VerfuegbarBis")) { $Body | Add-Member -MemberType NoteProperty -Name "VerfuegbarBis" -Value $VerfuegbarBis; } if ($PSBoundParameters.ContainsKey("BestellmengeMinimal")) { $Body | Add-Member -MemberType NoteProperty -Name "BestellmengeMinimal" -Value $BestellmengeMinimal; } if ($PSBoundParameters.ContainsKey("BestellmengeMaximal")) { $Body | Add-Member -MemberType NoteProperty -Name "BestellmengeMaximal" -Value $BestellmengeMaximal; } if ($PSBoundParameters.ContainsKey("ZulaessigeBestellmengen")) { $Body | Add-Member -MemberType NoteProperty -Name "ZulaessigeBestellmengen" -Value $ZulaessigeBestellmengen; } if ($PSBoundParameters.ContainsKey("MaximumKundenPreis")) { $Body | Add-Member -MemberType NoteProperty -Name "MaximumKundenPreis" -Value $MaximumKundenPreis; } if ($PSBoundParameters.ContainsKey("MinimumKundenPreis")) { $Body | Add-Member -MemberType NoteProperty -Name "MinimumKundenPreis" -Value $MinimumKundenPreis; } if ($PSBoundParameters.ContainsKey("IstKundenPreis")) { $Body | Add-Member -MemberType NoteProperty -Name "IstKundenPreis" -Value $IstKundenPreis; } if ($PSBoundParameters.ContainsKey("HatIndividuellenPreis")) { $Body | Add-Member -MemberType NoteProperty -Name "HatIndividuellenPreis" -Value $HatIndividuellenPreis; } if ($PSBoundParameters.ContainsKey("Preis")) { $Body | Add-Member -MemberType NoteProperty -Name "Preis" -Value $Preis; } if ($PSBoundParameters.ContainsKey("Referenzpreis")) { $Body | Add-Member -MemberType NoteProperty -Name "Referenzpreis" -Value $Referenzpreis; } if ($PSBoundParameters.ContainsKey("WaehrungsCode")) { $Body | Add-Member -MemberType NoteProperty -Name "WaehrungsCode" -Value $WaehrungsCode; } if ($PSBoundParameters.ContainsKey("Bestandteile")) { $Body | Add-Member -MemberType NoteProperty -Name "Bestandteile" -Value $Bestandteile; } if ($PSCmdlet.ParameterSetName -eq "Default") { $res = Invoke-Weedu -Uri "/rest/Produkte/{0}" -UriParams $Uid -Method PUT -Body $Body; } else { $res = Invoke-Weedu -Uri "/rest/Produkte/{0}/{1}" -UriParams @($Uid, $Sprache) -Method PUT -Body $Body; } return $res; } } function Get-Produkt { [CmdletBinding()] param( [Parameter(Mandatory, ValueFromPipeline, HelpMessage = "Uid des Produkts")] $ProduktUid, [Parameter(HelpMessage = "Zweistelliger Sprachcode (ISO 639-1), z.B. fr, en oder it")] [string]$Sprache ) process { $Uid = ConvertTo-WeeduGuid $ProduktUid; if ($PSBoundParameters.ContainsKey("Sprache")) { return Invoke-Weedu -Uri "/rest/Produkte/{0}/{1}" -UriParams @($Uid, $Sprache) -Method GET; } else { return Invoke-Weedu -Uri "/rest/Produkte/{0}" -UriParams $Uid -Method GET; } } } function Remove-Produkt { [CmdletBinding()] param( [Parameter(Mandatory, HelpMessage = "Uid des Produkts")] $ProduktUid, [Parameter(HelpMessage = "Zweistelliger Sprachcode (ISO 639-1), z.B. fr, en oder it")] [string]$Sprache ) process { $Uid = ConvertTo-WeeduGuid $ProduktUid; if ($PSBoundParameters.ContainsKey("Sprache")) { return Invoke-Weedu -Uri "/rest/Produkte/{0}/{1}" -UriParams @($Uid, $Sprache) -Method DELETE; } else { return Invoke-Weedu -Uri "/rest/Produkte/{0}" -UriParams $Uid -Method DELETE; } } } Export-ModuleMember -function New-Produkt Export-ModuleMember -function Set-Produkt Export-ModuleMember -function Get-Produkt Export-ModuleMember -function Remove-Produkt |