cosmetic when in portrait mode on tablet

This commit is contained in:
Frede Hundewadt 2023-01-15 13:42:04 +01:00
parent be52137c15
commit b82bc43ded
19 changed files with 232 additions and 197 deletions

View file

@ -0,0 +1,92 @@
@*
// 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 Wonky.Entity.Views
@* Report activities *@
<table class="table table-striped">
<thead>
<tr class="bg-black opacity-75 text-white">
<th scope="col">Kunde</th>
<th scope="col">Bynavn</th>
<th scope="col">Demo</th>
<th scope="col">Salg</th>
<th scope="col">Note</th>
<th scope="col" class="text-end">sas</th>
<th scope="col" class="text-end">Beløb</th>
<th scope="col" class="text-center">
<i style="font-size:1.3em;" class="bi-phone"></i>
</th>
<th scope="col" class="text-center">
<i class="bi-lightning"></i>
</th>
<th scope="col" class="text-center">
<i class="bi-calculator"></i>
</th>
<th scope="col" class="text-center">
<i class="bi-truck"></i>
</th>
</tr>
</thead>
<tbody>
@foreach (var activity in Activities)
{
<tr>
<td class="text-sm-start">@activity.Company.Name</td>
<td class="text-sm-start">@activity.Company.City</td>
<td class="text-sm-start">@activity.Demo</td>
<td class="text-sm-start">@activity.Sales</td>
<td class="text-sm-start">@activity.OfficeNote</td>
<td class="text-end">@($"{activity.SasAmount:N2}")</td>
<td class="text-center">@(activity.StatusTypeEnum.Contains("Quote") ? $"{0:N2}" : $"{activity.OrderAmount:N2}")</td>
<td class="text-center">
@if (activity.OurRef.Contains("T:"))
{
<i style="font-size:1.5em;" class="bi-phone"></i>
}
</td>
<td class="text-center">
@if (activity.Express)
{
<i style="font-size:1.5em;" class="bi-lightning"></i>
}
</td>
<td class="text-center">
@if (activity.StatusTypeEnum == "Quote")
{
<i style="font-size:1.5em;" class="bi-calculator"></i>
}
</td>
<td class="text-center">
<ProcessStateComponent StateClass="@activity.ProcessStatusEnum"/>
</td>
</tr>
}
<tr>
<td class="bg-black opacity-75" colspan="5"></td>
<td class="text-end">Total</td>
<td class="text-end">@Activities.Where(x => x.StatusTypeEnum != "Quote").Sum(x => x.OrderAmount)</td>
<td class="bg-black opacity-75" colspan="4"></td>
</tr>
</tbody>
</table>
@code {
[Parameter]
public List<ReportItemView> Activities { get; set; } = new();
}

View file

