fix kanvas

This commit is contained in:
Frede Hundewadt 2023-08-09 09:44:48 +02:00
parent 61845516af
commit 7b87fa6b88
9 changed files with 305 additions and 283 deletions

View file

@ -85,7 +85,7 @@
</div> </div>
<div class="col-sm-2"> <div class="col-sm-2">
<div class="d-grid mx-auto"> <div class="d-grid mx-auto">
<a class="btn btn-outline-secondary" href="/catalog/item/@product.SalesItemId" >Produkt Info @product.Description</a> <a class="btn btn-outline-secondary" href="/catalog/item/@product.SalesItemId">Produkt Info @product.Description</a>
</div> </div>
</div> </div>

View file

@ -212,6 +212,8 @@ public partial class AdvisorActivityCreatePage : IDisposable
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
if (_kanvas)
return;
if (firstRender) if (firstRender)
{ {
if (!_company.Account.StartsWith("NY")) if (!_company.Account.StartsWith("NY"))

View file

@ -36,8 +36,14 @@
</div> </div>
</div> </div>
<CustomerInventoryListComponent OnReorderSelected="@OnReorderCallback" CompanyId="@CompanyId" Inventory="@Inventory"/> <div class="container">
<CustomerInventoryReorderOverlay OnSelected="@OnSelectedItem" CompanyId="@CompanyId" SalesItemView="@SalesItem" @ref="@ReorderOverlay"/> <CustomerInventoryListComponent OnReorderSelected="@OnReorderCallback"
CompanyId="@CompanyId" Inventory="@Inventory" />
</div>
@* reorder overlay *@
<CustomerInventoryReorderOverlay OnSelected="@OnSelectedItem"
CompanyId="@CompanyId" SalesItemView="@SalesItem" @ref="@ReorderOverlay"/>
@if (Working) @if (Working)
{ {

View file

@ -34,304 +34,309 @@
</div> </div>
</div> </div>
<div class="col-sm-6 text-end"> <div class="col-sm-6 text-end">
@if (_userInfo.CountryCode is "DK") @if (!_kanvas)
{ {
<a class="btn btn-secondary btn-sm me-2" href="/advisor/customers/@CompanyId/workplaces/new"><i class="bi-plus-lg"></i> Arbejdssted</a> @if (_userInfo.CountryCode is "DK")
{
<a class="btn btn-secondary btn-sm me-2" href="/advisor/customers/@CompanyId/workplaces/new"><i class="bi-plus-lg"></i> Arbejdssted</a>
}
@if (_company.Account.StartsWith("NY"))
{
<a type="button" class="btn btn-secondary btn-sm me-2 disabled" aria-disabled="true"><i class="bi-activity"></i> Statistik</a>
}
else
{
<a class="btn btn-secondary btn-sm me-2" href="/advisor/customers/@CompanyId/statistic" disabled="@(_company.Account.StartsWith("NY"))"><i class="bi-activity"></i> Statistik</a>
}
<button class="btn btn-secondary btn-sm me-2" @onclick="@(() => ReloadHistory(true))" disabled="@(_working || _company.Account.StartsWith("NY"))"><i class="bi-repeat"></i> Historik</button>
} }
@if (_company.Account.StartsWith("NY"))
{
<a type="button" class="btn btn-secondary btn-sm me-2 disabled" aria-disabled="true"><i class="bi-activity"></i> Statistik</a>
}
else
{
<a class="btn btn-secondary btn-sm me-2" href="/advisor/customers/@CompanyId/statistic" disabled="@(_company.Account.StartsWith("NY"))"><i class="bi-activity"></i> Statistik</a>
}
<button class="btn btn-secondary btn-sm me-2" @onclick="@(() => ReloadHistory(true))" disabled="@(_working || _company.Account.StartsWith("NY"))"><i class="bi-repeat"></i> Historik</button>
<a class="btn btn-primary btn-sm me-2" href="/advisor/customers"><i class="bi-chevron-left"></i> Tilbage</a> <a class="btn btn-primary btn-sm me-2" href="/advisor/customers"><i class="bi-chevron-left"></i> Tilbage</a>
</div> </div>
</div> </div>
// erp context // erp context
<EditForm EditContext="_erpFormContext"> <EditForm EditContext="_erpFormContext">
<DataAnnotationsValidator/> <DataAnnotationsValidator/>
<div class="row g-1"> <div class="row g-1">
@* Company Name *@ @* Company Name *@
<label for="name" class="col-sm-1 col-form-label-sm">Navn</label> <label for="name" class="col-sm-1 col-form-label-sm">Navn</label>
<div class="col-sm-5"> <div class="col-sm-5">
<InputText id="name" class="form-control" @bind-Value="_company.Name" readonly="@(_erpEditDisabled)"/> <InputText id="name" class="form-control" @bind-Value="_company.Name" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Name)"></ValidationMessage> <ValidationMessage For="@(() => _company.Name)"></ValidationMessage>
</div>
@* Company Attention *@
<label for="attention" class="col-sm-1 col-form-label-sm">Att.</label>
<div class="col-sm-5">
<InputText id="attention" class="form-control" @bind-Value="_company.Attention" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Attention)"></ValidationMessage>
</div>
@* Address 1 *@
<label for="address1" class="col-sm-1 col-form-label-sm">Adresse</label>
<div class="col-sm-5">
<InputText id="address1" class="form-control" @bind-Value="_company.Address1" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Address1)"></ValidationMessage>
</div>
@* Address 2 *@
<label for="address2" class="col-sm-1 col-form-label-sm">Adresse</label>
<div class="col-sm-5">
<InputText id="address2" class="form-control" @bind-Value="_company.Address2" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Address2)"></ValidationMessage>
</div>
@* Post Code *@
<label for="zipCode" class="col-sm-1 col-form-label-sm">PostNr</label>
<div class="col-sm-1">
<InputText id="zipCode" class="form-control" @bind-Value="_company.ZipCode" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.ZipCode)"></ValidationMessage>
</div>
@* City Name *@
<label for="city" class="col-sm-1 col-form-label-sm">Bynavn</label>
<div class="col-sm-3">
<InputText id="city" class="form-control" @bind-Value="_company.City" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.City)"></ValidationMessage>
</div>
@* Email *@
<label for="email" class="col-sm-1 col-form-label-sm">Epost</label>
<div class="col-sm-5">
<InputText id="email" class="form-control" @bind-Value="_company.Email" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Email)"></ValidationMessage>
</div>
@* Phone *@
<label for="phone" class="col-sm-1 col-form-label-sm">Telefon</label>
<div class="col-sm-2">
<InputText id="phone" class="form-control" @bind-Value="_company.Phone" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Phone)"></ValidationMessage>
</div>
@* Mobile *@
<label for="mobile" class="col-sm-1 col-form-label-sm">Mobil</label>
<div class="col-sm-2">
<InputText id="mobile" class="form-control" @bind-Value="_company.Mobile" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Mobile)"></ValidationMessage>
</div>
@* Email *@
<label for="eanNumber" class="col-sm-1 col-form-label-sm">EAN</label>
<div class="col-sm-5">
<InputText id="eanNumber" class="form-control" @bind-Value="_company.EanNumber" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.EanNumber)"></ValidationMessage>
</div>
@if (!_kanvas)
{
@* entity segment *@
@if (_userInfo.CountryCode.ToLower() == "dk")
{
<label for="segment" class="col-sm-1 col-form-label-sm">Segment</label>
<div class="col-sm-2">
<InputSelect id="segment" class="form-select bg-warning text-bg-warning"
@bind-Value="@_company.Segment" disabled="@(_erpEditDisabled)">
<option value="" disabled>segment</option>
<option value="1">AUTO</option>
<option value="2">INDUSTRI</option>
</InputSelect>
<ValidationMessage For="@(() => _company.Segment)"></ValidationMessage>
</div>
<div class="col-sm-1">
<div class="led-box @(DateTime.Now < DateTime.Parse("2023-12-31") ? "inno-display" : "inno-hidden")">
<div class="led-yellow"></div>
</div>
</div>
}
else
{
<div class="col-sm-4">
@* placeholder *@
</div>
}
@* Enable edit/save *@
<div class="col-sm-2 d-grid mx-auto">
<button type="button" class="btn btn-edit" @onclick="@ToggleErpEdit"><i class="bi-pencil"></i> STAM data</button>
</div>
@* Force enable visit *@
<div class="col-sm-3 d-grid mx-auto">
<button type="button" class="btn btn-primary d-block" @onclick="@ForceActivity">Aktiver besøg</button>
</div>
@* Save erp data *@
<div class="col-sm-3 d-grid mx-auto">
<button type="button" class="btn btn-danger d-block" @onclick="@UpdateErpData" disabled="@(_working || _company.Name == "ERROR" || _erpEditDisabled)"><i class="bi-cloud-arrow-up"></i> STAM data </button>
</div>
@* vat number*@
<hr class="mb-3"/>
<label for="vatNumber" class="col-sm-1 col-form-label-sm">ORG nr.</label>
<div class="col-sm-3">
<div class="input-group">
<span class="input-group-text">
<DisplayStateComponent StateClass="@VatState"/>
</span>
<InputText id="vatNumber" class="form-control" @bind-Value="_company.VatNumber" readonly="@(_vatEditDisabled)"/>
<ValidationMessage For="@(() => _company.VatNumber)"></ValidationMessage>
</div>
</div>
@* Enable edit/save vatnumber *@
<div class="col-sm-2 d-grid mx-auto">
<button type="button" class="btn btn-edit" @onclick="@ToggleVatEdit"><i class="bi-pencil"></i> ORG Nr.</button>
</div>
@* vat lookup *@
<div class="col-sm-3 d-grid mx-auto">
@switch (_countryCode)
{
case "dk":
<button type="button" class="btn btn-info" @onclick="@OpenVatLookupModal" disabled="@(_vatEditDisabled)"><i class="bi-search"></i> CVR</button>
break;
case "no":
<a class="btn btn-info" href="https://brreg.no/" target="_blank"><i class="bi-search"></i> brreg.no</a>
break;
case "se":
<a class="btn btn-info" href="https://www.allabolag.se/what/@_company.Name" target="_blank"><i class="bi-search"></i> allabolag.se</a>
break;
}
</div>
@* save vat number *@
<div class="col-sm-3 d-grid mx-auto">
<button type="button" class="btn btn-warning d-block" @onclick="@UpdateVatNumber" disabled="@(_vatEditDisabled)"><i class="bi-cloud-arrow-up"></i> Moms/Org Nr.</button>
</div>
}
</div> </div>
@* Company Attention *@
<label for="attention" class="col-sm-1 col-form-label-sm">Att.</label> <hr class="mb-3"/>
<div class="col-sm-5"> @* activity buttons *@
<InputText id="attention" class="form-control" @bind-Value="_company.Attention" readonly="@(_erpEditDisabled)"/> <div class="row mt-3 mb-3">
<ValidationMessage For="@(() => _company.Attention)"></ValidationMessage> <div class="col-sm-3">
</div> @if (!_kanvas)
@* Address 1 *@ {
<label for="address1" class="col-sm-1 col-form-label-sm">Adresse</label> <ActionButton ActionLink="@_invoiceLink"
<div class="col-sm-5"> ButtonText="Faktura"
<InputText id="address1" class="form-control" @bind-Value="_company.Address1" readonly="@(_erpEditDisabled)"/> ButtonType="danger"
<ValidationMessage For="@(() => _company.Address1)"></ValidationMessage> Enabled="@_enableLink" />
</div> }
@* Address 2 *@ </div>
<label for="address2" class="col-sm-1 col-form-label-sm">Adresse</label> <div class="col-sm-3">
<div class="col-sm-5"> @if (!_kanvas)
<InputText id="address2" class="form-control" @bind-Value="_company.Address2" readonly="@(_erpEditDisabled)"/> {
<ValidationMessage For="@(() => _company.Address2)"></ValidationMessage> <ActionButton ActionLink="@_activitiesLink"
</div> ButtonText="Tidl. Besøg"
@* Post Code *@ ButtonType="warning"
<label for="zipCode" class="col-sm-1 col-form-label-sm">PostNr</label> Enabled="@_enableLink" />
<div class="col-sm-1"> }
<InputText id="zipCode" class="form-control" @bind-Value="_company.ZipCode" readonly="@(_erpEditDisabled)"/> </div>
<ValidationMessage For="@(() => _company.ZipCode)"></ValidationMessage> <div class="col-sm-3">
</div> @if (!_kanvas )
@* City Name *@ {
<label for="city" class="col-sm-1 col-form-label-sm">Bynavn</label> <ActionButton ActionLink="@_inventoryLink"
<div class="col-sm-3"> ButtonText="Produkter"
<InputText id="city" class="form-control" @bind-Value="_company.City" readonly="@(_erpEditDisabled)"/> ButtonType="success"
<ValidationMessage For="@(() => _company.City)"></ValidationMessage> Enabled="@_enableLink" />
</div> }
@* Email *@ </div>
<label for="email" class="col-sm-1 col-form-label-sm">Epost</label> <div class="col-sm-3">
<div class="col-sm-5"> <ActionButton ActionLink="@_newActivityLink"
<InputText id="email" class="form-control" @bind-Value="_company.Email" readonly="@(_erpEditDisabled)"/> ButtonText="Nyt Besøg"
<ValidationMessage For="@(() => _company.Email)"></ValidationMessage> ButtonType="primary"
</div> Enabled="@_enableActivity">
@* Phone *@ </ActionButton>
<label for="phone" class="col-sm-1 col-form-label-sm">Telefon</label> </div>
<div class="col-sm-2">
<InputText id="phone" class="form-control" @bind-Value="_company.Phone" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Phone)"></ValidationMessage>
</div>
@* Mobile *@
<label for="mobile" class="col-sm-1 col-form-label-sm">Mobil</label>
<div class="col-sm-2">
<InputText id="mobile" class="form-control" @bind-Value="_company.Mobile" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.Mobile)"></ValidationMessage>
</div>
@* Email *@
<label for="eanNumber" class="col-sm-1 col-form-label-sm">EAN</label>
<div class="col-sm-5">
<InputText id="eanNumber" class="form-control" @bind-Value="_company.EanNumber" readonly="@(_erpEditDisabled)"/>
<ValidationMessage For="@(() => _company.EanNumber)"></ValidationMessage>
</div> </div>
@if (!_kanvas) @if (!_kanvas)
{ {
@* entity segment *@ <hr class="mb-3"/>
@if (_userInfo.CountryCode.ToLower() == "dk") @* crm context - OBS note *@
{ <div class="row mb-2">
<label for="segment" class="col-sm-1 col-form-label-sm">Segment</label> <label for="note" class="col-sm-1 col-form-label-sm">OBS</label>
<div class="col-sm-2"> <div class="col-sm-8">
<InputSelect id="segment" class="form-select bg-warning text-bg-warning" @if (string.IsNullOrWhiteSpace(_company.Note))
@bind-Value="@_company.Segment" disabled="@(_erpEditDisabled)">
<option value="" disabled>segment</option>
<option value="1">AUTO</option>
<option value="2">INDUSTRI</option>
</InputSelect>
<ValidationMessage For="@(() => _company.Segment)"></ValidationMessage>
</div>
<div class="col-sm-1">
<div class="led-box @(DateTime.Now < DateTime.Parse("2023-12-31") ? "inno-display" : "inno-hidden")">
<div class="led-yellow"></div>
</div>
</div>
}
else
{
<div class="col-sm-4">
@* placeholder *@
</div>
}
@* Enable edit/save *@
<div class="col-sm-2 d-grid mx-auto">
<button type="button" class="btn btn-edit" @onclick="@ToggleErpEdit"><i class="bi-pencil"></i> STAM data</button>
</div>
@* Force enable visit *@
<div class="col-sm-3 d-grid mx-auto">
<button type="button" class="btn btn-primary d-block" @onclick="@ForceActivity">Aktiver besøg</button>
</div>
@* Save erp data *@
<div class="col-sm-3 d-grid mx-auto">
<button type="button" class="btn btn-danger d-block" @onclick="@UpdateErpData" disabled="@(_working || _company.Name == "ERROR" || _erpEditDisabled)"><i class="bi-cloud-arrow-up"></i> STAM data </button>
</div>
@* vat number*@
<hr class="mb-3"/>
<label for="vatNumber" class="col-sm-1 col-form-label-sm">ORG nr.</label>
<div class="col-sm-3">
<div class="input-group">
<span class="input-group-text">
<DisplayStateComponent StateClass="@VatState"/>
</span>
<InputText id="vatNumber" class="form-control" @bind-Value="_company.VatNumber" readonly="@(_vatEditDisabled)"/>
<ValidationMessage For="@(() => _company.VatNumber)"></ValidationMessage>
</div>
</div>
@* Enable edit/save vatnumber *@
<div class="col-sm-2 d-grid mx-auto">
<button type="button" class="btn btn-edit" @onclick="@ToggleVatEdit"><i class="bi-pencil"></i> ORG Nr.</button>
</div>
@* vat lookup *@
<div class="col-sm-3 d-grid mx-auto">
@switch (_countryCode)
{
case "dk":
<button type="button" class="btn btn-info" @onclick="@OpenVatLookupModal" disabled="@(_vatEditDisabled)"><i class="bi-search"></i> CVR</button>
break;
case "no":
<a class="btn btn-info" href="https://brreg.no/" target="_blank"><i class="bi-search"></i> brreg.no</a>
break;
case "se":
<a class="btn btn-info" href="https://www.allabolag.se/what/@_company.Name" target="_blank"><i class="bi-search"></i> allabolag.se</a>
break;
}
</div>
@* save vat number *@
<div class="col-sm-3 d-grid mx-auto">
<button type="button" class="btn btn-warning d-block" @onclick="@UpdateVatNumber" disabled="@(_vatEditDisabled)"><i class="bi-cloud-arrow-up"></i> Moms/Org Nr.</button>
</div>
}
</div>
<hr class="mb-3"/>
@* activity buttons *@
<div class="row mt-3 mb-3">
<div class="col-sm-3">
@if (!_kanvas)
{
<ActionButton ActionLink="@_invoiceLink"
ButtonText="Faktura"
ButtonType="danger"
Enabled="@_enableLink" />
}
</div>
<div class="col-sm-3">
@if (!_kanvas)
{
<ActionButton ActionLink="@_activitiesLink"
ButtonText="Tidl. Besøg"
ButtonType="warning"
Enabled="@_enableLink" />
}
</div>
<div class="col-sm-3">
@if (!_kanvas )
{
<ActionButton ActionLink="@_inventoryLink"
ButtonText="Produkter"
ButtonType="success"
Enabled="@_enableLink" />
}
</div>
<div class="col-sm-3">
<ActionButton ActionLink="@_newActivityLink"
ButtonText="Nyt Besøg"
ButtonType="primary"
Enabled="@_enableActivity">
</ActionButton>
</div>
</div>
@if (!_kanvas)
{
<hr class="mb-3"/>
@* crm context - OBS note *@
<div class="row mb-2">
<label for="note" class="col-sm-1 col-form-label-sm">OBS</label>
<div class="col-sm-8">
@if (string.IsNullOrWhiteSpace(_company.Note))
{
<InputText name="note" id="note" class="form-control" @bind-Value="_company.Note"/>
}
else
{
<InputText name="note" id="note" class="form-control bg-warning text-black" @bind-Value="_company.Note"/>
}
<ValidationMessage For="@(() => _company.Note)"></ValidationMessage>
</div>
@* Save CRM data button *@
<div class="col-sm-3 d-grid mx-auto">
<button type="button" class="btn btn-warning" disabled="@(_company.Name == "ERROR")" @onclick="@PostCrmData"><i class="bi-cloud-arrow-up"></i> CRM data</button>
</div>
</div>
@* crm context - contacts *@
<div class="row mb-4">
<label for="contacts" class="col-sm-1 col-form-label-sm">Kontakt</label>
<div id="contacts" class="col-sm-11">
<div class="list-group">
<div class="list-group-item list-group-item-action bg-dark text-white" @onclick="@(() => OpenContactPopup(_defaultContact))">
<div class="row">
<div class="col-sm-4">Stilling</div>
<div class="col-sm-4">Navn</div>
<div class="col-sm-3">Direkte</div>
<div class="col-sm-1 text-end">
<i class="bi-plus-circle"></i>
</div>
</div>
</div>
@if (_contacts.Any())
{ {
@foreach (var contact in _contacts) <InputText name="note" id="note" class="form-control" @bind-Value="_company.Note"/>
{ }
<div class="list-group-item list-group-item-action" @onclick="@(() => OpenContactPopup(contact))"> else
<div class="row g-2"> {
<div class="col-sm-4">@contact.JobTitle</div> <InputText name="note" id="note" class="form-control bg-warning text-black" @bind-Value="_company.Note"/>
<div class="col-sm-4">@contact.FirstName @contact.LastName</div> }
<div class="col-sm-3"> <ValidationMessage For="@(() => _company.Note)"></ValidationMessage>
@contact.PhoneDirect </div>
</div> @* Save CRM data button *@
<div class="col-sm-1 text-end"> <div class="col-sm-3 d-grid mx-auto">
<i class="bi-pencil"></i> <button type="button" class="btn btn-warning" disabled="@(_company.Name == "ERROR")" @onclick="@PostCrmData"><i class="bi-cloud-arrow-up"></i> CRM data</button>
</div> </div>
</div>
@* crm context - contacts *@
<div class="row mb-4">
<label for="contacts" class="col-sm-1 col-form-label-sm">Kontakt</label>
<div id="contacts" class="col-sm-11">
<div class="list-group">
<div class="list-group-item list-group-item-action bg-dark text-white" @onclick="@(() => OpenContactPopup(_defaultContact))">
<div class="row">
<div class="col-sm-4">Stilling</div>
<div class="col-sm-4">Navn</div>
<div class="col-sm-3">Direkte</div>
<div class="col-sm-1 text-end">
<i class="bi-plus-circle"></i>
</div> </div>
</div> </div>
</div>
@if (_contacts.Any())
{
@foreach (var contact in _contacts)
{
<div class="list-group-item list-group-item-action" @onclick="@(() => OpenContactPopup(contact))">
<div class="row g-2">
<div class="col-sm-4">@contact.JobTitle</div>
<div class="col-sm-4">@contact.FirstName @contact.LastName</div>
<div class="col-sm-3">
@contact.PhoneDirect
</div>
<div class="col-sm-1 text-end">
<i class="bi-pencil"></i>
</div>
</div>
</div>
}
} }
} </div>
</div> </div>
</div> </div>
</div> @* crm context - dates and interval *@
@* crm context - dates and interval *@ <div class="row mb-2">
<div class="row mb-2"> <label for="nextVisit" class="col-sm-1 col-form-label-sm">Næste besøg</label>
<label for="nextVisit" class="col-sm-1 col-form-label-sm">Næste besøg</label> <div class="col-sm-3">
<div class="col-sm-3"> <div class="input-group">
<div class="input-group"> <span class="input-group-text">
<span class="input-group-text"> <DisplayStateComponent StateClass="@_visitStateCss"/>
<DisplayStateComponent StateClass="@_visitStateCss"/> </span>
</span> <InputDate id="nextVisit" class="form-control" @bind-Value="@(_nextVisit)"/>
<InputDate id="nextVisit" class="form-control" @bind-Value="@(_nextVisit)"/> </div>
</div>
<label for="lastVisit" class="col-sm-1 col-form-label-sm">Sidste besøg</label>
<div class="col-sm-3">
<InputDate id="lastVisit" class="form-control" @bind-Value="@_lastVisit"/>
</div>
<label for="interval" class="col-sm-2 col-form-label-sm">Uge Interval</label>
<div class="col-sm-2">
<InputNumber id="interval" class="form-control" @bind-Value="_company.Interval"/>
<ValidationMessage For="@(() => _company.Interval)"></ValidationMessage>
</div> </div>
</div> </div>
<label for="lastVisit" class="col-sm-1 col-form-label-sm">Sidste besøg</label> <div class="row mb-2">
<div class="col-sm-3"> <label for="crmNotes" class="col-sm-1 col-form-label-sm">Noter</label>
<InputDate id="lastVisit" class="form-control" @bind-Value="@_lastVisit"/> <div class="col-sm-11">
<InputTextArea id="crmNotes" class="form-control" @bind-Value="_company.CrmNotes"/>
</div>
</div> </div>
<label for="interval" class="col-sm-2 col-form-label-sm">Uge Interval</label> }
<div class="col-sm-2">
<InputNumber id="interval" class="form-control" @bind-Value="_company.Interval"/>
<ValidationMessage For="@(() => _company.Interval)"></ValidationMessage>
</div>
</div>
<div class="row mb-2">
<label for="crmNotes" class="col-sm-1 col-form-label-sm">Noter</label>
<div class="col-sm-11">
<InputTextArea id="crmNotes" class="form-control" @bind-Value="_company.CrmNotes"/>
</div>
</div>
}
</EditForm> </EditForm>
<hr class="mb-3"/> @if (!_kanvas)
<div class="row pt-3 mb-5"> {
<div class="col-sm-4 d-grid"> <hr class="mb-3"/>
<button type="button" class="btn btn-outline-dark" @onclick="@ToggleVisibility">@_toggleButtonText</button> <div class="row pt-3 mb-5">
</div> <div class="col-sm-4 d-grid">
<div class="col-sm-4 d-grid"> <button type="button" class="btn btn-outline-dark text-dark" @onclick="@ToggleVisibility">@_toggleButtonText</button>
@if (_userInfo.CountryCode is "DK") </div>
{ <div class="col-sm-4 d-grid">
<a class="btn btn-info" href="@($"/advisor/customers/{CompanyId}/workplaces")">Kemi Dokumentation</a> @if (_userInfo.CountryCode is "DK")
} {
</div> <a class="btn btn-info" href="@($"/advisor/customers/{CompanyId}/workplaces")">Kemi Dokumentation</a>
</div> }
</div>
</div>
}
} }
@if (_working) @if (_working)

