fix kanvas
This commit is contained in:
parent
61845516af
commit
7b87fa6b88
9 changed files with 305 additions and 283 deletions
|
@ -85,7 +85,7 @@
|
|||
</div>
|
||||
<div class="col-sm-2">
|
||||
<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>
|
||||
|
|
|
@ -212,6 +212,8 @@ public partial class AdvisorActivityCreatePage : IDisposable
|
|||
|
||||
protected override async Task OnAfterRenderAsync(bool firstRender)
|
||||
{
|
||||
if (_kanvas)
|
||||
return;
|
||||
if (firstRender)
|
||||
{
|
||||
if (!_company.Account.StartsWith("NY"))
|
||||
|
|
|
@ -36,8 +36,14 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<CustomerInventoryListComponent OnReorderSelected="@OnReorderCallback" CompanyId="@CompanyId" Inventory="@Inventory"/>
|
||||
<CustomerInventoryReorderOverlay OnSelected="@OnSelectedItem" CompanyId="@CompanyId" SalesItemView="@SalesItem" @ref="@ReorderOverlay"/>
|
||||
<div class="container">
|
||||
<CustomerInventoryListComponent OnReorderSelected="@OnReorderCallback"
|
||||
CompanyId="@CompanyId" Inventory="@Inventory" />
|
||||
</div>
|
||||
|
||||
@* reorder overlay *@
|
||||
<CustomerInventoryReorderOverlay OnSelected="@OnSelectedItem"
|
||||
CompanyId="@CompanyId" SalesItemView="@SalesItem" @ref="@ReorderOverlay"/>
|
||||
|
||||
@if (Working)
|
||||
{
|
||||
|
|
|
@ -34,304 +34,309 @@
|
|||
</div>
|
||||
</div>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
// erp context
|
||||
<EditForm EditContext="_erpFormContext">
|
||||
<DataAnnotationsValidator/>
|
||||
<div class="row g-1">
|
||||
@* Company Name *@
|
||||
<label for="name" class="col-sm-1 col-form-label-sm">Navn</label>
|
||||
<div class="col-sm-5">
|
||||
<InputText id="name" class="form-control" @bind-Value="_company.Name" readonly="@(_erpEditDisabled)"/>
|
||||
<ValidationMessage For="@(() => _company.Name)"></ValidationMessage>
|
||||
<DataAnnotationsValidator/>
|
||||
<div class="row g-1">
|
||||
@* Company Name *@
|
||||
<label for="name" class="col-sm-1 col-form-label-sm">Navn</label>
|
||||
<div class="col-sm-5">
|
||||
<InputText id="name" class="form-control" @bind-Value="_company.Name" readonly="@(_erpEditDisabled)"/>
|
||||
<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>
|
||||
@* 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>
|
||||
|
||||
<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)
|
||||
{
|
||||
@* 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>
|
||||
<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>
|
||||
<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>
|
||||
@* 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)
|
||||
{
|
||||
<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>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="col-sm-4">
|
||||
@* placeholder *@
|
||||
</div>
|
||||
@* crm context - dates and interval *@
|
||||
<div class="row mb-2">
|
||||
<label for="nextVisit" class="col-sm-1 col-form-label-sm">Næste besøg</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">
|
||||
<DisplayStateComponent StateClass="@_visitStateCss"/>
|
||||
</span>
|
||||
<InputDate id="nextVisit" class="form-control" @bind-Value="@(_nextVisit)"/>
|
||||
</div>
|
||||
</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>
|
||||
<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>
|
||||
@* 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 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>
|
||||
}
|
||||
|
||||
</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>
|
||||
|
||||
</EditForm>
|
||||
@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))
|
||||
<div class="row pt-3 mb-5">
|
||||
<div class="col-sm-4 d-grid">
|
||||
<button type="button" class="btn btn-outline-dark text-dark" @onclick="@ToggleVisibility">@_toggleButtonText</button>
|
||||
</div>
|
||||
<div class="col-sm-4 d-grid">
|
||||
@if (_userInfo.CountryCode is "DK")
|
||||
{
|
||||
<InputText name="note" id="note" class="form-control" @bind-Value="_company.Note"/>
|
||||
<a class="btn btn-info" href="@($"/advisor/customers/{CompanyId}/workplaces")">Kemi Dokumentation</a>
|
||||
}
|
||||
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)
|
||||
{
|
||||
<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>
|
||||
@* crm context - dates and interval *@
|
||||
<div class="row mb-2">
|
||||
<label for="nextVisit" class="col-sm-1 col-form-label-sm">Næste besøg</label>
|
||||
<div class="col-sm-3">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text">
|
||||
<DisplayStateComponent StateClass="@_visitStateCss"/>
|
||||
</span>
|
||||
<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 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>
|
||||
<hr class="mb-3"/>
|
||||
<div class="row pt-3 mb-5">
|
||||
<div class="col-sm-4 d-grid">
|
||||
<button type="button" class="btn btn-outline-dark" @onclick="@ToggleVisibility">@_toggleButtonText</button>
|
||||
</div>
|
||||
<div class="col-sm-4 d-grid">
|
||||
@if (_userInfo.CountryCode is "DK")
|
||||
{
|
||||
<a class="btn btn-info" href="@($"/advisor/customers/{CompanyId}/workplaces")">Kemi Dokumentation</a>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (_working)
|
||||
|
|
|
@ -142,6 +142,7 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
|||
if (_company.Account.StartsWith("KANVAS"))
|
||||
{
|
||||
_kanvas = true;
|
||||
Navigator.NavigateTo($"/advisor/customers/{CompanyId}/activities/new");
|
||||
}
|
||||
/*
|
||||
* 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)
|
||||
{
|
||||
if (_kanvas)
|
||||
return;
|
||||
|
||||
if (firstRender)
|
||||
{
|
||||
await GetContacts(CompanyId);
|
||||
|
@ -236,6 +240,9 @@ public partial class AdvisorCustomerViewEditPage : IDisposable
|
|||
|
||||
private async Task ReloadHistory(bool force = false)
|
||||
{
|
||||
if (_kanvas)
|
||||
return;
|
||||
|
||||
if (force)
|
||||
{
|
||||
Toaster.ShowInfo("Afventer svar fra tjenester ...");
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
@using Wonky.Client.Components
|
||||
@using System.Text.Json
|
||||
@page "/catalog/item/{SalesItemId}"
|
||||
|
||||
@page "/advisor/customers/{CustomerId}/history/inventory/{SalesItemId}"
|
||||
|
||||
@if (!string.IsNullOrWhiteSpace(_item.Sku))
|
||||
{
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"appInfo": {
|
||||
"name": "Wonky Online",
|
||||
"version": "208.0",
|
||||
"version": "211.0",
|
||||
"rc": true,
|
||||
"sandBox": true,
|
||||
"image": "grumpy-coder.png",
|
||||
|
@ -15,13 +15,13 @@
|
|||
},
|
||||
"Debug": {
|
||||
"LogLevel": {
|
||||
"Default": "Critical"
|
||||
"Default": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"apiConfig": {
|
||||
"assetUrl": "https://files.innotec.dk",
|
||||
"baseUrl": "https://dev.innotec.dk",
|
||||
"baseUrl": "https://eta.innotec.dk",
|
||||
"catalog": "api/v2/catalog/country",
|
||||
"crmCustomers": "api/v2/crm/companies",
|
||||
"crmReports": "api/v2/crm/advisors/reports",
|
||||
|
|
|
@ -26,6 +26,7 @@ public class ProductDetailView
|
|||
public string PictureLink { get; set; } = "";
|
||||
public string ProductGroup { get; set; } = "";
|
||||
public bool Discontinued { get; set; }
|
||||
public bool OnDemand { get; set; }
|
||||
public int BoxSize { get; set; }
|
||||
public List<DocumentView> Documents { get; set; } = new();
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ public class SalesItemView
|
|||
public string PictureLink { get; set; } = "";
|
||||
public string Location { get; set; } = "";
|
||||
public bool Discontinued { get; set; }
|
||||
public bool OnDemand { get; set; }
|
||||
public int BoxSize { get; set; }
|
||||
public List<SalesRateView> Rates { get; set; } = new();
|
||||
}
|
Loading…
Reference in a new issue