@ -0,0 +1,93 @@
@using Wonky.Entity.Views
@using Wonky.Entity.DTO
@*
// 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]
//
*@
<table class="table table-sm table-bordered table-striped">
<thead>
<tr class="bg-dark text-white opacity-75 border-bottom">
<th></th>
<th class="text-center" colspan="2" scope="col">Dagens Demo @(ReportData.NewDemoCount + ReportData.RecallDemoCount)</th>
<th class="text-center border-end" colspan="2" scope="col">Dagens Resultat</th>
<th class="text-center" colspan="4" scope="col">Måneds Resultat</th>
</tr>
</thead>
<tbody>
<tr class="bg-dark bg-opacity-50 border-bottom">
<td></td>
<th class="text-end text-white" scope="col">Besøg</th>
<th class="text-end text-white" scope="col">Demo</th>
<th class="text-end text-white" scope="col">Salg</th>
<th class="text-end text-white border-end" scope="col">Beløb</th>
<th class="text-end text-white" scope="col">Besøg</th>
<th class="text-end text-white" scope="col">Demo</th>
<th class="text-end text-white" scope="col">Salg</th>
<th class="text-end text-white" scope="col">Beløb</th>
</tr>
<tr>
<th scope="row">N</th>
<td class="text-end">@ReportData.NewVisitCount</td>
<td class="text-end">@ReportData.NewDemoCount</td>
<td class="text-end">@ReportData.NewSaleCount</td>
<td class="text-end border-end">@ReportData.NewTurnover</td>
<td class="text-end">@ReportData.NewVisitCountMonth</td>
<td class="text-end">@ReportData.NewDemoCountMonth</td>
<td class="text-end">@ReportData.NewSaleCountMonth</td>
<td class="text-end">@ReportData.NewTurnoverMonth</td>
</tr>
<tr>
<th scope="row">R</th>
<td class="text-end">@ReportData.RecallVisitCount</td>
<td class="text-end">@ReportData.RecallDemoCount</td>
<td class="text-end">@ReportData.RecallSaleCount</td>
<td class="text-end border-end">@ReportData.RecallTurnover</td>
<td class="text-end">@ReportData.RecallVisitCountMonth</td>
<td class="text-end">@ReportData.RecallDemoCountMonth</td>
<td class="text-end">@ReportData.RecallSaleCountMonth</td>
<td class="text-end">@ReportData.RecallTurnoverMonth</td>
</tr>
<tr>
<th scope="row">SAS</th>
<td class="bg-light"></td>
<td class="bg-light"></td>
<td class="text-end">@ReportData.SasCount</td>
<td class="text-end border-end">@ReportData.SasTurnover</td>
<td class="bg-light"></td>
<td class="bg-light"></td>
<td class="text-end">@ReportData.SasCountMonth</td>
<td class="text-end">@ReportData.SasTurnoverMonth</td>
</tr>
<tr>
<th scope="row">TOTAL</th>
<td class="text-end">@ReportData.TotalVisitCount</td>
<td class="text-end">@ReportData.TotalDemoCount</td>
<td class="text-end">@ReportData.TotalSaleCount</td>
<td class="text-end border-end">@ReportData.TotalTurnover</td>
<td class="text-end">@ReportData.TotalVisitCountMonth</td>
<td class="text-end">@ReportData.TotalDemoCountMonth</td>
<td class="text-end">@ReportData.TotalSaleCountMonth</td>
<td class="text-end">@ReportData.TotalTurnoverMonth</td>
</tr>
</tbody>
</table>
@code{
[Parameter]
public ReportFiguresDto ReportData { get; set; } = new();
}

View file

@ -17,7 +17,7 @@
<select class="form-select bg-warning text-bg-warning" @bind-value="@SearchCol" @bind-value:event="oninput" @onchange="OnSelectChanged">
<option value="-1" selected disabled>SØGNING</option>
<option value="name">Søg Navn</option>
<option value="sku">Søg Nummer</option>
<option value="shortName">Søg Forkort.</option>
<option value="name">Navn</option>
<option value="sku">Nummer</option>
<option value="shortName">Forkort.</option>
</select>

View file

@ -17,6 +17,6 @@
<select class="form-select bg-success text-bg-success" @bind-value="@SortCol" @bind-value:event="oninput" @onchange="OnSelectChanged">
<option value="-1" selected disabled>SORTERING</option>
<option value="name">Navn sort</option>
<option value="sku">Varenr sort</option>
<option value="name">Navn</option>
<option value="sku">Varenr</option>
</select>

View file

@ -17,9 +17,9 @@
<select class="form-select bg-warning text-bg-warning" @bind-value="@SearchCol" @bind-value:event="oninput" @onchange="OnSelectionChanged">
<option value="-1" disabled>SØGNING</option>
<option value="name">Søg Navn</option>
<option value="city">Søg By</option>
<option value="zip">Søg Post</option>
<option value="account">Søg Konto</option>
<option value="phone">Søg Tlf.</option>
<option value="name">Navn</option>
<option value="city">Bynavn</option>
<option value="zip">Postnr</option>
<option value="account">Konto</option>
<option value="phone">Telefon</option>
</select>

View file

@ -17,6 +17,6 @@
<select class="form-select bg-success text-bg-success" @bind-value="@SortCol" @bind-value:event="oninput" @onchange="OnSelectionChanged">
<option value="-1" selected disabled>SORTERING</option>
<option value="name">Navne sort.</option>
<option value="city">By sort.</option>
<option value="name">Firma</option>
<option value="city">Bynavn</option>
</select>

View file

@ -1,3 +1,4 @@
@using Wonky.Entity.Views
@*
// Copyright (C) 2022 FCS Frede's Computer Services.
// This program is free software: you can redistribute it and/or modify
@ -85,3 +86,7 @@
</table>
</div>
@code{
[Parameter] public ReportData ReportData { get; set; } = new();
}

View file

@ -1,24 +0,0 @@
// 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 Wonky.Entity.Views;
using Microsoft.AspNetCore.Components;
namespace Wonky.Client.Components;
public partial class ReportActivityLedgerComponent
{
[Parameter] public ReportData ReportData { get; set; } = new();
}