View file

@ -142,6 +142,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
if (_company.Account.StartsWith("KANVAS")) if (_company.Account.StartsWith("KANVAS"))
{ {
_kanvas = true; _kanvas = true;
Navigator.NavigateTo($"/advisor/customers/{CompanyId}/activities/new");
} }
/* /*
* only execute if the InfoDrawer.Company is not KANVAS * only execute if the InfoDrawer.Company is not KANVAS
@ -222,6 +223,9 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
protected override async Task OnAfterRenderAsync(bool firstRender) protected override async Task OnAfterRenderAsync(bool firstRender)
{ {
if (_kanvas)
return;
if (firstRender) if (firstRender)
{ {
await GetContacts(CompanyId); await GetContacts(CompanyId);
@ -236,6 +240,9 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
private async Task ReloadHistory(bool force = false) private async Task ReloadHistory(bool force = false)
{ {
if (_kanvas)
return;
if (force) if (force)
{ {
Toaster.ShowInfo("Afventer svar fra tjenester ..."); Toaster.ShowInfo("Afventer svar fra tjenester ...");

View file

@ -1,7 +1,7 @@
@using Wonky.Client.Components @using Wonky.Client.Components
@using System.Text.Json @using System.Text.Json
@page "/catalog/item/{SalesItemId}" @page "/catalog/item/{SalesItemId}"
@page "/advisor/customers/{CustomerId}/history/inventory/{SalesItemId}"
@if (!string.IsNullOrWhiteSpace(_item.Sku)) @if (!string.IsNullOrWhiteSpace(_item.Sku))
{ {

View file

@ -1,7 +1,7 @@
{ {
"appInfo": { "appInfo": {
"name": "Wonky Online", "name": "Wonky Online",
"version": "208.0", "version": "211.0",
"rc": true, "rc": true,
"sandBox": true, "sandBox": true,
"image": "grumpy-coder.png", "image": "grumpy-coder.png",
@ -15,13 +15,13 @@
}, },
"Debug": { "Debug": {
"LogLevel": { "LogLevel": {
"Default": "Critical" "Default": ""
} }
} }
}, },
"apiConfig": { "apiConfig": {
"assetUrl": "https://files.innotec.dk", "assetUrl": "https://files.innotec.dk",
"baseUrl": "https://dev.innotec.dk", "baseUrl": "https://eta.innotec.dk",
"catalog": "api/v2/catalog/country", "catalog": "api/v2/catalog/country",
"crmCustomers": "api/v2/crm/companies", "crmCustomers": "api/v2/crm/companies",
"crmReports": "api/v2/crm/advisors/reports", "crmReports": "api/v2/crm/advisors/reports",

View file

@ -26,6 +26,7 @@ public class ProductDetailView
public string PictureLink { get; set; } = ""; public string PictureLink { get; set; } = "";
public string ProductGroup { get; set; } = ""; public string ProductGroup { get; set; } = "";
public bool Discontinued { get; set; } public bool Discontinued { get; set; }
public bool OnDemand { get; set; }
public int BoxSize { get; set; } public int BoxSize { get; set; }
public List<DocumentView> Documents { get; set; } = new(); public List<DocumentView> Documents { get; set; } = new();
} }

View file

@ -28,6 +28,7 @@ public class SalesItemView
public string PictureLink { get; set; } = ""; public string PictureLink { get; set; } = "";
public string Location { get; set; } = ""; public string Location { get; set; } = "";
public bool Discontinued { get; set; } public bool Discontinued { get; set; }
public bool OnDemand { get; set; }
public int BoxSize { get; set; } public int BoxSize { get; set; }
public List<SalesRateView> Rates { get; set; } = new(); public List<SalesRateView> Rates { get; set; } = new();
} }