Weighing: Do not ignore gross and tare weight and show it on DeliveryNote
This commit is contained in:
@ -60,8 +60,18 @@
|
||||
}
|
||||
}
|
||||
<tr><td></td><td colspan="5">
|
||||
@Raw(part.IsManualWeighing ? "<i>Handwiegung</i>" : $"<i>Waage:</i> {part.ScaleId ?? "?"}, <i>ID:</i> {part.WeighingId ?? "?"}")
|
||||
(@(part.IsNetWeight ? "netto/gerebelt gewogen" : "brutto/nicht gerebelt gewogen"))@Raw(part.WeighingReason != null ? $", <i>Begründung:</i>" : "") @part.WeighingReason
|
||||
@if (part.IsManualWeighing) {
|
||||
<i>Handwiegung @(part.IsNetWeight ? " (gerebelt gewogen)" : " (nicht gerebelt gewogen)")</i>@Raw(part.WeighingReason != null ? ", <i>Begründung:</i> " : "") @part.WeighingReason
|
||||
} else {
|
||||
var info = part.WeighingInfo;
|
||||
<i>Waage:</i> @(part.ScaleId ?? "?")@(", ") <i>ID:</i> @(info.Id ?? "?")
|
||||
@(info.Date != null || info.Time != null ? " – " : "")@(info.Time != null ? $"{info.Time:HH:mm}" : "")@(info.Date != null ? $", {info.Date:dd.MM.yyyy}" : "")
|
||||
@if (info.Gross != null && info.Tare != null && info.Net != null) {
|
||||
<br/><i>Brutto:</i> @($"{info.Gross:N0} kg")@(" – ") <i>Tara:</i> @($"{info.Tare:N0} kg")@(" – ") <i>Netto:</i> @($"{info.Net:N0} kg")@(" – ")@Raw(part.IsNetWeight ? "<i>gerebelt gewogen</i>" : "<i>nicht gerebelt gewogen</i>")
|
||||
} else {
|
||||
@Raw($" <i>({(part.IsNetWeight ? "gerebelt gewogen" : "nicht gerebelt gewogen")})</i>")
|
||||
}
|
||||
}
|
||||
</td></tr>
|
||||
@if (part.Comment != null) {
|
||||
<tr><td></td><td colspan="5"><i>Anmerkung:</i> @part.Comment</td></tr>
|
||||
|
@ -9,7 +9,7 @@ namespace Elwig.Helpers {
|
||||
public static class AppDbUpdater {
|
||||
|
||||
// Don't forget to update value in Tests/fetch-resources.bat!
|
||||
public static readonly int RequiredSchemaVersion = 24;
|
||||
public static readonly int RequiredSchemaVersion = 25;
|
||||
|
||||
private static int VersionOffset = 0;
|
||||
|
||||
|
@ -194,7 +194,7 @@ namespace Elwig.Helpers.Export {
|
||||
if (p.Temperature != null) obj["temperature"] = p.Temperature;
|
||||
if (p.Acid != null) obj["acid"] = p.Acid;
|
||||
if (p.ScaleId != null) obj["scale_id"] = p.ScaleId;
|
||||
if (p.WeighingId != null) obj["weighing_id"] = p.WeighingId;
|
||||
if (p.WeighingData != null) obj["weighing_data"] = JsonNode.Parse(p.WeighingData);
|
||||
if (p.WeighingReason != null) obj["weighing_reason"] = p.WeighingReason;
|
||||
return obj;
|
||||
}).ToArray()),
|
||||
@ -238,7 +238,7 @@ namespace Elwig.Helpers.Export {
|
||||
Temperature = p["temperature"]?.AsValue().GetValue<double>(),
|
||||
Acid = p["acid"]?.AsValue().GetValue<double>(),
|
||||
ScaleId = p["scale_id"]?.AsValue().GetValue<string>(),
|
||||
WeighingId = p["weighing_id"]?.AsValue().GetValue<string>(),
|
||||
WeighingData = p["weighing_data"]?.AsObject().ToJsonString(),
|
||||
WeighingReason = p["weighing_reason"]?.AsValue().GetValue<string>(),
|
||||
}).ToList(), json["parts"]!.AsArray().SelectMany(p => p!["modids"]!.AsArray().Select(m => new DeliveryPartModifier {
|
||||
Year = year,
|
||||
|
@ -79,7 +79,7 @@ namespace Elwig.Helpers.Weighing {
|
||||
identNr = identNr.Length > 0 && identNr != "0" ? identNr : null;
|
||||
var parsedDate = DateOnly.Parse(date);
|
||||
return new() {
|
||||
Weight = int.Parse(netto),
|
||||
NetWeight = int.Parse(netto),
|
||||
WeighingId = identNr,
|
||||
FullWeighingId = identNr != null ? $"{parsedDate:yyyy-MM-dd}/{identNr}" : null,
|
||||
Date = parsedDate,
|
||||
|
@ -69,13 +69,14 @@ namespace Elwig.Helpers.Weighing {
|
||||
var time = line[37..43];
|
||||
|
||||
identNr = identNr.Length > 0 && identNr != "0" ? identNr : null;
|
||||
var parsedDate = DateOnly.ParseExact(date, "yyyyMMdd");
|
||||
return new() {
|
||||
Weight = int.Parse(netto),
|
||||
GrossWeight = int.Parse(brutto),
|
||||
TareWeight = int.Parse(tara),
|
||||
NetWeight = int.Parse(netto),
|
||||
WeighingId = identNr,
|
||||
FullWeighingId = identNr,
|
||||
Date = parsedDate,
|
||||
Time = TimeOnly.ParseExact(time, "HHmmss"),
|
||||
Date = DateOnly.TryParseExact(date, "yyyyMMdd", out var d) ? d : null,
|
||||
Time = TimeOnly.TryParseExact(time, "HHmmss", out var t) ? t : null,
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace Elwig.Helpers.Weighing {
|
||||
/// <summary>
|
||||
/// Interface for controlling a a scale which responds to commands sent to it
|
||||
/// Interface for controlling a weighing scale which responds to commands sent to it
|
||||
/// </summary>
|
||||
public interface ICommandScale : IScale {
|
||||
/// <summary>
|
||||
|
@ -1,6 +1,6 @@
|
||||
namespace Elwig.Helpers.Weighing {
|
||||
/// <summary>
|
||||
/// Interface for controlling a a scale which automatically sends weighing updates
|
||||
/// Interface for controlling a weighing scale which automatically sends weighing updates
|
||||
/// </summary>
|
||||
public interface IEventScale : IScale {
|
||||
|
||||
|
@ -2,7 +2,7 @@ using System;
|
||||
|
||||
namespace Elwig.Helpers.Weighing {
|
||||
/// <summary>
|
||||
/// Interface for controlling a industrial scale (industrial terminal, "IT")
|
||||
/// Interface for controlling a industrial weighing scale (industrial terminal, "IT")
|
||||
/// </summary>
|
||||
public interface IScale : IDisposable {
|
||||
/// <summary>
|
||||
|
@ -98,7 +98,9 @@ namespace Elwig.Helpers.Weighing {
|
||||
identNr = identNr.Length > 0 && identNr != "0" ? identNr : null;
|
||||
var parsedDate = DateOnly.Parse(date);
|
||||
return new() {
|
||||
Weight = int.Parse(netto),
|
||||
GrossWeight = int.Parse(brutto),
|
||||
TareWeight = int.Parse(tara),
|
||||
NetWeight = int.Parse(netto),
|
||||
WeighingId = identNr,
|
||||
FullWeighingId = identNr != null ? $"{parsedDate:yyyy-MM-dd}/{identNr}" : null,
|
||||
Date = parsedDate,
|
||||
|
@ -1,12 +1,7 @@
|
||||
using System;
|
||||
|
||||
namespace Elwig.Helpers.Weighing {
|
||||
public class WeighingEventArgs : EventArgs {
|
||||
|
||||
public WeighingResult Result { get; set; }
|
||||
|
||||
public WeighingEventArgs(WeighingResult result) {
|
||||
Result = result;
|
||||
}
|
||||
public class WeighingEventArgs(WeighingResult result) : EventArgs {
|
||||
public readonly WeighingResult Result = result;
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,25 @@
|
||||
using System;
|
||||
using System.Text.Json.Nodes;
|
||||
|
||||
namespace Elwig.Helpers.Weighing {
|
||||
/// <summary>
|
||||
/// Result of a weighing process on an industrial scale
|
||||
/// Result of a weighing process on an industrial weighing scale
|
||||
/// </summary>
|
||||
public struct WeighingResult {
|
||||
/// <summary>
|
||||
/// Measured gross weight in kg
|
||||
/// </summary>
|
||||
public int? GrossWeight;
|
||||
|
||||
/// <summary>
|
||||
/// Measured tare weight in kg
|
||||
/// </summary>
|
||||
public int? TareWeight;
|
||||
|
||||
/// <summary>
|
||||
/// Measured net weight in kg
|
||||
/// </summary>
|
||||
public int? Weight;
|
||||
public int? NetWeight;
|
||||
|
||||
/// <summary>
|
||||
/// Weighing id (or IdentNr) provided by the scale
|
||||
@ -30,12 +41,22 @@ namespace Elwig.Helpers.Weighing {
|
||||
/// </summary>
|
||||
public TimeOnly? Time;
|
||||
|
||||
/// <returns><Weight/WeighingId/Date/Time></returns>
|
||||
/// <returns><[GrossWeight-TaraWeight=]NetWeight/WeighingId/Date/Time></returns>
|
||||
public override readonly string ToString() {
|
||||
var w = Weight != null ? $"{Weight}kg" : "";
|
||||
var w = NetWeight != null ? (GrossWeight != null && TareWeight != null ? $"{GrossWeight}-{TareWeight}=" : "") + $"{NetWeight}kg" : "";
|
||||
return $"<{w}/{WeighingId}/{Date:yyyy-MM-dd}/{Time:HH:mm}>";
|
||||
}
|
||||
|
||||
|
||||
public readonly JsonObject ToJson() {
|
||||
var obj = new JsonObject();
|
||||
if (FullWeighingId != null) obj["id"] = FullWeighingId;
|
||||
if (WeighingId != null) obj["nr"] = int.Parse(WeighingId);
|
||||
if (Date != null) obj["date"] = $"{Date:yyyy-MM-dd}";
|
||||
if (Time != null) obj["time"] = $"{Time:HH:mm:ss}";
|
||||
if (GrossWeight != null) obj["gross_weight"] = GrossWeight;
|
||||
if (TareWeight != null) obj["tare_weight"] = TareWeight;
|
||||
if (NetWeight != null) obj["net_weight"] = NetWeight;
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,10 @@
|
||||
using Elwig.Helpers;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
using System.Text.Json.Nodes;
|
||||
|
||||
namespace Elwig.Models.Entities {
|
||||
[Table("delivery_part"), PrimaryKey("Year", "DId", "DPNr")]
|
||||
@ -99,8 +101,26 @@ namespace Elwig.Models.Entities {
|
||||
[Column("scale_id")]
|
||||
public string? ScaleId { get; set; }
|
||||
|
||||
[Column("weighing_id")]
|
||||
public string? WeighingId { get; set; }
|
||||
[Column("weighing_data")]
|
||||
public string? WeighingData { get; set; }
|
||||
[NotMapped]
|
||||
public (string? Id, int? Gross, int? Tare, int? Net, DateOnly? Date, TimeOnly? Time) WeighingInfo {
|
||||
get {
|
||||
try {
|
||||
var obj = JsonNode.Parse(WeighingData!)!.AsObject();
|
||||
return (
|
||||
obj["id"]?.AsValue().GetValue<string>(),
|
||||
obj["gross_weight"]?.AsValue().GetValue<int>(),
|
||||
obj["tare_weight"]?.AsValue().GetValue<int>(),
|
||||
obj["net_weight"]?.AsValue().GetValue<int>(),
|
||||
DateOnly.TryParseExact(obj["date"]?.AsValue().GetValue<string>(), "yyyy-MM-dd", out var d) ? d : null,
|
||||
TimeOnly.TryParseExact(obj["time"]?.AsValue().GetValue<string>(), ["HH:mm:ss", "HH:mm"], out var t) ? t : null
|
||||
);
|
||||
} catch {
|
||||
return (null, null, null, null, null, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Column("weighing_reason")]
|
||||
public string? WeighingReason { get; set; }
|
||||
|
4
Elwig/Resources/Sql/24-25.sql
Normal file
4
Elwig/Resources/Sql/24-25.sql
Normal file
@ -0,0 +1,4 @@
|
||||
-- schema version 24 to 25
|
||||
|
||||
ALTER TABLE delivery_part RENAME COLUMN weighing_id TO weighing_data;
|
||||
UPDATE delivery_part SET weighing_data = '{"id":"' || weighing_data || '","nr":' || SUBSTR(weighing_data, INSTR(weighing_data, '/') + 1) || '}';
|
@ -80,7 +80,7 @@ namespace Elwig.Services {
|
||||
vm.IsGebunden = p.IsGebunden;
|
||||
|
||||
vm.ScaleId = p.ScaleId;
|
||||
vm.WeighingId = p.WeighingId;
|
||||
vm.WeighingData = p.WeighingData;
|
||||
vm.ManualWeighingReason = p.WeighingReason;
|
||||
}
|
||||
|
||||
@ -174,11 +174,11 @@ namespace Elwig.Services {
|
||||
prd = prd.And(p => p.IsManualWeighing == false);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("keine Handwiegung");
|
||||
} else if (e.ToLower() is "bto" or "brut" or "brutt" or "brutto" or "!gerebelt") {
|
||||
} else if (e.ToLower() == "!gerebelt") {
|
||||
prd = prd.And(p => p.IsNetWeight == false);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("brutto Wiegung");
|
||||
} else if (e.ToLower() is "nto" or "net" or "nett" or "netto" or "gerebelt") {
|
||||
} else if (e.ToLower() == "gerebelt") {
|
||||
prd = prd.And(p => p.IsNetWeight == true);
|
||||
filter.RemoveAt(i--);
|
||||
filterNames.Add("netto Wiegung");
|
||||
@ -465,7 +465,7 @@ namespace Elwig.Services {
|
||||
Weight = (int)vm.Weight!,
|
||||
IsManualWeighing = vm.IsManualWeighing,
|
||||
ScaleId = vm.ScaleId,
|
||||
WeighingId = vm.WeighingId,
|
||||
WeighingData = vm.WeighingData,
|
||||
WeighingReason = vm.ManualWeighingReason,
|
||||
};
|
||||
|
||||
|
@ -27,7 +27,7 @@ namespace Elwig.ViewModels {
|
||||
[ObservableProperty]
|
||||
private string? _scaleId;
|
||||
[ObservableProperty]
|
||||
private string? _weighingId;
|
||||
private string? _weighingData;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _filterTodayOnly;
|
||||
|
@ -176,7 +176,7 @@
|
||||
<Bold>Handwiegung</Bold>: handw[iegung], !Handw[iegung] (alle ohne Handwiegung)<LineBreak/>
|
||||
<Bold>Handlese</Bold>: Handl[ese], !handl[ese] (alle ohne Handlese)<LineBreak/>
|
||||
<Bold>Gebunden</Bold>: geb[unden], ungeb[unden], !geb[unden], !ungeb[unden]<LineBreak/>
|
||||
<Bold>Brutto/Netto Wiegung</Bold>: bto, Brut[to], nto, Net[to], gerebelt, !Gerebelt<LineBreak/>
|
||||
<Bold>Gerebelt</Bold>: gerebelt, !Gerebelt (nicht gerebelt gewogen)<LineBreak/>
|
||||
<Bold>Freitext</Bold>: z.B. Lieferscheinnummern, Anmerkung, "quw" (sucht nach dem Text "quw")
|
||||
</TextBlock>
|
||||
</TextBox.ToolTip>
|
||||
@ -469,7 +469,7 @@
|
||||
Checked="CheckBox_Changed" Unchecked="CheckBox_Changed"/>
|
||||
|
||||
<CheckBox x:Name="GerebeltGewogenInput" IsChecked="{Binding IsNetWeight, Mode=TwoWay}"
|
||||
Content="Netto (gerebelt gewogen)"
|
||||
Content="Gerebelt gewogen"
|
||||
VerticalAlignment="Top" HorizontalAlignment="Left" Margin="10,75,10,10" Grid.Column="0" Grid.ColumnSpan="2"
|
||||
Checked="GerebeltGewogenInput_Changed" Unchecked="GerebeltGewogenInput_Changed"/>
|
||||
|
||||
|
@ -285,7 +285,7 @@ namespace Elwig.Windows {
|
||||
|
||||
private void InitialInputs() {
|
||||
ViewModel.LastScaleError = null;
|
||||
ViewModel.WeighingId = null;
|
||||
ViewModel.WeighingData = null;
|
||||
ViewModel.ScaleId = null;
|
||||
ViewModel.ManualWeighingReason = null;
|
||||
|
||||
@ -525,7 +525,7 @@ namespace Elwig.Windows {
|
||||
OnWeighingResult(s, res);
|
||||
} catch (Exception ex) {
|
||||
ViewModel.LastScaleError = ex.Message.Split(": ")[^1];
|
||||
OnWeighingResult(s, new() { Weight = 0 });
|
||||
OnWeighingResult(s, new());
|
||||
MessageBox.Show($"Beim Wiegen ist ein Fehler aufgetreten:\n\n{ex.Message}", "Waagenfehler",
|
||||
MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
@ -538,16 +538,16 @@ namespace Elwig.Windows {
|
||||
}
|
||||
|
||||
private void OnWeighingResult(IScale scale, WeighingResult res) {
|
||||
if ((res.Weight ?? 0) > 0 && res.FullWeighingId != null) {
|
||||
ViewModel.Weight = res.Weight;
|
||||
if ((res.NetWeight ?? 0) > 0 && res.FullWeighingId != null) {
|
||||
ViewModel.Weight = res.NetWeight;
|
||||
ViewModel.ScaleId = scale.ScaleId;
|
||||
ViewModel.WeighingId = res.FullWeighingId;
|
||||
ViewModel.WeighingData = res.ToJson().ToJsonString();
|
||||
ViewModel.ManualWeighingReason = null;
|
||||
ManualWeighingInput.IsChecked = false;
|
||||
} else {
|
||||
ViewModel.Weight = null;
|
||||
ViewModel.ScaleId = null;
|
||||
ViewModel.WeighingId = null;
|
||||
ViewModel.WeighingData = null;
|
||||
}
|
||||
ViewModel.LastScaleError = null;
|
||||
TextBox_TextChanged(WeightInput, null);
|
||||
@ -842,7 +842,7 @@ namespace Elwig.Windows {
|
||||
ManualWeighingInput.IsChecked = true;
|
||||
ViewModel.ManualWeighingReason = res?.Item2;
|
||||
ViewModel.ScaleId = null;
|
||||
ViewModel.WeighingId = null;
|
||||
ViewModel.WeighingData = null;
|
||||
}
|
||||
|
||||
protected override void ShortcutEdit() {
|
||||
@ -1004,7 +1004,7 @@ namespace Elwig.Windows {
|
||||
DId = await ctx.NextDId(p.Year),
|
||||
LNr = lnr,
|
||||
DateString = $"{delivery.Date:yyyy-MM-dd}",
|
||||
TimeString = $"{delivery.Time:HH:mm:SS}",
|
||||
TimeString = $"{delivery.Time:HH:mm:ss}",
|
||||
ZwstId = delivery.ZwstId,
|
||||
MgNr = delivery.MgNr,
|
||||
Comment = delivery.Comment,
|
||||
|
@ -21,12 +21,13 @@ namespace Tests.DocumentTests {
|
||||
Assert.That(text, Contains.Substring("pauschaliert"));
|
||||
Assert.That(text, Contains.Substring($"Wolkersdorf, am {Elwig.Helpers.Utils.Today:dd.MM.yyyy}"));
|
||||
Assert.That(text, Contains.Substring("Traubenübernahmeschein Nr. 20201001X001"));
|
||||
Assert.That(text, Contains.Substring("Ich bin der Text, der auf einem Traubenübernahmeschein steht!"));
|
||||
Assert.That(text, Contains.Substring("Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht"));
|
||||
Assert.That(text, Contains.Substring("""
|
||||
1 Grüner Veltliner Qualitätswein 73 15,0 3 219
|
||||
Herkunft: Österreich / Weinland / Niederösterreich
|
||||
/ Matzner Hügel / Hohenruppersdorf / KG Hohenruppersdorf
|
||||
Waage: ?, ID: ? (netto/gerebelt gewogen)
|
||||
Waage: 1, ID: 321 – 09:02, 01.10.2020
|
||||
Brutto: 3 219 kg – Tara: 0 kg – Netto: 3 219 kg – gerebelt gewogen
|
||||
"""));
|
||||
});
|
||||
}
|
||||
@ -48,18 +49,18 @@ namespace Tests.DocumentTests {
|
||||
Assert.That(text, Contains.Substring("pauschaliert"));
|
||||
Assert.That(text, Contains.Substring($"Wolkersdorf, am {Elwig.Helpers.Utils.Today:dd.MM.yyyy}"));
|
||||
Assert.That(text, Contains.Substring("Traubenübernahmeschein Nr. 20201001X004"));
|
||||
Assert.That(text, Contains.Substring("Ich bin der Text, der auf einem Traubenübernahmeschein steht!"));
|
||||
Assert.That(text, Contains.Substring("Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht"));
|
||||
Assert.That(text, Contains.Substring("""
|
||||
1 Grüner Veltliner Qualitätswein 82 16,7 4 002
|
||||
Herkunft: Österreich / Weinland / Niederösterreich
|
||||
/ Matzner Hügel / Hohenruppersdorf / KG Hohenruppersdorf
|
||||
Waage: ?, ID: ? (netto/gerebelt gewogen)
|
||||
Waage: ?, ID: ? (gerebelt gewogen)
|
||||
"""));
|
||||
Assert.That(text, Contains.Substring("""
|
||||
2 Grüner Veltliner Qualitätswein 75 15,3 481
|
||||
Herkunft: Österreich / Weinland / Niederösterreich
|
||||
/ Matzner Hügel / Hohenruppersdorf / KG Hohenruppersdorf
|
||||
Waage: ?, ID: ? (netto/gerebelt gewogen)
|
||||
Waage: ?, ID: ? (gerebelt gewogen)
|
||||
"""));
|
||||
Assert.That(text, Contains.Substring("Gesamt: 81 16,5 4 483"));
|
||||
});
|
||||
@ -81,24 +82,24 @@ namespace Tests.DocumentTests {
|
||||
Assert.That(text, Contains.Substring("pauschaliert"));
|
||||
Assert.That(text, Contains.Substring($"Wolkersdorf, am {Elwig.Helpers.Utils.Today:dd.MM.yyyy}"));
|
||||
Assert.That(text, Contains.Substring("Traubenübernahmeschein Nr. 20201001X003"));
|
||||
Assert.That(text, Contains.Substring("Ich bin der Text, der auf einem Traubenübernahmeschein steht!"));
|
||||
Assert.That(text, Contains.Substring("Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht"));
|
||||
Assert.That(text, Contains.Substring("""
|
||||
1 Grüner Veltliner Qualitätswein 75 15,4 2 561
|
||||
Herkunft: Österreich / Weinland / Niederösterreich
|
||||
/ Matzner Hügel / Hohenruppersdorf / KG Hohenruppersdorf
|
||||
Waage: ?, ID: ? (netto/gerebelt gewogen)
|
||||
Waage: ?, ID: ? (gerebelt gewogen)
|
||||
"""));
|
||||
Assert.That(text, Contains.Substring("""
|
||||
2 Grüner Veltliner Kabinett Kabinett 87 17,6 3 129
|
||||
Herkunft: Österreich / Weinland / Niederösterreich
|
||||
/ Matzner Hügel / Hohenruppersdorf / KG Hohenruppersdorf
|
||||
Waage: ?, ID: ? (netto/gerebelt gewogen)
|
||||
Waage: ?, ID: ? (gerebelt gewogen)
|
||||
"""));
|
||||
Assert.That(text, Contains.Substring("""
|
||||
3 Grüner Veltliner Qualitätswein 79 16,1 1 280
|
||||
Herkunft: Österreich / Weinland / Niederösterreich
|
||||
/ Matzner Hügel / Hohenruppersdorf / KG Hohenruppersdorf
|
||||
Waage: ?, ID: ? (netto/gerebelt gewogen)
|
||||
Waage: ?, ID: ? (gerebelt gewogen)
|
||||
"""));
|
||||
Assert.That(text, Contains.Substring("Gesamt: 81 16,5 6 970"));
|
||||
});
|
||||
@ -120,20 +121,20 @@ namespace Tests.DocumentTests {
|
||||
Assert.That(text, Contains.Substring("pauschaliert"));
|
||||
Assert.That(text, Contains.Substring($"Wolkersdorf, am {Elwig.Helpers.Utils.Today:dd.MM.yyyy}"));
|
||||
Assert.That(text, Contains.Substring("Traubenübernahmeschein Nr. 20201002X001"));
|
||||
Assert.That(text, Contains.Substring("Ich bin der Text, der auf einem Traubenübernahmeschein steht!"));
|
||||
Assert.That(text, Contains.Substring("Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht"));
|
||||
Assert.That(text, Contains.Substring("""
|
||||
1 Grüner Veltliner Qualitätswein 80 16,3 3 198
|
||||
Bewirtschaftung: Bio (AT-BIO-302)
|
||||
Herkunft: Österreich / Weinland / Niederösterreich
|
||||
/ Wolkersdorfer Hochleithen / Wolkersdorf im Weinviertel / KG Wolkersdorf
|
||||
Waage: ?, ID: ? (netto/gerebelt gewogen)
|
||||
Waage: ?, ID: ? (gerebelt gewogen)
|
||||
"""));
|
||||
Assert.That(text, Contains.Substring("""
|
||||
2 Grüner Veltliner Qualitätswein 75 15,4 2 134
|
||||
Bewirtschaftung: Bio (AT-BIO-302)
|
||||
Herkunft: Österreich / Weinland / Niederösterreich
|
||||
/ Wolkersdorfer Hochleithen / Wolkersdorf im Weinviertel / KG Wolkersdorf
|
||||
Waage: ?, ID: ? (netto/gerebelt gewogen)
|
||||
Waage: ?, ID: ? (gerebelt gewogen)
|
||||
"""));
|
||||
Assert.That(text, Contains.Substring("Gesamt: 78 15,9 5 332"));
|
||||
});
|
||||
|
@ -40,7 +40,7 @@ INSERT INTO delivery (mgnr, year, did, date, time, zwstid, lnr) VALUES
|
||||
(101, 2020, 1, '2020-10-01', NULL, 'X', 1),
|
||||
(101, 2020, 2, '2020-10-01', NULL, 'X', 2),
|
||||
(101, 2020, 3, '2020-10-01', NULL, 'X', 3);
|
||||
INSERT INTO delivery_part (year, did, dpnr, sortid, attrid, cultid, weight, kmw, qualid, hkid, kgnr, net_weight, manual_weighing, spl_check, scale_id, weighing_id, weighing_reason) VALUES
|
||||
INSERT INTO delivery_part (year, did, dpnr, sortid, attrid, cultid, weight, kmw, qualid, hkid, kgnr, net_weight, manual_weighing, spl_check, scale_id, weighing_data, weighing_reason) VALUES
|
||||
(2020, 1, 1, 'GV', 'K', NULL, 4000, 17, 'KAB', 'WLNO', 06109, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2020, 1, 2, 'GV', NULL, NULL, 4000, 16, 'QUW', 'WLNO', 06109, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2020, 2, 1, 'GV', NULL, 'B', 4000, 15, 'QUW', 'WLNO', 06109, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
@ -55,7 +55,7 @@ INSERT INTO delivery (mgnr, year, did, date, time, zwstid, lnr) VALUES
|
||||
(101, 2021, 1, '2021-10-01', NULL, 'X', 1),
|
||||
(101, 2021, 2, '2021-10-01', NULL, 'X', 2),
|
||||
(101, 2021, 3, '2021-10-01', NULL, 'X', 3);
|
||||
INSERT INTO delivery_part (year, did, dpnr, sortid, attrid, cultid, weight, kmw, qualid, hkid, kgnr, gebunden, net_weight, manual_weighing, spl_check, scale_id, weighing_id, weighing_reason) VALUES
|
||||
INSERT INTO delivery_part (year, did, dpnr, sortid, attrid, cultid, weight, kmw, qualid, hkid, kgnr, gebunden, net_weight, manual_weighing, spl_check, scale_id, weighing_data, weighing_reason) VALUES
|
||||
(2021, 1, 1, 'GV', 'K', NULL, 4000, 17, 'KAB', 'WLNO', 06109, TRUE, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2021, 1, 2, 'GV', NULL, NULL, 4000, 16, 'QUW', 'WLNO', 06109, FALSE, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2021, 2, 1, 'GV', NULL, 'B', 4000, 15, 'QUW', 'WLNO', 06109, TRUE, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
|
@ -27,8 +27,8 @@ INSERT INTO delivery (mgnr, year, did, date, time, zwstid, lnr) VALUES
|
||||
(104, 2020, 11, '2020-10-03', '14:39:22', 'X', 2),
|
||||
(104, 2020, 12, '2020-10-03', '15:15:41', 'X', 3);
|
||||
|
||||
INSERT INTO delivery_part (year, did, dpnr, sortid, attrid, cultid, weight, kmw, qualid, hkid, kgnr, net_weight, manual_weighing, spl_check, scale_id, weighing_id, weighing_reason) VALUES
|
||||
(2020, 1, 1, 'GV', NULL, NULL, 3219, 15.0, 'QUW', 'WLNO', 06109, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
INSERT INTO delivery_part (year, did, dpnr, sortid, attrid, cultid, weight, kmw, qualid, hkid, kgnr, net_weight, manual_weighing, spl_check, scale_id, weighing_data, weighing_reason) VALUES
|
||||
(2020, 1, 1, 'GV', NULL, NULL, 3219, 15.0, 'QUW', 'WLNO', 06109, TRUE, FALSE, FALSE, '1', '{"id":"321","nr":321,"gross_weight":3219,"tare_weight":0,"net_weight":3219,"date":"2020-10-01","time":"09:02:46"}', NULL),
|
||||
(2020, 2, 1, 'GV', 'K', NULL, 2987, 17.5, 'KAB', 'WLNO', 06109, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2020, 2, 2, 'GV', 'K', NULL, 1873, 17.7, 'KAB', 'WLNO', 06109, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
(2020, 3, 1, 'GV', NULL, NULL, 2561, 15.4, 'QUW', 'WLNO', 06109, TRUE, FALSE, FALSE, NULL, NULL, NULL),
|
||||
|
@ -45,7 +45,7 @@ INSERT INTO client_parameter (param, value) VALUES
|
||||
('CLIENT_IBAN', 'AT11 1234 5678 9012 3456'),
|
||||
('CLIENT_LFBISNR', '0123455'),
|
||||
('CLIENT_USTIDNR', 'ATU12345675'),
|
||||
('TEXT_DELIVERYNOTE', 'Ich bin der Text, der auf einem Traubenübernahmeschein steht!');
|
||||
('TEXT_DELIVERYNOTE', 'Das Mitglied erklärt, dass die gelieferte Ware dem österreichischen Weingesetz entspricht und insbesondere die Bestimmungen über die Mengenbeschränkung 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.');
|
||||
|
||||
INSERT INTO branch (zwstid, name, country, postal_dest, address) VALUES
|
||||
('X', 'Test', 40, 212005138, 'Genossenschaftsstraße 1');
|
||||
|
@ -37,8 +37,8 @@ namespace Tests.WeighingTests {
|
||||
await Task.Delay(100);
|
||||
Assert.That(res, Is.Not.Null);
|
||||
Assert.That(res, Is.EqualTo(new WeighingResult {
|
||||
Weight = 2345, WeighingId = "1",
|
||||
FullWeighingId = $"2020-09-28/1",
|
||||
NetWeight = 2345,
|
||||
WeighingId = "1", FullWeighingId = $"2020-09-28/1",
|
||||
Date = new DateOnly(2020, 9, 28), Time = new TimeOnly(9, 8),
|
||||
}));
|
||||
|
||||
@ -46,9 +46,8 @@ namespace Tests.WeighingTests {
|
||||
await Task.Delay(100);
|
||||
Assert.That(res, Is.Not.Null);
|
||||
Assert.That(res, Is.EqualTo(new WeighingResult {
|
||||
Weight = 4215,
|
||||
WeighingId = "2",
|
||||
FullWeighingId = $"2020-09-28/2",
|
||||
NetWeight = 4215,
|
||||
WeighingId = "2", FullWeighingId = $"2020-09-28/2",
|
||||
Date = new DateOnly(2020, 9, 28),
|
||||
Time = new TimeOnly(9, 8),
|
||||
}));
|
||||
|
@ -30,15 +30,18 @@ namespace Tests.WeighingTests {
|
||||
public async Task Test_01_CurrentWeight() {
|
||||
Mock.Weight = 1235;
|
||||
Assert.That(await Scale!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1235, Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
GrossWeight = 1235, TareWeight = 0, NetWeight = 1235,
|
||||
Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
}));
|
||||
Mock.Weight = 1240;
|
||||
Assert.That(await Scale!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1240, Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
GrossWeight = 1240, TareWeight = 0, NetWeight = 1240,
|
||||
Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
}));
|
||||
Mock.Weight = 1245;
|
||||
Assert.That(await Scale!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1245, Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
GrossWeight = 1245, TareWeight = 0, NetWeight = 1245,
|
||||
Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
}));
|
||||
}
|
||||
|
||||
@ -46,20 +49,20 @@ namespace Tests.WeighingTests {
|
||||
public async Task Test_02_Normal() {
|
||||
Mock.Weight = 1235;
|
||||
Assert.That(await Scale!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1235, WeighingId = "1",
|
||||
FullWeighingId = $"2020-10-17/1",
|
||||
GrossWeight = 1235, TareWeight = 0, NetWeight = 1235,
|
||||
WeighingId = "1", FullWeighingId = $"2020-10-17/1",
|
||||
Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
}));
|
||||
Mock.Weight = 3335;
|
||||
Assert.That(await Scale!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 3335, WeighingId = "2",
|
||||
FullWeighingId = $"2020-10-17/2",
|
||||
GrossWeight = 3335, TareWeight = 0, NetWeight = 3335,
|
||||
WeighingId = "2", FullWeighingId = $"2020-10-17/2",
|
||||
Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
}));
|
||||
Mock.Weight = 6420;
|
||||
Assert.That(await Scale!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 6420, WeighingId = "3",
|
||||
FullWeighingId = $"2020-10-17/3",
|
||||
GrossWeight = 6420, TareWeight = 0, NetWeight = 6420,
|
||||
WeighingId = "3", FullWeighingId = $"2020-10-17/3",
|
||||
Date = new DateOnly(2020, 10, 17), Time = new TimeOnly(14, 23),
|
||||
}));
|
||||
}
|
||||
|
@ -30,15 +30,18 @@ namespace Tests.WeighingTests {
|
||||
public async Task Test_01_CurrentWeight() {
|
||||
Mock.Weight = 1234;
|
||||
Assert.That(await Scale!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1234, Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
GrossWeight = 1234, TareWeight = 0, NetWeight = 1234,
|
||||
Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
}));
|
||||
Mock.Weight = 1235;
|
||||
Assert.That(await Scale!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1235, Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
GrossWeight = 1235, TareWeight = 0, NetWeight = 1235,
|
||||
Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
}));
|
||||
Mock.Weight = 1236;
|
||||
Assert.That(await Scale!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1236, Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
GrossWeight = 1236, TareWeight = 0, NetWeight = 1236,
|
||||
Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
}));
|
||||
}
|
||||
|
||||
@ -46,20 +49,20 @@ namespace Tests.WeighingTests {
|
||||
public async Task Test_02_Normal() {
|
||||
Mock.Weight = 1234;
|
||||
Assert.That(await Scale!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1234, WeighingId = "1",
|
||||
FullWeighingId = $"2020-10-15/1",
|
||||
GrossWeight = 1234, TareWeight = 0, NetWeight = 1234,
|
||||
WeighingId = "1", FullWeighingId = $"2020-10-15/1",
|
||||
Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
}));
|
||||
Mock.Weight = 3333;
|
||||
Assert.That(await Scale!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 3333, WeighingId = "2",
|
||||
FullWeighingId = $"2020-10-15/2",
|
||||
GrossWeight = 3333, TareWeight = 0, NetWeight = 3333,
|
||||
WeighingId = "2", FullWeighingId = $"2020-10-15/2",
|
||||
Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
}));
|
||||
Mock.Weight = 4321;
|
||||
Assert.That(await Scale!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 4321, WeighingId = "3",
|
||||
FullWeighingId = $"2020-10-15/3",
|
||||
GrossWeight = 4321, TareWeight = 0, NetWeight = 4321,
|
||||
WeighingId = "3", FullWeighingId = $"2020-10-15/3",
|
||||
Date = new DateOnly(2020, 10, 15), Time = new TimeOnly(12, 34),
|
||||
}));
|
||||
}
|
||||
|
@ -78,19 +78,23 @@ namespace Tests.WeighingTests {
|
||||
public async Task Test_01_CurrentWeight() {
|
||||
MockA.Weight = 1234;
|
||||
Assert.That(await ScaleA!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1234, Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
GrossWeight = 1234, TareWeight = 0, NetWeight = 1234,
|
||||
Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
}));
|
||||
MockB.Weight = 3456;
|
||||
Assert.That(await ScaleB!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 3456, Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
GrossWeight = 3456, TareWeight = 0, NetWeight = 3456,
|
||||
Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
}));
|
||||
MockA.Weight = 1236;
|
||||
Assert.That(await ScaleA!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1236, Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
GrossWeight = 1236, TareWeight = 0, NetWeight = 1236,
|
||||
Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
}));
|
||||
MockB.Weight = 3457;
|
||||
Assert.That(await ScaleB!.GetCurrentWeight(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 3457, Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
GrossWeight = 3457, TareWeight = 0, NetWeight = 3457,
|
||||
Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
}));
|
||||
}
|
||||
|
||||
@ -98,26 +102,26 @@ namespace Tests.WeighingTests {
|
||||
public async Task Test_02_Normal() {
|
||||
MockA.Weight = 1234;
|
||||
Assert.That(await ScaleA!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 1234, WeighingId = "1",
|
||||
FullWeighingId = $"2020-10-08/1",
|
||||
GrossWeight = 1234, TareWeight = 0, NetWeight = 1234,
|
||||
WeighingId = "1", FullWeighingId = $"2020-10-08/1",
|
||||
Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
}));
|
||||
MockB.Weight = 3456;
|
||||
Assert.That(await ScaleB!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 3456, WeighingId = "1",
|
||||
FullWeighingId = $"2020-10-08/1",
|
||||
GrossWeight = 3456, TareWeight = 0, NetWeight = 3456,
|
||||
WeighingId = "1", FullWeighingId = $"2020-10-08/1",
|
||||
Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
}));
|
||||
MockA.Weight = 4321;
|
||||
Assert.That(await ScaleA!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 4321, WeighingId = "2",
|
||||
FullWeighingId = $"2020-10-08/2",
|
||||
GrossWeight = 4321, TareWeight = 0, NetWeight = 4321,
|
||||
WeighingId = "2", FullWeighingId = $"2020-10-08/2",
|
||||
Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
}));
|
||||
MockB.Weight = 3333;
|
||||
Assert.That(await ScaleB!.Weigh(), Is.EqualTo(new WeighingResult {
|
||||
Weight = 3333, WeighingId = "2",
|
||||
FullWeighingId = $"2020-10-08/2",
|
||||
GrossWeight = 3333, TareWeight = 0, NetWeight = 3333,
|
||||
WeighingId = "2", FullWeighingId = $"2020-10-08/2",
|
||||
Date = new DateOnly(2020, 10, 8), Time = new TimeOnly(8, 47),
|
||||
}));
|
||||
}
|
||||
|
@ -1 +1 @@
|
||||
curl --fail -s -L "https://elwig.at/files/create.sql?v=24" -u "elwig:ganzGeheim123!" -o "Resources\Sql\Create.sql"
|
||||
curl --fail -s -L "https://elwig.at/files/create.sql?v=25" -u "elwig:ganzGeheim123!" -o "Resources\Sql\Create.sql"
|
||||
|
Reference in New Issue
Block a user