diff --git a/.idea/.idea.Wonky.Client/.idea/.gitignore b/.idea/.idea.Wonky.Client/.idea/.gitignore deleted file mode 100644 index 666a18a2..00000000 --- a/.idea/.idea.Wonky.Client/.idea/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml -# Rider ignored files -/modules.xml -/contentModel.xml -/projectSettingsUpdater.xml -/.idea.Wonky.Client.iml -# Editor-based HTTP Client requests -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git a/.idea/.idea.Wonky.Client/.idea/misc.xml b/.idea/.idea.Wonky.Client/.idea/misc.xml deleted file mode 100644 index 1d8c84d0..00000000 --- a/.idea/.idea.Wonky.Client/.idea/misc.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Wonky.Client.sln.DotSettings b/Wonky.Client.sln.DotSettings new file mode 100644 index 00000000..4ca40c1b --- /dev/null +++ b/Wonky.Client.sln.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/Wonky.Client/Components/ActivityTableComponent.razor b/Wonky.Client/Components/ActivityTableComponent.razor index fe44779b..07cde7d3 100644 --- a/Wonky.Client/Components/ActivityTableComponent.razor +++ b/Wonky.Client/Components/ActivityTableComponent.razor @@ -27,6 +27,8 @@ Note sas Beløb + T + H @@ -40,6 +42,8 @@ @activity.OfficeNote @activity.SasAmount @(activity.StatusTypeEnum == "Quote" ? 0 : activity.OrderAmount) + @if(activity.OurRef.Contains("T:")){} + @if(activity.Express){} } diff --git a/Wonky.Client/Components/LandingComponentAdmin.razor b/Wonky.Client/Components/LandingComponentAdmin.razor index 51cc8ee9..9fa54b7d 100644 --- a/Wonky.Client/Components/LandingComponentAdmin.razor +++ b/Wonky.Client/Components/LandingComponentAdmin.razor @@ -19,3 +19,4 @@ @using Wonky.Client.Components Inno Web CRM + diff --git a/Wonky.Client/Components/LandingComponentAdmin.razor.cs b/Wonky.Client/Components/LandingComponentAdmin.razor.cs index b5d3b43a..b33d1d5d 100644 --- a/Wonky.Client/Components/LandingComponentAdmin.razor.cs +++ b/Wonky.Client/Components/LandingComponentAdmin.razor.cs @@ -47,7 +47,6 @@ public partial class LandingComponentAdmin : IDisposable private Preferences _prefs { get; set; } = new(); private string _workDate { get; set; } = $"{DateTime.Now:yyyy-MM-dd}"; private string _today { get; set; } = $"{DateTime.Now:yyyy-MM-dd}"; - private List? _taskItems { get; set; } = new(); protected override async Task OnInitializedAsync() @@ -58,45 +57,6 @@ public partial class LandingComponentAdmin : IDisposable _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); - - //await GetTaskItems(_workDate); - await GetAllTasks(); - } - - private async Task GetAllTasks() - { - _taskItems = await _taskItemRepo.GetTaskList(); - } - - private async Task OnCompleteTask(string taskItemId) - { - await _preferenceService.SetWorkDate(DateTime.Now); - var item = _taskItems.Find(x => x.TaskItemId == taskItemId); - _navigator.NavigateTo($"/companies/{item.ReferenceId}/activities/new"); - } - - private async Task GetTaskItems(string workDate) - { - _workDate = workDate; - _taskItems = new List(); - _taskItems = await _taskItemRepo.GetTaskList(workDate); - } - - private async Task OnTaskCompleted(string taskItemId) - { - var item = _taskItems.Find(x => x.TaskItemId == taskItemId); - item.IsCompleted = true; - await _taskItemRepo.UpdateTaskItem(taskItemId, item); - _taskItems.Remove(item); - _toast.ShowInfo("Opgaven er markeret som udført."); - } - - private async Task OnDeleteConfirmed(string taskItemId) - { - var item = _taskItems.First(x => x.TaskItemId == taskItemId); - _taskItems.Remove(item); - await _taskItemRepo.DeleteTaskItem(taskItemId); - _toast.ShowInfo("Opgaven er slettet."); } public void Dispose() diff --git a/Wonky.Client/Components/ReportItemComponent.razor b/Wonky.Client/Components/ReportItemComponent.razor index 427a84cc..656452d4 100644 --- a/Wonky.Client/Components/ReportItemComponent.razor +++ b/Wonky.Client/Components/ReportItemComponent.razor @@ -22,6 +22,10 @@ + @if (ReportItem.Express) + { +

TELEFONORDRE

