built v 0.25.1
This commit is contained in:
parent
dd9f9136d8
commit
4d36e77c5d
15 changed files with 149 additions and 112 deletions
|
@ -27,10 +27,11 @@ public partial class AdvisorActivityTableComponent
|
|||
{
|
||||
return processStatus.ToLower() switch
|
||||
{
|
||||
"none" => "the-ugly-fg",
|
||||
"picked" => "the-bad-fg",
|
||||
"packed" => "the-good-fg",
|
||||
"shipped" => "the-draw-fg",
|
||||
"express" => "the-fast",
|
||||
"none" => "the-ugly",
|
||||
"picked" => "the-bad",
|
||||
"packed" => "the-good",
|
||||
"shipped" => "the-draw",
|
||||
_ => "the-dead"
|
||||
};
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ public partial class OfficeActivityTableComponent
|
|||
{
|
||||
return processStatus.ToLower() switch
|
||||
{
|
||||
"express" => "the-fast",
|
||||
"none" => "the-good",
|
||||
"picked" => "the-bad",
|
||||
"packed" => "the-ugly",
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
{
|
||||
_icon = StateClass switch
|
||||
{
|
||||
"the-fast" => "lightning-charge",
|
||||
"the-good" => "file-earmark",
|
||||
"the-bad" => "file-earmark-check",
|
||||
"the-ugly" => "box2-fill",
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
}
|
||||
@if (ReportItem.Express)
|
||||
{
|
||||
<h2 class="fw-bold text-center"><i class="bi-lightning-charge text-dark" style="font-size: 3rem;"></i> HASTER</h2>
|
||||
<h2 class="fw-bold text-center"><i class="bi-lightning-charge the-fast" style="font-size: 3rem;"></i> HASTER</h2>
|
||||
}
|
||||
@if (ReportItem.VisitTypeEnum.ToLower() == "phone" || ReportItem.OurRef.Contains("T:"))
|
||||
{
|
||||
|
@ -43,7 +43,7 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">Dato</th>
|
||||
<td>@ReportItem.OrderDate</td>
|
||||
<td class="fw-bold">@ReportItem.OrderDate</td>
|
||||
<th scope="row">Konto</th>
|
||||
<td>@ReportItem.Company.Account</td>
|
||||
</tr>
|
||||
|
@ -120,7 +120,7 @@
|
|||
<tr>
|
||||
<td colspan="4"></td>
|
||||
<td colspan="2">
|
||||
<h5 class="fw-bold text-center"><i class="bi-lightning-charge text-dark" style="font-size: 1rem;"></i> HASTER</h5>
|
||||
<h5 class="fw-bold text-center"><i class="bi-lightning-charge the-fast" style="font-size: 1rem;"></i> HASTER</h5>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
@ -136,10 +136,10 @@
|
|||
}
|
||||
</div>
|
||||
|
||||
@if (ReportItem.Express && ReportItem.ProcessStatusEnum.ToLower() == "none")
|
||||
@if (ReportItem.Express && ReportItem.ProcessStatusEnum == "Express")
|
||||
{
|
||||
<div class="report-item-express">
|
||||
<i class="bi-lightning-charge text-dark" style="font-size: 11rem;"></i>
|
||||
<i class="bi-lightning-charge the-fast" style="font-size: 11rem;"></i>
|
||||
</div>
|
||||
}
|
||||
|
||||
|
|
|
@ -27,5 +27,5 @@ public interface ICrmActivityHttpRepository
|
|||
Task<ReportStatusView> GetActivities(string activityDate);
|
||||
Task<List<ReportItemView>> GetCustomerActivities(string customerId);
|
||||
Task UpdateOfficeNote(ActivityOfficeNote model);
|
||||
Task<ApiResponseView> UpdateExpressStatus(string id);
|
||||
Task<ApiResponseView> GetExpressStatus(string id);
|
||||
}
|
|
@ -5,5 +5,5 @@ namespace Wonky.Client.HttpInterfaces;
|
|||
|
||||
public interface ISendMailService
|
||||
{
|
||||
Task<ApiResponseView> SendMail(EmailMessage message);
|
||||
Task<ApiResponseView> SendMail(string messageType, EmailMessage message);
|
||||
}
|
|
@ -55,21 +55,21 @@ public class CrmActivityHttpRepository : ICrmActivityHttpRepository
|
|||
_api = configuration.Value;
|
||||
}
|
||||
|
||||
public async Task<ApiResponseView> UpdateExpressStatus(string id)
|
||||
public async Task<ApiResponseView> GetExpressStatus(string id)
|
||||
{
|
||||
var response = await _client.PostAsync($"{_api.CrmSales}/express/{id}/?status=express", null);
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
var result = JsonSerializer.Deserialize<ApiResponseView>(content, _options);
|
||||
if (result.IsSuccess) return result!;
|
||||
var msg = JsonSerializer.SerializeToElement(result.Message, _options);
|
||||
result.Message = msg.ToString();
|
||||
return result!;
|
||||
var response = await _client.GetFromJsonAsync<ApiResponseView>($"{_api.CrmSales}/express/{id}?status=Express");
|
||||
|
||||
if (response.IsSuccess) return response;
|
||||
|
||||
var msg = JsonSerializer.SerializeToElement(response.Message, _options);
|
||||
response.Message = msg.ToString();
|
||||
return response;
|
||||
}
|
||||
|
||||
public async Task UpdateOfficeNote(ActivityOfficeNote model)
|
||||
{
|
||||
_logger.LogDebug("UpdateOfficeNote => model \n{}", JsonSerializer.Serialize(model) );
|
||||
_logger.LogDebug("UpdateOfficeNote => url \n{}", $"{_api.CrmSales}/activity/{model.ActivityId}" );
|
||||
// _logger.LogDebug("UpdateOfficeNote => model \n{}", JsonSerializer.Serialize(model) );
|
||||
// _logger.LogDebug("UpdateOfficeNote => url \n{}", $"{_api.CrmSales}/activity/{model.ActivityId}" );
|
||||
await _client.PostAsJsonAsync($"{_api.CrmSales}/activity/{model.ActivityId}", model, _options);
|
||||
}
|
||||
public async Task<ReportStatusView> GetActivities(string activityDate)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using System.Net;
|
||||
using System.Net.Http.Json;
|
||||
using System.Text.Json;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
@ -29,12 +30,19 @@ public class SendMailService : ISendMailService
|
|||
_navigation = navigation;
|
||||
_api = configuration.Value;
|
||||
}
|
||||
public async Task<ApiResponseView> SendMail(EmailMessage message)
|
||||
|
||||
public async Task<ApiResponseView> SendMail(string messageType, EmailMessage message)
|
||||
{
|
||||
var response = await _client.PostAsJsonAsync("", message, _options);
|
||||
var response = await _client.PostAsJsonAsync($"{_api.SendMail}/{messageType}", message, _options);
|
||||
if (!response.IsSuccessStatusCode)
|
||||
return new ApiResponseView
|
||||
{
|
||||
Code = (int) response.StatusCode,
|
||||
Message = $"{response.ReasonPhrase}: {await response.Content.ReadAsStringAsync()}",
|
||||
IsSuccess = false,
|
||||
Id = ""
|
||||
};
|
||||
var content = await response.Content.ReadAsStringAsync();
|
||||
_logger.LogDebug("SendMail => ResponseContent <= {}", content);
|
||||
var result = JsonSerializer.Deserialize<ApiResponseView>(content, _options);
|
||||
return result!;
|
||||
return JsonSerializer.Deserialize<ApiResponseView>(content, _options);
|
||||
}
|
||||
}
|
|
@ -314,7 +314,7 @@ else
|
|||
<a class="btn btn-info" href="/companies">Til Oversigt</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<a class="btn btn-warning" href="/companies/@_company.CompanyId">Annuller</a>
|
||||
<a class="btn btn-warning" href="/companies/@_company.CompanyId">Tilbage</a>
|
||||
</div>
|
||||
<div class="col">
|
||||
<button type="button" class="btn btn-primary" @onclick="CreateActivity" disabled="@_poFormInvalid">Opret besøg</button>
|
||||
|
|
|
@ -93,12 +93,6 @@ public partial class CrmNewActivityPage : IDisposable
|
|||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
if (!_prefs.DateConfirmed)
|
||||
{
|
||||
_confirmDatePrompt = $"Er arbejdsdato {_selectedDate} korrekt?";
|
||||
CallConfirmWorkDate();
|
||||
}
|
||||
|
||||
_editContext = new EditContext(_activity);
|
||||
_editContext.OnFieldChanged += HandleFieldChanged;
|
||||
_editContext.OnValidationStateChanged += ValidationChanged;
|
||||
|
@ -149,8 +143,8 @@ public partial class CrmNewActivityPage : IDisposable
|
|||
_activity.DlvAddress2 = _company.Address2;
|
||||
_activity.DlvZipCode = _company.ZipCode;
|
||||
_activity.DlvCity = _company.City;
|
||||
|
||||
}
|
||||
|
||||
private void CallPriceListModal()
|
||||
{
|
||||
PriceListModal.Show();
|
||||
|
@ -205,7 +199,13 @@ public partial class CrmNewActivityPage : IDisposable
|
|||
|
||||
private async Task CreateActivity()
|
||||
{
|
||||
_activity.CountryCode = "";
|
||||
|
||||
// if (!_prefs.DateConfirmed)
|
||||
// {
|
||||
// _confirmDatePrompt = $"Er arbejdsdato {_selectedDate} korrekt?";
|
||||
// CallConfirmWorkDate();
|
||||
// }
|
||||
|
||||
if (string.IsNullOrWhiteSpace(_activity.Address1))
|
||||
{
|
||||
Toast.ShowError("Kunde adresse er ufuldstændig.");
|
||||
|
@ -227,6 +227,8 @@ public partial class CrmNewActivityPage : IDisposable
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
_poFormInvalid = true;
|
||||
|
||||
_activity.ActivityDate = $"{_workDate:yyyy-MM-dd}";
|
||||
_activity.OurRef = _activity.ActivityTypeEnum switch
|
||||
|
@ -276,12 +278,12 @@ public partial class CrmNewActivityPage : IDisposable
|
|||
if (result.IsSuccess)
|
||||
{
|
||||
Toast.ShowSuccess($"{result.Message}", "RESULTAT");
|
||||
if(DraftStateProvider.Draft.Items.Any())
|
||||
Toast.ShowSuccess($"{result.Message}.", "BESTILLING OPRETTET");
|
||||
|
||||
await DraftStateProvider.DeleteDraftAsync();
|
||||
Navigator.NavigateTo($"/companies");
|
||||
return;
|
||||
}
|
||||
|
||||
_poFormInvalid = false;
|
||||
Toast.ShowError(result.Message, "ORDRE FEJL");
|
||||
_selectedItem = new SalesItemView();
|
||||
}
|
||||
|
|
|
@ -8,16 +8,16 @@
|
|||
<tr>
|
||||
<th class="p-0" colspan="4">
|
||||
<div class="bg-light text-dark border border-1 rounded-3 pt-3 mb-2">
|
||||
<h2 class="fw-bold text-center">@ReportItem.Company.Name</h2>
|
||||
@if (ReportItem.StatusTypeEnum.ToLower() is "quote")
|
||||
<h2 class="fw-bold text-center">@_reportItem.Company.Name</h2>
|
||||
@if (_reportItem.StatusTypeEnum.ToLower() is "quote")
|
||||
{
|
||||
<h3 class="text-center">TILBUD</h3>
|
||||
}
|
||||
@if (ReportItem.Express)
|
||||
@if (_reportItem.Express)
|
||||
{
|
||||
<h2 class="fw-bold text-center"><i class="bi-lightning-charge text-dark" style="font-size: 2rem;"></i> HASTER</h2>
|
||||
}
|
||||
@if (ReportItem.Express && ReportItem.ProcessStatusEnum == "None")
|
||||
@if (_reportItem.Express && _reportItem.ProcessStatusEnum == "None")
|
||||
{
|
||||
<div id="watermark">
|
||||
<i class="bi-lightning-charge text-dark" style="font-size: 11rem;"></i>
|
||||
|
@ -37,7 +37,7 @@
|
|||
</Authorized>
|
||||
</AuthorizeView>
|
||||
}
|
||||
@if (ReportItem.VisitTypeEnum.ToLower() == "phone" || ReportItem.OurRef.Contains("T:"))
|
||||
@if (_reportItem.VisitTypeEnum.ToLower() == "phone" || _reportItem.OurRef.Contains("T:"))
|
||||
{
|
||||
<h5 class="text-center">TELEFONORDRE</h5>
|
||||
}
|
||||
|
@ -48,45 +48,45 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">Dato</th>
|
||||
<td>@ReportItem.OrderDate</td>
|
||||
<td>@_reportItem.OrderDate</td>
|
||||
<th scope="row">Konto</th>
|
||||
<td>@ReportItem.Company.Account</td>
|
||||
<td>@_reportItem.Company.Account</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col">Telefon</th>
|
||||
<td>@ReportItem.Company.Phone</td>
|
||||
<td>@_reportItem.Company.Phone</td>
|
||||
<th scope="col">Køber</th>
|
||||
<td>@ReportItem.YourRef</td>
|
||||
<td>@_reportItem.YourRef</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col">CVR/VAT</th>
|
||||
<td>@ReportItem.Company.VatNumber</td>
|
||||
<td>@_reportItem.Company.VatNumber</td>
|
||||
<th scope="col">Rekvisition</th>
|
||||
<td>@ReportItem.ReferenceNumber</td>
|
||||
<td>@_reportItem.ReferenceNumber</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col">Navn</th>
|
||||
<td>@ReportItem.Company.Name</td>
|
||||
<td>@_reportItem.Company.Name</td>
|
||||
<th scope="col">Lev.Navn</th>
|
||||
<td>@ReportItem.DlvName</td>
|
||||
<td>@_reportItem.DlvName</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col">Adresse</th>
|
||||
<td>@ReportItem.Company.Address1</td>
|
||||
<td>@_reportItem.Company.Address1</td>
|
||||
<th scope="col">Lev.Adresse</th>
|
||||
<td>@ReportItem.DlvAddress1</td>
|
||||
<td>@_reportItem.DlvAddress1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col">Adresse</th>
|
||||
<td>@ReportItem.Company.Address2</td>
|
||||
<td>@_reportItem.Company.Address2</td>
|
||||
<th scope="col">Lev.Adresse</th>
|
||||
<td>@ReportItem.DlvAddress2</td>
|
||||
<td>@_reportItem.DlvAddress2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="col">Postnr By</th>
|
||||
<td>@ReportItem.Company.ZipCode @ReportItem.Company.City</td>
|
||||
<td>@_reportItem.Company.ZipCode @_reportItem.Company.City</td>
|
||||
<th scope="col">Lev.Postnr By</th>
|
||||
<td>@ReportItem.DlvZipCity</td>
|
||||
<td>@_reportItem.DlvZipCity</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -102,7 +102,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var line in ReportItem.Lines)
|
||||
@foreach (var line in _reportItem.Lines)
|
||||
{
|
||||
<tr>
|
||||
<td>@line.Quantity</td>
|
||||
|
@ -116,18 +116,18 @@
|
|||
<tr>
|
||||
<td colspan="4"></td>
|
||||
<td>Ordresum</td>
|
||||
<td class="text-end">@ReportItem.OrderAmount</td>
|
||||
<td class="text-end">@_reportItem.OrderAmount</td>
|
||||
</tr>
|
||||
@if (ReportItem.Express)
|
||||
@if (_reportItem.Express)
|
||||
{
|
||||
<td colspan="4"></td>
|
||||
<td colspan="2"><h5 class="fw-bold text-center"><i class="bi-lightning-charge text-dark" style="font-size: 2rem;"></i> HASTER</h5></td>
|
||||
}
|
||||
</tbody>
|
||||
</table>
|
||||
@if (!string.IsNullOrWhiteSpace(ReportItem.OfficeNote))
|
||||
@if (!string.IsNullOrWhiteSpace(_reportItem.OfficeNote))
|
||||
{
|
||||
<div class="alert alert-dark">
|
||||
<h4 class="text-center">@ReportItem.OfficeNote</h4>
|
||||
<h4 class="text-center">@_reportItem.OfficeNote</h4>
|
||||
</div>
|
||||
}
|
||||
|
|
|
@ -20,67 +20,86 @@ public partial class OfficeViewActivityPage : IDisposable
|
|||
[Parameter] public string OrderId { get; set; } = "";
|
||||
[Inject] public HttpInterceptorService Interceptor { get; set; }
|
||||
[Inject] public ICrmActivityHttpRepository ActivityRepo { get; set; }
|
||||
[Inject] public ISendMailService SendMailService { get; set; }
|
||||
[Inject] public ISendMailService MailService { get; set; }
|
||||
[Inject] public ILocalStorageService Storage { get; set; }
|
||||
[Inject] public IOfficeUserHttpRepository UserRepo { get; set; }
|
||||
[Inject] public ILogger<OfficeViewActivityPage> Logger { get; set; }
|
||||
[Inject] public IToastService Toast { get; set; }
|
||||
private ReportItemView ReportItem { get; set; } = new();
|
||||
|
||||
private ReportItemView _reportItem { get; set; } = new();
|
||||
|
||||
private readonly JsonSerializerOptions? _options = new JsonSerializerOptions
|
||||
{
|
||||
PropertyNameCaseInsensitive = true
|
||||
};
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Interceptor.RegisterEvent();
|
||||
Interceptor.RegisterBeforeSendEvent();
|
||||
ReportItem = await ActivityRepo.GetReportItem(OrderId);
|
||||
Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(ReportItem));
|
||||
_reportItem = await ActivityRepo.GetReportItem(OrderId);
|
||||
Logger.LogDebug("ReportItem => \n {}", JsonSerializer.Serialize(_reportItem, _options));
|
||||
}
|
||||
|
||||
private async Task SetExpressState()
|
||||
{
|
||||
var responseView = await ActivityRepo.UpdateExpressStatus(ReportItem.ActivityId);
|
||||
if (responseView.IsSuccess)
|
||||
Logger.LogDebug("SetExpressState => \n {}", JsonSerializer.Serialize(_reportItem, _options));
|
||||
var responseView = await ActivityRepo.GetExpressStatus(_reportItem.ActivityId);
|
||||
Logger.LogDebug("SetExpressState => \n {}", responseView.Message );
|
||||
|
||||
if (!responseView.IsSuccess)
|
||||
{
|
||||
var user = await Storage.GetItemAsync<UserInfoView>("_ux");
|
||||
var salesRep = await UserRepo.GetAdvisorInfo(responseView.Id);
|
||||
var body = new StringBuilder();
|
||||
body.AppendLine($"Kvittering for behandling af hasteordre {ReportItem.ESalesNumber}");
|
||||
body.AppendLine($"Konto : {ReportItem.Company.Account}");
|
||||
body.AppendLine($"Navn : {ReportItem.Company.Name}");
|
||||
body.AppendLine(
|
||||
$"Post Bynavn: {salesRep.CountryCode.ToLower()}-{ReportItem.Company.ZipCode} {ReportItem.Company.City}");
|
||||
body.AppendLine();
|
||||
body.AppendLine("Med venlig hilsen");
|
||||
body.AppendLine($"{user.FullName}");
|
||||
body.AppendLine($"{user.PhoneNumber}");
|
||||
|
||||
var msg = new EmailMessage
|
||||
{
|
||||
Body = body.ToString(),
|
||||
Subject = $"{ReportItem.ESalesNumber} {ReportItem.Company.Name} er registreret.",
|
||||
To = { new EmailContact
|
||||
{
|
||||
Email = salesRep.Email,
|
||||
Name = $"{salesRep.FirstName} {salesRep.LastName}"
|
||||
}}
|
||||
};
|
||||
|
||||
var sendMail = await SendMailService.SendMail(msg);
|
||||
if (sendMail.IsSuccess)
|
||||
{
|
||||
Toast.ShowSuccess($"Status er opdateret og notifikation sendt til {salesRep.FirstName}.", "OK");
|
||||
}
|
||||
else
|
||||
{
|
||||
Toast.ShowWarning($"Notifikation til {salesRep.FirstName} kunne ikke sendes. {sendMail.Message}", "ADVARSEL");
|
||||
}
|
||||
Toast.ShowError(responseView.Message);
|
||||
return;
|
||||
}
|
||||
Toast.ShowError($"{responseView.Message}", "FEJL");
|
||||
|
||||
var user = await Storage.GetItemAsync<UserInfoView>("_xu");
|
||||
var salesRep = await UserRepo.GetAdvisorInfo(responseView.Id);
|
||||
|
||||
Logger.LogDebug("SetExpressState => salesRep => \n {}", JsonSerializer.Serialize(salesRep));
|
||||
|
||||
var body = new StringBuilder();
|
||||
body.AppendLine($"Kvittering for modtagelse af hasteordre {_reportItem.ESalesNumber}");
|
||||
body.AppendLine($"Konto : {_reportItem.Company.Account}");
|
||||
body.AppendLine($"Navn : {_reportItem.Company.Name}");
|
||||
body.AppendLine(
|
||||
$"Post By : {salesRep.CountryCode.ToUpper()}-{_reportItem.Company.ZipCode} {_reportItem.Company.City}");
|
||||
body.AppendLine();
|
||||
body.AppendLine("Med venlig hilsen");
|
||||
body.AppendLine($"{user.FullName}");
|
||||
body.AppendLine($"{user.PhoneNumber}");
|
||||
|
||||
var sendTo = new List<EmailContact>
|
||||
{
|
||||
new()
|
||||
{
|
||||
Email = salesRep.Email,
|
||||
Name = $"{salesRep.FirstName} {salesRep.LastName}"
|
||||
}
|
||||
};
|
||||
|
||||
var msg = new EmailMessage
|
||||
{
|
||||
Body = body.ToString(),
|
||||
Subject = $"Haste ordre til {_reportItem.Company.Name} er modtaget.",
|
||||
To = sendTo,
|
||||
IsBodyHtml = false
|
||||
};
|
||||
Logger.LogDebug("SetExpressState Notification => \n {}", JsonSerializer.Serialize(msg));
|
||||
var sendMail = await MailService.SendMail("System", msg);
|
||||
if (sendMail.IsSuccess)
|
||||
{
|
||||
Toast.ShowSuccess($"Status er opdateret og notifikation sendt til {salesRep.FirstName}.", "OK");
|
||||
}
|
||||
else
|
||||
{
|
||||
Toast.ShowWarning($"Notifikation til {salesRep.FirstName} kunne ikke sendes. {sendMail.Message}",
|
||||
"ADVARSEL");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
Interceptor.DisposeEvent();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"appInfo": {
|
||||
"name": "Wonky Client",
|
||||
"version": "0.24.1",
|
||||
"rc": false,
|
||||
"version": "0.25.1",
|
||||
"rc": true,
|
||||
"sandBox": false,
|
||||
"image": "grumpy-coder.png"
|
||||
},
|
||||
"apiConfig": {
|
||||
"innoBaseUrl": "https://eta.innotec.dk",
|
||||
"innoBaseUrl": "https://zeta.innotec.dk",
|
||||
"glsTrackUrl": "https://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DK01/DA/5004.htm?txtAction=71000&txtRefNo=",
|
||||
"glsId": "",
|
||||
"serviceVirk": "api/v2/services/virk",
|
||||
|
@ -30,11 +30,11 @@
|
|||
"officeCustomers": "api/v2/office/customers",
|
||||
"officeReports": "api/v2/office/reports",
|
||||
"warehouse": "api/v2/warehouse/packages",
|
||||
"sendMail": "api/v2/"
|
||||
"sendMail": "api/v2/services/sendmail"
|
||||
},
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Debug",
|
||||
"Default": "Information",
|
||||
"System": "Information",
|
||||
"Microsoft": "Information"
|
||||
},
|
||||
|
|
|
@ -81,6 +81,9 @@ a, .btn-link {
|
|||
.the-dead-bg {
|
||||
background-color: #0dcaf0;
|
||||
}
|
||||
.the-fast {
|
||||
color: orange;
|
||||
}
|
||||
.the-good {
|
||||
color: green;
|
||||
}
|
||||
|
|
|
@ -25,8 +25,10 @@ public class ReportItemView
|
|||
/// Lines
|
||||
/// </summary>
|
||||
public List<ReportItemLine> Lines { get; set; } = new();
|
||||
|
||||
public string SalesRepId { get; set; }
|
||||
/// <summary>
|
||||
/// entity id for sales rep
|
||||
/// </summary>
|
||||
public string SalesRepId { get; set; } = "";
|
||||
/// <summary>
|
||||
/// Activity entity id
|
||||
/// </summary>
|
||||
|
|
Loading…
Reference in a new issue