wip - sales report

This commit is contained in:
Frede Hundewadt 2022-06-10 13:26:48 +02:00
parent 14e8eba4f0
commit 40f9334e2d
11 changed files with 49 additions and 28 deletions

View file

@ -139,10 +139,9 @@
</div>
</div>
</div>
@* Leverings adresse *@
<div class="accordion-item">
<div class="accordion-item" style="@(_poDraft.ActivityStatusEnum == "order" ? "display: block" : "display:none")">
<h2 class="accordion-header" id="deliveryHeader">
<button class="accordion-button collapsed bg-light" type="button"
data-bs-toggle="collapse" data-bs-target="#deliveryBody"
@ -187,8 +186,8 @@
</div>
</div>
@* Ordder lines *@
<div class="accordion-item">
@* Order lines *@
<div class="accordion-item" style="@(_poDraft.ActivityStatusEnum is "order" or "quote" ? "display: block" : "display:none")">
<h2 class="accordion-header" id="catalogHeader">
<button class="accordion-button collapsed bg-light" type="button"
data-bs-toggle="collapse" data-bs-target="#catalogBody"

View file

@ -108,7 +108,7 @@ public partial class CrmActivityCreate : IDisposable
_poDraft.DlvAddress2 = NgCompany.Address2;
_poDraft.DlvZipCode = NgCompany.ZipCode;
_poDraft.DlvCity = NgCompany.City;
DraftContext = new EditContext(_poDraft);
DraftContext.OnFieldChanged += HandleFieldChanged;
DraftContext.OnValidationStateChanged += ValidationChanged;

View file

@ -27,7 +27,7 @@
</div>
<div class="col">
<h5>Browservalg</h5>
Bruge en Chrome baseret browser f.eks. Edge, Safari, Vivaldi, Chrome eller Chromium
Det anbefales at bruge en Chrome baseret browser f.eks. Edge, Safari, Vivaldi, Chrome eller Chromium
</div>
</div>
<div class="row">

View file

@ -35,7 +35,8 @@
<tbody>
<tr>
<td>
<select id="dayType" class="col-md-3 form-select" @bind-Value="_reportDto.DayTypeEnum" @bind-Value:event="oninput" @onchange="CheckDayType">
<select id="dayType" class="col-md-3 form-select"
@bind-Value="_reportDto.DayTypeEnum" @bind-Value:event="oninput" @onchange="CheckDayType">
<option value="" selected disabled="">"IKKE VALGT"</option>
<option value="sales">Salgsdag</option>
<option value="meeting">Salgsmøde</option>
@ -43,7 +44,6 @@
<option value="supervisor">Supervisor</option>
<option value="sickLeave">Sygdom</option>
<option value="leave">Ferie</option>
<option value="noReport">Ingen Rapport</option>
</select>
<ValidationMessage For="@(() => _reportDto.DayTypeEnum)"></ValidationMessage>
</td>
@ -59,6 +59,26 @@
</tbody>
</table>
</div>
<div class="card-body">
<div class="row">
<div class="form-group row mb-1">
<label for="supervisedBy" class="col-form-label col-md-2">Supervisor</label>
<div class="col-md-4">
<InputText id="supervisedBy" class="form-control" @bind-Value="_reportDto.SupervisedBy"/>
<ValidationMessage For="@(() => _reportDto.SupervisedBy)"></ValidationMessage>
</div>
</div>
</div>
<div class="row">
<div class="form-group row mb-1">
<label for="description" class="col-form-label col-md-2">Beskrivelse</label>
<div class="col-md-4">
<InputTextArea id="description" class="form-control" @bind-Value="_reportDto.Description"/>
<ValidationMessage For="@(() => _reportDto.Description)"></ValidationMessage>
</div>
</div>
</div>
</div>
<div class="card-body">
<table class="table">
<thead>

View file

@ -30,7 +30,7 @@ public partial class SalesReport
[Inject] private UserPreferenceService UserPrefs { get; set; }
[Inject] private IActivityHttpRepository ActivityRepo { get; set; }
private EditContext _editContext { get; set; }
private ActivityReportDto _reportDto = new();
private ReportDto _reportDto = new();
private Preferences _prefs { get; set; } = new();
private bool _formInvalid = true;
private List<ReportActivity>? Activities { get; set; } = new();
@ -72,13 +72,13 @@ public partial class SalesReport
{
}
private async Task GetActivities()
{
Activities = null;
await UserPrefs.SetWorkDate(_reportDto.CheckIn);
Activities = await ActivityRepo
.GetActivities($"{_reportDto.CheckIn:yyyy-MM-dd}")
;
.GetActivities($"{_reportDto.CheckIn:yyyy-MM-dd}");
}
public void Dispose()

View file