+ }

@ReportItem.Company.Name

diff --git a/Wonky.Client/Components/WarehouseListComponent.razor b/Wonky.Client/Components/WarehouseListComponent.razor index 8cfe7b3b..38acb472 100644 --- a/Wonky.Client/Components/WarehouseListComponent.razor +++ b/Wonky.Client/Components/WarehouseListComponent.razor @@ -49,9 +49,12 @@

Kundenavn

-
+

Postnr. Bynavn

+
+

H

+

Status

@@ -67,9 +70,15 @@
@order.Company.Name
-
+
@order.Company.ZipCode @order.Company.City
+
+ @if (order.Express) + { + + } +
@switch (order.ProcessStatusEnum.ToLower()) { diff --git a/Wonky.Client/HttpInterceptors/HttpInterceptorService.cs b/Wonky.Client/HttpInterceptors/HttpInterceptorService.cs index 5f669c26..45bae165 100644 --- a/Wonky.Client/HttpInterceptors/HttpInterceptorService.cs +++ b/Wonky.Client/HttpInterceptors/HttpInterceptorService.cs @@ -92,8 +92,8 @@ namespace Wonky.Client.HttpInterceptors switch (e.Response.StatusCode) { case HttpStatusCode.NotFound: - message = "Der var ingen data ..."; - _toast.ShowInfo(message); + // message = "Der var ingen data ..."; + // _toast.ShowInfo(message); break; case HttpStatusCode.BadRequest: // message = "Der er et problem med data ..."; @@ -102,7 +102,7 @@ namespace Wonky.Client.HttpInterceptors case HttpStatusCode.Unauthorized: ClearInfo(); _navigation.NavigateTo($"/login/{currDoc}"); - message = "Login skal fornyes ..."; + message = "Venligst login ..."; _toast.ShowWarning(message); break; case HttpStatusCode.InternalServerError: @@ -118,7 +118,7 @@ namespace Wonky.Client.HttpInterceptors private async void ClearInfo() { - await _storage.RemoveItemsAsync(new List {"_xa", "_xr", "_xe", "_xu"}); + await _storage.ClearAsync(); } } } diff --git a/Wonky.Client/HttpRepository/ISalesItemHttpRepository.cs b/Wonky.Client/HttpRepository/ISalesItemHttpRepository.cs index a9b5ccb7..2c77ea65 100644 --- a/Wonky.Client/HttpRepository/ISalesItemHttpRepository.cs +++ b/Wonky.Client/HttpRepository/ISalesItemHttpRepository.cs @@ -24,5 +24,6 @@ namespace Wonky.Client.HttpRepository; public interface ISalesItemHttpRepository { Task> GetSalesItemsPaged(CatalogPagingParams pagingParameters); - Task GetSalesItem(string id); + Task GetSalesItemId(string salesItemId); + Task GetSalesVariantId(string variantId); } \ No newline at end of file diff --git a/Wonky.Client/HttpRepository/SalesItemHttpRepository.cs b/Wonky.Client/HttpRepository/SalesItemHttpRepository.cs index e85be4e6..d6901d8f 100644 --- a/Wonky.Client/HttpRepository/SalesItemHttpRepository.cs +++ b/Wonky.Client/HttpRepository/SalesItemHttpRepository.cs @@ -77,10 +77,17 @@ public class SalesItemHttpRepository : ISalesItemHttpRepository return pagingResponse; } - public async Task GetSalesItem(string id) + public async Task GetSalesItemId(string salesItemId) { var salesItem = await _client - .GetFromJsonAsync($"{_apiConfig.CrmCatalog}/{id}"); + .GetFromJsonAsync($"{_apiConfig.CrmCatalog}/{salesItemId}"); + return salesItem ?? new SalesItemView(); + } + + public async Task GetSalesVariantId(string variantId) + { + var salesItem = await _client + .GetFromJsonAsync($"{_apiConfig.CrmCatalog}/variant/{variantId}"); return salesItem ?? new SalesItemView(); } } \ No newline at end of file diff --git a/Wonky.Client/Pages/ActivityNewVisitPage.razor b/Wonky.Client/Pages/ActivityNewVisitPage.razor index ccd8f845..812c5b42 100644 --- a/Wonky.Client/Pages/ActivityNewVisitPage.razor +++ b/Wonky.Client/Pages/ActivityNewVisitPage.razor @@ -97,7 +97,7 @@ else
- +
diff --git a/Wonky.Client/Pages/ActivityNewVisitPage.razor.cs b/Wonky.Client/Pages/ActivityNewVisitPage.razor.cs index c8b8d0c2..f629d8a0 100644 --- a/Wonky.Client/Pages/ActivityNewVisitPage.razor.cs +++ b/Wonky.Client/Pages/ActivityNewVisitPage.razor.cs @@ -76,30 +76,33 @@ public partial class ActivityNewVisitPage : IDisposable protected override async Task OnParametersSetAsync() { + _interceptor.RegisterEvent(); + _interceptor.RegisterBeforeSendEvent(); + _prefs = await _userPrefs.GetPreferences(); if (!string.IsNullOrWhiteSpace(_prefs.WorkDate)) _workDate = DateTime.Parse(_prefs.WorkDate); _selectedDate = $"{_workDate:yyyy-MM-dd}"; - // raise flag if report is closed _reportClosdd = await _reportRepo.ReportExist(_selectedDate); } protected override async Task OnInitializedAsync() { + _editContext = new EditContext(_draft); _editContext.OnFieldChanged += HandleFieldChanged; _editContext.OnValidationStateChanged += ValidationChanged; - _interceptor.RegisterEvent(); - _interceptor.RegisterBeforeSendEvent(); - _draft.ActivityDate = $"{_workDate:yyyy-MM-dd}" ; _ux = await _storage.GetItemAsync("_xu"); + + // get company _company = await _companyRepo.GetCompanyById(CompanyId); + // variable to validate if customer needs phone number update _phone = _company.Phone; if (string.IsNullOrWhiteSpace(_company.Phone) @@ -146,9 +149,11 @@ public partial class ActivityNewVisitPage : IDisposable private async Task SelectSku(SelectedSku sku) { - // fetch selected item - _selectedItem = await _itemRepo.GetSalesItem(sku.ItemId); + // get selected item + if (string.IsNullOrWhiteSpace(sku.ItemId)) + return; + _selectedItem = await _itemRepo.GetSalesItemId(sku.ItemId); ShowItem = true; Price = sku.Rate; Quantity = sku.Quantity; @@ -156,11 +161,6 @@ public partial class ActivityNewVisitPage : IDisposable StateHasChanged(); } - private void CallHistoryModal() - { - _historyModal.Show(); - } - private void CallPriceHistoryModal() { _priceHistoryModal.Show(); @@ -168,6 +168,9 @@ public partial class ActivityNewVisitPage : IDisposable private void SelectPrice(decimal price) { + if (price == 0) + return; + Price = price.ToString("N2", CultureInfo.InvariantCulture); StateHasChanged(); } @@ -205,13 +208,16 @@ public partial class ActivityNewVisitPage : IDisposable } HideButtons = true; - _draft.ActivityDate = _prefs.WorkDate; + _draft.ActivityDate = $"{_workDate:yyyy-MM-dd}"; _draft.OurRef = _draft.ActivityTypeEnum switch { "phone" => $"T:{_ux.FullName.Split(" ")[0]}", "onSite" => $"B:{_ux.FullName.Split(" ")[0]}", _ => "" }; + if (_draft.ActivityTypeEnum == "phone" && _draft.Express) + _draft.OurRef = $"E{_draft.OurRef}"; + _draft.Lines = new List(); var ln = 0; if (DraftStateProvider.Draft.Items.Count != 0) @@ -235,12 +241,13 @@ public partial class ActivityNewVisitPage : IDisposable { _company.Phone = _draft.Phone; await _companyRepo.UpdateCompany(_company.CompanyId, _company); - _toast.ShowInfo("Kunde telefon nummer er opdateret."); + // _toast.ShowInfo("Kunde telefon nummer er opdateret."); } // post to api var result = await _activityRepo.CreateActivity(_draft); // show result message _toast.ShowSuccess($"{result.Message}."); + _selectedItem = new SalesItemView(); await DraftStateProvider.DeleteDraftAsync(); _navigator.NavigateTo($"/companies"); } @@ -292,6 +299,12 @@ public partial class ActivityNewVisitPage : IDisposable || _poFormInvalid || DraftStateProvider.Draft.Items.Count == 0 || (_draft.ActivityStatusEnum == "offer" && string.IsNullOrWhiteSpace(_draft.Email)); + if (_draft.YourRef.Length > 35 || _draft.ReferenceNumber.Length > 20) + { + _poFormInvalid = true; + return; + } + if (InvalidActivity) { diff --git a/Wonky.Client/Pages/CrmUserViewPage.razor b/Wonky.Client/Pages/CrmUserViewPage.razor index 26e91336..f58985c4 100644 --- a/Wonky.Client/Pages/CrmUserViewPage.razor +++ b/Wonky.Client/Pages/CrmUserViewPage.razor @@ -110,14 +110,14 @@
- +
- +
diff --git a/Wonky.Client/Pages/CustomerViewPage.razor b/Wonky.Client/Pages/CustomerViewPage.razor index d51a55d5..3face8c0 100644 --- a/Wonky.Client/Pages/CustomerViewPage.razor +++ b/Wonky.Client/Pages/CustomerViewPage.razor @@ -193,7 +193,7 @@ Oversigt
- Kemi + @* Kemi *@
Produktkøb diff --git a/Wonky.Client/Pages/KrvItemViewPage.razor.cs b/Wonky.Client/Pages/KrvItemViewPage.razor.cs index 755bdab7..82a7e7bf 100644 --- a/Wonky.Client/Pages/KrvItemViewPage.razor.cs +++ b/Wonky.Client/Pages/KrvItemViewPage.razor.cs @@ -35,7 +35,7 @@ public partial class KrvItemViewPage : IDisposable { _interceptor.RegisterEvent(); _interceptor.RegisterBeforeSendEvent(); - _item = await _itemRepo.GetSalesItem(SalesItemId); + _item = await _itemRepo.GetSalesVariantId(SalesItemId); } /// diff --git a/Wonky.Client/Pages/OfficeNewOrderPage.razor.cs b/Wonky.Client/Pages/OfficeNewOrderPage.razor.cs index f779ce07..dc3bb471 100644 --- a/Wonky.Client/Pages/OfficeNewOrderPage.razor.cs +++ b/Wonky.Client/Pages/OfficeNewOrderPage.razor.cs @@ -102,7 +102,7 @@ public partial class OfficeNewOrderPage : IDisposable private async Task SelectSku(SelectedSku sku) { ShowItem = true; - _selectedItem = await _itemRepo.GetSalesItem(sku.ItemId); + _selectedItem = await _itemRepo.GetSalesVariantId(sku.ItemId); Price = sku.Rate; Quantity = sku.Quantity; } diff --git a/Wonky.Client/Pages/WarehouseOrderViewPage.razor b/Wonky.Client/Pages/WarehouseOrderViewPage.razor index 504a4bab..4880fa65 100644 --- a/Wonky.Client/Pages/WarehouseOrderViewPage.razor +++ b/Wonky.Client/Pages/WarehouseOrderViewPage.razor @@ -26,7 +26,11 @@ -

@_order.Company.Name

+ @if (_order.Express) + { +

HASTE ORDRE

+ } +

@_order.Company.Name

diff --git a/Wonky.Client/Shared/MainLayout.razor b/Wonky.Client/Shared/MainLayout.razor index 6603a7d8..2b8defc3 100644 --- a/Wonky.Client/Shared/MainLayout.razor +++ b/Wonky.Client/Shared/MainLayout.razor @@ -32,6 +32,6 @@
@Body
- +
diff --git a/Wonky.Client/Shared/PriceListModal.razor b/Wonky.Client/Shared/PriceListModal.razor index c9978adf..28c7c044 100644 --- a/Wonky.Client/Shared/PriceListModal.razor +++ b/Wonky.Client/Shared/PriceListModal.razor @@ -65,7 +65,7 @@
@rate.Quantity
@rate.Rate
diff --git a/Wonky.Client/Shared/PriceListModal.razor.cs b/Wonky.Client/Shared/PriceListModal.razor.cs index 3f1364ee..b30b6d79 100644 --- a/Wonky.Client/Shared/PriceListModal.razor.cs +++ b/Wonky.Client/Shared/PriceListModal.razor.cs @@ -41,9 +41,10 @@ public partial class PriceListModal : IDisposable { _preferences = await _preferenceService.GetPreferences(); _paging.OrderBy = _preferences.ItemSort; - _paging.SearchColumn = _preferences.ItemSort; - _paging.PageSize = Convert.ToInt32((_preferences.PageSize)); + _paging.SearchColumn = _preferences.ItemSearch; + _paging.PageSize = Convert.ToInt32(_preferences.PageSize); _interceptor.RegisterEvent(); + _interceptor.RegisterBeforeSendEvent(); await GetSalesItems(); } diff --git a/Wonky.Client/Shared/ProductPriceHistoryModal.razor.cs b/Wonky.Client/Shared/ProductPriceHistoryModal.razor.cs index bc332ffd..d6fc814d 100644 --- a/Wonky.Client/Shared/ProductPriceHistoryModal.razor.cs +++ b/Wonky.Client/Shared/ProductPriceHistoryModal.razor.cs @@ -36,6 +36,9 @@ public partial class ProductPriceHistoryModal protected override async Task OnParametersSetAsync() { + if (string.IsNullOrWhiteSpace(ItemSku)) + return; + History = await _historyRepo.FetchHistory(CompanyId, ItemSku); if (History.Any()) { diff --git a/Wonky.Client/Wonky.Client.csproj b/Wonky.Client/Wonky.Client.csproj index ea0e6907..000c736b 100644 --- a/Wonky.Client/Wonky.Client.csproj +++ b/Wonky.Client/Wonky.Client.csproj @@ -11,10 +11,10 @@ - - - - + + + + diff --git a/Wonky.Client/wwwroot/appsettings.json b/Wonky.Client/wwwroot/appsettings.json index ddd18cdd..5182a3f1 100644 --- a/Wonky.Client/wwwroot/appsettings.json +++ b/Wonky.Client/wwwroot/appsettings.json @@ -1,13 +1,13 @@ { "appInfo": { "name": "Wonky Client", - "version": "0.10.72", - "rc": false, + "version": "0.10.84", + "rc": true, "sandBox": false, "image": "grumpy-coder.png" }, "apiConfig": { - "innoBaseUrl": "https://staging.innotec.dk", + "innoBaseUrl": "https://app.innotec.dk", "glsTrackUrl": "https://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DK01/DA/5004.htm?txtAction=71000&txtRefNo=", "glsId": "", "serviceVirk": "api/v2/services/virk", diff --git a/Wonky.Entity/DTO/ActivityDto.cs b/Wonky.Entity/DTO/ActivityDto.cs index 8d8f0b82..5c3b2944 100644 --- a/Wonky.Entity/DTO/ActivityDto.cs +++ b/Wonky.Entity/DTO/ActivityDto.cs @@ -113,10 +113,12 @@ namespace Wonky.Entity.DTO /// [Required(ErrorMessage = "Vælg aktivitetstype")] public string ActivityTypeEnum { get; set; } = ""; + /// /// Flag express order /// public bool Express { get; set; } + /// /// Activity status enum as string /// diff --git a/Wonky.Entity/Views/ReportItemView.cs b/Wonky.Entity/Views/ReportItemView.cs index a94a0d70..6bde41c2 100644 --- a/Wonky.Entity/Views/ReportItemView.cs +++ b/Wonky.Entity/Views/ReportItemView.cs @@ -29,7 +29,10 @@ public class ReportItemView /// Closed sale /// public bool Closed { get; set; } - + /// + /// express flag + /// + public bool Express { get; set; } /// /// ESales number /// diff --git a/Wonky.Entity/Views/SalesItemView.cs b/Wonky.Entity/Views/SalesItemView.cs index dacdcdf4..fab2b0b7 100644 --- a/Wonky.Entity/Views/SalesItemView.cs +++ b/Wonky.Entity/Views/SalesItemView.cs @@ -17,7 +17,8 @@ namespace Wonky.Entity.Views; public class SalesItemView { - public string ItemId { get; set; } = ""; + public string SalesItemId { get; set; } = ""; + public string VariantId { get; set; } = ""; public string Name { get; set; } = ""; public string Sku { get; set; } = ""; public string ShortName { get; set; } = ""; diff --git a/Wonky.Entity/Views/UserInfoView.cs b/Wonky.Entity/Views/UserInfoView.cs index f953c3c7..ed370f64 100644 --- a/Wonky.Entity/Views/UserInfoView.cs +++ b/Wonky.Entity/Views/UserInfoView.cs @@ -20,7 +20,7 @@ namespace Wonky.Entity.Views; public class UserInfoView { [JsonPropertyName("id")] public string Id { get; set; } = ""; - [JsonPropertyName("Advisor")] public string Advisor { get; set; } = ""; + [JsonPropertyName("advisor")] public string Advisor { get; set; } = ""; [JsonPropertyName("companyId")] public string CrmCompanyKey { get; set; } = ""; [JsonPropertyName("countryCode")] public string CountryCode { get; set; } = ""; [JsonPropertyName("countryName")] public string CountryName { get; set; } = ""; diff --git a/Wonky.Entity/Views/WarehouseOrderView.cs b/Wonky.Entity/Views/WarehouseOrderView.cs index 608734c7..bdcc33df 100644 --- a/Wonky.Entity/Views/WarehouseOrderView.cs +++ b/Wonky.Entity/Views/WarehouseOrderView.cs @@ -59,4 +59,8 @@ public class WarehouseOrderView /// Current process status /// public string ProcessStatusEnum { get; set; } = ""; + /// + /// express flag + /// + public bool Express { get; set; } } \ No newline at end of file