overlay customer activity list view and single view
This commit is contained in:
parent
709ca5d90b
commit
fc0682c747
39 changed files with 411 additions and 122 deletions
|
@ -38,7 +38,7 @@
|
||||||
@foreach (var activity in ActivityList)
|
@foreach (var activity in ActivityList)
|
||||||
{
|
{
|
||||||
<tr>
|
<tr>
|
||||||
<td class="align-middle"><a class="btn btn-outline-info text-black d-block" href="/advisor/customers/@activity.Company.CompanyId/orders/@activity.ActivityId">@activity.Company.Name</a></td>
|
<td class="align-middle"><a href="/advisor/customers/@activity.Company.CompanyId/orders/@activity.ActivityId">@activity.Company.Name</a></td>
|
||||||
<td class="align-middle">@activity.Company.City</td>
|
<td class="align-middle">@activity.Company.City</td>
|
||||||
<td class="align-middle">@activity.Demo</td>
|
<td class="align-middle">@activity.Demo</td>
|
||||||
<td class="align-middle">@activity.Sales</td>
|
<td class="align-middle">@activity.Sales</td>
|
||||||
|
|
75
Wonky.Client/Components/CustomerVisitListComponent.razor
Normal file
75
Wonky.Client/Components/CustomerVisitListComponent.razor
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
@*
|
||||||
|
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||||
|
//
|
||||||
|
*@
|
||||||
|
|
||||||
|
<div class="list-group">
|
||||||
|
<div class="list-group-item">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<h4>Dato</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h4>Demo</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h4>Salg</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h4>Ordre Note</h4>
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
<h4>Ordre Note</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if (Activities.Any())
|
||||||
|
{
|
||||||
|
@foreach (var activity in Activities)
|
||||||
|
{
|
||||||
|
<div class="list-group-item list-group-item-action" style="cursor: pointer" @onclick="() => ShowVisitOverlay(activity.ActivityId)">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
@activity.OrderDate
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
@activity.Demo
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
@activity.Sales
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
@activity.OfficeNote
|
||||||
|
</div>
|
||||||
|
<div class="col">
|
||||||
|
@activity.CrmNote
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<div class="list-group-item">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
Ingen data
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<CustomerActivityViewModalOverlay ReportItem="Activity" @ref="ActivityViewOverlay"/>
|
41
Wonky.Client/Components/CustomerVisitListComponent.razor.cs
Normal file
41
Wonky.Client/Components/CustomerVisitListComponent.razor.cs
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||||
|
//
|
||||||
|
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Blazored.LocalStorage;
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Wonky.Client.HttpInterfaces;
|
||||||
|
using Wonky.Client.Models;
|
||||||
|
using Wonky.Client.Shared;
|
||||||
|
using Wonky.Entity.DTO;
|
||||||
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
|
namespace Wonky.Client.Components;
|
||||||
|
|
||||||
|
public partial class CustomerVisitListComponent
|
||||||
|
{
|
||||||
|
[Parameter] public List<ReportItemView> Activities { get; set; } = new();
|
||||||
|
private CustomerActivityViewModalOverlay ActivityViewOverlay { get; set; } = new();
|
||||||
|
|
||||||
|
private ReportItemView Activity { get; set; } = new();
|
||||||
|
|
||||||
|
private void ShowVisitOverlay(string activityId)
|
||||||
|
{
|
||||||
|
Activity = Activities.First(x => x.ActivityId == activityId);
|
||||||
|
ActivityViewOverlay.Show();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -22,7 +22,7 @@
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="p-0" colspan="4">
|
<th class="p-0" colspan="4">
|
||||||
<div class="bg-light text-dark border border-1 rounded-3 pt-3 mb-2">
|
<div class="alert d-print-block border border-1 border-dark pt-3 mb-2">
|
||||||
<h2 class="fw-bold text-center">@ReportItem.Company.Name</h2>
|
<h2 class="fw-bold text-center">@ReportItem.Company.Name</h2>
|
||||||
@if (ReportItem.Express)
|
@if (ReportItem.Express)
|
||||||
{
|
{
|
||||||
|
@ -134,10 +134,10 @@
|
||||||
</table>
|
</table>
|
||||||
@if (!string.IsNullOrWhiteSpace(@ReportItem.OfficeNote))
|
@if (!string.IsNullOrWhiteSpace(@ReportItem.OfficeNote))
|
||||||
{
|
{
|
||||||
<div class="alert alert-dark d-print-block">
|
<div class="alert d-print-block border border-1 border-dark">
|
||||||
<h4 class="text-center">
|
<p class="text-center h4">
|
||||||
@ReportItem.OfficeNote
|
@ReportItem.OfficeNote
|
||||||
</h4>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
@attribute [Authorize(Roles = "Advisor")]
|
@attribute [Authorize(Roles = "Advisor")]
|
||||||
@page "/advisor/customers/{CompanyId}/activities/new"
|
@page "/advisor/customers/{CompanyId}/activities/new"
|
||||||
|
|
||||||
<PageTitle>Rådgiver Opret Aktivetet for @Company.Name</PageTitle>
|
<PageTitle>Ny aktivitet - @Company.Name</PageTitle>
|
||||||
|
|
||||||
<div class="row bg-dark text-white rounded-2 mb-2 py-2 align-items-center">
|
<div class="row bg-dark text-white rounded-2 mb-2 py-2 align-items-center">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
|
@ -161,7 +161,8 @@ else
|
||||||
<button class="btn btn-danger" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" @onclick="ShowInvoiceOverlay">Faktura</button>
|
<button class="btn btn-danger" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" @onclick="ShowInvoiceOverlay">Faktura</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3 d-grid mx-auto">
|
<div class="col-sm-3 d-grid mx-auto">
|
||||||
<button class="btn btn-warning" disabled>Tidl. besøg</button>
|
<button class="btn btn-warning" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" @onclick="ShowVisitOverlay">Tidl. besøg</button>
|
||||||
|
@* <button class="btn btn-warning" disabled @onclick="ShowVisitOverlay">Tidl. besøg</button> *@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-3 d-grid mx-auto">
|
<div class="col-sm-3 d-grid mx-auto">
|
||||||
<button class="btn btn-success" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" @onclick="ShowInventoryOverlay">Produkter</button>
|
<button class="btn btn-success" disabled="@string.IsNullOrWhiteSpace(Activity.ActivityTypeEnum)" @onclick="ShowInventoryOverlay">Produkter</button>
|
||||||
|
@ -335,21 +336,23 @@ else
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
<ConfirmWorkDateOverlay BodyMessage="@PromptDateConfirm"
|
<ConfirmWorkDateModalOverlay BodyMessage="@PromptDateConfirm"
|
||||||
OnOkClicked="WorkDateConfirmCallback" @ref="WorkDateOverlay"/>
|
OnOkClicked="WorkDateConfirmCallback" @ref="WorkDateOverlay"/>
|
||||||
|
|
||||||
<PriceCatalogOverlay CountryCode="@Company.CountryCode.ToLower()"
|
<PriceCatalogModalOverlay CountryCode="@Company.CountryCode.ToLower()"
|
||||||
OnSelected="PriceListCallback" @ref="CatalogOverlay"/>
|
OnSelected="PriceListCallback" @ref="CatalogOverlay"/>
|
||||||
|
|
||||||
<ProductHistoryOverlay CompanyId="@CompanyId" ItemSku="@SelectedItem.Sku" @ref="ProductOverlay"/>
|
<ProductHistoryModalOverlay CompanyId="@CompanyId" ItemSku="@SelectedItem.Sku" @ref="ProductOverlay"/>
|
||||||
|
|
||||||
<ProductPriceHistoryModal CompanyId="@CompanyId" Sku="@SelectedItem.Sku"
|
<ProductPriceHistoryModal CompanyId="@CompanyId" Sku="@SelectedItem.Sku"
|
||||||
OnSelected="PriceHistoryCallback" @ref="PriceOverlay"/>
|
OnSelected="PriceHistoryCallback" @ref="PriceOverlay"/>
|
||||||
|
|
||||||
<ConfirmProductCheckOverlay BodyMessage="" CompanyId="@CompanyId" Products="CheckList"
|
<ConfirmProductCheckModalOverlay BodyMessage="" CompanyId="@CompanyId" Products="CheckList"
|
||||||
OnOkClicked="ConfirmProductCheckCallback" @ref="ProductCheckOverlay" />
|
OnOkClicked="ConfirmProductCheckCallback" @ref="ProductCheckOverlay" />
|
||||||
|
|
||||||
<CustomerInvoiceOverlay CustomerInvoices="CompanyInvoices" @ref="InvoiceOverlay" />
|
<CustomerInvoiceModalOverlay CustomerInvoices="CompanyInvoices" @ref="InvoiceOverlay" />
|
||||||
|
|
||||||
<CustomerInventoryOverlay CompanyName="@Company.Name" CompanyId="@CompanyId" CountryCode="@Company.CountryCode"
|
<CustomerInventoryModalOverlay CompanyName="@Company.Name" CompanyId="@CompanyId" CountryCode="@Company.CountryCode"
|
||||||
OnInventorySelected="OnInventoryCallback" Inventory="Inventory" @ref="InventoryOverlay" />
|
OnInventorySelected="OnInventoryCallback" Inventory="Inventory" @ref="InventoryOverlay" />
|
||||||
|
|
||||||
|
<CustomerActivityListModalOverlay Activities="Activities" CompanyName="@Company.Name" @ref="ActivityListOverlay" />
|
|
@ -39,10 +39,10 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
[Inject] private IToastService Toaster { get; set; }
|
[Inject] private IToastService Toaster { get; set; }
|
||||||
[Inject] private NavigationManager Navigator { get; set; }
|
[Inject] private NavigationManager Navigator { get; set; }
|
||||||
[Inject] private ILocalStorageService Storage { get; set; }
|
[Inject] private ILocalStorageService Storage { get; set; }
|
||||||
[Inject] private ICountryCatalogRepository Catalog { get; set; }
|
[Inject] private ICountryCatalogRepository CatalogRepo { get; set; }
|
||||||
[Inject] private IAdvisorCustomerRepository Companies { get; set; }
|
[Inject] private IAdvisorCustomerRepository CompanyRepo { get; set; }
|
||||||
[Inject] private IAdvisorActivityRepository Actitivites { get; set; }
|
[Inject] private IAdvisorActivityRepository ActivityRepo { get; set; }
|
||||||
[Inject] private IAdvisorReportRepository Reports { get; set; }
|
[Inject] private IAdvisorReportRepository ReportRepo { get; set; }
|
||||||
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
[Inject] private IAdvisorCustomerHistoryRepository HistoryRepo { get; set; }
|
||||||
|
|
||||||
[CascadingParameter] private DraftStateProvider DraftProvider { get; set; } = new();
|
[CascadingParameter] private DraftStateProvider DraftProvider { get; set; } = new();
|
||||||
|
@ -71,18 +71,20 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
private string PromptDateConfirm { get; set; } = "";
|
private string PromptDateConfirm { get; set; } = "";
|
||||||
|
|
||||||
// OVERLAY PAGES
|
// OVERLAY PAGES
|
||||||
private PriceCatalogOverlay CatalogOverlay { get; set; } = new();
|
private PriceCatalogModalOverlay CatalogOverlay { get; set; } = new();
|
||||||
private ProductHistoryOverlay ProductOverlay { get; set; } = new();
|
private ProductHistoryModalOverlay ProductOverlay { get; set; } = new();
|
||||||
private ProductPriceHistoryModal PriceOverlay { get; set; } = new();
|
private ProductPriceHistoryModal PriceOverlay { get; set; } = new();
|
||||||
private ConfirmWorkDateOverlay WorkDateOverlay { get; set; } = new();
|
private ConfirmWorkDateModalOverlay WorkDateOverlay { get; set; } = new();
|
||||||
private ConfirmProductCheckOverlay ProductCheckOverlay { get; set; } = new();
|
private ConfirmProductCheckModalOverlay ProductCheckOverlay { get; set; } = new();
|
||||||
private CustomerInvoiceOverlay InvoiceOverlay { get; set; } = new();
|
private CustomerInvoiceModalOverlay InvoiceOverlay { get; set; } = new();
|
||||||
private CustomerInventoryOverlay InventoryOverlay { get; set; } = new();
|
private CustomerInventoryModalOverlay InventoryOverlay { get; set; } = new();
|
||||||
|
private CustomerActivityListModalOverlay ActivityListOverlay { get; set; } = new();
|
||||||
private List<ProductInventoryView> Inventory { get; set; } = new();
|
private List<ProductInventoryView> Inventory { get; set; } = new();
|
||||||
private List<ProductInventoryView> CheckList { get; set; } = new();
|
private List<ProductInventoryView> CheckList { get; set; } = new();
|
||||||
private InvoiceListView CompanyInvoices { get; set; } = new();
|
private InvoiceListView CompanyInvoices { get; set; } = new();
|
||||||
|
|
||||||
|
private List<ReportItemView> Activities { get; set; } = new();
|
||||||
|
|
||||||
|
|
||||||
private string ButtonText { get; set; } = "Gem besøg";
|
private string ButtonText { get; set; } = "Gem besøg";
|
||||||
private bool OrgWarning { get; set; }
|
private bool OrgWarning { get; set; }
|
||||||
|
@ -103,7 +105,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
// User Info
|
// User Info
|
||||||
SalesRep = await Storage.GetItemAsync<UserInfoView>("_xu");
|
SalesRep = await Storage.GetItemAsync<UserInfoView>("_xu");
|
||||||
// Fetch Customer from http
|
// Fetch Customer from http
|
||||||
Company = await Companies.GetCompanyById(CompanyId);
|
Company = await CompanyRepo.GetCompanyById(CompanyId);
|
||||||
if (Company.HasFolded == 1)
|
if (Company.HasFolded == 1)
|
||||||
// Company has shutdown activities
|
// Company has shutdown activities
|
||||||
Activity.OrderMessage = "BEMÆRK: CVR nummer er ophørt.";
|
Activity.OrderMessage = "BEMÆRK: CVR nummer er ophørt.";
|
||||||
|
@ -143,7 +145,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
// Initialize date variable
|
// Initialize date variable
|
||||||
SelectedDate = string.IsNullOrWhiteSpace(UserPrefs.WorkDate) ? DateTime.Now : DateTime.Parse(UserPrefs.WorkDate);
|
SelectedDate = string.IsNullOrWhiteSpace(UserPrefs.WorkDate) ? DateTime.Now : DateTime.Parse(UserPrefs.WorkDate);
|
||||||
// raise flag if report is closed
|
// raise flag if report is closed
|
||||||
ReportClosed = await Reports.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
ReportClosed = await ReportRepo.ReportExist($"{SelectedDate:yyyy-MM-dd}");
|
||||||
// Ask for confirmation of date
|
// Ask for confirmation of date
|
||||||
Logger.LogDebug("Preferences.DateConfirmed => {}", UserPrefs.DateConfirmed);
|
Logger.LogDebug("Preferences.DateConfirmed => {}", UserPrefs.DateConfirmed);
|
||||||
if (!UserPrefs.DateConfirmed)
|
if (!UserPrefs.DateConfirmed)
|
||||||
|
@ -162,6 +164,17 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
Working = false;
|
Working = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task ShowVisitOverlay()
|
||||||
|
{
|
||||||
|
Logger.LogDebug("ShowInventoryOverlay - wait for visits");
|
||||||
|
|
||||||
|
ActivityListOverlay.Show();
|
||||||
|
|
||||||
|
Activities = await ActivityRepo.GetCustomerActivities(CompanyId);
|
||||||
|
|
||||||
|
await Task.Delay(500);
|
||||||
|
}
|
||||||
|
|
||||||
private async Task ShowInventoryOverlay()
|
private async Task ShowInventoryOverlay()
|
||||||
{
|
{
|
||||||
Logger.LogDebug("ShowInventoryOverlay - wait for inventory");
|
Logger.LogDebug("ShowInventoryOverlay - wait for inventory");
|
||||||
|
@ -169,6 +182,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
InventoryOverlay.Show();
|
InventoryOverlay.Show();
|
||||||
|
|
||||||
Inventory = await HistoryRepo.FetchInventory(CompanyId);
|
Inventory = await HistoryRepo.FetchInventory(CompanyId);
|
||||||
|
|
||||||
await Task.Delay(500);
|
await Task.Delay(500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -313,7 +327,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
/// <param name="workDate"></param>
|
/// <param name="workDate"></param>
|
||||||
private async Task WorkDateComponentCallback(string workDate)
|
private async Task WorkDateComponentCallback(string workDate)
|
||||||
{
|
{
|
||||||
ReportClosed = await Reports.ReportExist(workDate);
|
ReportClosed = await ReportRepo.ReportExist(workDate);
|
||||||
SelectedDate = DateTime.Parse(workDate);
|
SelectedDate = DateTime.Parse(workDate);
|
||||||
Activity.ActivityDate = workDate;
|
Activity.ActivityDate = workDate;
|
||||||
}
|
}
|
||||||
|
@ -335,7 +349,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
// get selected item
|
// get selected item
|
||||||
if (string.IsNullOrWhiteSpace(sku.ItemId))
|
if (string.IsNullOrWhiteSpace(sku.ItemId))
|
||||||
return;
|
return;
|
||||||
SelectedItem = await Catalog.GetSalesItemId(SalesRep.CountryCode.ToLower(), sku.ItemId);
|
SelectedItem = await CatalogRepo.GetSalesItemId(SalesRep.CountryCode.ToLower(), sku.ItemId);
|
||||||
ShowItem = true;
|
ShowItem = true;
|
||||||
Price = sku.Rate;
|
Price = sku.Rate;
|
||||||
Quantity = sku.Quantity;
|
Quantity = sku.Quantity;
|
||||||
|
@ -412,7 +426,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
{
|
{
|
||||||
Company.Phone = Activity.Phone;
|
Company.Phone = Activity.Phone;
|
||||||
Activity.OrderMessage = $"Telefonnr. opdateret.\n{Activity.OrderMessage}";
|
Activity.OrderMessage = $"Telefonnr. opdateret.\n{Activity.OrderMessage}";
|
||||||
await Companies.UpdateErpData(Company.CompanyId, Company);
|
await CompanyRepo.UpdateErpData(Company.CompanyId, Company);
|
||||||
}
|
}
|
||||||
// begin assembling activity
|
// begin assembling activity
|
||||||
Activity.ActivityDate = $"{SelectedDate:yyyy-MM-dd}";
|
Activity.ActivityDate = $"{SelectedDate:yyyy-MM-dd}";
|
||||||
|
@ -448,7 +462,7 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
||||||
// debug logging
|
// debug logging
|
||||||
Logger.LogDebug("CrmNewActivityPage => \n {}", JsonSerializer.Serialize(Activity));
|
Logger.LogDebug("CrmNewActivityPage => \n {}", JsonSerializer.Serialize(Activity));
|
||||||
// post to api
|
// post to api
|
||||||
var result = await Actitivites.CreateActivity(Activity);
|
var result = await ActivityRepo.CreateActivity(Activity);
|
||||||
// debug logging
|
// debug logging
|
||||||
Logger.LogDebug("ApiResponseView => \n {}", JsonSerializer.Serialize(result));
|
Logger.LogDebug("ApiResponseView => \n {}", JsonSerializer.Serialize(result));
|
||||||
// show result message
|
// show result message
|
||||||
|
|
|
@ -36,63 +36,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="list-group">
|
<CustomerVisitListComponent Activities="Activities" />
|
||||||
<div class="list-group-item">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
<h4>Dato</h4>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<h4>Demo</h4>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<h4>Salg</h4>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<h4>Note /Kontor</h4>
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
<h4>Note /Selv</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
@if (Activities.Any())
|
|
||||||
{
|
|
||||||
@foreach (var activity in Activities)
|
|
||||||
{
|
|
||||||
<div class="list-group-item">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
@activity.OrderDate
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
@activity.Demo
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
@activity.Sales
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
@activity.OfficeNote
|
|
||||||
</div>
|
|
||||||
<div class="col">
|
|
||||||
@activity.CrmNote
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<div class="list-group-item">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col">
|
|
||||||
Ingen data
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
}
|
}
|
||||||
@if (Working)
|
@if (Working)
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
|
|
||||||
<CustomerInventoryListComponent OnReorderSelected="OnReorderCallback" CompanyId="@CompanyId" Inventory="@Inventory"/>
|
<CustomerInventoryListComponent OnReorderSelected="OnReorderCallback" CompanyId="@CompanyId" Inventory="@Inventory"/>
|
||||||
|
|
||||||
<InventoryReorderModal OnSelected="@OnSelectedItem" CompanyId="@CompanyId" SalesItem="@SalesItem" @ref="ReorderModal"/>
|
<InventoryReorderModalOverlay OnSelected="@OnSelectedItem" CompanyId="@CompanyId" SalesItem="@SalesItem" @ref="InventoryOverlay"/>
|
||||||
|
|
||||||
@if (Working)
|
@if (Working)
|
||||||
{
|
{
|
||||||
|
|
|
@ -44,7 +44,7 @@ public partial class AdvisorCustomerInventoryListPage : IDisposable
|
||||||
private CompanyDto Company { get; set; } = new();
|
private CompanyDto Company { get; set; } = new();
|
||||||
private bool Working { get; set; } = true;
|
private bool Working { get; set; } = true;
|
||||||
private SalesItemView SalesItem { get; set; } = new();
|
private SalesItemView SalesItem { get; set; } = new();
|
||||||
private InventoryReorderModal ReorderModal { get; set; } = new();
|
private InventoryReorderModalOverlay InventoryOverlay { get; set; } = new();
|
||||||
private List<ProductInventoryView> Inventory { get; set; } = new();
|
private List<ProductInventoryView> Inventory { get; set; } = new();
|
||||||
|
|
||||||
|
|
||||||
|
@ -65,7 +65,7 @@ public partial class AdvisorCustomerInventoryListPage : IDisposable
|
||||||
{
|
{
|
||||||
// fetch item from http repo
|
// fetch item from http repo
|
||||||
SalesItem = await Catalog.GetSalesItemSku(Company.CountryCode.ToLower(), sku);
|
SalesItem = await Catalog.GetSalesItemSku(Company.CountryCode.ToLower(), sku);
|
||||||
ReorderModal.Show();
|
InventoryOverlay.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task OnSelectedItem(DraftItem draftItem)
|
private async Task OnSelectedItem(DraftItem draftItem)
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<CustomerInvoiceListComponent OnShowInvoice="CallInvoiceModal" CompanyId="@_companyId" InvoiceList="@CompanyInvoices.Invoices"/>
|
<CustomerInvoiceListComponent OnShowInvoice="CallInvoiceModal" CompanyId="@_companyId" InvoiceList="@CompanyInvoices.Invoices"/>
|
||||||
<InvoiceViewModal CompanyId="@_companyId" InvoiceId="@InvoiceId" @ref="InvoiceView" />
|
<InvoiceViewModalOverlay CompanyId="@_companyId" InvoiceId="@InvoiceId" @ref="InvoiceView" />
|
||||||
}
|
}
|
||||||
|
|
||||||
@if (Working)
|
@if (Working)
|
||||||
|
|
|
@ -23,7 +23,7 @@ public partial class AdvisorCustomerInvoiceListPage : IDisposable
|
||||||
[Inject] private ILogger<AdvisorCustomerInvoiceListPage> Logger { get; set; }
|
[Inject] private ILogger<AdvisorCustomerInvoiceListPage> Logger { get; set; }
|
||||||
private InvoiceListView CompanyInvoices { get; set; } = new();
|
private InvoiceListView CompanyInvoices { get; set; } = new();
|
||||||
private CompanyDto Company { get; set; } = new();
|
private CompanyDto Company { get; set; } = new();
|
||||||
private InvoiceViewModal InvoiceView { get; set; } = new();
|
private InvoiceViewModalOverlay InvoiceView { get; set; } = new();
|
||||||
private string InvoiceId { get; set; } = "";
|
private string InvoiceId { get; set; } = "";
|
||||||
private bool Working { get; set; }
|
private bool Working { get; set; }
|
||||||
private bool AllSet { get; set; }
|
private bool AllSet { get; set; }
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="report-main d-print-grid">
|
<div class="report-main d-print-table">
|
||||||
@if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum))
|
@if (!string.IsNullOrWhiteSpace(Report.ReportData.DayTypeEnum))
|
||||||
{
|
{
|
||||||
<PageTitle>@Report.ReportData.Name</PageTitle>
|
<PageTitle>@Report.ReportData.Name</PageTitle>
|
||||||
|
|
|
@ -225,4 +225,4 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<PriceCatalogOverlay OnSelected="PriceListCallback" @ref="PriceCatalog"/>
|
<PriceCatalogModalOverlay OnSelected="PriceListCallback" @ref="CatalogOverlay"/>
|
|
@ -59,7 +59,7 @@ public partial class OfficeCustomerCreatePhoneOrderPage : IDisposable
|
||||||
private bool ReportClosed { get; set; }
|
private bool ReportClosed { get; set; }
|
||||||
private bool PoFormInvalid { get; set; } = true;
|
private bool PoFormInvalid { get; set; } = true;
|
||||||
private bool Working { get; set; }
|
private bool Working { get; set; }
|
||||||
private PriceCatalogOverlay PriceCatalog { get; set; } = new();
|
private PriceCatalogModalOverlay CatalogOverlay { get; set; } = new();
|
||||||
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
|
@ -126,7 +126,7 @@ public partial class OfficeCustomerCreatePhoneOrderPage : IDisposable
|
||||||
|
|
||||||
private void CallPriceListModal()
|
private void CallPriceListModal()
|
||||||
{
|
{
|
||||||
PriceCatalog.Show();
|
CatalogOverlay.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task PriceListCallback(SelectedSku sku)
|
private async Task PriceListCallback(SelectedSku sku)
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
{
|
{
|
||||||
<PageTitle>@Report.ReportData.Name</PageTitle>
|
<PageTitle>@Report.ReportData.Name</PageTitle>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col text-center align-content-center">
|
<div class="alert border border-1 border-dark text-center align-content-center">
|
||||||
<h3>@Report.ReportData.Name</h3>
|
<h3>@Report.ReportData.Name</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6 d-grid">
|
<div class="col-sm-6 d-grid">
|
||||||
<AuthorizeView Roles="Admin,Office">
|
<AuthorizeView Roles="Admin,Office">
|
||||||
<button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Udskriv</button>
|
<button class="btn btn-primary" type="button" @onclick="OfficePrint"><i class="bi-printer"></i> Udskriv</button>
|
||||||
</AuthorizeView>
|
</AuthorizeView>
|
||||||
<AuthorizeView Roles="Advisor">
|
<AuthorizeView Roles="Advisor">
|
||||||
<button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Udskriv</button>
|
<button class="btn btn-primary" type="button" @onclick="Print"><i class="bi-printer"></i> Udskriv</button>
|
||||||
|
|
|
@ -32,10 +32,12 @@
|
||||||
<div class="report-main d-print-table">
|
<div class="report-main d-print-table">
|
||||||
<PageTitle>@Report.ReportData.Name</PageTitle>
|
<PageTitle>@Report.ReportData.Name</PageTitle>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col text-center align-content-center">
|
<div class="col">
|
||||||
|
<div class="alert border border-2 border-dark text-center align-content-center">
|
||||||
<h3>@Report.ReportData.Name</h3>
|
<h3>@Report.ReportData.Name</h3>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="w-75">
|
<div class="w-75">
|
||||||
<ReportSummaryComponent ReportData="Report.ReportData"/>
|
<ReportSummaryComponent ReportData="Report.ReportData"/>
|
||||||
|
|
|
@ -18,7 +18,7 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class ConfirmProductCheckOverlay
|
public partial class ConfirmProductCheckModalOverlay
|
||||||
{
|
{
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
private bool _showBackdrop;
|
private bool _showBackdrop;
|
|
@ -17,7 +17,7 @@ using Microsoft.AspNetCore.Components;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class ConfirmWorkDateOverlay
|
public partial class ConfirmWorkDateModalOverlay
|
||||||
{
|
{
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
private bool _showBackdrop;
|
private bool _showBackdrop;
|
19
Wonky.Client/Shared/CustomerActivityListModalOverlay.razor
Normal file
19
Wonky.Client/Shared/CustomerActivityListModalOverlay.razor
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
@using Wonky.Client.Components
|
||||||
|
|
||||||
|
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
|
||||||
|
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h3 class="modal-title">@CompanyName - Aktivitet oversigt</h3>
|
||||||
|
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<CustomerVisitListComponent Activities="Activities"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if (_showBackdrop)
|
||||||
|
{
|
||||||
|
<div class="modal-backdrop fade show"></div>
|
||||||
|
}
|
|
@ -0,0 +1,34 @@
|
||||||
|
using System.Text.Json;
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Wonky.Client.HttpInterceptors;
|
||||||
|
using Wonky.Client.HttpInterfaces;
|
||||||
|
using Wonky.Client.Models;
|
||||||
|
using Wonky.Client.Shared;
|
||||||
|
using Wonky.Entity.DTO;
|
||||||
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
|
public partial class CustomerActivityListModalOverlay
|
||||||
|
{
|
||||||
|
[Parameter] public string CompanyName { get; set; } = "";
|
||||||
|
[Parameter] public List<ReportItemView> Activities { get; set; } = new();
|
||||||
|
|
||||||
|
private string _modalDisplay = "";
|
||||||
|
private bool _showBackdrop;
|
||||||
|
|
||||||
|
public void Show()
|
||||||
|
{
|
||||||
|
_modalDisplay = "block;";
|
||||||
|
_showBackdrop = true;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Hide()
|
||||||
|
{
|
||||||
|
_modalDisplay = "none;";
|
||||||
|
_showBackdrop = false;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
109
Wonky.Client/Shared/CustomerActivityViewModalOverlay.razor
Normal file
109
Wonky.Client/Shared/CustomerActivityViewModalOverlay.razor
Normal file
|
@ -0,0 +1,109 @@
|
||||||
|
@*
|
||||||
|
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||||
|
//
|
||||||
|
*@
|
||||||
|
|
||||||
|
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
|
||||||
|
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="btn-close" @onclick="Hide" data-bs-dismiss="modal" aria-label="Luk"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card-title mb-2">
|
||||||
|
<h3>Besøg - @ReportItem.Company.Name</h3>
|
||||||
|
</div>
|
||||||
|
<div class="row g-3">
|
||||||
|
<label for="date" class="col-form-label-sm col-sm-1">Dato</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input id="date" class="form-control" type="text" value="@(DateTime.Parse(ReportItem.CreateTimestamp).ToShortDateString())" readonly/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="account" class="col-form-label-sm col-sm-1">Konto</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input id="account" class="form-control" type="text" value="@ReportItem.Company.Account" readonly/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="vatNumber" class="col-form-label-sm col-sm-1">Cvr Org</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input id="vatNumber" class="form-control" type="text" value="@ReportItem.Company.VatNumber" readonly/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="eSalesNumber" class="col-form-label-sm col-sm-1">EOrdre</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input id="eSalesNumber" class="form-control" type="text" value="@ReportItem.ESalesNumber" readonly/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="ourRef" class="col-form-label-sm col-sm-1">Vor Ref.</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input id="ourRef" class="form-control" type="text" value="@ReportItem.OurRef" readonly/>
|
||||||
|
</div>
|
||||||
|
<hr/>
|
||||||
|
<label for="referenceNumber" class="col-form-label-sm col-sm-1">Rekv.</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input id="referenceNumber" class="form-control" type="text" value="@ReportItem.ReferenceNumber" readonly/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="yourRef" class="col-form-label-sm col-sm-1">Kunde Ref.</label>
|
||||||
|
<div class="col-sm-7">
|
||||||
|
<input id="yourRef" class="form-control" type="text" value="@ReportItem.YourRef" readonly/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="officeNote" class="col-form-label-sm col-sm-1">Ordre Note</label>
|
||||||
|
<div class="col-sm-5">
|
||||||
|
<textarea id="officeNote" class="form-control" value="@ReportItem.OfficeNote" readonly=""/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="crmNote" class="col-form-label-sm col-sm-1">Crm Note</label>
|
||||||
|
<div class="col-sm-5">
|
||||||
|
<textarea id="crmNote" class="form-control" value="@ReportItem.CrmNote" readonly=""/>
|
||||||
|
</div>
|
||||||
|
<hr/>
|
||||||
|
<table class="table table-striped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col">Varenr</th>
|
||||||
|
<th scope="col">Beskrivelse</th>
|
||||||
|
<th class="text-end" scope="col">Antal</th>
|
||||||
|
<th class="text-end" scope="col">Pris</th>
|
||||||
|
<th class="text-end" scope="col">Rabat</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach (var line in ReportItem.Lines)
|
||||||
|
{
|
||||||
|
<tr>
|
||||||
|
<td>@line.Sku</td>
|
||||||
|
<td>@line.Description</td>
|
||||||
|
<td class="text-end">@line.Quantity</td>
|
||||||
|
<td class="text-end">@line.Price</td>
|
||||||
|
<td class="text-end">@line.Discount</td>
|
||||||
|
</tr>
|
||||||
|
}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@if (_showBackdrop)
|
||||||
|
{
|
||||||
|
<div class="modal-backdrop fade show"></div>
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
// Copyright (C) 2022 FCS Frede's Computer Services.
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as
|
||||||
|
// published by the Free Software Foundation, either version 3 of the
|
||||||
|
// License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see [https://www.gnu.org/licenses/agpl-3.0.en.html]
|
||||||
|
//
|
||||||
|
|
||||||
|
using System.Text.Json;
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Wonky.Client.HttpInterceptors;
|
||||||
|
using Wonky.Client.HttpInterfaces;
|
||||||
|
using Wonky.Client.HttpRepository;
|
||||||
|
using Wonky.Client.Models;
|
||||||
|
using Wonky.Client.Services;
|
||||||
|
using Wonky.Entity.Requests;
|
||||||
|
using Wonky.Entity.Views;
|
||||||
|
|
||||||
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
|
public partial class CustomerActivityViewModalOverlay
|
||||||
|
{
|
||||||
|
[Parameter] public ReportItemView ReportItem { get; set; } = new();
|
||||||
|
private string _modalDisplay = "";
|
||||||
|
private bool _showBackdrop;
|
||||||
|
|
||||||
|
public void Show()
|
||||||
|
{
|
||||||
|
_modalDisplay = "block;";
|
||||||
|
_showBackdrop = true;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Hide()
|
||||||
|
{
|
||||||
|
_modalDisplay = "none;";
|
||||||
|
_showBackdrop = false;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -17,4 +17,4 @@
|
||||||
{
|
{
|
||||||
<div class="modal-backdrop fade show"></div>
|
<div class="modal-backdrop fade show"></div>
|
||||||
}
|
}
|
||||||
<InventoryReorderModal CompanyId="@CompanyId" SalesItem="SalesItem" OnSelected="OnInventorySelected" @ref="ReorderModal" />
|
<InventoryReorderModalOverlay CompanyId="@CompanyId" SalesItem="SalesItem" OnSelected="OnInventorySelected" @ref="InventoryOverlay" />
|
|
@ -9,11 +9,11 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class CustomerInventoryOverlay : IDisposable
|
public partial class CustomerInventoryModalOverlay : IDisposable
|
||||||
{
|
{
|
||||||
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
[Inject] private HttpInterceptorService Interceptor { get; set; }
|
||||||
[Inject] private ICountryCatalogRepository Catalog { get; set; }
|
[Inject] private ICountryCatalogRepository Catalog { get; set; }
|
||||||
[Inject] private ILogger<CustomerInventoryOverlay> Logger { get; set; }
|
[Inject] private ILogger<CustomerInventoryModalOverlay> Logger { get; set; }
|
||||||
|
|
||||||
[Parameter] public string CompanyName { get; set; } = "";
|
[Parameter] public string CompanyName { get; set; } = "";
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
|
@ -28,7 +28,7 @@ public partial class CustomerInventoryOverlay : IDisposable
|
||||||
private List<ProductInventoryView> _inventory { get; set; } = new();
|
private List<ProductInventoryView> _inventory { get; set; } = new();
|
||||||
private DraftItem DraftItem { get; set; } = new();
|
private DraftItem DraftItem { get; set; } = new();
|
||||||
private SalesItemView SalesItem { get; set; } = new();
|
private SalesItemView SalesItem { get; set; } = new();
|
||||||
private InventoryReorderModal ReorderModal { get; set; } = new();
|
private InventoryReorderModalOverlay InventoryOverlay { get; set; } = new();
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
|
@ -40,7 +40,7 @@ public partial class CustomerInventoryOverlay : IDisposable
|
||||||
private async Task OnReorderCallback(string sku)
|
private async Task OnReorderCallback(string sku)
|
||||||
{
|
{
|
||||||
SalesItem = await Catalog.GetSalesItemSku(CountryCode.ToLower(), sku);
|
SalesItem = await Catalog.GetSalesItemSku(CountryCode.ToLower(), sku);
|
||||||
ReorderModal.Show();
|
InventoryOverlay.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task OnSelectedItem(DraftItem draftItem)
|
private async Task OnSelectedItem(DraftItem draftItem)
|
|
@ -16,7 +16,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<CustomerInvoiceListComponent OnShowInvoice="@CallInvoiceModal" CompanyId="@Company.CompanyId" InvoiceList="@Invoices"/>
|
<CustomerInvoiceListComponent OnShowInvoice="@CallInvoiceModal" CompanyId="@Company.CompanyId" InvoiceList="@Invoices"/>
|
||||||
<InvoiceViewModal CompanyId="@Company.CompanyId" InvoiceId="@InvoiceId" @ref="InvoiceView" />
|
<InvoiceViewModalOverlay CompanyId="@Company.CompanyId" InvoiceId="@InvoiceId" @ref="InvoiceView" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -6,12 +6,12 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class CustomerInvoiceOverlay
|
public partial class CustomerInvoiceModalOverlay
|
||||||
{
|
{
|
||||||
[Parameter] public InvoiceListView CustomerInvoices { get; set; } = new();
|
[Parameter] public InvoiceListView CustomerInvoices { get; set; } = new();
|
||||||
|
|
||||||
[Inject] private ILogger<CustomerInvoiceOverlay> Logger { get; set; }
|
[Inject] private ILogger<CustomerInvoiceModalOverlay> Logger { get; set; }
|
||||||
private InvoiceViewModal InvoiceView { get; set; } = new();
|
private InvoiceViewModalOverlay InvoiceView { get; set; } = new();
|
||||||
private string InvoiceId { get; set; } = "";
|
private string InvoiceId { get; set; } = "";
|
||||||
private string _modalDisplay = "";
|
private string _modalDisplay = "";
|
||||||
private bool _showBackdrop;
|
private bool _showBackdrop;
|
|
@ -25,7 +25,7 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class InventoryReorderModal
|
public partial class InventoryReorderModalOverlay
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public SalesItemView SalesItem { get; set; } = new();
|
[Parameter] public SalesItemView SalesItem { get; set; } = new();
|
|
@ -25,7 +25,7 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class InvoiceViewModal : IDisposable
|
public partial class InvoiceViewModalOverlay : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
||||||
[Parameter] public string InvoiceId { get; set; } = "";
|
[Parameter] public string InvoiceId { get; set; } = "";
|
||||||
|
@ -46,7 +46,6 @@ public partial class InvoiceViewModal : IDisposable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void Show()
|
public void Show()
|
||||||
{
|
{
|
||||||
_modalDisplay = "block;";
|
_modalDisplay = "block;";
|
|
@ -24,7 +24,7 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class PriceCatalogOverlay : IDisposable
|
public partial class PriceCatalogModalOverlay : IDisposable
|
||||||
{
|
{
|
||||||
[Parameter] public string CountryCode { get; set; } = "";
|
[Parameter] public string CountryCode { get; set; } = "";
|
||||||
[Parameter] public EventCallback<SelectedSku> OnSelected { get; set; }
|
[Parameter] public EventCallback<SelectedSku> OnSelected { get; set; }
|
|
@ -24,7 +24,7 @@ using Wonky.Entity.Views;
|
||||||
|
|
||||||
namespace Wonky.Client.Shared;
|
namespace Wonky.Client.Shared;
|
||||||
|
|
||||||
public partial class ProductHistoryOverlay
|
public partial class ProductHistoryModalOverlay
|
||||||
{
|
{
|
||||||
// [Parameter] public EventCallback<decimal> OnSelected { get; set; }
|
// [Parameter] public EventCallback<decimal> OnSelected { get; set; }
|
||||||
[Parameter] public string CompanyId { get; set; } = "";
|
[Parameter] public string CompanyId { get; set; } = "";
|
|
@ -1,14 +1,14 @@
|
||||||
{
|
{
|
||||||
"appInfo": {
|
"appInfo": {
|
||||||
"name": "Wonky Online",
|
"name": "Wonky Online",
|
||||||
"version": "0.108.1",
|
"version": "0.110.1",
|
||||||
"rc": true,
|
"rc": true,
|
||||||
"sandBox": false,
|
"sandBox": false,
|
||||||
"image": "grumpy-coder.png"
|
"image": "grumpy-coder.png"
|
||||||
},
|
},
|
||||||
"Logging": {
|
"Logging": {
|
||||||
"LogLevel": {
|
"LogLevel": {
|
||||||
"Default": "Information",
|
"Default": "Debug",
|
||||||
"System": "Information",
|
"System": "Information",
|
||||||
"Microsoft": "Information"
|
"Microsoft": "Information"
|
||||||
},
|
},
|
||||||
|
|
|
@ -15,15 +15,16 @@
|
||||||
}
|
}
|
||||||
.report-main {
|
.report-main {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
|
page-break-before: always;
|
||||||
|
page-break-after: always;
|
||||||
break-before: page;
|
break-before: page;
|
||||||
break-after: page;
|
break-after: page;
|
||||||
break-inside: avoid;
|
break-inside: avoid;
|
||||||
page-break-after: always;
|
/*min-height: 280mm;*/
|
||||||
height: 280mm;
|
|
||||||
border: initial;
|
border: initial;
|
||||||
border-radius: initial;
|
border-radius: initial;
|
||||||
box-shadow: initial;
|
box-shadow: initial;
|
||||||
margin: 0;
|
margin: auto;
|
||||||
width: initial;
|
width: initial;
|
||||||
-webkit-print-color-adjust: exact;
|
-webkit-print-color-adjust: exact;
|
||||||
color-adjust: exact;
|
color-adjust: exact;
|
||||||
|
|
Loading…
Reference in a new issue