@ -51,7 +51,7 @@ public class VatInfoLookupService
["houseNumber"] = $"{query.HouseNumber}",
["zipCode"] = $"{query.ZipCode}"
};
var endpoint = QueryHelpers.AddQueryString(_config.BrRegEndpoint, queryString);
var endpoint = QueryHelpers.AddQueryString(_config.VirkEndpoint, queryString);
var response = await _client.GetAsync(endpoint);
var content = await response.Content.ReadAsStringAsync();
var jsonResult = JsonSerializer.Deserialize<List<VirkRegInfo>>(content, _options);
@ -64,7 +64,7 @@ public class VatInfoLookupService
return result.Count == 0 ? _noData : result;
}
public async Task<List<VirkRegInfo>> QueryNoVatRegistry(string vatNumber)
public async Task<List<VirkRegInfo>> QueryBrRegistry(string vatNumber)
{
var queryString = new Dictionary<string, string>
{
@ -85,7 +85,7 @@ public class VatInfoLookupService
return result.Count == 0 ? _noData : result;
}
public async Task<List<VirkRegInfo>> QueryViesVatRegistry(string vatNumber)
public async Task<List<VirkRegInfo>> QueryViesRegistry(string vatNumber)
{
var queryString = new Dictionary<string, string>
{

View file

@ -8,7 +8,7 @@
},
"appInfo": {
"name": "Wonky Client",
"version": "0.3.8",
"version": "0.4.3",
"isBeta": true,
"image": "grumpy-coder.png"
},
@ -18,11 +18,12 @@
"userInfo": "api/auth/userinfo",
"customerEndpoint": "api/v2/crm/companies",
"catalogEndpoint": "api/v2/crm/catalog",
"dkEndpointVat": "api/v2/services/virk",
"noEndpointVat": "api/v2/services/brReg",
"seEndpointVat": "api/v2/services/vies",
"virkEndpoint": "api/v2/services/virk",
"brRegEndpoint": "api/v2/services/brReg",
"viesEndpoint": "api/v2/services/vies",
"glsTrackUrl": "https://www.gls-group.eu/276-I-PORTAL-WEB/content/GLS/DK01/DA/5004.htm?txtAction=71000&txtRefNo=",
"glsId": "",
"activityEndpoint": "api/v2/crm/salesReps/sales"
"activityEndpoint": "api/v2/crm/salesReps/sales",
"reportEndpoint": "api/v2/crm/salesReps/reports"
}
}

View file

@ -24,11 +24,12 @@ public class ApiConfig
public string ImageUpload { get; set; } = "";
public string UserRegistration { get; set; } = "";
public string UserInfo { get; set; } = "";
public string VirkEndpoint { get; set; } = "";
public string BrRegEndpoint { get; set; } = "";
public string NoEndpointVat { get; set; } = "";
public string ViesEndpoint { get; set; } = "";
public string TokenPath { get; set; } = "";
public string GlsTrackUrl { get; set; } = "";
public string GlsId { get; set; } = "";
public string ActivityEndpoint { get; set; } = "";
public string ReportEndpoint { get; set; } = "";
}

View file

@ -35,6 +35,7 @@ namespace Wonky.Entity.DTO
public string SalesRep { get; set; } = "";
[Required(ErrorMessage = "Vælg aktivitetstype")] public string ActivityTypeEnum { get; set; } = "";
[Required(ErrorMessage = "Vælg status for besøg ")] public string ActivityStatusEnum { get; set; } = "";
public string VisitTypeEnum { get; set; } = "recall";
public bool CheckDate { get; set; }
[Required] public string ActivityDate { get; set; } = "";
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")] public string Demo { get; set; } = "";

View file

@ -2,13 +2,12 @@ using System.ComponentModel.DataAnnotations;
namespace Wonky.Entity.DTO;
public class ActivityReportDto
{
[Required(ErrorMessage = "Dato skal angives")] public DateTime ActivityDate { get; set; }
public class ReportDto
{
[Required(ErrorMessage = "Dagtype skal angives")] public string DayTypeEnum { get; set; } = "";
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string SupervisedBy { get; set; } = "";
[MaxLength(1000, ErrorMessage = "Du kan højst bruge 1000 tegn")] public string Description { get; set; } = "";
//
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string SupervisedBy { get; set; } = "";
// Date interval (used for leave, sickLeave and work hours
public DateTime CheckIn { get; set; }
public DateTime CheckOut { get; set; }
// workday

View file

@ -2,7 +2,7 @@ namespace Wonky.Entity.Models;
public class ReportActivity
{
public Visitcompany Company { get; set; }
public VisitCompany Company { get; set; }
public string SalesHeadId { get; set; } = "";
public bool Closed { get; set; }
public string OrderDate { get; set; } = "";
@ -14,7 +14,7 @@ public class ReportActivity
public string SalesResume { get; set; } = "";
}
public class Visitcompany
public class VisitCompany
{
public string CompanyId { get; set; } = "";
public string Account { get; set; } = "";