Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2406f58a91 | ||
|
|
bc47bcc784 | ||
|
|
b8b86ef7ec | ||
|
|
d91e8c7e99 |
@@ -2,6 +2,58 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
[v1.2.0.1][v1.2.0.1] (2026-10-08) {#v1.2.0.1}
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
### Behobene Fehler {#v1.2.0.1-bugfixes}
|
||||||
|
|
||||||
|
- Umlaute im HTTP-Header werden richtig behandelt. ([#76][i76])
|
||||||
|
|
||||||
|
### Sonstiges {#v1.2.0.1-misc}
|
||||||
|
|
||||||
|
- Abhängigkeiten aktualisiert. (bc47bcc784)
|
||||||
|
|
||||||
|
[v1.2.0.1]: https://git.necronda.net/winzer/elwig/releases/tag/v1.2.0.1
|
||||||
|
[i76]: https://git.necronda.net/winzer/elwig/issues/76
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[v1.2.0.0][v1.2.0.0] (2026-10-03) {#v1.2.0.0}
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
### Neue Funktionen {#v1.2.0.0-features}
|
||||||
|
|
||||||
|
- Bio-Zertifikate können nun mit der TRACES Plattform der EU abgeglichen werden; und viele weitere damit zusammenhängende Verbesserungen/Kontrollen. ([#67][i67], d592fef352)
|
||||||
|
- Bei den Übersichts-Tabellen der Tooltips für Menge/Gradation im Lieferungen-Fenster (`DeliveryAdminWindow`) wird nun zusätlich auch in Rot- und Weißweinsorten unterschieden. (7fef895491)
|
||||||
|
- Straßennamen in Adressen werden normalisiert (nach Regeln und Empehlungen des [Duden](https://www.duden.de/sprachwissen/rechtschreibregeln/strassennamen) und der [Stadt Wien](https://www.wien.gv.at/bildung/wiener-stadt-landesarchiv-wiener-nomenklaturkommission)). (fda337c3cb, 4f4d026b7b)
|
||||||
|
- Es ist nun möglich ausstehende Mitglieder-Bewegungen im Mitglieder-Fenster (`MemberAdminWindow`) abzuspeichern, wenn die GA mit Elwig erfasst werden. (83dfde9203, abb9e5a577)
|
||||||
|
|
||||||
|
### Behobene Fehler {#v1.2.0.0-bugfixes}
|
||||||
|
|
||||||
|
- Beim Wiederherstellen von Backups wird das ausgewählte Backup nicht mehr gelöscht (betraf nur `.sqlite3`-Dateien). (15e191d74e)
|
||||||
|
- Falls für ein Mitglied eine Rechnungsaddresse angegeben ist wird der angegebene Name nicht mehr für eine Adressierung an das Mitglied persönlich verwendet. (d8126e254d)
|
||||||
|
- Tippfehler bei Fehlermeldung von SysTec-IT Waagen ausgebessert. (03872ca5c2)
|
||||||
|
- Es ist nun nicht mehr möglich Lieferungen mit negativem Gewicht zu speichern. (0e586cc438)
|
||||||
|
|
||||||
|
### Sonstiges {#v1.2.0.0-misc}
|
||||||
|
|
||||||
|
- Bei Handwiegungen ist es nun möglich die Ist-Tara im Korrektur-Dialog zu ändern. (0e9121c462)
|
||||||
|
- Kleine Änderungen des Layouts von Lieferscheinen (`DeliveryNote`). (f2b84053e6)
|
||||||
|
- Automatische Backups werden im Debug-Modus nicht mehr durchgeführt. (cba949d2eb)
|
||||||
|
- Im Mitglieder-Fenster (`MemberAdminWindow`) werden "Ort" und "Bestimmungsort" der PLZ in umgekehrter Reihenfolge angezeigt ("Ort" zuerst, "Bestimmungsort" in Klammer). (66a1185dc3)
|
||||||
|
- Auch Weinsorten im Dialog zum Abwerten/Aufteilen von Lieferungen (`DeliverySplittingDialog`) werden rot oder grün eingefärbt. (829ad106cf)
|
||||||
|
- Per Opt-out kann man den Verlauf der GA auf Stammdatenblättern (`MemberDataSheet`) ausblenden. (09642e643c)
|
||||||
|
- Viele kleine Verbesserungen der Code-Qualität. (155a599878, c2bc5b221a, b886abc632, 5f2788eb9e, 3d96c31a70, db8afa59b7, ba7c37fd70)
|
||||||
|
- Mehr Unit-Tests hinzugefügt (`PaymentVariantServiceTest`). (4988081bfd)
|
||||||
|
- Abhängigkeiten aktualisiert. (c54a998c96, aea7c39734, b262e17293)
|
||||||
|
|
||||||
|
[v1.2.0.0]: https://git.necronda.net/winzer/elwig/releases/tag/v1.2.0.0
|
||||||
|
[i67]: https://git.necronda.net/winzer/elwig/issues/67
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[v1.1.2.2][v1.1.2.2] (2026-09-14) {#v1.1.2.2}
|
[v1.1.2.2][v1.1.2.2] (2026-09-14) {#v1.1.2.2}
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
|
|||||||
+14
-13
@@ -339,20 +339,21 @@ namespace Elwig {
|
|||||||
|
|
||||||
public static async Task CheckForUpdates(bool showAlert = false) {
|
public static async Task CheckForUpdates(bool showAlert = false) {
|
||||||
if (Config.UpdateUrl == null) return;
|
if (Config.UpdateUrl == null) return;
|
||||||
var latest = await Utils.GetLatestInstallerUrl(Config.UpdateUrl);
|
try {
|
||||||
if (latest != null && new Version(latest.Value.Version) > Version) {
|
var latest = await Utils.GetLatestInstallerUrl(Config.UpdateUrl);
|
||||||
await MainDispatcher.BeginInvoke(() => {
|
if (new Version(latest.Version) > Version) {
|
||||||
var d = new UpdateDialog(latest.Value.Version, latest.Value.Url, latest.Value.Size);
|
await MainDispatcher.BeginInvoke(() => {
|
||||||
if (d.ShowDialog() == true) {
|
var d = new UpdateDialog(latest.Version, latest.Url, latest.Size);
|
||||||
ShutdownNow();
|
if (d.ShowDialog() == true) {
|
||||||
}
|
ShutdownNow();
|
||||||
});
|
}
|
||||||
} else if (showAlert) {
|
});
|
||||||
if (latest == null) {
|
} else if (showAlert) {
|
||||||
InteractionService.ShowError("Nach Updates suchen", "Informationen konnten nicht abgerufen werden!");
|
InteractionService.ShowInformation("Nach Updates suchen", $"Elwig ist auf dem aktuellsten Stand! (Version: {latest.Version})");
|
||||||
} else {
|
|
||||||
InteractionService.ShowInformation("Nach Updates suchen", $"Elwig ist auf dem aktuellsten Stand! (Version: {latest.Value.Version})");
|
|
||||||
}
|
}
|
||||||
|
} catch (Exception exc) {
|
||||||
|
if (showAlert)
|
||||||
|
InteractionService.ShowException("Nach Updates suchen", $"Informationen konnten nicht abgerufen werden!", exc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -9,7 +9,7 @@
|
|||||||
<UseWindowsForms>true</UseWindowsForms>
|
<UseWindowsForms>true</UseWindowsForms>
|
||||||
<PreserveCompilationContext>true</PreserveCompilationContext>
|
<PreserveCompilationContext>true</PreserveCompilationContext>
|
||||||
<ApplicationIcon>Resources\Images\Elwig.ico</ApplicationIcon>
|
<ApplicationIcon>Resources\Images\Elwig.ico</ApplicationIcon>
|
||||||
<Version>1.1.2.2</Version>
|
<Version>1.2.0.1</Version>
|
||||||
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
|
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<ApplicationManifest>App.manifest</ApplicationManifest>
|
<ApplicationManifest>App.manifest</ApplicationManifest>
|
||||||
@@ -23,11 +23,11 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="bblanchon.PDFium.Win32" Version="156.0.8076" />
|
<PackageReference Include="bblanchon.PDFium.Win32" Version="157.0.8086" />
|
||||||
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.2" />
|
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.2" />
|
||||||
<PackageReference Include="itext" Version="9.8.0" />
|
<PackageReference Include="itext" Version="9.8.0" />
|
||||||
<PackageReference Include="itext.bouncy-castle-adapter" Version="9.8.0" />
|
<PackageReference Include="itext.bouncy-castle-adapter" Version="9.8.0" />
|
||||||
<PackageReference Include="LinqKit" Version="1.3.11" />
|
<PackageReference Include="LinqKit" Version="1.4.0" />
|
||||||
<PackageReference Include="MailKit" Version="4.18.1" />
|
<PackageReference Include="MailKit" Version="4.18.1" />
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.12" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.12" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="10.0.12" />
|
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="10.0.12" />
|
||||||
|
|||||||
+16
-13
@@ -483,12 +483,20 @@ namespace Elwig.Helpers {
|
|||||||
return InternetGetConnectedState(out var _, 0);
|
return InternetGetConnectedState(out var _, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string ReplaceUmlaute(string s) {
|
||||||
|
return s
|
||||||
|
.Replace("ä", "ae").Replace("Ä", "Ae")
|
||||||
|
.Replace("ö", "oe").Replace("Ö", "Oe")
|
||||||
|
.Replace("ü", "ue").Replace("Ü", "Ue")
|
||||||
|
.Replace("ß", "ss").Replace("ẞ", "SS");
|
||||||
|
}
|
||||||
|
|
||||||
public static HttpClient GetHttpClient(string? username = null, string? password = null, string? accept = null) {
|
public static HttpClient GetHttpClient(string? username = null, string? password = null, string? accept = null) {
|
||||||
var client = new HttpClient() {
|
var client = new HttpClient() {
|
||||||
Timeout = TimeSpan.FromSeconds(5),
|
Timeout = TimeSpan.FromSeconds(5),
|
||||||
};
|
};
|
||||||
client.DefaultRequestHeaders.UserAgent.Clear();
|
client.DefaultRequestHeaders.UserAgent.Clear();
|
||||||
client.DefaultRequestHeaders.UserAgent.ParseAdd($"Elwig/{App.Version} ({App.Client?.NameToken}, {App.BranchName}, {Environment.MachineName}, {Environment.OSVersion})");
|
client.DefaultRequestHeaders.UserAgent.ParseAdd($"Elwig/{App.Version} ({App.Client?.NameToken}, {ReplaceUmlaute(App.BranchName)}, {Environment.MachineName}, {Environment.OSVersion})");
|
||||||
client.DefaultRequestHeaders.Accept.Clear();
|
client.DefaultRequestHeaders.Accept.Clear();
|
||||||
if (accept != null)
|
if (accept != null)
|
||||||
client.DefaultRequestHeaders.Accept.Add(new(accept));
|
client.DefaultRequestHeaders.Accept.Add(new(accept));
|
||||||
@@ -497,18 +505,13 @@ namespace Elwig.Helpers {
|
|||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task<(string Version, string Url, long Size)?> GetLatestInstallerUrl(string url) {
|
public static async Task<(string Version, string Url, long Size)> GetLatestInstallerUrl(string url) {
|
||||||
try {
|
using var client = GetHttpClient(accept: "application/json");
|
||||||
using var client = GetHttpClient(accept: "application/json");
|
using var res = await client.GetAsync(url);
|
||||||
using var res = await client.GetAsync(url);
|
res.EnsureSuccessStatusCode();
|
||||||
if (!res.IsSuccessStatusCode)
|
var resJson = JsonNode.Parse(await res.Content.ReadAsStringAsync());
|
||||||
return null;
|
var data = resJson!["data"]!.AsArray()[^1]!;
|
||||||
var resJson = JsonNode.Parse(await res.Content.ReadAsStringAsync());
|
return ((string)data["version"]!, (string)data["url"]!, (long)data["size"]!);
|
||||||
var data = resJson!["data"]!.AsArray()[^1]!;
|
|
||||||
return ((string)data["version"]!, (string)data["url"]!, (long)data["size"]!);
|
|
||||||
} catch {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task UploadExportData(string zip, string url, string username, string password) {
|
public static async Task UploadExportData(string zip, string url, string username, string password) {
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ About
|
|||||||
**Product:** Elwig
|
**Product:** Elwig
|
||||||
**Description:** Electronic Management for Vintners' Cooperatives
|
**Description:** Electronic Management for Vintners' Cooperatives
|
||||||
**Type:** ERP system
|
**Type:** ERP system
|
||||||
**Version:** 1.1.2.2 ([Changelog](./CHANGELOG.md))
|
**Version:** 1.2.0.1 ([Changelog](./CHANGELOG.md))
|
||||||
**License:** [GNU General Public License 3.0 (GPLv3)](./LICENSE)
|
**License:** [GNU General Public License 3.0 (GPLv3)](./LICENSE)
|
||||||
**Website:** https://elwig.at/
|
**Website:** https://elwig.at/
|
||||||
**Source code:** https://git.necronda.net/winzer/elwig
|
**Source code:** https://git.necronda.net/winzer/elwig
|
||||||
@@ -33,7 +33,7 @@ Packaging: [WiX Toolset](https://www.firegiant.com/wixtoolset/)
|
|||||||
**Produkt:** Elwig
|
**Produkt:** Elwig
|
||||||
**Beschreibung:** Elektronische Winzergenossenschaftsverwaltung
|
**Beschreibung:** Elektronische Winzergenossenschaftsverwaltung
|
||||||
**Typ:** Warenwirtschaftssystem (ERP-System)
|
**Typ:** Warenwirtschaftssystem (ERP-System)
|
||||||
**Version:** 1.1.2.2 ([Änderungsprotokoll](./CHANGELOG.md))
|
**Version:** 1.2.0.1 ([Änderungsprotokoll](./CHANGELOG.md))
|
||||||
**Lizenz:** [GNU General Public License 3.0 (GPLv3)](./LICENSE)
|
**Lizenz:** [GNU General Public License 3.0 (GPLv3)](./LICENSE)
|
||||||
**Website:** https://elwig.at/
|
**Website:** https://elwig.at/
|
||||||
**Quellcode:** https://git.necronda.net/winzer/elwig
|
**Quellcode:** https://git.necronda.net/winzer/elwig
|
||||||
|
|||||||
Reference in New Issue
Block a user