View file

@ -27,10 +27,10 @@
<th scope="col">Note</th>
<th class="text-end" scope="col">sas</th>
<th class="text-end" scope="col">Beløb</th>
<th class="text-center" scope="col"><i class="oi oi-phone"></i></th>
<th class="text-center" scope="col"><i class="oi oi-flash"></i></th>
<th class="text-center" scope="col"><i class="oi oi-calculator"></i></th>
<th class="text-center" scope="col"><i class="bi bi-truck"></i></th>
<th class="text-center" scope="col"><i class="bi-phone"></i></th>
<th class="text-center" scope="col"><i class="bi-lightning"></i></th>
<th class="text-center" scope="col"><i class="bi-calculator"></i></th>
<th class="text-center" scope="col"><i class="bi-truck"></i></th>
</tr>
</thead>
<tbody>

View file

@ -156,7 +156,7 @@ else
</div>
<div id="this-draft" style="@(Activity.ActivityStatusEnum is "order" or "quote" ? "display: block" : "display:none")">
@* Order lines -----------------------------------------------------*@
@* Draft lines in draft -----------------------------------------------------*@
<div class="row">
<div class="col">
<table class="sticky-top table table-hover table-striped table-bordered">
@ -216,7 +216,7 @@ else
</table>
</div>
</div>
@* draft line ----------------------------------------------------- *@
@* Create Draft line ----------------------------------------------------- *@
<div class="row">
<div class="col">
@if (!string.IsNullOrWhiteSpace(SelectedItem.Name) && ShowItem)
@ -227,9 +227,9 @@ else
<th scope="col" colspan="6">Kladdelinje</th>
</tr>
<tr>
<th scope="col">Antal</th>
<th scope="col">Pris</th>
<th scope="col">Rabat</th>
<th style="min-width:100px;" scope="col">Antal</th>
<th style="min-width:200px;" scope="col">Pris</th>
<th style="min-width:100px;" scope="col">Rabat</th>
<th class="align-content-center justify-content-center" scope="col">SAS</th>
<th scope="col">Varenr.</th>
<th scope="col"></th>
@ -237,10 +237,10 @@ else
</thead>
<tbody>
<tr>
<td class="align-middle">
<td class="align-middle" style="min-width:100px;">
<input type="number" class="form-control" @bind-value="@Quantity"/>
</td>
<td class="align-middle">
<td class="align-middle" style="min-width:200px;">
<div class="input-group">
<input type="number" class="form-control" @bind-value="@Price"/>
<button class="btn btn-warning" type="button" @onclick="CallPriceHistoryModal">
@ -248,7 +248,7 @@ else
</button>
</div>
</td>
<td class="align-middle">
<td class="align-middle" style="min-width:100px;">
<input type="number" class="form-control" @bind-value="@Discount"/>
</td>
<td class="align-middle align-content-center justify-content-center">
@ -256,7 +256,7 @@ else
</td>
<td class="align-middle">@SelectedItem.Sku</td>
<td class="align-middle">
<button type="button" class="btn btn-primary text-nowrap d-block" @onclick="@(() => AddItem(SelectedItem))">BESTIL @SelectedItem.Name</button>
<button type="button" class="btn btn-primary d-block text-sm-center" @onclick="@(() => AddItem(SelectedItem))">@Quantity stk. @SelectedItem.Name</button>
</td>
</tr>
</tbody>

View file

