Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 92f83f8b74 | |||
| 5ba286d926 |
@@ -2,41 +2,6 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
[v1.0.5.6][v1.0.5.6] (2026-06-25) {#v1.0.5.6}
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
### Behobene Fehler {#v1.0.5.6-bugfixes}
|
|
||||||
|
|
||||||
* Beim Speichern von Auszahlungsvarianten wurden Einstellungen für Abwertungen nicht immer übernommen. (15de07a4c3)
|
|
||||||
* Im Stammdaten-Fenster (`BaseDataWindow`) war es nicht möglich Zweigstellen, Attribute, oder Bewirtschaftungsarten zu bearbeiten/erstellen/löschen. (1261be001c)
|
|
||||||
|
|
||||||
### Sonstiges {#v1.0.5.6-misc}
|
|
||||||
|
|
||||||
* Mandant `Seewinkel` hinzugefügt. (1ad97a78ff)
|
|
||||||
|
|
||||||
[v1.0.5.6]: https://git.necronda.net/winzer/elwig/releases/tag/v1.0.5.6
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[v1.0.5.5][v1.0.5.5] (2026-06-24) {#v1.0.5.5}
|
|
||||||
---------------------------------------------
|
|
||||||
|
|
||||||
### Behobene Fehler {#v1.0.5.5-bugfixes}
|
|
||||||
|
|
||||||
* Beim Exportieren der Überweisungsdaten (EBICS) im Auszahlungsvarianten-Fenster (`PaymentVariantsWindow`) kam es zu einem Absturz. (3f65b2350b)
|
|
||||||
* Einige Einstellungen einer Auszahlungsvariante wurden vom Auszahlungsvariante-Fenster (`ChartWindow`) beim Speichern überschrieben. (f32ff945ec)
|
|
||||||
|
|
||||||
### Sonstiges {#v1.0.5.5-misc}
|
|
||||||
|
|
||||||
* Traubengutschriften mit negativem Betrag sind nun wieder möglich. (ba3f66591e)
|
|
||||||
* Abhängigkeiten aktualisiert. (4e027a9add)
|
|
||||||
|
|
||||||
[v1.0.5.5]: https://git.necronda.net/winzer/elwig/releases/tag/v1.0.5.5
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[v1.0.5.4][v1.0.5.4] (2026-06-22) {#v1.0.5.4}
|
[v1.0.5.4][v1.0.5.4] (2026-06-22) {#v1.0.5.4}
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -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.0.5.6</Version>
|
<Version>1.0.5.4</Version>
|
||||||
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
|
<SatelliteResourceLanguages>de-AT</SatelliteResourceLanguages>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using System.Collections.Generic;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text.Json;
|
|
||||||
using System.Text.Json.Nodes;
|
using System.Text.Json.Nodes;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
@@ -116,8 +115,8 @@ namespace Elwig.Helpers.Billing {
|
|||||||
return new(ParseJson(json));
|
return new(ParseJson(json));
|
||||||
}
|
}
|
||||||
|
|
||||||
public string ToJsonString(JsonSerializerOptions? options = null) {
|
public string ToJsonString() {
|
||||||
return Data.ToJsonString(options);
|
return Data.ToJsonString();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected JsonArray GetCurvesEntry() {
|
protected JsonArray GetCurvesEntry() {
|
||||||
@@ -459,10 +458,16 @@ namespace Elwig.Helpers.Billing {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CollapsePaymentData(payment, payment.DeepClone().AsObject(), vaributes ?? [.. payment.Select(e => new RawVaribute(e.Key))], useDefaultPayment);
|
CollapsePaymentData(payment, payment.DeepClone().AsObject(), vaributes ?? payment.Select(e => new RawVaribute(e.Key)).ToList(), useDefaultPayment);
|
||||||
CollapsePaymentData(qualityWei, qualityWei.DeepClone().AsObject(), vaributes ?? [.. qualityWei.Select(e => new RawVaribute(e.Key))], useDefaultQuality);
|
CollapsePaymentData(qualityWei, qualityWei.DeepClone().AsObject(), vaributes ?? qualityWei.Select(e => new RawVaribute(e.Key)).ToList(), useDefaultQuality);
|
||||||
|
|
||||||
|
BillingData data;
|
||||||
|
if (origData != null && origData.Mode == CalculationMode.Elwig) {
|
||||||
|
data = new BillingData((JsonObject)origData.Data.DeepClone());
|
||||||
|
} else {
|
||||||
|
data = new BillingData();
|
||||||
|
}
|
||||||
|
|
||||||
BillingData data = origData != null && origData.Mode == CalculationMode.Elwig ? new BillingData((JsonObject)origData.Data.DeepClone()) : new BillingData();
|
|
||||||
if (payment.Count == 0) {
|
if (payment.Count == 0) {
|
||||||
data.Data["payment"] = 0;
|
data.Data["payment"] = 0;
|
||||||
} else if (payment.Count == 1 && payment.First().Key == "default") {
|
} else if (payment.Count == 1 && payment.First().Key == "default") {
|
||||||
@@ -478,8 +483,6 @@ namespace Elwig.Helpers.Billing {
|
|||||||
data.Data["quality"] = new JsonObject() {
|
data.Data["quality"] = new JsonObject() {
|
||||||
["WEI"] = qualityWei
|
["WEI"] = qualityWei
|
||||||
};
|
};
|
||||||
} else {
|
|
||||||
data.Data.Remove("quality");
|
|
||||||
}
|
}
|
||||||
data.Data["curves"] = curves;
|
data.Data["curves"] = curves;
|
||||||
|
|
||||||
|
|||||||
@@ -8,18 +8,16 @@ using System.Threading.Tasks;
|
|||||||
namespace Elwig.Helpers {
|
namespace Elwig.Helpers {
|
||||||
public class ClientParameters {
|
public class ClientParameters {
|
||||||
|
|
||||||
public enum Type { Matzen, Winzerkeller, Weinland, Baden, Seewinkel };
|
public enum Type { Matzen, Winzerkeller, Weinland, Baden };
|
||||||
|
|
||||||
public bool IsMatzen => Client == Type.Matzen;
|
public bool IsMatzen => Client == Type.Matzen;
|
||||||
public bool IsWinzerkeller => Client == Type.Winzerkeller;
|
public bool IsWinzerkeller => Client == Type.Winzerkeller;
|
||||||
public bool IsWeinland => Client == Type.Weinland;
|
public bool IsWeinland => Client == Type.Weinland;
|
||||||
public bool IsBaden => Client == Type.Baden;
|
public bool IsBaden => Client == Type.Baden;
|
||||||
public bool IsSeewinkel => Client == Type.Seewinkel;
|
|
||||||
public bool IsWolkersdorf => IsWinzerkeller && App.ZwstId == "W";
|
public bool IsWolkersdorf => IsWinzerkeller && App.ZwstId == "W";
|
||||||
public bool IsHaugsdorf => IsWinzerkeller && App.ZwstId == "H";
|
public bool IsHaugsdorf => IsWinzerkeller && App.ZwstId == "H";
|
||||||
public bool IsSitzendorf => IsWinzerkeller && App.ZwstId == "S";
|
public bool IsSitzendorf => IsWinzerkeller && App.ZwstId == "S";
|
||||||
public bool IsGrInzersdorf => IsWeinland;
|
public bool IsGrInzersdorf => IsWeinland;
|
||||||
public bool IsPamhagen => IsSeewinkel;
|
|
||||||
|
|
||||||
public string NameToken;
|
public string NameToken;
|
||||||
public string NameShort;
|
public string NameShort;
|
||||||
@@ -95,8 +93,6 @@ namespace Elwig.Helpers {
|
|||||||
Client = Type.Weinland; break;
|
Client = Type.Weinland; break;
|
||||||
case "Winzergenossenschaft Baden - Bad Vöslau":
|
case "Winzergenossenschaft Baden - Bad Vöslau":
|
||||||
Client = Type.Baden; break;
|
Client = Type.Baden; break;
|
||||||
case "Winzerkeller Seewinkel":
|
|
||||||
Client = Type.Seewinkel; break;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Plz = int.Parse(parameters["CLIENT_PLZ"] ?? "");
|
Plz = int.Parse(parameters["CLIENT_PLZ"] ?? "");
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ namespace Elwig.Windows {
|
|||||||
if (!_branchChanged || _branchList == null || _branches == null || _branchIds == null)
|
if (!_branchChanged || _branchList == null || _branches == null || _branchIds == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
var tx = await ctx.Database.BeginTransactionAsync();
|
||||||
var deleteZwstIds = _branches.Where(b => b.Value == null).Select(b => b.Key).ToList();
|
var deleteZwstIds = _branches.Where(b => b.Value == null).Select(b => b.Key).ToList();
|
||||||
await ctx.Branches.Where(b => deleteZwstIds.Contains(b.ZwstId)).ExecuteDeleteAsync();
|
await ctx.Branches.Where(b => deleteZwstIds.Contains(b.ZwstId)).ExecuteDeleteAsync();
|
||||||
|
|
||||||
@@ -61,6 +62,7 @@ namespace Elwig.Windows {
|
|||||||
ctx.Add(branch);
|
ctx.Add(branch);
|
||||||
}
|
}
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
|
await tx.CommitAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void BranchList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
private void BranchList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ namespace Elwig.Windows {
|
|||||||
if (!_attrChanged || _attrList == null || _attrs == null || _attrIds == null)
|
if (!_attrChanged || _attrList == null || _attrs == null || _attrIds == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
using var tx = await ctx.Database.BeginTransactionAsync();
|
||||||
var deleteAttrIds = _attrs.Where(a => a.Value == null).Select(a => a.Key).ToList();
|
var deleteAttrIds = _attrs.Where(a => a.Value == null).Select(a => a.Key).ToList();
|
||||||
await ctx.WineAttributes.Where(a => deleteAttrIds.Contains(a.AttrId)).ExecuteDeleteAsync();
|
await ctx.WineAttributes.Where(a => deleteAttrIds.Contains(a.AttrId)).ExecuteDeleteAsync();
|
||||||
foreach (var (attr, old) in _attrIds) {
|
foreach (var (attr, old) in _attrIds) {
|
||||||
@@ -62,6 +63,7 @@ namespace Elwig.Windows {
|
|||||||
ctx.Add(attr);
|
ctx.Add(attr);
|
||||||
}
|
}
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
|
await tx.CommitAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WineAttributeList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
private void WineAttributeList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ namespace Elwig.Windows {
|
|||||||
if (!_cultChanged || _cultList == null || _cults == null || _cultIds == null)
|
if (!_cultChanged || _cultList == null || _cults == null || _cultIds == null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
using var tx = await ctx.Database.BeginTransactionAsync();
|
||||||
var deleteCultIds = _cults.Where(c => c.Value == null).Select(c => c.Key).ToList();
|
var deleteCultIds = _cults.Where(c => c.Value == null).Select(c => c.Key).ToList();
|
||||||
await ctx.WineCultivations.Where(c => deleteCultIds.Contains(c.CultId)).ExecuteDeleteAsync();
|
await ctx.WineCultivations.Where(c => deleteCultIds.Contains(c.CultId)).ExecuteDeleteAsync();
|
||||||
foreach (var (cult, old) in _cultIds) {
|
foreach (var (cult, old) in _cultIds) {
|
||||||
@@ -61,6 +62,7 @@ namespace Elwig.Windows {
|
|||||||
ctx.Add(cult);
|
ctx.Add(cult);
|
||||||
}
|
}
|
||||||
await ctx.SaveChangesAsync();
|
await ctx.SaveChangesAsync();
|
||||||
|
await tx.CommitAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void WineCultivationList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
private void WineCultivationList_SelectionChanged(object? sender, SelectionChangedEventArgs? evt) {
|
||||||
|
|||||||
@@ -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.0.5.6 ([Changelog](./CHANGELOG.md))
|
**Version:** 1.0.5.4 ([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.0.5.6 ([Änderungsprotokoll](./CHANGELOG.md))
|
**Version:** 1.0.5.4 ([Ä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