- @if (IsSupervisor)
+ @if (_isSupervisor)
{
-
@if (Report.DayTypeEnum.ToLower().Contains("leave"))
{
Report.Figures.KmMorning = 0;
}
else
{
- Report.Figures.KmMorning = KmMorning;
+ Report.Figures.KmMorning = _kmMorning;
+ disabled="@(_noFigures)"/>
|
+ disabled="@(_noFigures)"/>
|
+ disabled="@(_noFigures)"/>
|
- @if (Activities.Any())
+ @if (_activities.Any())
{
}
}
@@ -196,9 +195,9 @@
-@if (Working)
+@if (_working)
{
}
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs
index b01e3324..9560e29d 100644
--- a/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs
+++ b/Wonky.Client/Pages/AdvisorReportCreatePage.razor.cs
@@ -44,24 +44,24 @@ public partial class AdvisorReportCreatePage : IDisposable
// ##########################################################################
private EditContext ReportContext { get; set; }
private ReportDto Report { get; set; } = new();
- private List Activities { get; set; } = new();
- private ReportFiguresDto InitialValues { get; set; } = new();
- private UserPreference Preference { get; set; } = new();
- private bool FormInvalid { get; set; } = true;
- private bool NoFigures { get; set; } = true;
- private bool Working { get; set; }
- private DateTime ThisWorkDate { get; set; }
- private TimeOnly CheckIn { get; set; } = new(12, 0);
- private TimeOnly CheckOut { get; set; } = new(12, 0);
- private DateTime BeginLeave { get; set; } = DateTime.Now;
- private DateTime EndLeave { get; set; } = DateTime.Now;
- private ConfirmationModal ConfirmReportModal { get; set; }
- private string Prompt { get; set; } = "";
- private string WorkDate { get; set; } = "";
- private int CurrKmMonth { get; set; }
- private int CurrKmPrivate { get; set; }
- private bool IsSupervisor { get; set; }
- private int KmMorning { get; set; }
+ private List _activities = new();
+ private ReportFiguresDto _initialValues = new();
+ private UserPreference _preference = new();
+ private bool _formInvalid = true;
+ private bool _noFigures = true;
+ private bool _working;
+ private DateTime _thisWorkDate;
+ private TimeOnly _checkIn = new(12, 0);
+ private TimeOnly _checkOut = new(12, 0);
+ private DateTime _beginLeave = DateTime.Now;
+ private DateTime _endLeave = DateTime.Now;
+ private ConfirmationModal _confirmModal;
+ private string _prompt = "";
+ private string _workDate = "";
+ private int _currKmMonth;
+ private int _currKmPrivate;
+ private bool _isSupervisor;
+ private int _kmMorning;
///
@@ -69,46 +69,46 @@ public partial class AdvisorReportCreatePage : IDisposable
///
protected override async Task OnInitializedAsync()
{
- Interceptor.RegisterEvent();
- Interceptor.RegisterBeforeSendEvent();
-
- IsSupervisor = await UserInfo.IsSupervisor();
-
ReportContext = new EditContext(Report);
ReportContext.OnFieldChanged += HandleFieldChanged;
ReportContext.OnValidationStateChanged += ValidationChanged;
+
+ Interceptor.RegisterEvent();
+ Interceptor.RegisterBeforeSendEvent();
+
+ _isSupervisor = await UserInfo.IsSupervisor();
PreferenceService.OnChange += ProfileServiceOnOnChange;
- Preference = await PreferenceService.GetPreference();
+ _preference = await PreferenceService.GetPreference();
- KmMorning = await PreferenceService.GetKmMorning();
+ _kmMorning = await PreferenceService.GetKmMorning();
- Logger.LogDebug("{}", JsonSerializer.Serialize(Preference));
+ Logger.LogDebug("{}", JsonSerializer.Serialize(_preference));
- WorkDate = Preference.WorkDate;
- if (string.IsNullOrWhiteSpace(WorkDate))
+ _workDate = _preference.WorkDate;
+ if (string.IsNullOrWhiteSpace(_workDate))
{
- ThisWorkDate = DateTime.Now;
- WorkDate = $"{ThisWorkDate:yyyy-MM-dd}";
- await PreferenceService.SetWorkDate(ThisWorkDate);
+ _thisWorkDate = DateTime.Now;
+ _workDate = $"{_thisWorkDate:yyyy-MM-dd}";
+ await PreferenceService.SetWorkDate(_thisWorkDate);
}
else
{
- ThisWorkDate = DateTime.Parse(WorkDate);
+ _thisWorkDate = DateTime.Parse(_workDate);
}
- if (await AdvisorSalesReportRepo.ReportExist(WorkDate))
+ if (await AdvisorSalesReportRepo.ReportExist(_workDate))
{
- Navigator.NavigateTo($"/advisor/reports/view/{ThisWorkDate:yyyy-MM-dd}");
+ Navigator.NavigateTo($"/advisor/reports/view/{_thisWorkDate:yyyy-MM-dd}");
}
- BeginLeave = ThisWorkDate;
- EndLeave = ThisWorkDate;
+ _beginLeave = _thisWorkDate;
+ _endLeave = _thisWorkDate;
- Report.FromDateTime = $"{ThisWorkDate:yyyy-MM-dd'T'12:00:00}";
- Report.ToDateTime = $"{ThisWorkDate:yyyy-MM-dd'T'12:00:00}";
+ Report.FromDateTime = $"{_thisWorkDate:yyyy-MM-dd'T'12:00:00}";
+ Report.ToDateTime = $"{_thisWorkDate:yyyy-MM-dd'T'12:00:00}";
Report.Figures.KmMorning = 0;
Report.Figures.KmEvening = 0;
@@ -122,30 +122,30 @@ public partial class AdvisorReportCreatePage : IDisposable
private void ProfileServiceOnOnChange(UserPreference userPreference)
{
- Preference = userPreference;
- WorkDate = Preference.WorkDate;
+ _preference = userPreference;
+ _workDate = _preference.WorkDate;
StateHasChanged();
}
private async Task GetKeyFigures()
{
- if (Working)
+ if (_working)
return;
- Working = true;
+ _working = true;
Report.Figures = new ReportFiguresDto();
- InitialValues = new ReportFiguresDto();
- Activities = new List();
+ _initialValues = new ReportFiguresDto();
+ _activities = new List();
- var data = await AdvisorSalesReportRepo.InitializeReportData(WorkDate);
+ var data = await AdvisorSalesReportRepo.InitializeReportData(_workDate);
if(data.ReportClosed)
- Navigator.NavigateTo($"/advisor/reports/view/{ThisWorkDate:yyyy-MM-dd}");
+ Navigator.NavigateTo($"/advisor/reports/view/{_thisWorkDate:yyyy-MM-dd}");
Report.Figures = data.ReportData;
- InitialValues = data.ReportData;
- Activities = data.ReportItems;
- CurrKmMonth = data.ReportData.DistanceMonth;
- CurrKmPrivate = data.ReportData.DistancePrivate;
+ _initialValues = data.ReportData;
+ _activities = data.ReportItems;
+ _currKmMonth = data.ReportData.DistanceMonth;
+ _currKmPrivate = data.ReportData.DistancePrivate;
if (Report.DayTypeEnum.ToLower().Contains("leave"))
{
@@ -156,28 +156,25 @@ public partial class AdvisorReportCreatePage : IDisposable
}
else
{
- Report.Figures.KmMorning = KmMorning;
+ Report.Figures.KmMorning = _kmMorning;
}
- NoFigures = false;
- Working = false;
+ _noFigures = false;
+ _working = false;
}
- ///
- /// Field data change event
- ///
- ///
- ///
+
+
private void HandleFieldChanged(object sender, FieldChangedEventArgs e)
{
// Console.WriteLine($"e FieldName => {e.FieldIdentifier.FieldName}");
- FormInvalid = !ReportContext.Validate();
- if (KmMorning == 0)
+ _formInvalid = !ReportContext.Validate();
+ if (_kmMorning == 0)
{
- KmMorning = Report.Figures.KmMorning;
+ _kmMorning = Report.Figures.KmMorning;
}
Report.Figures.Distance = Report.Figures.KmEvening - Report.Figures.KmMorning;
- Report.Figures.DistanceMonth = Report.Figures.Distance + CurrKmMonth;
- Report.Figures.DistancePrivateMonth = Report.Figures.DistancePrivate + CurrKmPrivate;
+ Report.Figures.DistanceMonth = Report.Figures.Distance + _currKmMonth;
+ Report.Figures.DistancePrivateMonth = Report.Figures.DistancePrivate + _currKmPrivate;
if (Report.Figures.Distance is > 1000 or < 0 && Report.Figures.KmMorning > 0)
{
Toaster.ShowError($"Kørte km for rapporten er '{Report.Figures.Distance}'. Er du sikker på at det er rigtigt?");
@@ -185,14 +182,10 @@ public partial class AdvisorReportCreatePage : IDisposable
StateHasChanged();
}
- ///
- /// Validation change event
- ///
- ///
- ///
+
private void ValidationChanged(object sender, ValidationStateChangedEventArgs e)
{
- FormInvalid = false;
+ _formInvalid = false;
ReportContext.OnFieldChanged -= HandleFieldChanged;
ReportContext.OnValidationStateChanged -= ValidationChanged;
ReportContext = new EditContext(Report);
@@ -200,76 +193,88 @@ public partial class AdvisorReportCreatePage : IDisposable
ReportContext.OnValidationStateChanged += ValidationChanged;
}
- ///
- /// Save report confirmed callback
- ///
+
private async Task ConfirmReportCallback()
{
// attempt to eliminate doubled click on submit button
- if (Working)
+ if (_working)
return;
- Working = true;
+ _working = true;
- var result = await AdvisorSalesReportRepo.CreateReport(WorkDate, Report);
+ // post report to backend
+ var result = await AdvisorSalesReportRepo.CreateReport(_workDate, Report);
+
Logger.LogDebug("CreateReport.result => {}", JsonSerializer.Serialize(result));
// reset km and date confirmation
await PreferenceService.SetKmMorning(0);
+
// reset date confirmed
await PreferenceService.SetDateConfirmed(false);
- Navigator.NavigateTo($"/advisor/reports/view/{ThisWorkDate:yyyy-MM-dd}");
+ Navigator.NavigateTo($"/advisor/reports/view/{_thisWorkDate:yyyy-MM-dd}");
}
- ///
- /// Submit report
- ///
+
private void SubmitReport()
{
// attempt to eliminate doubled click on submit button
- if (Working)
+ if (_working)
return;
+
+ // 2023-08-14 - reject report for a future date
+ if (_endLeave.Date > DateTime.Now.Date)
+ {
+ Toaster.ShowError("Du har rod i ferie datoer. Prøver du at lave ferierapport før ferien er færdig?");
+ return;
+ }
+
// check day type
if (string.IsNullOrWhiteSpace(Report.DayTypeEnum))
{
Toaster.ShowError("Dagtype skal vælges");
return;
}
+
// distance day check - only if not leave
if (Report.Figures.KmMorning > Report.Figures.KmEvening && !Report.DayTypeEnum.ToLower().Contains("leave"))
{
Toaster.ShowError("Km udregning er negativ - kontroller venligst km tal");
return;
}
+
// local working variables
DateTime checkIn;
DateTime checkOut;
+
// create a date time object using workDate and workHour input
if (Report.DayTypeEnum.ToLower().Contains("leave"))
{
- checkIn = new DateTime(BeginLeave.Year, BeginLeave.Month, BeginLeave.Day, 0, 0, 0);
- checkOut = new DateTime(EndLeave.Year, EndLeave.Month, EndLeave.Day, 0, 0, 0);
+ checkIn = new DateTime(_beginLeave.Year, _beginLeave.Month, _beginLeave.Day, 0, 0, 0);
+ checkOut = new DateTime(_endLeave.Year, _endLeave.Month, _endLeave.Day, 0, 0, 0);
}
else
{
- checkIn = new DateTime(ThisWorkDate.Year, ThisWorkDate.Month, ThisWorkDate.Day, CheckIn.Hour, CheckIn.Minute, 0);
- checkOut = new DateTime(ThisWorkDate.Year, ThisWorkDate.Month, ThisWorkDate.Day, CheckOut.Hour, CheckOut.Minute, 0);
+ checkIn = new DateTime(_thisWorkDate.Year, _thisWorkDate.Month, _thisWorkDate.Day, _checkIn.Hour, _checkIn.Minute, 0);
+ checkOut = new DateTime(_thisWorkDate.Year, _thisWorkDate.Month, _thisWorkDate.Day, _checkOut.Hour, _checkOut.Minute, 0);
}
+
// assign a workday number if the day is marked as salesDay
Report.SalesDayNumber = Report.DayTypeEnum == "sales" ? Report.Figures.SalesDayCount + 1 : 0;
+
// format report date time input
Report.FromDateTime = checkIn.ToString("yyyy-MM-dd'T'HH:mm:ss", CultureInfo.InvariantCulture);
Report.ToDateTime = checkOut.ToString("yyyy-MM-dd'T'HH:mm:ss", CultureInfo.InvariantCulture);
- Logger.LogDebug("_workDate => {workDate}", $"{ThisWorkDate:yyyy-MM-dd}");
- Logger.LogDebug("_report => {report}", JsonSerializer.Serialize(Report));
+ Logger.LogDebug("_workDate => {workDate}", $"{_thisWorkDate:yyyy-MM-dd}");
+ Logger.LogDebug("Report => {report}", JsonSerializer.Serialize(Report));
if (Report.DayTypeEnum is "leave" or "sickLeave")
{
// reset distance calculation
Report.Figures.KmEvening = 0;
Report.Figures.KmMorning = 0;
- Report.Figures.DistanceMonth = CurrKmMonth;
- Report.Figures.DistancePrivateMonth = CurrKmPrivate;
+ Report.Figures.DistanceMonth = _currKmMonth;
+ Report.Figures.DistancePrivateMonth = _currKmPrivate;
}
// pop confirmation
@@ -278,36 +283,31 @@ public partial class AdvisorReportCreatePage : IDisposable
? $"Kørte km for rapporten er '{Report.Figures.KmEvening - Report.Figures.KmMorning}'. Er du sikker på at det er rigtigt? "
: "";
- Prompt = $"{warning} Gem rapport for {ThisWorkDate.ToLongDateString()}?";
+ _prompt = $"{warning} Gem rapport for {_thisWorkDate.ToLongDateString()}?";
- ConfirmReportModal.Show();
+ _confirmModal.Show();
}
- ///
- /// On Time changed - update the Report Date fields
- ///
+
private void OnTimeChanged()
{
- var f = new DateTime(ThisWorkDate.Year, ThisWorkDate.Month, ThisWorkDate.Day, CheckIn.Hour, CheckIn.Minute,0);
+ var f = new DateTime(_thisWorkDate.Year, _thisWorkDate.Month, _thisWorkDate.Day, _checkIn.Hour, _checkIn.Minute,0);
Report.FromDateTime = $"{f:yyyy-MM-dd'T'HH:mm}";
- var t = new DateTime(ThisWorkDate.Year, ThisWorkDate.Month, ThisWorkDate.Day, CheckOut.Hour, CheckOut.Minute,0);
+ var t = new DateTime(_thisWorkDate.Year, _thisWorkDate.Month, _thisWorkDate.Day, _checkOut.Hour, _checkOut.Minute,0);
Report.ToDateTime = $"{t:yyyy-MM-dd'T'HH:mm}";
}
- ///
- /// Set workDate callback
- ///
- ///
+
private void SetWorkDateCallback(string workDate)
{
- WorkDate = workDate;
- ThisWorkDate = DateTime.Parse(workDate);
+ _workDate = workDate;
+ _thisWorkDate = DateTime.Parse(workDate);
- NoFigures = true;
+ _noFigures = true;
Report.Figures = new ReportFiguresDto();
- InitialValues = new ReportFiguresDto();
- Activities = new List();
+ _initialValues = new ReportFiguresDto();
+ _activities = new List();
Report.Figures.KmEvening = 0;
Report.Figures.KmMorning = 0;
@@ -315,14 +315,17 @@ public partial class AdvisorReportCreatePage : IDisposable
Report.Figures.DistanceMonth = 0;
Report.Figures.DistancePrivate = 0;
Report.Figures.DistancePrivateMonth = 0;
- Report.FromDateTime = $"{ThisWorkDate:yyyy-MM-dd'T'12:00}";
- Report.ToDateTime = $"{ThisWorkDate:yyyy-MM-dd'T'12:00}";
+ Report.FromDateTime = $"{_thisWorkDate:yyyy-MM-dd'T'12:00}";
+ Report.ToDateTime = $"{_thisWorkDate:yyyy-MM-dd'T'12:00}";
}
+
private void OnCancelCallback()
{
- ConfirmReportModal.Hide();
+ _confirmModal.Hide();
}
+
+
public void Dispose()
{
Interceptor.DisposeEvent();
diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json
index 338532f2..204e57bc 100644
--- a/Wonky.Client/wwwroot/appsettings.json
+++ b/Wonky.Client/wwwroot/appsettings.json
@@ -1,8 +1,8 @@
{
"appInfo": {
"name": "Wonky Online",
- "version": "213.0",
- "rc": false,
+ "version": "222.0",
+ "rc": true,
"sandBox": true,
"image": "grumpy-coder.png",
"sdk": "dotnet 7.0"
diff --git a/Wonky.Entity/DTO/WebShopLineDto.cs b/Wonky.Entity/DTO/WebShopLineDto.cs
new file mode 100644
index 00000000..fc90f803
--- /dev/null
+++ b/Wonky.Entity/DTO/WebShopLineDto.cs
@@ -0,0 +1,10 @@
+namespace Wonky.Entity.DTO;
+
+public class WebShopLineDto
+{
+ public string Discount { get; set; } = "";
+ public string Quantity { get; set; } = "";
+ public string Sku { get; set; } = "";
+ public string Text { get; set; } = "";
+ public string UnitPrice { get; set; } = "";
+}
\ No newline at end of file
diff --git a/Wonky.Entity/DTO/WebShopOrderDto.cs b/Wonky.Entity/DTO/WebShopOrderDto.cs
new file mode 100644
index 00000000..79748d92
--- /dev/null
+++ b/Wonky.Entity/DTO/WebShopOrderDto.cs
@@ -0,0 +1,11 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Wonky.Entity.DTO;
+
+public class WebShopOrderDto
+{
+ [MaxLength(20)] public string ReferenceNumber { get; set; } = "";
+ [MaxLength(255)] public string OrderNote { get; set; } = "";
+ [Required] public bool ConditionsAccepted { get; set; }
+ [Required] public List Lines { get; set; } = new();
+}
\ No newline at end of file
diff --git a/Wonky.Entity/Views/WebShopLIneView.cs b/Wonky.Entity/Views/WebShopLIneView.cs
new file mode 100644
index 00000000..ce24ff1c
--- /dev/null
+++ b/Wonky.Entity/Views/WebShopLIneView.cs
@@ -0,0 +1,8 @@
+namespace Wonky.Entity.Views;
+
+public class WebShopLineView
+{
+ public string Sku { get; set; } = "";
+ public string Quantity { get; set; } = "";
+ public string Text { get; set; } = "";
+}
diff --git a/Wonky.Entity/Views/WebShopOrderListView.cs b/Wonky.Entity/Views/WebShopOrderListView.cs
new file mode 100644
index 00000000..c44b18bc
--- /dev/null
+++ b/Wonky.Entity/Views/WebShopOrderListView.cs
@@ -0,0 +1,9 @@
+namespace Wonky.Entity.Views;
+
+public class WebShorOrderListView
+{
+ public string SalesHeadId { get; set; } = "";
+ public string ReferenceNumber { get; set; } = "";
+ public string YourRef { get; set; } = "";
+ public string OrderDate { get; set; } = "";
+}
\ No newline at end of file
diff --git a/Wonky.Entity/Views/WebShopOrderView.cs b/Wonky.Entity/Views/WebShopOrderView.cs
new file mode 100644
index 00000000..e05684c4
--- /dev/null
+++ b/Wonky.Entity/Views/WebShopOrderView.cs
@@ -0,0 +1,13 @@
+namespace Wonky.Entity.Views;
+
+public class WebShopOrderView
+{
+ public string OurRef { get; set; } = "";
+ public string ReferenceNumber { get; set; } = "";
+ public string YourRef { get; set; } = "";
+ public string OrderNote { get; set; } = "";
+ public bool Closed { get; set; }
+ public string OrderDate { get; set; } = "";
+ public List Lines { get; set; } = new();
+}
+
| |