@ -17,6 +17,7 @@
@using Microsoft.AspNetCore.Authorization
@using Wonky.Client.Components
@using Wonky.Entity.Views
@attribute [Authorize(Roles = "Advisor")]
@page "/sales-reports/new"
@ -36,7 +37,7 @@
<div class="row">
<table class="table">
<thead>
<tr>
<tr class="bg-black opacity-75 text-white">
<th scope="col">Dag / Periode</th>
<th scope="col">Begyndt</th>
<th scope="col">Afsluttet</th>
@ -105,9 +106,9 @@
@* details input *@
<table class="table">
<thead>
<tr>
<th scope="col" style="width:60%">Tekst</th>
<th scope="col">Supervisor</th>
<tr class="bg-black opacity-75 text-white">
<th scope="col" style="width:50%">Beskrivelse</th>
<th scope="col">Min medkørende supervisor</th>
</tr>
</thead>
<tbody>
@ -129,7 +130,7 @@
@* distance ledger input *@
<table class="table">
<thead>
<tr>
<tr class="bg-black opacity-75 text-white">
<th scope="col">Km aften</th>
<th scope="col">Km morgen</th>
<th scope="col">Km privat</th>
@ -156,145 +157,13 @@
@if (Activities.Any())
{
<div class="row">
@* Report activities *@
<table class="table">
<thead>
<tr class="bg-black opacity-75 text-white">
<th scope="col">Kunde</th>
<th scope="col">Bynavn</th>
<th scope="col">Demo</th>
<th scope="col">Salg</th>
<th scope="col">Note</th>
<th scope="col" class="text-end">sas</th>
<th scope="col" class="text-end">Beløb</th>
<th scope="col" class="text-center">
<i style="font-size:1.3em;" class="bi-phone"></i>
</th>
<th scope="col" class="text-center">
<i class="bi-lightning"></i>
</th>
<th scope="col" class="text-center">
<i class="bi-calculator"></i>
</th>
<th scope="col" class="text-center">
<i class="bi-truck"></i>
</th>
</tr>
</thead>
<tbody>
@foreach (var activity in Activities)
{
<tr>
<td class="text-sm-start">@activity.Company.Name</td>
<td class="text-sm-start">@activity.Company.City</td>
<td class="text-sm-start">@activity.Demo</td>
<td class="text-sm-start">@activity.Sales</td>
<td class="text-sm-start">@activity.OfficeNote</td>
<td class="text-end">@($"{activity.SasAmount:N2}")</td>
<td class="text-center">@(activity.StatusTypeEnum.Contains("Quote") ? $"{0:N2}" : $"{activity.OrderAmount:N2}")</td>
<td class="text-center">
@if (activity.OurRef.Contains("T:"))
{
<i style="font-size:1.5em;" class="bg-info bi-phone"></i>
}
</td>
<td class="text-center">
@if (activity.Express)
{
<i style="font-size:1.5em;" class="bi-lightning"></i>
}
</td>
<td class="text-center">
@if (activity.StatusTypeEnum == "Quote")
{
<i style="font-size:1.5em;" class="bi-calculator"></i>
}
</td>
<td class="text-center">
<ProcessStateComponent StateClass="@activity.ProcessStatusEnum"/>
</td>
</tr>
}
<tr>
<td colspan="5"></td>
<td class="text-end">Total</td>
<td class="text-end">@Activities.Where(x => x.StatusTypeEnum != "Quote").Sum(x => x.OrderAmount)</td>
<td colspan="4"></td>
</tr>
</tbody>
</table>
<AdvisorActivityListComponent Activities="Activities" />
</div>
}
}
<div class="row">
@* ledger summaries calculated *@
<table class="table table-striped table-bordered">
<thead>
<tr class="bg-dark text-white opacity-75">
<th></th>
<th class="text-center" colspan="2" scope="col">Dagens Demo @(Report.Figures.NewDemoCount + Report.Figures.RecallDemoCount)</th>
<th class="text-center border-end" colspan="2" scope="col">Dagens Resultat</th>
<th class="text-center" colspan="4" scope="col">Måneds Resultat</th>
</tr>
</thead>
<tbody>
<tr class="bg-dark bg-opacity-50">
<td></td>
<th class="text-end text-white" scope="col">Besøg</th>
<th class="text-end text-white" scope="col">Demo</th>
<th class="text-end text-white" scope="col">Salg</th>
<th class="text-end text-white border-end" scope="col">Beløb</th>
<th class="text-end text-white" scope="col">Besøg</th>
<th class="text-end text-white" scope="col">Demo</th>
<th class="text-end text-white" scope="col">Salg</th>
<th class="text-end text-white" scope="col">Beløb</th>
</tr>
<tr>
<th scope="row">N</th>
<td class="text-end">@Report.Figures.NewVisitCount</td>
<td class="text-end">@Report.Figures.NewDemoCount</td>
<td class="text-end">@Report.Figures.NewSaleCount</td>
<td class="text-end border-end">@Report.Figures.NewTurnover</td>
<td class="text-end">@Report.Figures.NewVisitCountMonth</td>
<td class="text-end">@Report.Figures.NewDemoCountMonth</td>
<td class="text-end">@Report.Figures.NewSaleCountMonth</td>
<td class="text-end">@Report.Figures.NewTurnoverMonth</td>
</tr>
<tr>
<th scope="row">R</th>
<td class="text-end">@Report.Figures.RecallVisitCount</td>
<td class="text-end">@Report.Figures.RecallDemoCount</td>
<td class="text-end">@Report.Figures.RecallSaleCount</td>
<td class="text-end border-end">@Report.Figures.RecallTurnover</td>
<td class="text-end">@Report.Figures.RecallVisitCountMonth</td>
<td class="text-end">@Report.Figures.RecallDemoCountMonth</td>
<td class="text-end">@Report.Figures.RecallSaleCountMonth</td>
<td class="text-end">@Report.Figures.RecallTurnoverMonth</td>
</tr>
<tr>
<th scope="row">SAS</th>
<td class="bg-dark bg-opacity-25"></td>
<td class="bg-dark bg-opacity-25"></td>
<td class="text-end">@Report.Figures.SasCount</td>
<td class="text-end border-end">@Report.Figures.SasTurnover</td>
<td class="bg-dark bg-opacity-25"></td>
<td class="bg-dark bg-opacity-25"></td>
<td class="text-end">@Report.Figures.SasCountMonth</td>
<td class="text-end">@Report.Figures.SasTurnoverMonth</td>
</tr>
<tr>
<th scope="row">TOTAL</th>
<td class="text-end">@Report.Figures.TotalVisitCount</td>
<td class="text-end">@Report.Figures.TotalDemoCount</td>
<td class="text-end">@Report.Figures.TotalSaleCount</td>
<td class="text-end border-end">@Report.Figures.TotalTurnover</td>
<td class="text-end">@Report.Figures.TotalVisitCountMonth</td>
<td class="text-end">@Report.Figures.TotalDemoCountMonth</td>
<td class="text-end">@Report.Figures.TotalSaleCountMonth</td>
<td class="text-end">@Report.Figures.TotalTurnoverMonth</td>
</tr>
</tbody>
</table>
<AdvisorReportActivityLedgerComponent ReportData="Report.Figures" />
</div>
</EditForm>
<ConfirmationModal BodyMessage="@Prompt" OnOkClicked="ConfirmReportCallback" @ref="ConfirmReportModal"/>

