Update DeliveryAdminWindow

This commit is contained in:
2023-08-14 20:09:53 +02:00
parent f8af155c60
commit 99a6f53307
5 changed files with 149 additions and 78 deletions

View File

@ -1,63 +1,67 @@
using Elwig.Models;
namespace Elwig.Helpers {
public class ClientParameters {
public class ClientParameters {
public string NameToken;
public string NameShort;
public string NameShortened;
public string Name;
public string NameSuffix;
public string NameFull => $"{Name} {NameSuffix}";
public enum Type { Matzen, GWK };
public PostalDest PostalDest {
set {
Plz = value.AtPlz.Plz;
Ort = value.AtPlz.Ort.Name;
}
}
public int Plz { get; private set; }
public string Ort { get; private set; }
public string Address;
public string Sender1 => $"{NameShort} | {Address} | {Plz} {Ort}";
public string Sender2;
public string NameToken;
public string NameShort;
public string NameShortened;
public string Name;
public string NameSuffix;
public string NameFull => $"{Name} {NameSuffix}";
public Type? Client;
public string? Iban;
public string? Bic;
public string? UstId;
public string? LfbisNr;
public PostalDest PostalDest {
set {
Plz = value.AtPlz.Plz;
Ort = value.AtPlz.Ort.Name;
}
}
public int Plz { get; private set; }
public string Ort { get; private set; }
public string Address;
public string Sender1 => $"{NameShort} | {Address} | {Plz} {Ort}";
public string Sender2;
public string? PhoneNr;
public string? FaxNr;
public string? EmailAddress;
public string? Website;
public string? Iban;
public string? Bic;
public string? UstId;
public string? LfbisNr;
public string? DeliveryNoteText;
public string? PhoneNr;
public string? FaxNr;
public string? EmailAddress;
public string? Website;
public ClientParameters() {
NameToken = "WGM";
NameShort = "WG Matzen";
NameShortened = "Winzergenossenschaft f. Matzen u. Umgebung";
Name = "Winzergenossenschaft für Matzen und Umgebung";
NameSuffix = "reg. Gen.m.b.H.";
Plz = 2243;
Ort = "Matzen";
Address = "Schloßstraße 6";
PhoneNr = "+43 2289 2221";
FaxNr = "+43 2289 2221";
EmailAddress = "winzermatzen@aon.at";
Website = "winzermatzen.at";
LfbisNr = "0901768";
UstId = "ATU16328105";
Bic = "RLNWATWWGAE";
Iban = "AT92 3209 2000 0240 0075";
Sender2 = "E Österreichische Post AG Eco Brief";
DeliveryNoteText = "Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht und insbesondere die " +
"Bestimmungen über die Mengenbeschränkungen sowie für die Erzeugung von Wein besonderer Leseart eingehalten wird. " +
"Alle maßgeblichen Veränderungen obiger Angaben sind der Winzergenossenschaft unverzüglich zu melden. " +
"Das Mitglied bestätigt weiters mit seiner Unterschrift, dass die gelieferten Trauben entsprechend der guten Herstellungspraxis erzeugt wurden, " +
"insbesondere die Einhaltung der vom Hersteller vorgegebenen Wartefristen für Pflanzenschutzmittel. " +
"Weiters wird bestätigt, dass die Datenschutzerklärung der Winzergenossenschaft für Matzen und Umgebung in der Übernahmestelle zur freien Entnahme aufliegt.";
}
}
public string? DeliveryNoteText;
public ClientParameters() {
NameToken = "WGM";
NameShort = "WG Matzen";
NameShortened = "Winzergenossenschaft f. Matzen u. Umgebung";
Name = "Winzergenossenschaft für Matzen und Umgebung";
NameSuffix = "reg. Gen.m.b.H.";
Client = Type.Matzen;
Plz = 2243;
Ort = "Matzen";
Address = "Schloßstraße 6";
PhoneNr = "+43 2289 2221";
FaxNr = "+43 2289 2221";
EmailAddress = "winzermatzen@aon.at";
Website = "winzermatzen.at";
LfbisNr = "0901768";
UstId = "ATU16328105";
Bic = "RLNWATWWGAE";
Iban = "AT92 3209 2000 0240 0075";
Sender2 = "E Österreichische Post AG Eco Brief";
DeliveryNoteText = "Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht und insbesondere die " +
"Bestimmungen über die Mengenbeschränkungen sowie für die Erzeugung von Wein besonderer Leseart eingehalten wird. " +
"Alle maßgeblichen Veränderungen obiger Angaben sind der Winzergenossenschaft unverzüglich zu melden. " +
"Das Mitglied bestätigt weiters mit seiner Unterschrift, dass die gelieferten Trauben entsprechend der guten Herstellungspraxis erzeugt wurden, " +
"insbesondere die Einhaltung der vom Hersteller vorgegebenen Wartefristen für Pflanzenschutzmittel. " +
"Weiters wird bestätigt, dass die Datenschutzerklärung der Winzergenossenschaft für Matzen und Umgebung in der Übernahmestelle zur freien Entnahme aufliegt.";
}
}
}

View File

@ -161,16 +161,19 @@ namespace Elwig.Helpers.Weighing {
var terminalNr = line[49..52].Trim();
var crc16 = line[52..60].Trim();
if (Utils.CalcCrc16Modbus(record[..54]).ToString() != crc16) {
if (Utils.CalcCrc16Modbus(record[..54]) != ushort.Parse(crc16)) {
throw new IOException($"Invalid response from scale: Invalid CRC16 checksum ({crc16} != {Utils.CalcCrc16Modbus(record[..54]).ToString()})");
} else if (unit != "kg") {
throw new IOException($"Unsupported unit in weighing response: '{unit}'");
}
identNr = identNr.Length > 0 && identNr != "0" ? identNr : null;
var parsedDate = DateOnly.Parse(date);
return new() {
Weight = int.TryParse(netto, out int w) ? w : null,
WeighingId = identNr.Length > 0 && identNr != "0" ? identNr : null,
Date = DateOnly.Parse(date),
Weight = int.Parse(netto),
WeighingId = identNr,
FullWeighingId = identNr != null ? $"{parsedDate:yyyy-MM-dd}/{identNr}" : null,
Date = parsedDate,
Time = TimeOnly.Parse(time),
};
}
@ -195,10 +198,10 @@ namespace Elwig.Helpers.Weighing {
p.DtrEnable = false;
} else if (EmptyMode == Output.OUT1 || EmptyMode == Output.OUT2) {
int output = EmptyMode == Output.OUT1 ? 1 : 2;
await SendCommand($"OS{output:02i}");
await SendCommand($"OS{output:00}");
await ReceiveResponse();
await Task.Delay(EmptyDelay);
await SendCommand($"OC{output:02i}");
await SendCommand($"OC{output:00}");
await ReceiveResponse();
}
}
@ -212,7 +215,7 @@ namespace Elwig.Helpers.Weighing {
} else if (FillingClearanceMode == Output.OUT1 || FillingClearanceMode == Output.OUT2) {
string cmd = status ? "OS" : "OC";
int output = FillingClearanceMode == Output.OUT1 ? 1 : 2;
await SendCommand($"{cmd}{output:02i}");
await SendCommand($"{cmd}{output:00}");
await ReceiveResponse();
}
}

View File

@ -15,6 +15,11 @@ namespace Elwig.Helpers.Weighing {
/// </summary>
public string? WeighingId = null;
/// <summary>
/// Wheighing id (or IdentNr) provided by the scale optionally combined with the current date
/// </summary>
public string? FullWeighingId = null;
/// <summary>
/// Date string provided by the scale
/// </summary>