View file

@ -16,7 +16,7 @@
*@
@using Wonky.Client.Components
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
<div class="modal-dialog modal-dialog-scrollable modal-lg modal-xl">
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen-lg-down modal-xl modal-lg">
<div class="modal-content">
<div class="modal-header">
<h2 class="modal-title">PRODUKT GENNEMGANG</h2>

View file

@ -17,7 +17,7 @@
@using Wonky.Client.Components
@using Wonky.Client.Helpers
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
<div class="modal-dialog modal-dialog-scrollable modal-lg modal-xl">
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen-lg-down modal-xl modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">@SalesItem.Name @SalesItem.Sku (@SalesItem.BoxSize stk/colli)</h4>

View file

@ -17,7 +17,7 @@
@using Wonky.Client.Components
@using Wonky.Client.Helpers
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
<div class="modal-dialog modal-dialog-scrollable modal-lg modal-xl">
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen-lg-down modal-xl modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Faktura</h5>

View file

@ -17,7 +17,7 @@
@using Wonky.Client.Components
@using Wonky.Client.Helpers
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
<div class="modal-dialog modal-dialog-scrollable modal-lg modal-xl">
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen-lg-down modal-xl modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Pris Katalog</h5>

View file

@ -17,7 +17,7 @@
@using Wonky.Client.Components
@using Wonky.Client.Helpers
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
<div class="modal-dialog modal-dialog-scrollable modal-lg modal-xl">
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen-lg-down modal-xl modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">@ProductName</h5>

View file

@ -17,7 +17,7 @@
@using Wonky.Client.Components
@using Wonky.Client.Helpers
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
<div class="modal-dialog modal-dialog-scrollable modal-lg modal-xl">
<div class="modal-dialog modal-dialog-scrollable modal-fullscreen-lg-down modal-xl modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">@ProductName</h5>

View file

@ -17,7 +17,7 @@
@using Wonky.Client.Components
<div class="modal" tabindex="-1" role="dialog" style="display:@_modalDisplay">
<div class="modal-dialog modal-dialog-scrollable modal-lg modal-xl">
<div class="modal-dialog modal-dialog-scrollable modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">CVR opslag</h5>

View file

@ -7,7 +7,7 @@
"image": "grumpy-coder.png"
},
"apiConfig": {
"baseUrl": "https://eta.innotec.dk",
"baseUrl": "https://dev.innotec.dk",
"catalog": "api/v2/catalog",
"crmCustomers": "api/v2/crm/companies",
"crmInventoryExt": "history/inventory",